The goal of this thesis was to develop a C programming language to assembly language compiler for the hypothetical SIC/XE computer. The compiler also contains an assembler that uses the generated assembly code to create executable object files.
This thesis is separated into two parts. The theoretical part consists of a general overview of compilers and the C programming language, and a detailed description of the SIC and SIC/XE computer architectures. The practical part details the structure of the implemented compiler and assembler, and the function of individual phases. We used lexical and syntactic rules of the C programming language to analyze the source code of the input program, and the specification of the SIC/XE computer and its object files to generate the assembly code.
In the final part of the thesis, we presented the difficulties we encountered, and possible improvements to the compiler.
|