Skip to content
@Pip-Install-Party

Pip Install Party

Making interpreters simple.

Welcome to Pip Install Party

This organization was established to facilitate the development of a BNF interpreter.

The interpreter was the culminating project for CS460: Programming Languages at Sonoma State University during the Fall 2024 semester. Collaboratively created by a team of five students, this project presents an interpreter designed to process and execute code written in Backus-Naur Form (BNF), a C-like programming language. The interpreter interprets the input in BNF, analyzes its structure and logic, and executes the corresponding computations to generate the desired output. This project exemplifies advanced concepts in parsing, syntax analysis, data structures, and interpreter design.

The interpreter was constructed through a modular design, composed of several key components that work in sequence to process the input code. These components include:

  1. Comment Removal: Eliminates non-executable comments to prepare the input for further processing.

  2. Tokenization: Breaks the input into meaningful tokens, such as keywords, identifiers, and symbols, forming the building blocks of the program.

  3. Recursive Descent Parsing: Analyzes the tokenized input based on the defined BNF grammar, ensuring syntactical correctness while building a structural representation of the code. Generates a Concrete Syntax Tree (CST) representing program strucutre.

  4. Symbol Table Generation: Creates a mapping of variables, functions, and other symbols to their corresponding definitions and values, enabling efficient lookup during execution.

  5. Abstract Syntax Tree (AST) Generation: Constructs a tree representation of the program that encapsulates its logical structure and relationships, serving as the foundation for execution.

  6. Interpreter: Constructs the full interpreter using a combination of the prior componets.

Each component builds on the outputs of the previous stage, concluding in a fully functional interpreter capable of processing complex inputs and producing correct results. This layered approach highlights the importance of modularity and abstraction in software engineering and programming language design.

Contributors

contrib.rocks image

Connect With Us

Blake Marshall - Github | LinkedIn
Brandon Robison - Github | LinkedIn
Holden Ea - Github | LinkedIn
Jacob Sellers - Github | LinkedIn
Rolando Yax - Github | LinkedIn

Pinned Loading

  1. Interpreter Interpreter Public

    đź‘ľ An incremental BNF interpreter.

    C++ 5

  2. Abstract-Syntax-Tree Abstract-Syntax-Tree Public

    🌴 A C++ program that will create an abstract syntax tree from an input file.

    C++

  3. Symbol-Table Symbol-Table Public

    A C++ program that creates a symbol table of all defined variables in an input file.

    C++

  4. Recursive-Descent-Parser Recursive-Descent-Parser Public

    A C++ program that creates a concrete syntax tree (CST) using a recursive descent parsing technique.

    C++

  5. Tokenization Tokenization Public

    A C++ program that will to convert input file(s) into a series of tokens.

    C++

  6. Ignoring-Comments Ignoring-Comments Public

    A C++ program that will remove C-style comments from input test file(s).

    C++

Repositories

Showing 7 of 7 repositories
  • Interpreter Public

    đź‘ľ An incremental BNF interpreter.

    Pip-Install-Party/Interpreter’s past year of commit activity
    C++ 5 MIT 0 0 1 Updated Jan 6, 2025
  • .github Public
    Pip-Install-Party/.github’s past year of commit activity
    0 0 0 0 Updated Dec 4, 2024
  • Abstract-Syntax-Tree Public

    🌴 A C++ program that will create an abstract syntax tree from an input file.

    Pip-Install-Party/Abstract-Syntax-Tree’s past year of commit activity
    C++ 0 0 0 0 Updated Nov 20, 2024
  • Symbol-Table Public

    A C++ program that creates a symbol table of all defined variables in an input file.

    Pip-Install-Party/Symbol-Table’s past year of commit activity
    C++ 0 0 0 1 Updated Nov 4, 2024
  • Recursive-Descent-Parser Public

    A C++ program that creates a concrete syntax tree (CST) using a recursive descent parsing technique.

    Pip-Install-Party/Recursive-Descent-Parser’s past year of commit activity
    C++ 0 0 0 0 Updated Oct 18, 2024
  • Tokenization Public

    A C++ program that will to convert input file(s) into a series of tokens.

    Pip-Install-Party/Tokenization’s past year of commit activity
    C++ 0 0 0 0 Updated Oct 10, 2024
  • Ignoring-Comments Public

    A C++ program that will remove C-style comments from input test file(s).

    Pip-Install-Party/Ignoring-Comments’s past year of commit activity
    C++ 0 0 0 0 Updated Sep 26, 2024

Top languages

Loading…

Most used topics

Loading…