Udemyintermediateen

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.

4.5(51)
390students
2h 45m
Certificate
Dmitry Soshnikov
Dmitry SoshnikovSoftware engineer and Instructor

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!

$ whoami — the devs behind tutorialsearch.io

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.