Topic: extensible languages
Topic: grammar modification
Topic: keyboard macros
Topic: language flexibility
Topic: macros
Topic: object-oriented templates and containers
Topic: primitive functions
Topic: stepwise refinement
Topic: user-defined languages
| |
Subtopic: extend language with macros
Quote: every aspect of a program is liable to change, but languages require details to be fixed; use macros
| Quote: use macros to customize the language for a problem domain
| Quote: a macro processor adds flexibility to a base language; allows alteration, delayed binding, and extensions [»browPJ_1974]
| Quote: a macro definition feature allows the programmer to redesign the machine [»halpMI1_1968]
| Quote: a macro processor allows alteration of a general programming language to fit specific needs; e.g., knitting and crop-rotation [»browPJ_1974]
| Quote: a programming language is best defined by macros [»halpMI1_1968]
| Quote: instead of using IMP syntax, can define a transformation rule as if it was a macro [»biloW5_1974, OK]
| Quote: GPL macro processor can expand an expression into multiple statements [»browPJ_1969, OK]
| Quote: using typed metamorphs, define a new language in 400 lines; including parser and code generator
| Subtopic: paraphrase extension -- text substitution
Quote: use text macros for derived quantities; e.g., the !ground track angle! and its definition [»heniKL1_1980]
| Quote: can extend a language by straight textual substitution; e.g., replace 'complex' with its realization [»solnN_1971, OK]
| Quote: extend operations of a text editor by executing a command string [»maclIA11_1977, OK]
| QuoteRef: stanTA6_1975 ;;20 paraphrase extensions are relatively easy to add but are limited in ability
| QuoteRef: goodJB_1968 ;;767 "paraphrases are expressions that have identical effective interpretation
| Quote: rewrite facility for program transformations by parameterized pattern-replacement rules [»cheaTE_1979]
| Quote: a statement comment has a refinement, i.e., a list of statements [»teitT6_1979]
| Quote: a macro defines a name that stands for its definition; e.g., 'increment' can stand for 'i:=i+1' [»hehnEC3_1978]
| Subtopic: data types as macro
Quote: create a type as a macro which defines macros for operations and variables for internal state [»schuSA_1970, OK]
| Quote: example of defining a structure by specifying the accessing algorithms; uses paraphrase extension [»wulfWA12_1971, OK]
| QuoteRef: wulfWA12_1971 ;;786 in Bliss, can change a structure when its use changes
| Quote: add type safety to Dylan macros by assigning nonterminal result types to metamorph parameters [»brabC1_2002]
| Subtopic: problems with macros
Quote: if you design a private language with macros, it will be incomprehensible to others [»stroB_1991]
| Quote: templates can lead to mysterious compiler errors; debugging is difficult [»grayDN5_1998]
|
Related Topics
Topic: extensible languages (71 items)
Topic: grammar modification (10 items)
Topic: keyboard macros (12 items)
Topic: language flexibility (34 items)
Topic: macros (22 items)
Topic: object-oriented templates and containers (27 items)
Topic: primitive functions (34 items)
Topic: stepwise refinement (25 items)
Topic: user-defined languages (42 items)
|