5 ;;Quote: should automate mechanical, tedious, or error-prone activities
|
5 ;;Quote: Hopper and others used programs to extract subroutines and compile them under the direction of a pseudo-code
|
7 ;;Quote: a programming system should detect all programs that violate its definition or intended structure
|
8 ;;Quote: independent languages features should be orthogonal, i.e., controlled independently
|
8 ;;Quote: regular rules are easier to learn, use, describe, and implement
|
12 ;;Quote: abstraction avoids stating something more than once; recurring patterns are factored out
|
23 ;;Quote: use labels to avoid knowledge of absolute position within a list
|
45 ;;Quote: the static structure of a program should correspond to the dynamic structure of its behavior
|
46 ;;Quote: syntax that looks similar should be similar; and different things should look different
|
47 ;;Quote: errors should be checked at multiple levels to ensure that all errors are caught somewhere
|
50 ;;Quote: a language should be able to represent any information known by the user that is useful to the compiler
|
57 ;;Quote: pass by value-result is copying a value at call and at return; if the actual was a constant or expression the result copy is omitted
|
83 ;;Quote: information hiding: user has everything needed to use a module but nothing more; the implementer has everything to implement a module and nothing more
|
91 ;;Quote: FORTRAN ignores blanks and allows keywords as variables; makes syntactic analysis difficult; e.g., 'if (i-1)'
|
113 ;;Quote: scope is static if procedure called in definition environment while dynamic if called in caller's environment
|
118 ;;Quote: equivocation is using the same word in different ways in the same conversation; reflects difficulty of dynamic scoping
|
124 ;;Quote: zero, one, and infinity are the only reasonable numbers in program language design
|
141 ;;Quote: Jensen's device uses pass-by-name for both index and indexed quantity; e.g., allows nested summations
|
148 ;;Quote: users should only pay for what they use; overhead should be minimal
|
156 ;;Quote: language keywords can be reserved, marked unambiguously, or act as variables except in the keyword's proper context
|
176 ;;Quote: an extensible language provided a language kernel and an extension mechanism
|
178 ;;Quote: extensible languages are inefficient because compilers must be large and inefficiencies in the kernel were amplified in the extensions
|
178 ;;Quote: extensible languages had poor diagnostics since error checking happened at the kernel level
|
196 ;;Quote: a record in Pascal defines a local naming scope which is opened with the dot operator
|
197 ;;Quote: arrays are homogeneous with dynamic selectors; records are heterogeneous with static selectors
|
214 ;;Quote: case statement can be compiled into a jump table, hash table, binary search, sequential search, or if-test-chain
|
216 ;;Quote: pass-by-constant makes a parameter the same as a constant; can't be destination of an assignment or passed-by-reference
|
257 ;;Quote: an activation record holds all information relevant to one activation of an executable unit
|
268 ;;Quote: precision constraints are often circumvented to get a particular storage size
|
268 ;;Quote: Ada has fixed-point numbers since commonly used in peripheral devices such as analog-to-digital converters
|
268 ;;Quote: an Ada fixed-point constraint gives a range and a maximum delta (the absolute error bound)
|
270 ;;Quote: Ada requires a new record value if the discriminant or tag of a variant record is changed
|
270+;;Quote: Pascal errors caused by changing the tag of a variant record without initializes related fields
|
272 ;;Quote: a subrange is called a subtype in Ada; it inherits operations and remains compatible
|
273 ;;Quote: an Ada derived type defines a new type which inherits all operations and attributes of its base type
|
277 ;;Quote: most Ada declarations can be broken into interface and implementation; e.g., declare a constant without giving its value
|
279 ;;Quote: side effects result from hidden access to a variable; e.g., declaring a block within a block
|
282 ;;Quote: with block structure, a statement may refer to different variables depending on declarations outside of it; called vulnerability
|