Programming Language with LLVM
Learn programming languages with a hands-on approach! Build practical skills and gain confidence in coding. Perfect for beginners and those looking to expand their programming knowledge.
Course Content
Programming Language with LLVM is an intermediate-level Udemy course taught by Dmitry Soshnikov. It runs 2h 45m, is taught in English, and includes a certificate of completion. Learners rate it 4.5 out of 5 from 51 reviews, with 390 students enrolled. It is a paid course, first published April 2023.
Learn Programming Language Implementation with LLVM
Dive deep into how programming languages work with this practical course! Go beyond the basics and gain a comprehensive understanding of language semantics, from compilation to execution. This course focuses on building a lower-level programming language using the powerful LLVM compiler infrastructure.
What You'll Discover:
- Compiler vs. Interpreter: Understand the fundamental differences between these two approaches to program execution.
- Virtual Machines & JIT Compilation: Explore how virtual machines and Just-In-Time (JIT) compilers optimize code for performance.
- Functional vs. Imperative Programming: Grasp the core concepts of these programming paradigms and their impact on language design.
- LLVM IR: Learn to compile your own language to LLVM Intermediate Representation (IR), the foundation for many modern languages.
- Lower-Level Compilation: Gain insights into how production-level languages like C++, Rust, and others are compiled.
- Programming Language Semantics: Build a full programming language, end-to-end, in a focused 4-6 hour learning experience.
- Practical Programming Skills: Enhance your proficiency in other programming languages by understanding the inner workings of language implementation.
Who Should Take This Course?
This course is ideal for:
- Engineers seeking to build complex systems.
- Developers interested in compiler design and optimization.
- Anyone curious about the inner workings of programming languages.
- Those wanting to gain practical experience with LLVM and its compiler infrastructure.
Prerequisites:
- Familiarity with the concepts of eval, closures, scope chains, and environments (ideally from a course on interpreters).
- Basic C++ experience (focuses on transferable concepts, not advanced C++ features).
What We'll Use:
We utilize C++ for implementation due to its performance characteristics, while focusing on basic, portable constructs. The code is designed to be easily adaptable to other languages like Rust or higher-level languages such as Python.
What Makes This Course Unique?
- Concise & Focused: Each lecture is self-contained and directly addresses the topic.
- Visual Learning: Animated presentations combined with live coding and editing for better understanding of object structures.
- Hands-on Implementation: Follow along and implement every detail of the LLVM compiler. The full source code is available, but you'll be challenged with "Implement here" assignments.
- End-to-End Project: Build a complete programming language from scratch.
Course Curriculum (20 Lectures):
- Part 1: LLVM Basic Constructs - Compilation & Interpretation Pipeline, LLVM IR, Bitcode Compilation
- Part 2: Functions and Stack - Control Flow (if expressions, while loops), Stack Variables, Nested Blocks, Function Compilation
- Part 3: Object-Oriented Programming - Classes, Instances, Heap Allocation, Garbage Collection
- Part 4: Higher-Order Functions - Closures, Functional Programming, Lambda Functions, Executable Implementation
Start building your own programming language today!
Need a web app built? Hire the team behind TutorialSearch.io
We ship fast, production-grade full-stack apps (Next.js, React, edge infra) — the same stack that powers this site.