Skip to content

Programs transcribed and modified from the text Modern Compiler Design by Grune

Notifications You must be signed in to change notification settings

bmansfieldRIT/Modern-Compiler-Design

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

30 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Modern-Compiler-Design

Programs transcribed and modified from the text Modern Compiler Design by Grune

Why does this repo exist?

As part of my education in compiler construction, I am working my way through the above text, and transcribing the code contained therein. Doing this, I hope to accomplish 3 goals:

  • Refresh my knowledge of C programming styles and conventions. I have experience with C, and to a larger extent, C++, but given that these are often the de-facto languages for compiler engineering, I will re-familiarize myself with the language and also the practical aspects of compiling and organizing the code itself.
  • Expand the truncated programming style in the book. Easier to read this way.
  • Complete the ideas presented in the chapters, by way of exercises left to the reader, or unimplemented functions due to space constraints.

What is this text?

Modern Compiler Design covers aspects of compiler design from program input and syntax analysis to memory management and code generation. It also covers several different programming language paradigms, including compiling imperative, OO, functional, logic, and parallel/distributed programs. See an overview of the text here.

Why not the Dragon Book?

In short, it wasn't available from the RIT library at the time of my choosing a text. As to why I chose this book specifically, I found it to be a good mix of refresher on material I already know, practical code examples, and math/theory. I don't need beginner introductions to basic concepts, but I do want advanced concepts presented alongside the basic information. I feel this text can present that to me, and so far I believe it is doing the job.

Milestones

  • 2/09/18 Chapter 1 (Introduction) completed
  • 2/23/18 Section 2.1 (Lexical Analysis) completed
  • 2/28/18 Section 2.1 code transcribed, tested, and uploaded to GitHub
  • 3/13/18 Section 2.2.4 (Creating a Top-Down Parser Automatically) completed
  • 3/14/18 Section 2.2.5 (Creating a Bottom-Up Parser Automatically) completed
  • 3/14/18 Chapter 2 completed
  • 3/27/18 Chapter 2 code yacc/bison code transcribed and uploaded to GitHub
  • 3/30/18 Section 3.1 (Attribute Grammars) completed
  • 4/03/18 Section 3.2 (Manual Methods) completed
  • 4/03/18 Chapter 3 (Annotating the Abstract Syntax Tree) completed
  • 4/03/18 Section 3.1 / 3.2 programs transcribed and uploaded to GitHub
  • 4/04/18 Section 4.1 (Interpretation) completed
  • 4/04/18 Section 4.1 code transcribed and uploaded to GitHub
  • 4/09/18 Section 4.2 (Code Generation) completed
  • 4/10/18 Section 4.3 (Assemblers, Linkers, and Loaders) completed
  • 4/10/18 Chapter 4 (Processing the Intermediate Code) completed
  • 4/12/18 Section 5.1 (Data Allocation With Explicit Deallocation) completed
  • 4/12/18 Section 5.2 (Data Allocation With Implicit Deallocation) completed
  • 4/12/18 Chapter 5 (Memory Management) completed

About

Programs transcribed and modified from the text Modern Compiler Design by Grune

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published