1.0 Introduction

1.1 History

1.2 Characteristics

1.3 Scanner Generators

1.4 Parser Generators

1.5 Semantic Analyzer Generators

1.6 Optimization

1.7 Code Generation

1.8 Summary

Web References

Exercises

1.01 Execution Times

There are three sets of times involved when we speak of generators:

  1. generation-time
  2. compile-time
  3. execution-time.

Generation-time is when the generator is executed: a metalanguage is input and a piece of a compiler (scanner, parser, semantic analyzer) is output.

Compile-time is when the output created at generation-time is executed: a source is input and this source is translated to another form.

Execution-time is when the code generated by the entire compiler is executed by the operating system of the machine. We won't be concerned very much with this execution-time in this course. Operating systems courses discuss this.

Some confusion arises with use of the word "execute". The generator is executed at generation-time, the compiler is executed at compile-time and the translated program is executed at execution-time.