NEW COURSE PROPOSAL

advertisement
NEW COURSE PROPOSAL
GRADUATE Level I
Level II
UNDERGRADUATE
SCHOOL, DEPARTMENT, COLLEGE: College of Computing
1.
Proposed Course Number: CS 3130
2. Hours: LECTURE
X
DATE: 2/3/2003
3
LAB/RECITATION
3
SEMESTER CREDIT 4
(Verify with Registrar's Office)
3.
Descriptive Title: Foundations of Translation
4.
Recommended Abbreviation for Transcript – (24 characters including spaces):
5. Catalog Description – (25 words or less)
An introduction to concepts and foundational principles behind machine translation. Emphasis on concepts from regular
expressions (specification) to abstract models of computation to practical mechanisms of translation.
6. Basis: L/G X
P/F X
Audit
7. Prerequisites: CS2200, CS2340, CS3500?
Prerequisites with concurrency:
Corequisites:
8.
Has the course been taught as a special topic?
No
If YES,
When
Is this course equivalent to another course (graduate or
undergraduate) taught at Ga. Tech? If yes, list course number(s): No
10. Are you requesting that this course satisfy: Humanities
No
Enrollment
9.
11. Expected Mode of Presentation:
Social Science No
MODE
Lecture
% of COURSE
50%
Laboratory Supervised
Unsupervised
Discussion
35%_____________________________
15%
Seminar
Independent Study
Library Work
Demonstration
Other (Specify)
12. Planned Frequency of Offering:
TERM TO BE OFFERED
Fall
X
EXPECTED ENROLLMENT
200
Spring
X
200
Summer
X
100
1.
Probable Instructor(s) – Please mark with an asterisk any non-tenure track individuals.
Santosh Pande, Olin Shivers, Rich LeBlanc, Bill Leahy*
2.
Purpose of Course: Relation to other courses, programs and curricula:
15. Required
Yes
16. Please attach a topical outline of the course
Elective
Registrar 10/00c:\document\NEW COURSE.doc
Learning Objectives
1.
An understanding of specification of languages: Regular expressions, context free grammars, etc.
2.
An understanding of abstract models of computation: finite state automata, pushdown automata, etc.
3.
An understanding of practical scanning and parsing techniques
4.
An understanding of how compilers manage block-structured programming languages, including scope, basic analysis
involved to enforce language semantics.
5.
Understand the runtime representation and manipulation of values and hardware/software mechanisms involved.
6.
Understand relationship between code generation techniques and how they impact an application programmer.
Course Outline and Syllabus
1.
Regular expressions, NFA/DFA, state optimizations, equivalence classes, introduction to pumping lemma
2.
Context free grammars, Chomsky Normal Form, Chomsky Hierarchy, pushdown autoomata (differences between
deterministic and non-deterministic in terms of class of languages recognizeed)
3.
General algorithms for parsing (CYK) and complexity of parsing for diffferent classes of context free grammars
4.
Overview of compilation process: Scanning, parsing, semantic analysis, optimization, code generation
5.
Longest match scanning algorithm and handwritten scanners
6.
Using a more complex table-driven scanner - concepts of automating scanner generation -- finite state machines and their
implementation.
7.
Introduction to practical parsing: Expansion vs. reduction in parsing
8.
Top down parsing -- recursive descent and LL(1) concepts. Concept of predicting parsing rules to be used and table driven
parsing.
9.
Bottom up parsing: LR(0) parsing
10. Semantic analysis, implementation of scopes and binding, type compatibility, overloading of functions, parametric
polymorphism
11. Code generation, register variables, choice of addressing modes, implementation of if..then..else, case statements, mapping
of language constructs and sources of inefficiencies
Textbooks
1.
Compiler Construction: Principles and Practice by Kenneth C Loudon [ISBN 0-534-93972-4]
Download