Types and Semantics | Programming Language Design | Cornell University

Cornell University

Explore the design and understanding of programming languages with a focus on types and semantics. Develop custom languages for your needs through a project-based approach.

University CoursesProgramming

Introduction

CS6118 - Types and Semantics is about designing and understanding programming languages, whether they be domain-specific or general-purpose. The goal of this class is to provide a variety of tools for designing custom programming languages for whatever task is at hand.

screenshot

Highlights

  • Focuses on types and semantics, and the interplay between them
  • Covers category theory, constructive type theory, and unconventional semantic domains like classical linear type theory
  • Includes a class project to design and formalize a programming language for a purpose of the student's choosing
  • Assignments designed to ensure students practice applying the techniques learned in class before the final project

Recommendation

This course is recommended for students interested in programming language design and implementation, as well as those looking to gain a deeper understanding of type systems and semantics. The project-based approach and exposure to advanced topics make this course a valuable addition to the curriculum for aspiring language designers and researchers.

How GetVM Works

Learn by Doing from Your Browser Sidebar

Access from Browser Sidebar

Access from Browser Sidebar

Simply install the browser extension and click to launch GetVM directly from your sidebar.

Select Your Playground

Select Your Playground

Choose your OS, IDE, or app from our playground library and launch it instantly.

Learn and Practice Side-by-Side

Learn and Practice Side-by-Side

Practice within the VM while following tutorials or videos side-by-side. Save your work with Pro for easy continuity.

Explore Similar Hands-on Tutorials

C++ Language Tutorial | Beginner to Advanced

38
Technical TutorialsC++Programming
Learn C++ programming from the ground up, including practical examples and the latest features. Ideal for beginners and experienced developers.

Learn Python Basics | Beginner-Friendly Programming Course

20
Technical TutorialsProgrammingPython
Dive into the world of programming with Python, a beginner-friendly language. Explore its readability, versatility, and robust community support.

Python Tutorial For Beginners | Programming, Coding

1
Video CoursesProgrammingPython
Learn Python fundamentals, installation, and setup for beginners. Explore the interactive prompt, create and run your first Python script. Ideal for new programmers.

CS50 Labs | Computer Science Fundamentals | Harvard University

1
University CoursesComputer ScienceProgramming
Explore the intellectual enterprises of computer science and the art of programming with CS50 Labs, Harvard University's renowned introduction to computer science for beginners and experienced learners alike.

Matters Computational: Ideas, Algorithms, Source Code

9
Technical TutorialsAlgorithmProgramming
Comprehensive book covering computational algorithms, source code, and programming concepts. Recommended for programmers and computer scientists.

Foundations of Programming

10
Technical TutorialsProgramming
Comprehensive guide to the core principles of programming, including algorithms, data structures, and software development best practices. Suitable for beginners and experienced developers.

Pointers And Memory | Computer Programming, Memory Management

16
Technical TutorialsCComputer ScienceProgramming
Comprehensive guide to understanding pointers, memory allocation, and optimization techniques for computer science students and software developers.

Beejs Guide to Network Programming - Using Internet Sockets

12
Technical TutorialsCC++NetworkingProgramming
Comprehensive guide to network programming, focusing on the use of internet sockets. Written by experienced author Brian "Beej Jorgensen" Hall, offering in-depth coverage and practical examples.

Networking! ACK! | Networking Concepts & Techniques

3
Technical TutorialsNetworkingProgramming
Explore networking fundamentals like TCP/IP, DNS, and routing in a fun, comic-style format. Suitable for beginners and experienced programmers.