IIT CS 440 - CS440 -Programming Languages and Translators (3 pages)

Previewing page 1 of 3 page document View the full content.
View Full Document

CS440 -Programming Languages and Translators



Previewing page 1 of actual document.

View the full content.
View Full Document
View Full Document

CS440 -Programming Languages and Translators

27 views


Pages:
3
School:
Illinois Institute of Technology
Course:
Cs 440 - Programming Languages and Translators
Unformatted text preview:

CS440 Programming Languages and Translators 3 credit hours Course Manager Dr Xiang Yang Li Assistant Professor 3 credit hours required for CS elective for CPE 150 min lecture each week Last Updated 03 11 02 Current Catalog Description Study of commonly used computer programming languages with an emphasis on precision of definition and facility in use Scanning parsing and introduction to compiler design Use of compiler generating tools Prerequisite CS 330 CS 351 3 0 3 Textbook Michael L Scott Morgan Kauffmann Programming Languages Pragmatics San Francisco CA 2000 References other textbooks or materials Alfred V Aho Ravi Sethi Jeffrey D Ullman Compilers Principles Techniques and Tools 1985 Addison Wesley Pub Co Ravi Sethi Programming Languages 2nd edition Addison Wesley Course Goals Students should be able to Summarize the evolutionary history of programming languages and illustrate how this history has led to the 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 relative merits 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 their connection 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 the compilation process In addition as elective the students may also need to know o 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 Course 1 Language Design 2 Compilation and Interpretation 3 Programming Language Syntax and Prolog 3 3 3 4 Prolog and Automata Theory 5 Push Down Automata 6 Names Scopes and Bindings 7 Semantic Analysis 8 Control Flow 9 Sequencing Selection Iteration and Recursion 10 Data Types 11 Subroutines 12 Exception handling and coroutines 13 Data Abstraction 14 Concurrency Course Admin Quiz 1 2 Midterm Exam 1 Final Exam 2 3 3 3 2 3 3 3 2 3 6 3 hours 45 hours Laboratory 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 in order 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 badly constructed grammar they have to apply some rules to make the grammar a good one and pass them 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 grammars from the scratch The students learn practical usage of these in addition to the theoretical study of topics about grammar rules and state machines in the classroom Estimate CSAB Category Content in Credit Hours CORE Data Structures Algorithms Software Design 0 0 0 ADVANCED 0 0 0 CORE Computer Organization and Architecture 0 Concepts of Programming Languages 0 ADVANCED 0 3 Oral and Written Communications Every student is required to submit at least 0 written reports not including exams tests quizzes or commented programs of typically 0 pages and to make 0 oral presentations 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 none Social and Ethical Issues Please list the topics that address the social and ethical implications of computing covered in all course sections Estimate the class time spent on each topic In what ways are the students in this course graded on their understanding of these topics e g test questions essays oral presentations and so forth none Theoretical Foundations Please list the types of theoretical material covered and estimate the time devoted to 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 hours Problem Analysis Please describe the problem analysis experiences common to all course sections Most programming assignments include solving problem starting with grammar construction usage of parsing 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 learned in the class The objective of the first project is to write a prolog program for taking derivatives The students have to write some differentiation rules in such a way that the program can deal with sine function cosine function logarithm function ln x the inverse under composition of the previous functions polynomials and the operations sum subtraction division multiplication and exponentiation among them Other Course Information Additional Suggested Course Assignments o 2 quiz exams 100 minutes around


View Full Document

Access the best Study Guides, Lecture Notes and Practice Exams

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 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?