|
|
|
|
|
|
Programming
Languages
Overview History (Lectures available from Segue) |
Become
familiar
with declarative
and imperative paradigms, and be able to classify most
popular
languages
according to the applicable paradigm. Cite reasons for studying
comparative
programming languages.
Trace the ancestry of currently used languages. Recognize the features contributed to current languages by older languages and become familiar with the developers of significant languages and paradigms. |
| Reading | Sebesta Ch. 1 , Ch. 2 ; Guzdial's blog Aug 14, 2009 | |
| Assignment | Prepare
for
discussion Review Questions (RQ)Ch1 : 3, 4, 5, 7, 8, 19, 21, 26 , 29
(for Wednesday Aug 25 as quiz on Moodle) Prepare to present the language you are assigned (and show your examples |
|
| Aug 30, Sept. 1 | Syntax
and Semantics Attribute Grammars, Operational Semantics, Denotational Semantics |
Produce
BNF grammars for
expressions
showing associativity and precedence, drawing of parse trees given
grammars. Be able to apply this technique to a variety of
language constructs Define tools for describing semantics: operational, axiomatic and denotational. |
| Reading | Sebesta Ch. 3 | |
| Assignment | Due
Sept. 8 Expressions example Due Sept. 10 Chapter 3 Problem set: 7a, 8, 9, 13, 14, |
|
| Sept. 6 | Labor Day no class | |
| Sept. 8,13 | Assertions, Pre- and Post-conditions, Program Proof | Be
able to find
the weakest precondition for assignment statements,
logical pretest loops through use of loop invariant.. Due Sept. 13 Chapter 3 Problem set: 7a, 8, 9, 13, 14 |
| Assignment | Due Sept. 15 Chapter 3 Problem set:21ae, 23ab, 24 | |
| Sept.15 | Lexical and Syntax Analysis | Describe
role of syntax
analyzers.
Distinguish
recursive descent parsers (LL) from shift reduce parsers(LR). Due Sept. 15 Chapter 3 Problem set:21ae, 23ab, 24 |
| Reading | Chapter 4 | |
|
|
Assignment | Chapter 4 homework |
| Sept. 20 | Exam 1 | Chapter 1-3 |
| Sept. 22 | Lexical and Syntax Analysis(cont) | |
| Sept. 27,29 | LISP Intro
Functional Languages Scheme code |
(Chapter 4 cont.) Be able to apply simple list operations and trace recursive algorithms in both Scheme and LISP. Contrast these languages to other functional languages such as Haskell or ML. Brief into to LISP (download for Windows) Functional language paradigm Due Problems Ch. 4 Due 9/23 |
| Reading | Sebesta Ch. 15 | |
| Assignment | Lisp
problems
Scheme LISP
intro |
|
| Sept. 29, Oct 4 | LISP |
Due Chapter 4 homework Lisp problems and Scheme intro |
|
|
Names, Bindings, Type
Checking, Scope Abstract Data Types |
Discuss
fundamental semantic issues
of
variables, and
binding times Be able to define and distinguish characteristics and implementation issues surrounding user-defined types, arrays, records, etc. |
| Assignment | Term Paper | |
| Reading | Sebesta Ch. 5,6, |
|
| Oct. 11 | Fall Break | |
| Oct 18,20 | Expressions and
Assignment Statement Statement Level Control |
Be
able
to
describe precedence,
evaluation
order, associativity, complex assignment statements in a variety of
languages. Be able to discuss, distiguish and select control mechanisms for selection and repetition, including implementation issues. |
| Assignment | ||
| Reading | Sebesta Ch 7,8 "GOTO Considered Harmful" from CACM, |
|
|
|
Subprograms
and Their Implementation |
Be able
to distinguish
between procedures
and functions, flat files, parameter passing techniques--call be
reference,
call by value, call by value result, and call by name. Be able to trace linkage with static scoped languages and dynamic scoped languages. Be able to discuss and apply the notion of activation records, techniques for implementation and control threads. |
| Reading | Sebesta
Chapter 9 and 10 |
|
| Assignment | ||
| Nov. 1 | Exam 2 | |
|
|
ADT and
Encapsulation Support for Object-Oriented Programming |
Be able
to articulate design issues for
ADTs, use pararametrized ADTs, describe encapsulation
constructs and naming encapsulations. Be able to discuss elements of Object-oriented languages, recognize them in several languages and apply them in at least one language. |
| Reading | Sebesta Ch. 11,12 |
|
| Assignment | Objectives Test 2 | |
| Nov. 8,10 | Prolog |
|
| Reading | Ch 16 |
|
| Assignment | ||
|
|
Concurrency Concurrency in Java Exception Handling |
Be able to
discuss the characteristics
of Concurrency. and
use them in at least two languages. Discussion of built in features for exception handling and be able to apply them in at least two languages. |
| Reading | Sebesta Ch. 13,14 Java threads (from Ivor Horton Beginning Java 2) |
|
| Assignment | ||
| Nov. 15 | Term Paper Draft Due | |
| Nov. 22 | Term Paper Due | |
| Nov 28, Dec 1 | Study
topics for final |
Be able to discuss the characteristics of logic Programming languages (on you own) and trace a simple Prolog program. |
| Reading | Reading: Self-Assessment Procedure XXIII: programming languages; Mitchell H.Clifton; Commun. ACM 38, 5 (May. 1995), Pages 89 - 97 | |
|
|
Presentations (15 minutes each) | |
|
|
6-9 pm Final Exam | Objectives for Final |