A compiler for the Simple Integer Language, written using Lex and Yacc
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.
Main Ignored generated SIMcode May 5, 2012
SILCompiler SIL Compiler COMPLETE with Interpreter and SIM code generation!! Hahaaa! Apr 17, 2012
LICENSE Added MIT License Apr 8, 2012
README.md Replaced broken link May 5, 2012



A compiler for the Simple Integer Language (SIL) that reads a SIL source program, and generates instructions for a target machine known as the Simple Integer Machine (SIM).
Source Language (SIL) description can be found at [http://andromeda.nitc.ac.in/~addy/compiler/sil.html]
Target Machine (SIM) Architecture description can be found at [http://andromeda.nitc.ac.in/~addy/compiler/sim.html]

Author :

Contributors :

License :

  • The code is licensed under the MIT License

Repository Information

Folder Listing

SILCompilerContains compiler source programs that are used to compile and generate SIM code for a SIL source program
SILCompiler/LexYaccFilesContains a Lex file SIL.l (for lexically analysing SIL source program) and a Yacc file SIL.y (for parsing SIL source program)
MainContains a Makefile for compiling the compiler source programs, SIL source program files
Main/SIM_SimulatorContains the simulator for SIM, and a file SIMcode (target file for the SIM instructions that the compiler generates for an input SIL program)


  1. Compile the compiler source programs using the Makefile present in Main/. In the terminal, write

    $ cd Main/
    $ make all
  2. Using the object file sil that is created, compile any of the SIL source programs present in Main/. In the terminal, write

    $ ./sil SILsource1
  3. The SIL source program will be executed. Also, the SIM instructions that are generated will be stored in file SIMcode

  4. The instructions in the file SIMcode are executed using the SIM simulator present in Main/SIM_Simulator/. To execute the generated SIM instructions, write in the terminal

    $ cd SIM_Simulator/
    $ make all
    $ ./sim ../SIMcode