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.
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.
Be able to find the weakest precondition for assignment statements, logical pretest loops through use of loop invariant.
Describe role of syntax analyzers. Distinguish recursive descent parsers (LL) from shift reduce parsers(LR).
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.
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.
Be able to discuss elements of Object-oriented languages, recognize them in several languages and apply them in at least one language..
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.
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.
Be able to discuss the characteristics and implementation issues surrounding user-defined types, arrays, records, etc.
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.
Implement a sample program modeled from the reading , run it and show your output.
Be able to discuss the characteristics of logic Programming languages (on you own) and trace a simple Prolog program.