Intermediate level Compilers and Programming Languages

Type Systems, Bytecode Virtual Machines, Intermediate Representations and Code Generation

Build a real compiler: architecture of front, middle and back ends, symbol tables and static type checking with inference, a bytecode compiler and a stack virtual machine with calls and closures, intermediate representations and basic optimisations, memory management and garbage collection, and code generation to LLVM IR, WebAssembly or assembly.

  • 43hours of work
  • 13parts
  • Reviewedcapstone
  • Lifetimeaccess
  • Compiler architecture
  • Type checking and inference
  • Bytecode virtual machines
  • Intermediate representations
  • Code generation
  • Garbage collection basics

At a glance

Who it is for

Programmers who have built a small interpreter (lexer, parser, tree-walking evaluation) and want to learn how production compilers analyse, represent, optimise and generate code.

Before you start

The beginner programme in this track or equivalent: lexing, recursive descent parsing, ASTs, environments and closures, and testing a language implementation. Comfortable programming in Python, Go, Rust or TypeScript (the programme uses Python for most code and shows C, LLVM IR and assembly). Basic knowledge of how a CPU executes instructions (registers, memory, the stack) helps and is reviewed.

How you finish

Pass the quizzes and labs, then submit a capstone project. The NIBVEDA team reviews it and either accepts it or sends it back with comments you can act on.

What you will be able to do

  1. 01Describe the structure of a compiler and the role of each phase and intermediate representation
  2. 02Implement semantic analysis with symbol tables and a static type checker with type inference
  3. 03Compile to bytecode and run it on a stack-based virtual machine with functions, closures and efficient variable access
  4. 04Represent programs as control flow graphs in three-address code or SSA and implement basic optimisations
  5. 05Generate real code for LLVM IR, WebAssembly or assembly and explain calling conventions and memory management

Curriculum 43 hours in 13 parts

Select a kind to highlight its parts.

Stage 1A bytecode compiler and virtual machine for Typed Tiny6 parts · 17 h
  1. 1
    Compiler architecture: front end, middle end and back endWorkshop · Follow along and build, with the steps and the traps written out.
    2 hFree
  2. 2
    Semantic analysis, symbol tables and type checking with inferenceWorkshop · Follow along and build, with the steps and the traps written out.
    3 h
  3. 3
    A typed language front end with inference and good diagnosticsWorkshop · Follow along and build, with the steps and the traps written out.
    2 h
  4. 4
    Check yourself: compiler architecture, semantic analysis and type systemsQuiz · Twelve questions, marked at once, with the reason behind each answer.
    1 h
  5. 5
    Bytecode compilers and stack-based virtual machinesWorkshop · Follow along and build, with the steps and the traps written out.
    3 h
  6. 6
    A bytecode compiler and virtual machine for Typed TinyLab · Hands-on work. Many labs are checked automatically against what must exist.
    6 h
Stage 2A native or WebAssembly back end, optimisations and a garbage-collected runtime5 parts · 13 h
  1. 7
    Intermediate representations, control flow graphs and optimisationWorkshop · Follow along and build, with the steps and the traps written out.
    2 h
  2. 8
    Check yourself: bytecode, virtual machines, IRs and optimisationQuiz · Twelve questions, marked at once, with the reason behind each answer.
    1 h
  3. 9
    Code generation: LLVM IR, WebAssembly, assembly and calling conventionsWorkshop · Follow along and build, with the steps and the traps written out.
    2 h
  4. 10
    Memory management and garbage collectionWorkshop · Follow along and build, with the steps and the traps written out.
    2 h
  5. 11
    A native or WebAssembly back end, optimisations and a garbage-collected runtimeLab · Hands-on work. Many labs are checked automatically against what must exist.
    6 h
Stage 3Code generation, calling conventions and garbage collection1 part · 1 h
  1. 12
    Check yourself: code generation, calling conventions and garbage collectionQuiz · Twelve questions, marked at once, with the reason behind each answer.
    1 h
FinishCapstone project1 part · 12 h
  1. 13
    A statically typed language with a verified compiler pipeline, optimiser, VM and native back endCapstone · A full project for your portfolio.
    12 h
Free lessonCompiler architecture: front end, middle end and back end
What you take away

An internship certificate with your skills on it.

Made for you automatically when you finish the last part, it names the internship programme, the level and the 43 hours, lists what you showed, and carries a number and a QR code. Anyone can check it on the NIBVEDA verification page, and it shows as withdrawn there if it is ever revoked.

  • Proof you completed all 43 hours of this internship programme
  • An Internship badge for your profile, CV or portfolio
  • Not a job, a stipend or an academic degree, and it says so
More in Compilers and Programming Languages

Keep building.

3 programmes in this track, from beginner to expert. Buy the learning path and save 15%.

BeginnerBeginner41 h Lexers, Parsers and Interpreters from Scratch

Learn how programming languages work by building one: tokenising source text, parsing with recursive descent and Pratt precedence, building syntax trees, evaluating with environments, functions and closures, reporting good errors, testing the language and finishing with your own complete interpreter.

  • Lexing
  • Parsing and ASTs
  • Interpreters
Rs. 299 + GST
ExpertExpert49 h Optimising Compilers, JITs, Garbage Collection and Language Tooling

Work at the level of production language implementations: dataflow and SSA optimisation, register allocation, LLVM and MLIR pass pipelines, just-in-time compilers with inline caches and deoptimisation, modern garbage collectors, debug information, language servers, and compiler testing with fuzzing and translation validation.

  • SSA optimisation
  • Register allocation
  • LLVM and MLIR
Rs. 999 + GST

See all 3 programmes in Compilers and Programming Languages Take the placement test

Before you enrol

Quick answers.

The policies have the full detail.

Is this a real internship?

It is a virtual internship programme: a structured, self-paced course built around a real project, with checked assessments and a certificate. It is not employment, it does not carry a stipend and it is not an academic or AICTE-approved qualification. What it gives you is verified, project-based evidence of skills.

How does self-paced work?

You start when you like and move at your own speed. Each part unlocks when you finish the one before it. There are no live classes and no deadlines. Your access is shown on each programme page.

How is my work checked?

Quizzes are marked as soon as you submit them. Labs use a tick-list of tasks. Intermediate and Expert programmes finish with a capstone that the NIBVEDA team reviews and either accepts or sends back with comments.

Can I get a refund?

Please read the refund policy before you buy. It explains when a refund is possible.

Ready to start?

Rs. 765.82 including GST. Lifetime access. Read the first lesson free before you decide.