Explaining the difference of compiler & interpreter by using T-diagrams, Definition of virtual machine for compiler : triples, quadruples, byte-codes. Basic parts of a compiler : preprocessor, scanner, syntax analyser, semantic analysis, code generation or code interpretation.. Example of simple one-pass compiler..definitions of student projects, techniques and some details of lexical analysis & syntax analysis..syntax directed compiling (ie semantic routine coupling, type checking, semantic analysis) & programmed type conversions, operator overloading), run time environments for separetly compiled modules, code generation as triples or quadruples Course will be supported with bi-weekly labs & project
Prerequisite(s)
CSE0504
Corequisite(s)
N/A
Special Requisite(s)
The minimum qualifications that are expected from the students who want to attend the course.(Examples: Foreign language level, attendance, known theoretical pre-qualifications, etc.)
1- Alfred Aho, Ravi Sethi & Jeffrey D. Ullman ; Compilers : Principles, Techniques & Tools ; 1986 Bell Labs or Addison wesley march 1988 corrected edition, ISBN 0-201-10088-6 (main text )
2- Dr. Rafa E. Al-Qutaish; Compiler Construction: With Software Measurement Capability ; Publisher: LAP LAMBERT Academic Publishing (February 4, 2011); Paperback: 156 pages; ISBN-10: 3844306382; ISBN-13: 978-3844306385
3- F.L.Bauer, J.Eickel (editors) ; Compiler Construction : An advanced Course ; Spinger verlag 1976, ISNB 0-540-08046-5 OR 0-387-08046-0 (for T-diagrams, also you may find them in various web cites)
4- Peter H. Salus (series editor) ; handbook of programming languages, vol III : Little Languages & Tools; MacMillan Technical Publishing 1998; ISBN 1-57870-010-8 (for defining course projects )
5- D. Grune, H. Bal, C. Jacobs, K. Langendoen ; Modern Compiler Design ; John Wiley & Sons; 2000; ISBN: 0471976970 ; Paperback: 754 pages Amazon Sales Rank : #67,370
6- Y.N.Srikant, Priti Shankar; The Compiler Design Handbook: Optimizations & Machine Code Generation ; CRC Press; 2002, ISBN: 084931240X, 928 pages , Amazon Sales Rank : #171,350
7- Steven S. Muchnick ; Advanced Compiler Design and Implementation ; Morgan Kaufmann; 1997) ; ISBN: 1558603204, Hardcover: 856 pages Amazon Sales Rank : #73,574
8- Kenneth C. Louden ; Compiler Construction: Principles and Practice; Publ.: Course Technology; 1997 ; ISBN: 0534939724, Hardcover: 592 pages Amazon Sales Rank : #107,877
9- William M. Waite, Lief H. Carter, Lynn R. Carter ; Compiler Construction: Principles and Practice ; Addison-Wesley 1997 , ISBN:0673398226 ? ISBN:0534939724
10- Randy Allen, Ken Kennedy ; Optimizing Compilers for Modern Architectures: A Dependence-based Approach; Morgan Kaufmann; 2001 , ISBN: 1558602860, Amazon Sales Rank : #141,027
11- Randy M. Kaplan ; Constructing Language Processors for Little Languages ; Wiley; 1 edition (August 9, 1994) , ISBN: 0471597538, paperback: 464 pages , Amazon Sales Rank : #359,401
12- Evelyn Duesterwald (Editor), Compiler Construction ; Springer Verlag 2004, ISBN: 3540212973, Paperback: 313 pages , $68.00
13- Gorel Hedin (editor), Compiler Construction: 12th International Conference, 2003 Held As Part of the Joint European Conferences on Theory and Practice of Software, Lecture Notes in Computer Science, 2622, Springer-Verlag 2003, ISBN: 3540009043, $56.00 Paperback: 334 pages
14- R. Nigel Horspool (editor) ; Compiler Construction: 11th International Conference, 2002 Held As Part of the Joint European Conferences on Theory and Practice of Software, Springer-Verlag 2002, ISBN: 3540433694 (Lecture Notes in Computer Science, 2304), $69.95, Paperback: 341 pages, Amazon Sales Rank : #2,207,810
15- R. Wilhelm (editor), Compiler Construction: 10th International Conference, Held As Part of the Joint European Conferences on Theory and Practiceof Software, Springer-Verlag 2001, ISBN: 354041861X (Lecture Notes in Computer Science, 2027 Amazon Sales Rank : #1,726,483
16- William M. Waite, Lynn R. Carter ; An Introduction to Compiler Construction; Publ. Harpercollins College Div 1993 , ISBN: 0673398226, Paperback: 438 pages , Amazon Sales Rank : #1,473,648
17- Thomas W Parsons ; Introduction to Compiler Construction ; Publ. W. H. Freeman, 1992, ISBN: 0716782618, Hardcover: 359 pages , Amazon Sales Rank : #51,114
18 -Robert Morgan; Building an Optimizing Compiler; Digital Press, 1998); ISBN: 155558179X paperback: 450 pages, Amazon Sales Rank : #746,423
Other Sources
-
Course Schedules
Week
Contents
Learning Methods
1. Week
Explaining the difference of compiler & interpreter by using T-diagrams,
2. Week
Definition of virtual machine for compiler ( triples, quadruples, byte-codes).
3. Week
Basic parts of a compiler : preprocessor, scanner, syntax analyser, - top down syntax analysis and bottom up syntax analysis definitions
4. Week
semantic analysis, code generation or code interpretation..
5. Week
Example of simple one-pass compiler..definitions of student projects,
6. Week
techniques and some details of lexical analysis & syntax analysis..
7. Week
syntax directed compiling (ie semantic routine coupling, type checking, semantic analysis) & programmed type conversions, operator overloading),
8. Week
9. Week
run time environments for separately compiled modules,
10. Week
code generation as triples or quadruples
11. Week
Data flow analsis and Code optimization
12. Week
Code generation – relocatable code
13. Week
Code generation – relocatable code
14. Week
Course will be supported with bi-weekly labs & project, this week is reserved for presentations and evaluation
15. Week
16. Week
17. Week
Assessments
Evaluation tools
Quantity
Weight(%)
Midterm(s)
1
27
Attendance
1
6
Laboratory
1
27
Final Exam
1
40
Program Outcomes
PO-1
an ability to apply knowledge from undergraduate and graduate engineering and other disciplines to identify, formulate, and solve novel and complex electrical/computer engineering problems that require advanced knowledge within the field
PO-2
knowledge of advanced topics within at least two subdisciplines of computer engineering
PO-3
the ability to understand and integrate new knowledge within the field;
PO-4
the ability to apply advanced technical knowledge in multiple contexts
PO-5
a recognition of the need for, and an ability to engage in, life-long learning
PO-6
the ability to plan and conduct an organized and systematic study on a significant topic within the field
PO-7
an ability to convey technical material through formal written reports which satisfy accepted standards for writing style
PO-8
the ability to analyze and use existing literature
PO-9
the ability to demonstrate effective oral communication skills
PO-10
the ability to stay abreast of advancements in the area of computer engineering
Learning Outcomes
LO-1
Will understand Semantic Definitions under various combinations of operands that an operator has applied on,
LO-2
Will able to write semantic analysis routines
LO-3
Will be able to combine syntax analysis module and semantic analysis modules,
LO-4
Will be able to design internal code ( pseudo codes: triples, quadruples, or simple internal language),
LO-5
Will be able to understand virtual machine that various programming languages depend on,
LO-6
Will be able to develop a specific relocatable machine code from pseudo code,
LO-7
Will be able to understand various parts of the compiler including variable and constant table, internal data structures including vectors, multi dimensional vectors, records, activation record, etc