Topic: language extension via macros

topics > computer science > programming > Group: program representation

extensible languages
grammar modification
keyboard macros
language flexibility
object-oriented templates and containers
primitive functions
stepwise refinement
user-defined languages
Subtopic: extend language with macros up

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 up

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 up

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 up

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

Related Topics up

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)

Updated barberCB 7/04
Copyright © 2002-2008 by C. Bradford Barber. All rights reserved.
Thesa is a trademark of C. Bradford Barber.