Giter VIP home page Giter VIP logo

pl0-compiler's Introduction

PL0-Compiler

A compiler and interpreter for the minimal programming language PL/0 written in C++.

The parser uses the grammar from Wikipedia

The compiler targets a custom instruction set. Therefore the project also builds an assembler and vm to execute the generated code.

Compile the project

To compile the code yourself, execute the following steps:

  1. Navigate to the projects root
  2. Create a new folder (e.g. Debug) with mkdir Debug && cd Debug
  3. Within this folder, issue the command cmake .. -DCMAKE_BUILD_TYPE=Release
  4. Now you have to decide which target to build
    • pl0: this only builds the interpreter
    • pl0c: this builds the compiler, assembler and vm
    • compile_and_run_example: this is a handy target, if you want to execute the generated asm code directly. This target assumes you have a file called example.pl0 in the projects root. To use another file set the cmake variabel EXAMPLE_FILE to the filepath you want to use
  5. Now you can run all build executables located in the ./bin folder
  6. All executables take a file as their first command line argument. Image you have a hello.pl0 file, then you would invoke the compiler, interpreter, assembler, or vm with <executable> hello

pl0-compiler's People

Contributors

gremmling avatar lukaspietzschmann avatar

Stargazers

 avatar  avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.