IIT CS 440 - CS440 -Programming Languages and Translators

Unformatted text preview:

CS440 -Programming Languages and Translators (3 credit hours) Last Updated - 03/11/02Course Manager – Dr. Xiang-Yang Li, Assistant Professor3 credit hours; required for CS, elective for CPE; 150 min. lecture each weekCurrent Catalog Description - Study of commonly used computer programming languages with an emphasison precision of definition and facility in use. Scanning, parsing, and introduction to compiler design. Use ofcompiler generating tools. Prerequisite: CS 330, CS 351. (3-0-3)Textbook• Michael L. Scott, Morgan Kauffmann, Programming Languages Pragmatics, San Francisco,CA, 2000References - other textbooks or materials• Alfred V. Aho, Ravi Sethi, Jeffrey D Ullman, Compilers: Principles, Techniques and Tools, 1985Addison-Wesley Pub Co.• Ravi Sethi, Programming Languages, 2nd edition, Addison-WesleyCourse Goals - Students should be able to:• Summarize the evolutionary history of programming languages and illustrate how this history has led tothe paradigms available today. Students are exposure to various programming languages.• Evaluate the tradeoffs between the different paradigms, considering such issues as space efficiency,time efficiency (of both the computer and the programmer), safety, and power of expression.• Describe the differences between compiled and interpreted execution models, outlining the relativemerits of each.• Outline the phases involved in language translation.• Explain how abstraction mechanisms support expressiveness of programming languages.• Describe the difference between call-by-value and call-by-reference parameter passing.• Demonstrate different forms of binding, visibility, scoping, and lifetime management.• Defend the importance of types and type checking in providing abstraction and safety.• Defend the importance of abstractions, especially with respect to programming-in-the-large• Describe the steps and algorithms used by language translators.• Recognize the underlying formal models such as finite state automata, pushdown automata and theirconnection to language definition through regular expressions and grammars.• Discuss the effectiveness of optimization.• Explain the impact of a separate compilation facility and the existence of program libraries on thecompilation process• In addition, as elective, the students may also need to knowo Outline the strengths and weaknesses of the functional programming paradigm.o Design, code, test, and debug programs using the functional paradigm.o Explain the use of functions as data, including the concept of closures.o Outline the philosophy of object-oriented design and the concepts of encapsulation, subclassing,inheritance, and polymorphism.o Design, code, test, and debug simple programs in an object-oriented programming language.o Describe runtime implementation techniques for objects and classes.Prerequisites by Topic• Experience writing basic programs in any computer language or a strong mathematics background.Major Topics Covered in Course1. Language Design. 32. Compilation and Interpretation. 33. Programming Language Syntax and Prolog 34. Prolog and Automata Theory 25. Push-Down Automata 36. Names, Scopes and Bindings 37. Semantic Analysis 38. Control Flow 29. Sequencing, Selection, Iteration and Recursion 310. Data Types 311. Subroutines 312. Exception handling and coroutines 213. Data Abstraction 314. Concurrency 6Course Admin, Quiz #1, #2, Midterm Exam #1 3 hoursFinal Exam -45 hoursLaboratory projects (specify number of weeks on each)• The course had 4 programming assignments. (2 weeks for each programming assignment)o The first two assignments include writing simple programs in Icon programming language inorder to make them have a sense of the programming language.o The third assignment involves using a TCLL1 parser, which is written in Icon. Given a badlyconstructed grammar, they have to apply some rules to make the grammar a good one and passthem through the TCLL1 parser to test the results.o The fourth assignment is that they have to modify the Euler Compiler, written in Euler language,to establish some required goals.o These assignments give them good insights and basic foundations for constructing grammarsfrom the scratch. The students learn practical usage of these in addition to the theoretical study oftopics about grammar rules and state machines in the classroom.Estimate CSAB Category Content in Credit Hours CORE ADVANCED CORE ADVANCEDData Structures 0 0 Computer Organization and Architecture 0 0Algorithms 0 0 Concepts of Programming Languages 0 3Software Design 0 0 Oral and Written Communications - Every student is required to submit at least __0___ written reports (notincluding exams, tests, quizzes, or commented programs) of typically __0___ pages and to make __0___ oralpresentations of typically __0___ minutes duration. Include only material that is graded for grammar, spelling,style, and so forth, as well as for technical content, completeness, and accuracy.• noneSocial and Ethical Issues - Please list the topics that address the social and ethical implications of computingcovered in all course sections. Estimate the class time spent on each topic. In what ways are the students in thiscourse graded on their understanding of these topics (e.g., test questions, essays, oral presentations, and soforth)?• noneTheoretical Foundations - Please list the types of theoretical material covered, and estimate the time devotedto such coverage in contact (lecture and lab) hours.• Grammar construction (LL1), 3 hours• Cleaning up bad grammars, 2 hours• Automata theory, 6 hours• Recursion, 3 hours• Backtracking, 3 hoursProblem Analysis - Please describe the problem analysis experiences common to all course sections.• Most programming assignments include solving problem starting with grammar construction, usage ofparsing tools, and modification of compiler code to determine the program output.• Cleaning up some bad grammars and parsing them are two of the main emphasis.Solution Design - Please describe the design experiences common to all course sections.• There are 2 large-scale assignments (2 weeks each). Major object is to integrate various concepts learnedin the class. The objective of the first project is to write a prolog program for taking derivatives. Thestudents have to write some differentiation rules in such a way that the program can deal with,


View Full Document

IIT CS 440 - CS440 -Programming Languages and Translators

Download CS440 -Programming Languages and Translators
Our administrator received your request to download this document. We will send you the file to your email shortly.
Loading Unlocking...
Login

Join to view CS440 -Programming Languages and Translators and access 3M+ class-specific study document.

or
We will never post anything without your permission.
Don't have an account?
Sign Up

Join to view CS440 -Programming Languages and Translators 2 2 and access 3M+ class-specific study document.

or

By creating an account you agree to our Privacy Policy and Terms Of Use

Already a member?