c01 - C S 4 2 1 C O M P I L E R S A N D I N T E R P R E T E...

Info iconThis preview shows pages 1–3. Sign up to view the full content.

View Full Document Right Arrow Icon

Info iconThis preview has intentionally blurred sections. Sign up to view the full version.

View Full DocumentRight Arrow Icon
This is the end of the preview. Sign up to access the rest of the document.

Unformatted text preview: C S 4 2 1 C O M P I L E R S A N D I N T E R P R E T E R S Copyright 1994 - 2010 Zhong Shao, Yale University Introduction : Page 1 of 24 CS421 Compilers and Interpreters Zhong Shao Dept. of Computer Science Yale University Fall 2010 C S 4 2 1 C O M P I L E R S A N D I N T E R P R E T E R S Copyright 1994 - 2010 Zhong Shao, Yale University Introduction : Page 2 of 24 Course Structure Course home page: http://flint.cs.yale.edu/cs421 all lecture notes and other course-related information are available on this class home page. 13-week lectures (based on Appel book + Ullman book + other) compiler basics, internals, algorithms, and advanced topics, etc. 7 programming assignments build a compiler compiling Tiger progs into the X86 assembly code. Occasional problem sets plus a final exam Use the SML/NJ environment on the Zoo Linux PCs C S 4 2 1 C O M P I L E R S A N D I N T E R P R E T E R S Copyright 1994 - 2010 Zhong Shao, Yale University Introduction : Page 3 of 24 Why Study Compilers? or why take CS421 ? To enhance understanding of programming languages To have an in-depths knowledge of low-level machine executables To write compilers and interpreters for various programming languages and domain-specific languages Examples: Java, JavaScript, C, C++, C#, Modula-3, Scheme, ML, Tcl/Tk, Database Query Lang., Mathematica, Matlab, Shell-Command-Languages, Awk, Perl, your .mailrc file, HTML, TeX, PostScript, Kermit scripts, ..... To learn various system-building tools : Lex, Yacc, ... To learn interesting compiler theory and algorithms. To learn the beauty of programming in modern programming lang. C S 4 2 1 C O M P I L E R S A N D I N T E R P R E T E R S Copyright 1994 - 2010 Zhong Shao, Yale University Introduction : Page 4 of 24 Systems Environments To become a real computer professional, you must not only know how to write good programs, but also know how programs are compiled and executed on different machines. Core Systems Environments include: programming languages , compilers , computer architectures , and operating systems 1. a language for you to express what to do 2. a translator that translates what you say to what machine knows 3. an execution engine to execute the actions 4. a friendly operating environment that connects all the devices Application Systems Environments include: distributed systems, computer networks, parallel computations, database systems, computer graphics, multimedia systems. C S 4 2 1 C O M P I L E R S A N D I N T E R P R E T E R S Copyright 1994 - 2010 Zhong Shao, Yale University Introduction : Page 5 of 24 Compilers are Translators Table 1: various forms of translators L L t r a n s l a t o r C++, ML, Java assembly/machine code compiler assembly lang. machine code assembler object code (*.o file) executable code (a.out) linker/loader macros/text text macro processor (cpp) troff/Tex/HTML PostScript document formatter any file (e.g., foo) compressed file (foo.Z)compressed file (foo....
View Full Document

Page1 / 6

c01 - C S 4 2 1 C O M P I L E R S A N D I N T E R P R E T E...

This preview shows document pages 1 - 3. Sign up to view the full document.

View Full Document Right Arrow Icon
Ask a homework question - tutors are online