Philadelphia University Faculty of Information Technology Department of Computer Science --- Semester, 2007/2008. Course Syllabus

Similar documents
Philadelphia University Faculty of Information Technology Department of Computer Science --- Semester, 2007/2008. Course Syllabus

Philadelphia University Faculty of Information Technology Department of Computer Science second semester, 2012/2013.

Philadelphia University FACULTY OF ADMINISTRATIVE & FINANCIAL SCIENCES Department of Accounting 0000 Semester

الجهة المدققة: عمادة التطوير والجودة عدد صفحات النموذج: Course Syllabus. Credit hours: 3. Academic Staff Specifics Office Number and Location IT 313

CS Compiler Construction West Virginia fall semester 2014 August 18, 2014 syllabus 1.0

CMPE 152 Compiler Design

CMPE 152 Compiler Design

CS/SE 153 Concepts of Compiler Design

CMPE 152 Compiler Design

CS/SE 153 Concepts of Compiler Design

ECE573 Introduction to Compilers & Translators

Evaluation Scheme L T P Total Credit Theory Mid Sem Exam

BIRLA INSTITUTE OF TECHNOLOGY AND SCIENCE, Pilani Pilani Campus Instruction Division

Module Syllabus. PHILADELPHIA UNIVERSITY Faculty: Information Technology Department: Applied Computer Science

CSE4305: Compilers for Algorithmic Languages CSE5317: Design and Construction of Compilers

San José State University Computer Science Department CS49J, Section 3, Programming in Java, Fall 2015

Formal Languages and Compilers Lecture I: Introduction to Compilers

CSE 504: Compiler Design

B. Subject-specific skills B1. Problem solving skills: Supply the student with the ability to solve different problems related to the topics

Compilers. Computer Science 431

Compilers for Modern Architectures Course Syllabus, Spring 2015

General Course Information. Catalogue Description. Objectives

PC Applications IT102 estart Fall 2014

G.PULLAIH COLLEGE OF ENGINEERING & TECHNOLOGY

HOLY ANGEL UNIVERSITY COLLEGE OF INFORMATION AND COMMUNICATIONS TECHNOLOGY COMPILER THEORY COURSE SYLLABUS

PELLISSIPPI STATE COMMUNITY COLLEGE MASTER SYLLABUS ADVANCED DATABASE MANAGEMENT SYSTEMS CSIT 2550

CSE4305: Compilers for Algorithmic Languages CSE5317: Design and Construction of Compilers

CA Compiler Construction

KALASALINGAM UNIVERSITY ANAND NAGAR, KRISHNAN KOIL DEPARTMENT OF COMPUTER SCIENCE AND ENGINEERING ODD SEMESTER COURSE PLAN

IT-2670: C/C++ PROGRAMMING LANGUAGE

CSE4305: Compilers for Algorithmic Languages CSE5317: Design and Construction of Compilers

EE3315 Internet Technology EE3315 Internet Technology Overview Slide 1

Information and Communication Technology BCcampus Online Collaborative Program

Cleveland State University

KOMAR UNIVERSITY OF SCIENCE AND TECHNOLOGY (KUST)

Rochester Institute of Technology Golisano College of Computing and Information Sciences Department of Information Sciences and Technologies

Object-Oriented Programming for Managers

Translator Design CRN Course Administration CMSC 4173 Spring 2018

Module Documentation

CMSC 132: Object-Oriented Programming II. Administrivia

TEACHING & ASSESSMENT (T & A) PLAN

TEACHING & ASSESSMENT (T & A) PLAN College of Economics Management and Information Systems Department of Information Systems

Translator Design CRN Course Administration CMSC 4173 Spring 2017

PELLISSIPPI STATE COMMUNITY COLLEGE MASTER SYLLABUS 3D MODELING & ANIMATION CGT 2160

Updated: 2/14/2017 Page 1 of 6

Syllabus for CSC 455 Database Systems 3 Credit Hours Spring 2012

COURSE NUMBER: ISS 214 COURSE NAME: Connecting Networks - Cisco 4 SEMESTER CREDIT HOURS: 4.

The University of Jordan. Accreditation & Quality Assurance Center. COURSE Syllabus

Programming 2. Outline (112) Lecture 0. Important Information. Lecture Protocol. Subject Overview. General Overview.

SRM UNIVERSITY FACULTY OF ENGINEERING AND TECHNOLOGY SCHOOL OF COMPUTING DEPARTMENT OF CSE COURSE PLAN

Principles of Compiler Construction ( )

Programming 1. Outline (111) Lecture 0. Important Information. Lecture Protocol. Subject Overview. General Overview.

Name of chapter & details

The course makes up the third semester of the BSc programme in Design of Information Systems or can be taken as a freestanding course.

FIT3056 Secure and trusted software systems. Unit Guide. Semester 2, 2010

ECE Introduction to Compilers and Translation Engineering

COURSE OUTLINE. Course lecturer(s) Name Office Tel (07-55) Dr Norsham Idris N /

Module Documentation

Introduction To Data Processing COMP 153 Business Administration Program/Administrative Studies. Course Outline

PELLISSIPPI STATE TECHNICAL COMMUNITY COLLEGE MASTER SYLLABUS HPC INTERNETWORKING & GRID TECHNOLOGY HPC 1020

The course makes up the first semester of the BSc programme in Design of Information Systems or can be taken as a freestanding course.

ESSEX COUNTY COLLEGE Business Division CIS 152 Internet Concepts Course Outline

HARFORD COMMUNITY COLLEGE 401 Thomas Run Road Bel Air, MD Course Outline Routing and Switching Essentials [CISCO 2] ISS 112

ITT Technical Institute. ET2560T Introduction to C Programming Onsite and Online Course SYLLABUS

BOSTON UNIVERSITY Metropolitan College MET CS342 Data Structures with Java Dr. V.Shtern (Fall 2011) Course Syllabus

INSTITUTE OF AERONAUTICAL ENGINEERING (Autonomous) Dundigal, Hyderabad

G COURSE PLAN ASSISTANT PROFESSOR Regulation: R13 FACULTY DETAILS: Department::

The course makes up the fourth semester of the BSc programme in Design of

understanding recursive data types, recursive functions to compute over them, and structural induction to prove things about them

Finding People and Information (1) G53CMP: Lecture 1. Aims and Motivation (1) Finding People and Information (2)

MWF 9:00-9:50AM & 12:00-12:50PM (ET)

CIS* Programming

New Undergraduate Course Proposal Form

WAYLAND BAPTIST UNIVERSITY VIRTUAL CAMPUS SCHOOL OF BUSINESS SYLLABUS

Syllabus for HPE 451 Directed Study 1-3 Credit Hours Spring 2014

SYLLABUS. CODE: NETW 243 TITLE: Computer Repair & Maintenance. DIVISION: Business and Technology DEPARTMENT: Engineering & Technology

NEW YORK CITY COLLEGE OF TECHNOLOGY COMPUTER SYSTEMS TECHNOLOGY DEPARTMENT CST4714 DATABASE ADMINISTRATION (2 class hours, 2 lab hours, 3 credits)

The syllabus was approved by The Board of the Department of Informatics on to be valid from , autumn semester 2018.

PELLISSIPPI STATE COMMUNITY COLLEGE MASTER SYLLABUS ROUTING/SWITCH CONFIGURATION CSIT 2750

ITT Technical Institute. SD1420 Introduction to Java Programming Onsite and Online Course SYLLABUS

Fundamentals of Database Systems

MIS 5201 IT Audit Process Syllabus. Spring :30 pm 8:30 pm, Every Monday starting 1/22/2017 (Ref. to Schedule Section below for details)

INFC20, Informatics: Advanced Database Systems, 7.5 credits Informatik: Avancerade databassystem, 7,5 högskolepoäng First Cycle / Grundnivå

M. Tech. (Power Electronics and Power System) (Semester I) Course Plan for Each Week (Hrs)

MIS5205 IT Service Delivery and Support Fall 2016

INFS 2150 (Section A) Fall 2018

Syllabus for HPE 120 Dance Aerobic Proficiency 0.0 Credit Hour Spring 2012

Information and Communication Technology BCcampus Online Collaborative Program

CALEDONIAN COLLEGE OF ENGINEERING, MODULE HANDBOOK. Department of Electrical & Computer Engineering SULTANATE OF OMAN. Module Code

San José State University College of Science/Department of Computer Science CS 152, Programming Language Paradigms, Section 03/04, Fall, 2018

Del Mar College Master Course Syllabus. UNIX System Administration Course Number: ITSC1358

Computer Networks IT321

Faculty of Sciences and Information Technology

Red Hat Certified Engineer (RH300) 50 Cragwood Rd, Suite 350 South Plainfield, NJ 07080

COURSE SYLLABUS ****************************************************************************** YEAR COURSE OFFERED: 2015

ITT Technical Institute. SD2720 Advanced Software Development Using Java Onsite and Online Course SYLLABUS

CS415 Compilers Overview of the Course. These slides are based on slides copyrighted by Keith Cooper, Ken Kennedy & Linda Torczon at Rice University

Survey of Programming Languages Dr. R. M. Siegfried 407 Science (516) (not for homework submission)

SRM UNIVERSITY FACULTY OF ENGINEERING AND TECHNOLOGY

INFN45, Informatics: Business Intelligence, 7.5 credits Informatik: Business Intelligence, 7,5 högskolepoäng Second Cycle / Avancerad nivå

Transcription:

Philadelphia University Faculty of Information Technology Department of Computer Science --- Semester, 2007/2008 Course Syllabus Course Title: Compiler Construction Course Level: 4 Lecture Time: Course code: 750421 Course prerequisite(s) and/or corequisite(s): 751323 + 750321 Credit hours: 3 Academic Staff Specifics Name Rank Office Number and Location Office Hours E-mail Address Course Description: This module introduces topics include compiler design, lexical analysis, parsing, symbol tables, declaration and storage management, code generation, and optimization techniques. Course Objectives: The aim of this module is to show how to apply the theory of language translation introduced in the prerequisite courses to build compilers and interpreters. It covers the building of translators both from scratch and using compiler generators. In the process, the module also identifies and explores the main issues of the design of translators. The construction of a compiler/interpreter for a small language is a necessary component of this module, so students can obtain the necessary skills. Course Components: Introduction to Compilers Lexical Analysis Syntax Analysis Parsers Implementation Semantic Analysis Intermediate Representation, code generation Code generation and Code optimization Error Detection and Recovery Error Repair, Compiler Implementation Page 1 of 5

Compiler design options and examples: C Compilers C++, Java, and YACC Compilers Text book: Title: Compilers Principles, Techniques and Tools Author(s)/Editor(s): Alfred V. Aho, Ravi Sethi and Jeffry D. Ulman Publisher: Addison Wesley Longman, 1986 ISBN: 0-201- 10088-6 In addition to the above, the students will be provided with handouts by the lecturer. Teaching Methods: Duration: 16 weeks, 48 hours in total Lectures: 32 hours (2 per week) Tutorials: 14 hours, 1 per week (except the last two weeks) Seminars: 2 hours, (1 per week for the last two weeks) Laboratory projects 1. Implementation of a logarithmic search and insertion symbol table (2 weeks) 2. Implementation of a lexical analyzer (2 weeks) 3. Implementation of a basic parser (2 weeks) 4. Implementation of a type checking system (2 weeks) 5. Implementation of an intermediate code generator (2 weeks) Learning Outcomes: Knowledge and understanding - Understand the structure of compilers - Understand the basic techniques used in compiler construction such as lexical analysis, top-down, bottom-up parsing, context-sensitive analysis, and intermediate code generation - Understand the basic data structures used in compiler construction such as abstract syntax trees, symbol tables, three-address code, and stack machines Cognitive skills (thinking and analysis). - Design and implement a compiler using a software engineering approach Communication skills (personal and academic). Practical and subject specific skills (Transferable Skills). - Use generators (e.g. Lex and Yacc) Assessment Instruments Allocation of Marks Assessment Instruments First examination Second examination Final Exam (written unseen exam) Final project presentation Reports, research projects, Quizzes, Home works, Projects Total Mark 15% 15% 40% 10% 20% 100% Page 2 of 5

* Make-up exams will be offered for valid reasons only with consent of the Dean. Make-up exams may be different from regular exams in content and format. Practical Submissions The assignments that have work to be assessed will be given to the students in separate documents including the due date and appropriate reading material. Documentation and academic honesty Submit your home work covered with a sheet containing your name, number, course title and number, and type and number of the home work (e.g. tutorial, assignment, and project). Any completed homework must be handed in to my office (room ---) by 15:00 on the due date. After the deadline zero will be awarded. You must keep a duplicate copy of your work because it may be needed while the original is being marked. You should hand in with your assignments: 1- A printed listing of your test programs. 2- A brief report to explain your findings. 3- Your solution of questions. Presentation On date due of your project, you will give a presentation of 15 minutes to the entire class describing your project and the progress you have made. You must practice in advance and make sure you take this amount of time (no more or no less). There will be an additional 5 minutes for questions by the class afterwards. Your presentation should include the following information (about 1-2 slides each): Overview of project idea (motivation for it & overview of solution) Tasks (example tasks that the system supports) Demonstration (spend about 7-9 of your 15 minutes on this) Protection by Copyright 1. Coursework, laboratory exercises, reports, and essays submitted for assessment must be your own work, unless in the case of group projects a joint effort is expected and is indicated as such. 2. Use of quotations or data from the work of others is entirely acceptable, and is often very valuable provided that the source of the quotation or data is given. Failure to provide a source or put quotation marks around material that is taken from elsewhere gives the appearance that the comments are ostensibly your own. When quoting word-for-word from the work of another person quotation marks or indenting (setting the quotation in from the margin) must be used and the source of the quoted material must be acknowledged. 3. Sources of quotations used should be listed in full in a bibliography at the end of your piece of work. Avoiding plagiarism. 1. Unacknowledged direct copying from the work of another person, or the close paraphrasing of somebody else's work, is called plagiarism and is a serious offence, equated with cheating in examinations. This applies to copying both from other students' work and from published sources such as books, reports or journal articles. 2. Paraphrasing, when the original statement is still identifiable and has no acknowledgement, is plagiarism. A close paraphrase of another person's work must have an acknowledgement to the source. It is not acceptable for you to put together unacknowledged passages from the same or from different sources linking these together with a few words or sentences of your own and Page 3 of 5

changing a few words from the original text: this is regarded as over-dependence on other sources, which is a form of plagiarism. 3. Direct quotations from an earlier piece of your own work, if not attributed, suggest that your work is original, when in fact it is not. The direct copying of one's own writings qualifies as plagiarism if the fact that the work has been or is to be presented elsewhere is not acknowledged. 4. Plagiarism is a serious offence and will always result in imposition of a penalty. In deciding upon the penalty the Department will take into account factors such as the year of study, the extent and proportion of the work that has been plagiarized, and the apparent intent of the student. The penalties that can be imposed range from a minimum of a zero mark for the work (without allowing resubmission) through caution to disciplinary measures (such as suspension or expulsion). Course/Module Academic Calendar Page 4 of 5 Basic and support material to be covered Week (1) Introduction to Compilers: The role of language translation in the programming process; Comparison of interpreters and compilers, language translation phases, machine-dependent and machine-independent aspects of translation, language translation as a software engineering activity (2) Lexical Analysis: Application of regular expressions in lexical scanners, Homework/reports and their due dates Tutorial 1 Tutorial 2 (3) Lexical Analysis: hand coded scanner vs. Tutorial 3, Lab project 1 automatically generated scanners (4) Lexical Analysis: formal definition of Tutorial 4 tokens, implementation of finite state automata. (5) Syntax Analysis: Revision of formal Tutorial 5, Lab project 2 definition of grammars, BNF and EBNF; bottom-up vs. top-down parsing, (6) Syntax Analysis: tabular vs. recursive-descent parsers, error handling, Tutorial 6 (7) Parsers Implementation: automatic Tutorial 7, Lab project 3 generation of tabular parsers, symbol table management, the use of tools in support of the translation process (8) Semantic Analysis: Data type as set of Tutorial 8, Lab project 4 values with set of operations, data types, type- checking models, semantic models of user-defined types, parametric polymorphism, subtype polymorphism, type-checking algorithms. (9) Intermediate Representation, code Tutorial 9 generation: Intermediate and object code, intermediate representations, implementation of code generators (10) Code generation: code generation by tree Tutorial 10, Lab project 5

walking; context sensitive translation, register use. (11) Code optimization: Machine-independent Tutorial 11 optimization; data-flow analysis; loop optimizations; machine-dependent optimization (12) Error Detection and Recovery Tutorial 12 (13) Error Repair, Compiler Implementation Tutorial 13 (14) Compiler design options and examples: C Tutorial 14 (15) Specimen examination (Optional) (16) Final Examination Compilers C++, Java, and YACC Compilers Project presentation Project presentation Expected workload: On average students need to spend 2 hours of study and preparation for each 50-minute lecture/tutorial. Attendance policy: Absence from lectures and/or tutorials shall not exceed 15%. Students who exceed the 15% limit without a medical or emergency excuse acceptable to and approved by the Dean of the relevant college/faculty shall not be allowed to take the final examination and shall receive a mark of zero for the course. If the excuse is approved by the Dean, the student shall be considered to have withdrawn from the course. Module References Students will be expected to give the same attention to these references as given to the Module 1- W. Appel, Modern Compiler Implementation in Java, Prentice Hall, 2002 2- D. Watt, Brown, Programming Language Processors in Java: Compilers and Interpreters, Prentice hall, 2000 Page 5 of 5