For each of the readings, try to answer the questions below

Yüklə 6,44 Kb.
ölçüsü6,44 Kb.

For each of the readings, try to answer the questions below. Type these and bring them to class on Monday with room for your notes. You will refine your responses and submit them in seminar on Tuesday. Monday we will be concerned with understanding various languages and for seminar we will focus primarily on language design.

Keynote Address: Language Design as Design by Frederick P. Brooks

  1. What design principles does Brooks recommend?

  2. What design principles did you understand (from the reading) that the designers of the first languages (FORTRAN, BASIC) used?

  3. How do those differ from the ones that Brooks recommends?

  4. What changed in the during the approximate 35 years that elapsed between the birth of the first higher level languages and HOPL-2 (i.e., 1958-1993).

The Birth of Prolog by Alain Colmerauer and Philippe Roussel

  1. What are your 3 technical questions about how Prolog works?

  2. What was the primary purpose of Prolog, according to Colmerauer? The language is significantly different from FORTRAN and BASIC. Give at least three (but remember, there is ONE MOST IMPORTANT DIFFERENCE, so be sure to say what that is!).

  3. (optional) In the text, Colmerauer talks about Logic, Resolution, and Horn Clauses, and seems to suggest that Prolog kind of accidentally adheres to the Logical Rules of Horn Clauses. Why might this be important? How do you think that accident came about? How was the fact that it happened discovered?

  4. What were the design principles for Prolog?

A History of CLU by Barbara Liskov

  1. What are your 3 technical questions about how Prolog works?

  2. Barbara Liskov makes a “big deal” of encapsulation and types. What does she mean by these two terms?

  3. To “do” encapsulation, you also need to do modularity, which Papert calls “mind-sized chunks”. What do we mean by abstraction? (You’ve used modularity as you program in Logo – give two Logo procedures that do abstraction nicely.)

  4. Liskov also talks about abstraction – in particular data abstraction – as a way of organizing programs. This was a new concept that arose out of the modularity or “structured programming” movement to make programs more reliable. Why is code that is not modular prone to errors?

  5. What do you think data abstraction is?

  6. What were the design principles for CLU?

The Early History of Smalltalk by Alan C. Kay

  1. What are your 3 technical questions about how Smalltalk works?

  2. Smalltalk, like BASIC and Logo, was meant to be a programming language for the masses. But, it has a very significant difference in design from BASIC (and Logo) – namely the way it does data abstraction. What is this difference? (Note that Smalltalk has some similarity to CLU in this regard).

  3. Smalltalk, it turns out, was the model for what has become Windows! How was this different from other programming languages, and why did the authors of Smalltalk want to do this?

  4. ((Optional)): BASIC presaged this change. Explain how.

  5. What were the design principles for Smalltalk?

Dostları ilə paylaş:

Verilənlər bazası müəlliflik hüququ ilə müdafiə olunur © 2017
rəhbərliyinə müraciət

    Ana səhifə