Stanford University Compilers
Описание файла
Документ из архива "Stanford University Compilers", который расположен в категории "". Всё это находится в предмете "конструирование компиляторов" из 7 семестр, которые можно найти в файловом архиве МГУ им. Ломоносова. Не смотря на прямую связь этого архива с МГУ им. Ломоносова, его также можно найти и в других разделах. .
Онлайн просмотр документа "Stanford University Compilers"
Текст из документа "Stanford University Compilers"
Stanford University
CS 143: Compilers
CS143 is a first course in compilers, designed to introduce the student to the principles and practices of programming language implementation. We cover lexical analysis, parsing theory (LL, LR, and LALR parsing), semantic analysis, runtime environments, code generation, and optimization. The coursework will consist of regular programming projects, a few pencil-and-paper problem sets, a midterm and a final exam. The four programming projects comprise a series of milestones that will ultimately lead to an operational compiler for a miniature object oriented programming language.
Having traced through and implemented the various phases of compilation, you will gain a clear understanding of how a compiler works. You will grow to appreciate the difficulties and trade-offs involved in implementing a compiler or an interpreter for any programming language. You will gain experience with commonly used tools in compiler development and learn standard techniques that can be applied to a variety of parsing problems. Exposure to programming language implementation will strengthen your development and debugging skills and generally aid your understanding of language and programming issues. CS143 is one-third theory, two-thirds implementation, and the algorithms we discuss in lecture map almost exactly to the way actual tools work.
Instructor: Alfred V. Aho
CS 243: Advanced Compiling
While CS143 focuses on the overall compilation process, CS243 focuses on how to produce good code for the programs being compiled ("optimizations"). The course is divided into three (unevenly sized) segments. The first part will cover fundamental analyses and representations that are needed by the optimizations. The second part will cover a number of optimizations found in most modern compilers, such as register allocation and instruction scheduling. The third part covers promising new optimizations, in particular, those for object-oriented languages. These optimizations are not yet in commercial compilers.
Instructor: Monica Lam