Group: expression evaluation
Topic: assigning values to statements
Topic: calculator
Topic: functional programming
Topic: programming as mathematics
Topic: reduction languages
Topic: referential transparency
Topic: restricted use of global variables
Topic: statement language
Topic: value as an object
| |
Summary
Programming is frequently seen as a mathematical activity with a foundation in arithmetic expressions. Every executable program returns a value which in turn may be used as an argument to another program. Scientific calculators are successful because the expression model closely matches the computation needs of their users. Efficient implementations exist with a familiar syntax.
But much of programming is not computational; instead it is modification and control of an external world. Business machines maintain databases and mail checks. Microprocessors run cash registers, automobile ignition systems and scientific instruments. Computation is important but it is no longer fundamental. With side effects, expression languages are no longer a strong foundation.
Advantages-- A universal representation close to mathematical experience. Consistent interface between procedures. Formal basis for reduction languages. (cbb 5/80)
Subtopic: mathematical approach; values of expressions
Quote: "mathematical" approach to programming considers values of expressions instead of the steps that produced them [»straC3_1973]
| Quote: a language is a mapping between expressions and a domain of discourse; if a function, the meaning of an expression is its consequent [»backJ_1973, OK]
| Quote: the world of expressions is orderly, has useful algebraic properties, and performs most useful computation [»backJ8_1978a]
| Quote: an expression has a value; it may have two values, an L-value and an R-value [»straC8_1967]
| Subtopic: every statement yields a value
Quote: every statement and declaration should be an expression that yields a value [»stroB_1994]
| Quote: can replace statement refinements by assigning the result of an expression refinement
| Subtopic: examples
QuoteRef: wegbB5_1974 ;;3 EL1 is an expression language
| QuoteRef: wulfWA12_1971 ;;783 expression language (no valueless statements)
| QuoteRef: cbb_1973 ;;11/16/74 produce a language like arithmetic expressions
| Quote: in C, statements are just expressions followed by a semicolon; assignments are expression operators [»ritcDM7_1978c]
| Quote: in SL5, if..then..else is an expression whose result is the result of the then.. or else.. part [»hansDR5_1978]
| Subtopic: expression tree
Quote: an expression tree, Expression, is an efficient, in-memory representation of a lambda expression; LINC translates expression trees into SQL [»bierGM10_2007]
| Subtopic: expressions as statements
Quote: every function in HyperTalk sets 'it' implicitly; turns expressions into a sequence of statements [»myerBA_1992]
| Subtopic: programming is not expressions
Quote: programming traditionally uses two kinds of data flow -- expression nesting and variable assignment and reference; leads to side-effects and multi-value wrappers [»edwaJ10_2005]
|
Related Topics
Group: expression evaluation (5 topics, 97 quotes)
Topic: assigning values to statements (7 items)
Topic: calculator (1 item)
Topic: functional programming (45 items)
Topic: programming as mathematics (27 items)
Topic: reduction languages (17 items)
Topic: referential transparency (26 items)
Topic: restricted use of global variables (22 items)
Topic: statement language (10 items)
Topic: value as an object (29 items)
|