PinnedMarc AubererBuild a Compiler — IntroductionIntroduction article for the article series “Build a Compiler”. This articles are conceived especially for beginners in the field.Apr 2Apr 2
Marc AubererBuild a Compiler — BackendThe job of the compiler backend is the transformation of (optimized or unoptimized) IR to the machine code for the target platform. This…Apr 2Apr 2
Marc AubererBuild a Compiler — OptimizationNow that we transformed our program to intermediate representation, we can pass it off to an optimization pipeline, that can perform one…Apr 2Apr 2
Marc AubererBuild a Compiler — IR GeneratorIn order to effectively optimize the program it can be beneficial to transform the program to a so called “Intermediate Representation” or…Apr 2Apr 2
Marc AubererBuild a Compiler — Type CheckerNext, let’s look how we can guarantee a semantically correct program by checking type compatibility. This job is done by a compiler…Apr 2Apr 2
Marc AubererBuild a Compiler — Symbol TableNow that we know that our input program is syntactically correct, we can enter semantic analysis territory. One of the most important…Apr 2Apr 2
Marc AubererBuild a Compiler — ParserNext, we want to get an understanding of the context, in which the individual tokens are aligned, so that we can derive the program…Apr 2Apr 2
Marc AubererBuild a Compiler — LexerBefore starting to think about our lexer, we first should define, what our demo language is supposed to do. Let’s say we just want a…Apr 2Apr 2
Marc AubererCompose Generator — Update 1.5.0If you haven’t read about Compose Generator yet, visit the introduction article here. This particular article shows which features /…Dec 16, 2021Dec 16, 2021
Marc AubererCompose Generator — Update 1.3.0If you haven’t read about Compose Generator yet, visit the introduction article here. This particular article shows which features /…Nov 17, 2021Nov 17, 2021