---
# System prepended metadata

title: NTU Compiler Technology Project 1
tags: [NTU_CT, NTU]

---

# NTU Compiler Technology Project 1
###### tags: `NTU_CT` `NTU` `Compiler Techonology of Programming Language`

## AcDc Compiler
## Description
* This is a project from NTU (National Taiwan University) course, Compiler Technology of Programming Language.
* First project is aim to 
	* add multiplier and division operation in this compiler
	* let compiler can recognize multi character identifier(variable) name by alphabet string
	* use constant folding to optimize the statement
## How to use?
* You can browse Assignment1.pdf. You must run in Linux OS environment(more conveniently). When you finish the coding, use `$ make` command directly.
* `$ ./AcDc <input sample address> <output file address>`
	* For instance: `$ ./AcDc ../test/sample1.ac ./output`
## Something need to know first
* It can not recognize the bottom line as identifier name.
* It can not print negative value like $1-2=-1$ expression. Actually speaking, it can calculate correctly but it can not print it out.(I'll check it out later.)
	* You can check [constfold testbench](/test/constfold.ac)
	* Solution and Why: In Dc Language, the bottom line represent negative symbol. You can not just use minus as negative symbol, replace it by bottom line instead.
* It can not recognize identifier name with numbers. You can check [longname.ac](/test/longname.ac)
* The other testbenchs can compile from Ac language to Dc language correctly.

## Reference
* [AcDc](https://github.com/jaidTw/AcDc)
* [AcDcCompiler](https://github.com/ZephyrZhuQi/AcDcCompiler)