Skip to content

Compiler components

Luc Yriarte edited this page Apr 6, 2014 · 1 revision

One pass compiler

+------------------+          +------------------+
|                  | -------> |                  |
|   Source code  __/          | Lexical Analyzer |
|             __/             |                  |
\____________/                +------------------+
                                     |
                                     v
+------------------+          +------------------+
|    Syntactic     |          |                  |
| analyser / Code  | <------- |    Tokens      __/
|    generator     |          |             __/
+------------------+          \____________/
       |
       v
+------------------+
|                  |
| Assembly code  __/
|             __/
\____________/

Multi pass compiler

+------------------+          +------------------+
|                  | -------> |                  |
|   Source code  __/          | Lexical Analyzer |
|             __/             |                  |
\____________/                +------------------+
                                     |
                                     v
+------------------+          +------------------+
|    Syntactic     |          |                  |
|    analyser      | <------- |    Tokens      __/
|                  |          |             __/
+------------------+          \____________/
       |
       v
+------------------+          +------------------+
|                  | -------> |                  |
|   Parse tree   __/ <------- |  Code generator  |
|             __/             |                  |
\____________/                +------------------+
                                     |
                                     v
                              +------------------+
                              |                  |
                              | Assembly code  __/
                              |             __/
                              \____________/
Clone this wiki locally