Skip to content

This project is the construction of a compiler for a simple programming language. We're building a compiler from scratch to deepen our understanding of how programming languages are processed and executed.

Notifications You must be signed in to change notification settings

caiotheodoro/compiler

Repository files navigation

Project Overview

This project is the construction of a compiler for a simple programming language. We're building a compiler from scratch to deepen our understanding of how programming languages are processed and executed.

Project Goals

  1. Understand the fundamental stages of compilation
  2. Implement each component of a basic compiler
  3. Create a simple programming language to compile
  4. Generate executable code or interpretable bytecode

Compiler Stages

Our compiler will include the following stages:

  1. Lexical Analysis: Tokenizing the input source code
  2. Syntax Analysis: Parsing tokens into an Abstract Syntax Tree (AST)
  3. Semantic Analysis: Checking for semantic errors and type checking
  4. Intermediate Code Generation: Creating an intermediate representation
  5. Code Optimization: Improving the intermediate code (optional)
  6. Code Generation: Producing the target code (e.g., assembly or bytecode)

Programming Language Specification

Our simple programming language will support the following features:

  1. Variables: Declaring and initializing variables
  2. Arithmetic Operations: Addition, subtraction, multiplication, division
  3. Control Structures: if statements, for loops
  4. Functions: Defining and calling functions

About

This project is the construction of a compiler for a simple programming language. We're building a compiler from scratch to deepen our understanding of how programming languages are processed and executed.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 2

  •  
  •