12 ;;Quote: profound differences in philosophical outlook between mathematicians; e.g., whether every object must have a construction rule
|
12 ;;Quote: construction rules for mathematics leads to rigour and exact mathematical reasoning
|
12+;;Quote: construction rules for mathematics leads to intense concern about syntax, the way in which things are written
|
12 ;;Quote: for programming languages semantics is far more important than syntax
|
13 ;;Quote: computing is a new field of mathematics; its central concepts are ill defined, like calculus when it was the Method of Fluxions
|
13 ;;Quote: use neutral names for new concepts in new fields; avoid words such as 'name,', 'address', 'value', or 'set'
|
13 ;;Quote: memory is a characteristic feature of computers; the act of inserting an item erases whatever was there before
|
14 ;;Quote: a location or L-value is an area of the store that has a content or R-value; change the R-value with an updating operation
|
16 ;;Quote: a name, when used as a name, has no internal structure; names are atomic objects; may test for equality
|
16 ;;Quote: a numeral, an R-value expression, is the written representation of a number, an abstract object; only the single digits are also names
|
18 ;;Quote: assembly codes are strings of commands, but the rest of mathematics uses expressions instead of commands; we say 'x + y' instead of 'add x to y'
|
19 ;;Quote: an expression has a value; it may have two values, an L-value and an R-value
|
19 ;;Quote: referential transparency means that the value of an expression is determined by the values of its sub-expressions
|
19+;;Quote: the symbol string 1+5 is not 6 in all circumstances, for example 21+52; requires syntactic analysis
|
19 ;;Quote: evaluate an expression in an environment that defines values for its free variables
|
22 ;;Quote: variables in mathematics are names that do not vary; e.g., x is the same x in 3x^2+2x+17; consequence of referential transparency
|
22 ;;Quote: the assignment statement undoes referential transparency and identity; how much of mathematics can survive?
|
22 ;;Quote: L-values are not change by assignment; treat variables as L-values in where-clauses and .lambda.-expressions; expensive but inevitable
|
23 ;;Quote: an abstract store (.phi.) maps L-values to R-values; assignment is an operator on .phi. producing a fresh .phi.
|
26 ;;Quote: a function declares its bound variables (i.e., its formal parameters) as R-values or L-values; call by value or reference
|
34 ;;Quote: a closure is a rule for evaluating the expression and an environment; it is an R-value that is not atomic
|
37 ;;Quote: the type of a function includes the types and modes of calling its parameters and the types of its results; it includes the domain and range of the function
|
38 ;;Quote: data structures built from nodes (programmer-defined types); components may be nodes or elements of a small number of types
|
40 ;;Quote: an L-value or location has a shape (its type) with links to its R-values; e.g., Cons type with Car and Cdr links
|
43 ;;Quote: pointers are R-values that point to L-values; the type of a pointer includes the type of the thing it points to; e.g., pointer to real
|
45 ;;Quote: a bag is an unordered collection that allows duplicates; as used in probability problems
|
45 ;;Quote: an L-value has two functions, one for its R-value (contents) and the other to update its R-value
|
46 ;;Quote: programming languages deal with abstract objects, contrary to the conventional view that programs are symbol strings plus rules for manipulating these strings; the later yields a macrogenerator without regard to semantics
|
47 ;;Quote: use macrogeneration for semantic extension of a language
|
47+;;Quote: a good programming language should not need a macrogenerator
|