Home Page for CIS 461/561 (Introduction to Compilers)
Few of you will write full scale compilers for general purpose
programming languages. Most of you, however, will write programs that
process "little languages." For example, you may be writing scripts
that read an input from an HTML form, parse it, check it for
consistency, and generate HTML code as output.
In addition to learning general principles, algorithms, and techniques
that are helpful for (big and small) compilers, the course should
provide you with:
a concrete understanding of programming language concepts that
complements the more mathematical understanding you get from a course
in semantics; this should ultimately make you a better programmer,
understanding the cost of programming language constructs;
understanding what can be implemented reasonably and what can be
expected to be optimized by a typical compiler, etc,
writing a large program using an advanced programming language;
managing the complexity of having multiple programmers; use modules
effectively,
a great case study for applying the software engineering concepts
you were introduced to in other classes. This may be as close as you
will get to "real" programming.