#C to Machine Code Compiler ##CompArch Final Project Proposal ###Shane Skikne Yuzhong Huang Ziyi (Jason) Lan
##Project Description:
For our project, we hope to explore the process of compiling C down to Machine Code. To do this, we will all gain an indepth understanding of the compilation process and then work on developing our own part of the compiler.
Starting off, each team member will research the C compilation process. This will involve both researching the different components of C compilation and compiling simple C programs to understand how C syntax translates into Machine Code.
Next, each team member will choose a part of the process that is particularly interesting to them and go further in depth into that. This will allow the team to have a general understanding as well each having an further understanding of one component that is particularly interesting to them. At this point, the team will have a mid-point check-in, as described below.
Based on what the team is most interested in after our exploration, we will spend the second week of this project designing our own piece of a compiler.
The learning goal of this C-compiler project is to better understand the relationship between programming languages and machine instructions, and therefore have a deeper understanding of software-hardware interface. Beyond that, we hope to learn about compiler optimization if we finish our MVP before the due date.
##Work Plan
- Nov. 30 discuss work plan with instructor
- Dec. 1 - Dec 6 Researching on compiler
- Dec 1-2 team members familiarizing themselves with compiler.
- Dec 2 team meeting and decide which part of compiler to work on.
- Dec 3-4 further research in compiler based on the discussion result.
- Dec 5-6 documentation and preparing for mid-point presentation
- Dec 7 Midpoint Check In
- Dec 8 - Dec 14 implementing part of compiler (topic TBD)
- Dec 8-10 Writing the code for compiler
- Dec 11-12 debugging and writing test benches
- Dec 13 documentation and updating presentation
##Deliverable
-
Midpoint Check-in deliverable: By our midpoint check-in, we will have a general understanding of the whole compiling process while each delving into some specific knowledge that interests us most. Also, we will come up with an clear idea of what we will be actually building a part of compiler for the second half of our project. As for the deliverable, we will present our research result to teaching team.
-
Final deliverable: By the end, we will present our compiler research to demonstrate our learning as well as demoing what we have built for part of the compiler. Final Project Report