the study of programming languages

ryan stansifer

pat scanned it. thanks pat.

Simplicity enters in four guises: uniformity (rules are few and simple), generality (a small number of general functions provide as special cases a host of more specialized functions, orthogonality), familiarity (familiar symbols and usages are adopted whenever possible), and brevity (economy of ex­pression is sought). p. 20


computers understand structure and humans understand names one example of this separation is when you check for type equivalence: either you check for structural equivalence, or your check for name equivalence. because it’s easier to reason about, modern programming languages choose name equivalence. (p.118)

typoologies of programming languages:

pointer semantics:

a language without contingency, in which the context does not affect the meaning of expressions is said to be referentially transparent aka the meaning of a sentence must remain unchanged when a part of a sentence is replaced by an expression having the same meaning (frege, über sinn und bedeutung)