COMPILERS

Gennaro COSTAGLIOLA COMPILERS

0522500134
COMPUTER SCIENCE
EQF7
COMPUTER SCIENCE
2023/2024



YEAR OF COURSE 1
YEAR OF DIDACTIC SYSTEM 2016
AUTUMN SEMESTER
CFUHOURSACTIVITY
648LESSONS
324LAB
Objectives
KNOWLEDGE AND UNDERSTANDING
• THE MAIN CONCEPTS OF THE PROGRAMMING LANGUAGES
• THE MAIN TECHNIQUES TO DEVELOP A COMPILER
• THE PHASES OF A COMPILER
• THE NEEDED FORMALISMS FOR FORMALLY SPECIFYING A PROGRAMMING LANGUAGE
• THE MAIN ALGORITHMS FOR THE AUTOMATIC GENERATION OF TRANSLATORS AND COMPILERS

APPLYING KNOWLEDGE AND UNDERSTANDING
• THE USE OF TOOLS, AS FLEX AND JAVACUP/BISON, FOR THE IMPLEMENTATION OF A PROGRAMMING LANGUAGE
• THE DEVELOPMENT OF A COMPILER
Prerequisites
THE COURSE REQUIRES THE BASIC KNOWLEDGE OF DATA STRUCTURES AND ALGORITHMS, ARCHITECTURE, HIGH-LEVEL LANGUAGE PROGRAMMING.
Contents
• HISTORY, PARADIGMS AND CHARACTERISTICS OF THE PROGRAMMING LANGUAGES (2 HOURS)
• LEXICAL ANALYSIS (10 HOURS)
• LEXICAL SPECIFICATION OF THE PROGRAMMING LANGUAGES WITH FLEX (4 HOURS)
• BASIC CONCEPTS ON GRAMMARS (2 HOURS)
• PARSING TOP-DOWN AND BOTTOM-UP (14 HOURS)
• SYNTACTIC SPECIFICATION OF THE PROGRAMMING LANGUAGES WITH JAVACUP/BISON ( 4 HOURS)
• SYNTAX-DRIVEN TRANSLATIONS (8 HOURS)
• INTERMEDIATE REPRESENTATIONS (8 HOURS)
• SEMANTIC ANALYSIS AND TYPE CHECKING (8 HOURS)
• INTRODUCTION TO THE RUNTIME MANAGEMENT (2 HOURS)
• CODE GENERATION (4 HOURS)
Teaching Methods
ABOUT TWO THIRDS OF THE LECTURES INCLUDE TOPICS PRESENTATION AND THE REMAINING LECTURES ARE DEDICATED TO EXERCISES IN CLASS. THE INDIVIDUAL STUDY WILL ALSO INCLUDE PROJECT DEVELOPMENT.
SELF-ASSESSMENT TESTS WILL BE PROPOSED AND PUBLISHED ON THE COURSE WEBSITE.

DISCUSSIONS WITH OTHER STUDENTS AND THE TEACHER WILL BE STIMULATED BOTH IN CLASS AND USING THE FORUM SUPPORTED BY THE COURSE WEBSITE.

GIVEN THE CHARACTERISTICS OF THE DISCIPLINE, THE ATTENDANCE IS STRONGLY RECOMMENDED, ALTHOUGH NOT MANDATORY
Verification of learning
THE EVALUATION IS BASED ON A WRITTEN AND AN ORAL EXAM. THE WRITTEN PART OF THE EXAM WILL INCLUDE OPEN QUESTIONS AND EXERCISES TO EVALUATE THE FULFILLMENT OF THE OBJECTIVES OF THE COURSE. IN THE ORAL PART THE STUDENTS WILL DISCUSS ABOUT THEIR MANDATORY DEVELOPMENT OF A COMPILER. IN PARTICULAR, THE DISCUSSION WILL INCLUDE THE CODE MODIFICATION OF THE PRESENTED PROJECT, DIRECTLY ON A PC. THE FINAL GRADE IS GIVEN BY THE SUM OF THE PARTIAL GRADES OBTAINED. BOTH THE WRITTEN PART AND THE CODE MODIFICATION WITH THE PROJECT DESCRIPTION ARE WORTH, EACH, 16 POINTS.
PASSING THE WRITTEN EXAM IN THE JANUARY-FEBRUARY APPOINTMENTS WILL BE VALID UNTIL THE BEGINNING OF THE SECOND SEMESTER, THE MARCH APPOINTMENT UNTIL THE ND OF THE SAME MONTH, THE JUNE-JULY APPOINTMENT UNTIL THE JULY APPOINTMENT, THE SEPTEMBER APPOINTMENT UNTIL THE BEGINNING OF THE FIRST SEMESTER COURSES, THE NOVEMBER APPOINTMENT UNTIL THE SAME MONTH.
Texts
V. AHO, R. SETHI, AND J. D. ULLMAN, COMPILERS: PRINCIPLES, TECHNIQUES, AND TOOLS, ADDISON-WESLEY, SECOND EDITION 2007

TEACHER'S NOTES AND OTHER ELECTRONIC MATERIAL: COURSE WEBSITE.

TO BE CONSULTED:
PRATT, T. W. AND M. V. ZELKOWITZ, PROGRAMMING LANGUAGES: DESIGN AND IMPLEMENTATION, 4RD ED., PRENTICE-HALL, 2000
More Information

THE COURSE BULLETIN BOARD FOR NEWS AND OTHER INFORMATION AND THE ACTIVITY DIARY ARE PUBLISHED ON THE COURSE WEBSITE.

THE STUDENTS ARE EXPECTED TO PASS AT LEAST TWO HOURS OF INDIVIDUAL STUDY FOR EACH HOUR IN CLASS.
  BETA VERSION Data source ESSE3 [Ultima Sincronizzazione: 2024-11-05]