click below
click below
Normal Size Small Size show me how
Introduction C1
Kenneth Louden Compiler Construction Principles and Practice
| Question | Answer |
|---|---|
| What are compilers | computer programs that translate one language to another |
| what does a compiler take as input | a program written in its source language |
| source language | compiler input |
| what does a compiler produce | an equivalent program of the input, written in its target language |
| target language | compiler output |
| what is usually the source languages | high level language |
| high level language examples | C, CPP |
| what is usually the target language | object code / machine code for the target machine |
| another name for object code | machine code |
| another name for machine code | object code |
| key terms | source language, target language, high level language, object code, machine code |
| explain what object code for the target machine is | code written in the machine instructions of the computer on which it is to be executed |
| Draw the process schematically of compilation | source program -> compiler -> target program |
| how complex is a compiler | fairly complex program (10,000 - 1,000,000 lines of code) |
| describe the difficulty of writing or understanding such a program | writing such a program or even understanding it is not a simple task (most cs and professionals never will write a complete compiler) |
| why are compilers significant | compilers are used in almost all forms of computing |
| what should anyone professionally involved with computers know about | the basic organization and operation of a compiler and knowledge of its techniques |
| what is a frequent task in computer applications are | the development of command interpreters and interface programs (smaller than compilers but which use the same techniques) |
| what is necessary to design and program a compiler | necessary tools and practical experience, knowledge of theoretical techniques |
| what is the theoretical techniques used to make compiler construction a manageable task | from automata theory |
| discrete mathmatics | prereq |
| machine architecture | prereq |
| assembly language | prereq |
| what is essential for code generation | knowledge of machine architecture and assembly language |
| programming language constructs examples used to demonstrate practical coding techniques | language Tiny, subset of C (C minus) , pen and paper exercises, extensions of code in text, more involved coding exercises |
| describe the type of relationship between compiler structure and programming language design | there is a significant interaction between the structure of a compiler and the design of the programming language being compiled |
| language design issues | topic |
| programming languages concepts and design issues | topic |
| history and purpose of compilers | topic |
| structure of compiler and the various translation processes and associated data structures | topic |
| other issues of compiler structure: bootstrapping and porting | topic |