Compulsory course in Computer Science

Similar documents
Development of an IT Curriculum. Dr. Jochen Koubek Humboldt-Universität zu Berlin Technische Universität Berlin 2008

PH.D. IN COMPUTER SCIENCE PROGRAM (POST M.S.)

Data Structures and Algorithms

Control Tutorials for MATLAB and Simulink

FINN FINANCIAL MANAGEMENT Spring 2014

CS 1103 Computer Science I Honors. Fall Instructor Muller. Syllabus

GACE Computer Science Assessment Test at a Glance

A R "! I,,, !~ii ii! A ow ' r.-ii ' i ' JA' V5, 9. MiN, ;

City University of Hong Kong Course Syllabus. offered by Department of Architecture and Civil Engineering with effect from Semester A 2017/18

Parsing of part-of-speech tagged Assamese Texts

Course Content Concepts

BA 130 Introduction to International Business

CS 101 Computer Science I Fall Instructor Muller. Syllabus

Firms and Markets Saturdays Summer I 2014

COMPUTATIONAL COMPLEXITY OF LEFT-ASSOCIATIVE GRAMMAR

Department of Computer Science. Program Review Self-Study

MASTER OF SCIENCE (M.S.) MAJOR IN COMPUTER SCIENCE

Accounting 312: Fundamentals of Managerial Accounting Syllabus Spring Brown

THE UNIVERSITY OF SYDNEY Semester 2, Information Sheet for MATH2068/2988 Number Theory and Cryptography

M55205-Mastering Microsoft Project 2016

Department of Anthropology ANTH 1027A/001: Introduction to Linguistics Dr. Olga Kharytonava Course Outline Fall 2017

Class Meeting Time and Place: Section 3: MTWF10:00-10:50 TILT 221

Spring 2016 Stony Brook University Instructor: Dr. Paul Fodor

Intensive English Program Southwest College

Software Maintenance

An Interactive Intelligent Language Tutor Over The Internet

Business Analytics and Information Tech COURSE NUMBER: 33:136:494 COURSE TITLE: Data Mining and Business Intelligence

Guidelines for Project I Delivery and Assessment Department of Industrial and Mechanical Engineering Lebanese American University

CS 100: Principles of Computing

Math 181, Calculus I

Note: Principal version Modification Amendment Modification Amendment Modification Complete version from 1 October 2014

We are strong in research and particularly noted in software engineering, information security and privacy, and humane gaming.

AQUA: An Ontology-Driven Question Answering System

Page 1 of 8 REQUIRED MATERIALS:

Specification and Evaluation of Machine Translation Toy Systems - Criteria for laboratory assignments

Physics 270: Experimental Physics

WSU Five-Year Program Review Self-Study Cover Page

Computer Organization I (Tietokoneen toiminta)

Specification of the Verity Learning Companion and Self-Assessment Tool

Process to Identify Minimum Passing Criteria and Objective Evidence in Support of ABET EC2000 Criteria Fulfillment

EECS 571 PRINCIPLES OF REAL-TIME COMPUTING Fall 10. Instructor: Kang G. Shin, 4605 CSE, ;

Instructor: Matthew Wickes Kilgore Office: ES 310

A GENERIC SPLIT PROCESS MODEL FOR ASSET MANAGEMENT DECISION-MAKING

EECS 700: Computer Modeling, Simulation, and Visualization Fall 2014

MATH 1A: Calculus I Sec 01 Winter 2017 Room E31 MTWThF 8:30-9:20AM

Timeline. Recommendations

The College Board Redesigned SAT Grade 12

Spring 2015 IET4451 Systems Simulation Course Syllabus for Traditional, Hybrid, and Online Classes

Math 098 Intermediate Algebra Spring 2018

PESIT SOUTH CAMPUS 10CS71-OBJECT-ORIENTED MODELING AND DESIGN. Faculty: Mrs.Sumana Sinha No. Of Hours: 52. Outcomes

Some Principles of Automated Natural Language Information Extraction

The Strong Minimalist Thesis and Bounded Optimality

EQuIP Review Feedback

content First Introductory book to cover CAPM First to differentiate expected and required returns First to discuss the intrinsic value of stocks

Module 12. Machine Learning. Version 2 CSE IIT, Kharagpur

ENEE 302h: Digital Electronics, Fall 2005 Prof. Bruce Jacob

Level 6. Higher Education Funding Council for England (HEFCE) Fee for 2017/18 is 9,250*

Math 96: Intermediate Algebra in Context

Guide to Teaching Computer Science

Course Syllabus for Math

CIS 121 INTRODUCTION TO COMPUTER INFORMATION SYSTEMS - SYLLABUS

SYLLABUS- ACCOUNTING 5250: Advanced Auditing (SPRING 2017)

ITSC 2321 Integrated Software Applications II COURSE SYLLABUS

Computer Architecture CSC

Self Study Report Computer Science

Strategy and Design of ICT Services

TEACHING AND EXAMINATION REGULATIONS PART B: programme-specific section MASTER S PROGRAMME IN LOGIC

Language properties and Grammar of Parallel and Series Parallel Languages

BUS Computer Concepts and Applications for Business Fall 2012

GERM 3040 GERMAN GRAMMAR AND COMPOSITION SPRING 2017

Syntax Parsing 1. Grammars and parsing 2. Top-down and bottom-up parsing 3. Chart parsers 4. Bottom-up chart parsing 5. The Earley Algorithm

TUCSON CAMPUS SCHOOL OF BUSINESS SYLLABUS

STANDARDS AND RUBRICS FOR SCHOOL IMPROVEMENT 2005 REVISED EDITION

San José State University Department of Psychology PSYC , Human Learning, Spring 2017

Software Development: Programming Paradigms (SCQF level 8)

School: Business Course Number: ACCT603 General Accounting and Business Concepts Credit Hours: 3 hours Length of Course: 8 weeks Prerequisite: None

On Human Computer Interaction, HCI. Dr. Saif al Zahir Electrical and Computer Engineering Department UBC

ACADEMIC AFFAIRS GUIDELINES

International Business BADM 455, Section 2 Spring 2008

AGN 331 Soil Science Lecture & Laboratory Face to Face Version, Spring, 2012 Syllabus

FINANCE 3320 Financial Management Syllabus May-Term 2016 *

S T A T 251 C o u r s e S y l l a b u s I n t r o d u c t i o n t o p r o b a b i l i t y

21st Century Community Learning Center

Texas A&M University - Central Texas PSYK EDUCATIONAL PSYCHOLOGY INSTRUCTOR AND CONTACT INFORMATION

Business Administration

LIN 6520 Syntax 2 T 5-6, Th 6 CBD 234

Introduction to Information System

ASSESSMENT OF STUDENT LEARNING OUTCOMES WITHIN ACADEMIC PROGRAMS AT WEST CHESTER UNIVERSITY

Instructor. Darlene Diaz. Office SCC-SC-124. Phone (714) Course Information

GENERAL CHEMISTRY I, CHEM 1100 SPRING 2014

ANGLAIS LANGUE SECONDE

This Performance Standards include four major components. They are

CS 3516: Computer Networks

Seminar - Organic Computing

Software Security: Integrating Secure Software Engineering in Graduate Computer Science Curriculum

Developing a TT-MCTAG for German with an RCG-based Parser

Writing Research Articles

Evidence for Reliability, Validity and Learning Effectiveness

Implementing a tool to Support KAOS-Beta Process Model Using EPF

Developing an Assessment Plan to Learn About Student Learning

Transcription:

Compulsory course in Computer Science University of Macau Faculty of Science and Technology Department of Computer and Information Science SFTW341 Compiler Construction Syllabus 1 st Semester 2012/2013 Part A Course Outline Course description: (4-1) 4.5 credits. Modern compiler design, use of automatic tools, compilation techniques and program intermediate representations; scanner, recursive descent parser, bottom-up parser, code generation and optimization; semantic analysis and attribute grammars, transformational attribute grammars. Course type: Theoretical with substantial laboratory/practice content Prerequisites: SFTW223 Textbook(s) and other required material: David A Watt and Deryck F Brown. (2000) Programming Language Processors in JAVA Compilers and Interpreters. Prentice Hall, US. References: Reis, A. J. D. (2011). Compiler Construction Using Java, JavaCC, and Yacc. Wiley-IEEE Computer Society Pr. Alfred V Aho, Monica S. Lam, Ravi Sethi, and Jeffrey D Ullman. (2007). Compiler: Principles, Techniques and Tools. 2nd ed., Prentice Hall. Charles N. Fischer, Ron K. Cytron, and Richard J. LeBlanc. (2010). Crafting A Compiler. Pearson Higher Education. Major prerequisites by topic: Programming languages and algorithms Formal languages and finite state automata Regular expressions and grammars Logical operations Course objectives: Learn the detailed operation of the major phases of a compiler [a, c] Introduce the theory behind the various phases, including regular expressions, context free grammars, and finite state automata [a, e] Apply the theoretical foundations that form the basis of compilation [a, e] Design and implement parts of a compiler for a small imperative-style programming language [a, c, e, k] Practice software engineering design principles on a medium size project [a, c, e, k, l] Topics covered: Basic Concepts (7 hours): Review the concepts of high-level programming languages, and their syntax, contextual constrains and semantics, with examples from well-known programming systems. Introduce basic terminology of language processors: translators, compilers, interpreters, source and target languages, and real and abstract machines. Study the way of using language processors with Tombstone diagram. Theoretical Foundations (6 hours): Review the fundamentals of formal language concepts, including finite-state automata, regular expressions, construction of equivalent deterministic finite-state automata from regular expressions, context-free grammars, grammar notation, derivations, and parse trees. 1

Syntactic Analysis (8 hours): Study the details of syntactic analysis, including scanning, parsing, and abstract syntax tree construction. Introduce recursive-descent parsing techniques, and show how a parser and scanner can be systematically constructed from source language's syntactic specification. Contextual Analysis (8 hours): Study the details of contextual analysis module, in case of that the source language exhibits static bindings and is statically typed. Introduce the techniques to validate identifier which is related to language's scope rules, and type checking which is related to language's type rules. Run-Time Organization (8 hours): Discuss the relationship between the source language and the target machine. Show how target machine instructions and storage must be marshaled to support the higher-level concepts of source language. The topics include data representation, expression evaluation, storage allocation, routines and their arguments, garbage collection, and run-time organization of simple object-oriented languages. Code Generation (12 hours): Study the details of code generation. Show how to organize the translation from source language to object code. It relates the selection of object code to the semantics of source language in a stack-based machine. Basic techniques of code optimization are introduced at different phases: profiler optimization, intermediate code optimization and target code optimization. Interpreters & Compiler Tools (6 hours): Look inside interpreters. It gives examples of interpreters for both low-level and high-level languages, as well as introduces the compiler construction tools: Lex & Yacc. Class/laboratory schedule: Timetabled work in hours per week Lecture Tutorial Practice No of teaching weeks Total hours Total credits No/Duratio n of exam papers 4 1 Nil 14 70 4.5 1 / 3 hours Student study effort required: Class contact: Lecture Tutorial Other study effort Self-study Homework assignment Project / Case study Total student study effort 56 hours 14 hours 42 hours 9 hours 15 hours 136 hours Student assessment: Final assessment will be determined on the basis of: Homework 10% Project 20% Mid-term 30% Final exam 40% Course assessment: The assessment of course objectives will be determined on the basis of: Homework, project and exams Course evaluation Course outline: Weeks Topic Course work 1-2 3 4-5 Introduction Specification of programming language, language processors, Tombstone diagrams, bootstrapping, architecture of compiler, different analytical phases Theoretical Foundations Finite-state automata, regular expression, context-free grammar Syntactic Analysis Grammar transformation, parsing strategy, development of recursive-descent parser, intermediate representation (abstract syntax trees), scanner and error handling Course Project Assignment#1 2

Weeks Topic Course work Contextual Analysis 6-7 Organization of identification, type & scope checking, analysis algorithm Run-Time Organization 8-9 Data representation, expression evaluation, storage allocation, routines and heap storage allocation Code Generation 10-11 Code function, code template, generation algorithm, manipulation of constants & variables, procedures & functions Code Optimization 12 Basic block, flow graph, local optimization, global optimization, peephole optimization, and loop optimizations Interpretation Interactive interpretation, recursive interpretation 13 Compiler Construction Tools Lex & Yacc 14 Project Demonstration Assignment#2 Midterm exam Assignment#3 Contribution of course to meet the professional component: This course prepares students with fundamental knowledge and experiences to constructing a language processor. Relationship to CS program objectives and outcomes: This course primarily contributes to the Computer Science program outcomes that develop student abilities to: (a) an ability to apply knowledge of mathematics, science, and engineering. (c) an ability to design a system, component, or process to meet desired needs within realistic constraints such as economic, environmental, social, political, ethical, health and safety, manufacturability, and sustainability. (e) an ability to identify, formulate, and solve engineering problems. (k) an ability to use the techniques, skills, and modern engineering tools necessary for engineering practice. The course secondarily contributes to the Computer Science program outcomes that develop student abilities to: (l) an ability to use the computer/it tools relevant to the discipline along with an understanding of their processes and limitations. Relationship to CS program criteria: Criterion DS PF AL AR OS NC PL HC GV IS IM SP SE CN Scale: 1 (highest) to 4 (lowest) 4 2 1 2 Discrete Structures (DS), Programming Fundamentals (PF), Algorithms and Complexity (AL), Architecture and Organization (AR), Operating Systems (OS), Net-Centric Computing (NC), Programming Languages (PL), Human-Computer Interaction (HC), Graphics and Visual Computing (GV), Intelligent Systems (IS), Information Management (IM), Social and Professional Issues (SP), Software Engineering (SE), Computational Science (CN). Course content distribution: Percentage content for Mathematics Science and engineering subjects Complementary electives Total Coordinator: Prof. Xiao Shan Li 0% 100% 0% 100% Persons who prepared this description: Dr. Fai Wong 3

Part B General Course Information and Policies 1st Semester 2012/2013 Instructor: Dr. Fai Wong Office: R108 Office hour: Mon ~ Fri 11:00 am 13:00 pm, or by appointment Phone: 8397 8051 Email: derekfw@umac.mo Time/Venue: Mon 8:30 10:30, L108 (lecture) Thu 8:30 10:30, L108 (lecture) Sat 13:30 15:30, J418 (tutorial) Grading distribution: Percentage Grade Final Grade Percentage Grade Final Grade 100-93 A 92-88 A 87-83 B+ 82-78 B 77-73 B 72-68 C+ 67-63 C 62-58 C 57-53 D+ 52-50 D below 50 F Comment: The objectives of the lectures are to explain and to supplement the text material. Students are responsible for the assigned material whether or not it is covered in the lecture. Students who wish to succeed in this course should read the textbook prior to the lecture and should work all homework and project assignments. You are encouraged to look at other sources (other texts, etc.) to complement the lectures and text. Homework policy: The completion and correction of homework is a powerful learning experience; therefore: There will be approximately 3 homework assignments. Homework is due one week after assignment unless otherwise noted, no late homework is accepted. Homework must be neatly typed and printed on a word-processor. The course grade will be based on the average of the homework grades. Course project: The project is probably the most exciting part of this course and provides students with meaningful experience to extend and enhance an existing compiler and interpreter: You will work with group of two students for the course project. The requirements will be announced and discussed in class. The project will be presented at the end of semester. Exams: One 2-hour mid-term exam will be held during the semester. Both the mid-term and final exams are closed book examinations. There will be occasional in-class assignment. Note: Check UMMoodle (https://ummoodle.umac.mo/) for announcement, homework and lectures. Report any mistake on your grades within one week after posting. No make-up exam is given except for CLEAR medical proof. Cheating is absolutely prohibited by the university. 4

Appendix: Rubric for Program Outcomes Rubric for (a) 5 (Excellent) 3 (Average) 1 (Poor) Students have some Understand the confusion on some Students do not understand theoretic background and theoretic background or do not the background or do not the limitations of the background understand theoretic study at all. respective applications. background completely. Rubric for (c) 5 (Excellent) 3 (Average) 1 (Poor) Student understands very clearly what needs to be Student understands what designed and the realistic Design needs to be designed and Student does not design constraints such as capability and the design constraints, but understand what needs to economic, environmental, design may not fully understand be designed and the design social, political, ethical, constraints the limitations of the design constraints. health and safety, constraints. manufacturability, and sustainability. Rubric for (e) 5 (Excellent) 3 (Average) 1 (Poor) Identify Students cannot identify applications in problem but cannot apply problem and can identify correct terms for engineering formulation, or cannot fundamental formulation. engineering applications. systems understand problem. Rubric for (k) 5 (Excellent) 3 (Average) 1 (Poor) Student applies the Use modern Student does not apply principles, skills and tools Student applies the principles, principles and tools to correctly model and principles, skills and tools skills, and tools correctly and/or does not analyze engineering to analyze and implement in engineering correctly interpret the problems, and understands engineering problems. practice results. the limitations. Rubric for (l) 5 (Excellent) 3 (Average) 1 (Poor) Use modern computer/it tools relevant to the discipline Student uses computer/it tools relevant to the engineering discipline, and understands their limitations. Student uses computer /IT tools relevant to the engineering discipline. Student does not use computer/it tools relevantly, and does not understand their limitations. 5