54-473 Programming Languages

Test 1 Review
  1. Evaluate your new language, your "old" language and one language you know well   in terms of at least 5 characteristics of readability. Define what you mean by the characteristic, and then indicate how well your language measures up.
  2. What programming language statement, in your opinion, is most detrimental to readability?
  3. Describe what is meant by a vonNeumann architecture, and tell how it influences language design. Give at least two languages that use that concept as a basis and indicate what general paradigm of languages they are in.
  4. What is meant by a paradigm?
  5. Give an example of a language that is an exemplar of the imperative paradigm, functional paradigm, logic paradigm, object-oriented paradigm.
  6. Give at least one hardware development and one software development from each of the four generations of computers.
  7. What were the three goals of the ALGOL design committee and which do you fell was the most difficult at the time?
  8. What was IBM's motivation for developing PL/I?
  9. Was that motivation correct given the history of computers and languages since 1964?
  10. What are the arguments for and against a typeless language?
  11. What do the Ada and COBOL languages have in common?
  12. Identify: Backus, Naur, Hopper, Wirth, Zuse, Atanasoff, Kemeny, Dijkstra, Hoare, Ichabiah, Stroustrop, Goldberg, Ritchie, and Gosling with the contribution each has made to a language.
  13. Why is the Ada Language Reference manual numbered 1815?
  14. What is the connection between the development of ALGOL 68 and Pascal?
  15. Why did ALGOL 60 not become a very widely used language? What were its major contributions to future language design?
  16. Distinguish a reference language from a publication language from an implementation language.
  17. Which language contributed user-defined data types, reference types and dynamic arrays?
  18. Draw a parse tree for an expression, given its BNF grammar.
  19. Draw a leftmost or rightmost derivation from that tree.
  20. Write and recognize a BNF grammar for expressions with stated operator precedence.
  21. Write and recognize a BNF grammar for expressions with stated operator associativity--either left or right recursive
  22. What are the three primary methods of semantic description? Define each.
  23. What is the purpose of an attribute grammar? Why are they seldom used to describe real languages?
  24. Given a series of statements, and its post condition, find its weakest precondition.
  25. LISP -- use car, cdr, cons,  null, nil atom, eq, defun, setq  to predict output from functions.
  26. Define any boldface term in any chapter and indicate whether that term applies to "your" languages..
  27. Distinguish lexical analysis from syntactical analysis.
  28. Distinguish the top-down (LL) from bottom up parsers(LR).
  29. Why is left recursion a problem in LL parsers (how can you solve it?) and what is the pairwise disjointness test?
  30. Given a sentential form tell whether it passes the pairwise disjointness test.
  31. Using a right sentiential form, draw the parse tree, find the handle.
  32. Describe the use of the handle in LR parsers.
  33. Given a parse table, a grammar and a statement, trace the input and the stack.