aboutsummaryrefslogtreecommitdiffstats
path: root/3-compiler.md
diff options
context:
space:
mode:
authorDavid Thomas <m8pple@github.com>2017-01-23 10:56:54 +0000
committerDavid Thomas <m8pple@github.com>2017-01-26 10:57:25 +0000
commitb850a6b64115940a0e3df50b2aa923dd3e99b13e (patch)
tree2b394c18824ed89cc305d719d2c771f155615ba8 /3-compiler.md
downloadCompiler-b850a6b64115940a0e3df50b2aa923dd3e99b13e.tar.gz
Compiler-b850a6b64115940a0e3df50b2aa923dd3e99b13e.zip
Initial transfer
Diffstat (limited to '3-compiler.md')
-rw-r--r--3-compiler.md45
1 files changed, 45 insertions, 0 deletions
diff --git a/3-compiler.md b/3-compiler.md
new file mode 100644
index 0000000..7ac2fe7
--- /dev/null
+++ b/3-compiler.md
@@ -0,0 +1,45 @@
+Create a compiler for the C language
+====================================
+
+Your program should accept C source code on
+`stdin` and write a heirarchical representation on `stdout`.
+
+Input Format
+------------
+
+The input format is C90.
+
+Output Format
+-------------
+
+The output format should be MIPS1 assembly code.
+
+It should be possible to assemble and link this code
+against a C run-time, and have it execute correctly
+on a MIPS processor.
+
+Compilation
+-----------
+
+Your compiler should be built using:
+````
+make bin/c_compiler
+````
+and the resulting program should be called `bin/c_compiler`.
+
+The target environment remains Ubuntu 16.04.
+
+Deliverables
+------------
+
+There are actually three deliverables here:
+
+1 - The compiler itself
+
+2 - A test framework
+
+3 - Documentation
+
+There are certain requirements on test and a format for the
+documentation, but we'll elaborate on those when they are
+encountered in the course.