next up previous


CISC 470/670: PROGRAMMING LANGUAGES
Fall 2000
Midterm Exam Study Guide
Midterm Time and Date: classtime on Thursday, October 19, 2000
Miterm Review Session: classtime on Tuesday, October 17, 2000

References

- Lectures notes from start of course through October 17,2000.
- Textbook: Chapters 1, 2 (31-34,39-48), 3(106-156), 11 (11.1,624-648).
- Homework assignments (all of those due before midterm exam date).
- Programming assignments (PERL, PL Re-design).

Topic Coverage

- basics of programming language implementation: interpreters, compilers: overview of what they do, components, differences, similarities;
preprocessors, code instrumentation tools, profilers
- language syntax: regular expressions, context free grammars, derivations, parse trees, finite automata, lexemes, tokens, scanners, parser classes, flex/lex, yacc/bison.
- names: scoping, implementation of scoping, dynamic and shallow binding when procedures are passed as parameters, overloaded operators, overloaded functions, polymorphism, generics
- storage management: basics of stack, heap, static management, activation records, garbage collection
- overview of specification of semantics: denotational, operational, axiomatic
- logic programming: Prolog programming, Prolog search trees, predicate calculus basics

Format of Exam

The exam is closed book, closed neighbor and you will have the full class period to work. The exam will have a heavy emphasis on applying the concepts we have discussed in class, with only a few if any questions that are just knowledge feedback.




Example questions:

- Short answer regarding general concepts: compilers, interpreters,...
- Write/read regular expressions.
- Draw a finite state machine for a regular expression.
- Explain the set of strings that a finite state machine accepts.
- Write/read context free grammars.
- Draw a parse tree or derivation for a given string.
- Determine whether a given string is accepted by a grammar.
- Give example strings generated by a grammar.
- Show that a given grammar is ambiguous.
- Show the output or indicate the variables accessible at different points in a program based on static versus dynamic scoping rules.
- Show the implementation of static scoping via static links versus display.
- Show the implementation of dynamic scoping via dynamic links (deep access) versus a central reference table (shallow access).
- Show the results of execution under deep binding versus shallow binding when procedures passed as parameters.
- Indicate where a particular item would most likely be stored: stack, heap, static store
- Explain how some of the extra features of languages will affect scoping (eg, scope resolution operator, etc from class handouts/slides).
- Basic format of lex/flex and bison/yacc specification and their capability.
- Give an example that demonstrate overloading, polymorphism, or generics.
- Given a segment of code, explain how it demonstrates a particular concept like operator or function overloading, polymorphism, overriding, generics.
- General questions on operational, denotational, and axiomatic semantics: advantages, disadvantages, general approach.
- write or modify a small Prolog code segment
- read a Prolog code segment and indicate the answer given for a particular query.
- show part of the search tree for a given Prolog program and query.
- explain how to read a particular prolog clause




The questions are NOT true/false or multiple choice. Instead, partial credit will be given when possible on any question in the exam.

How to Study

Review your lecture notes, assignments, and textbook chapters. Actually do some problems of the form described above to determine whether you can apply your knowledge.

About this document ...

This document was generated using the LaTeX2HTML translator Version 98.1p1 release (March 2nd, 1998)

Copyright © 1993, 1994, 1995, 1996, 1997, Nikos Drakos, Computer Based Learning Unit, University of Leeds.

The command line arguments were:
latex2html -split 0 midterm.rev.tex.

The translation was initiated by Lori Pollock on 2000-10-15


next up previous
Lori Pollock
2000-10-15