-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
1 changed file
with
13 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,2 +1,15 @@ | ||
# 2022-Student-Programming-language-Compiler | ||
A compiler for a programming language that prof. Gruner had us implement for Compiler Design (COS 341) in 2022. | ||
|
||
Basically, this "compiler" was our practical project for the compiler module. Since it was to serve as an introduction to compiler design, | ||
there were some liberties that were taken. Firstly, as you'll soon notice, there was hardly any optimization that was required from us students. | ||
Secondly, we only needed to generate the "intermediate code" (which, you may notice, is vintage BASIC code). That is to say, we didn't have to write any | ||
machine code translation components. | ||
|
||
Futhermore, yes, I know. There are some parts of the specification that I did not implement. More specifically, dead code elimination. | ||
The short explanation for that is simply becuase I didn't have time to do it :) | ||
|
||
Finally, I think it's worth stating that I am not one for compiler design. I've always been more interested in reversing (reverse-engineering) software, | ||
but I decided to share this because I found it interesting how multi-layered and complicated the process of software compilation really is. | ||
Though I was not necessarily passionate about this project in particular, it did make me appreciate the amount of work that goes into compilation software such | ||
as g++, gcc, MinGW, Javac, etc. |