Group: goals for a programming system
Topic: compiling pseudocode designs
Topic: design for change
Topic: domain specific language
Topic: evolutionary systems
Topic: extensible systems
Topic: function syntax by pattern
Topic: grammar modification
Topic: language extension via macros
Topic: open systems
Topic: orthogonal extension and cartesian products
Topic: programming language design
Topic: programming with a database of modules
Topic: restricted and extended types
Topic: scripting language
Topic: Thesa as a database of modules
Topic: words defined by words
Topic: user-defined languages
| |
Subtopic: user community
Quote: since Emacs allows user customization, the whole user community becomes a source and testing ground for new ideas [»stallRM6_1981]
| Subtopic: extensibility needed
Quote: a programming language should be extendable by definition [»gallBA_1970]
| Quote: can not subdivide universe of problems into fixed areas, each with its own special notation [»holtAW5_1958]
| Quote: need arbitrary, new notations since no set of special notations is suitable for all problems
| Subtopic: graceful enhancement of a base language
Quote: new words and rules of meaning should look just like what was designed at the start [»steeGL10_1998]
| Quote: want to grow Java with generic types and overloaded operators; just like built-in types
| Quote: language extensibility is the graceful enhancement of a base language; unlike compilation's extreme transformation [»elsoM_1973]
| Quote: an extensible language provided a language kernel and an extension mechanism [»maclBJ_1987]
| Quote: goal of extensible languages was to extend a base language into a natural representation for data, operations, and control of an application
| Quote: a programming language should have a small framework that can accommodate many powerful features as changeable parts [»backJ8_1978a]
| Quote: metaphrase extensibility allows the user to define the core language that is then used to define extensions [»woolJD_1973]
| QuoteRef: ironET1_1969 ;;32 extend syntax by function definition specifying syntax as well
| Quote: an operating system should be a set of basic modules; application programming extends the system [»wirtN7_1988]
| Quote: construct a general purpose compiler that provides naming aids and the ability to add new notations [»holtAW5_1958]
| Quote: Forth was designed to replace the "vast hierarchy" of software tools with a simple, natural programmer-to-Forth interface [»rathED_1996]
| Quote: despite primitive on-line computers and Forth's oddness, Forth can be more productive than fully supported mainframes [»rathED_1996]
| Subtopic: object-orientation vs. polymorphism
Quote: object-orientation overcomes the complexity of polymorphism in extensible languages [»ingaDH9_1986]
| Quote: procedures in extensible languages had to be polymorphic but case selection of appropriate code caused a combinatoric explosion of complexity [»ingaDH9_1986]
| Quote: a private procedure for a procedure variable may call standard procedures; used for extensions and experimentation [»sweeRE7_1985]
| Quote: the program-oriented view of inheritance is based on extension and substitutability; can replace an object with an object of any subclass [»winkJF8_1992]
| Quote: object-oriented inheritance is an extension mechanism, not a specialization or classification mechanism [»winkJF8_1992]
| Subtopic: design extensibility
Quote: extend UML with stereotypes (new elements), tagged values (new attributes), and constraints (new semantics) [»boocG_1999]
| Subtopic: namespace extensibility
Quote: Piccola unifies all notions of namespaces as first-class forms, e.g., records, dictionaries, objects, environments, packages; avoids meta-programming [»acheF9_2000]
| Subtopic: metadata extensibility
Quote: System.Attribute is an arbitrary type associated with an object; extends metadata, e.g., 'const' [»hamiJ2_2003]
| Subtopic: programming language extension
Quote: C++ is a superset of C
| Subtopic: event-driven
Quote: a hook is a function invoked by an event; e.g., on loading a library or modifying a variable [»stallRM6_1981]
| Subtopic: late binding
Quote: because of Java's late binding it is easy to change methods and private variables; just need to retain old methods or their type signatures [»goslJ6_1997]
| Quote: Emacs is a real-time display editor which can be extended by the user while it is running [»stallRM6_1981]
| Subtopic: reflection
Quote: reflection can allow a program to examine its own structure, modify the structure, execute dynamically-generated code, and modify the language's semantics [»bracG10_2004]
| Subtopic: configuration
Quote: global variables are essential for customization; e.g., 'comment start' for recognizing the start of a comment in text [»stallRM6_1981]
| Subtopic: function library
Quote: reuse successful for system libraries, numeric libraries, and window management; fixed set of fully-specified data types and interfaces [»dehnJC4_1998]
| Quote: a library should be flexible, allow polymorphic classes, efficient, and extensible without invalidating existing programs [»fricA4_2000]
| Quote: an Emacs library is a publication medium for users to share their extensions without interference
| Quote: an Emacs library is a coherent set of new and redefined functions that extend the basic system [»stallRM6_1981]
| Quote: creating new notations for programming is practical only if it is easy to add the necessary library packages [»holtAW5_1958, OK]
| Subtopic: procedural extensibility
Quote: procedures and parameters afford all the major advantages of extensible languages, plus space efficiency
| Quote: use in-line expansion to extend a machine's order code; use interpretative subroutines to reduce memory; e.g., floating point [»wilkMV_1957]
| Subtopic: components
Quote: a software components industry will offer families of high quality routines, tuned to specific needs; treated as black boxes [»mcilMD10_1968]
| Subtopic: downward extension, devices and instructions
QuoteRef: dubyJJ12_1971 ;;137 extensible languages should be extendable downwards-- eg to support new physical devices or instructions
| Subtopic: extended data types
Quote: Oberon is extensible; e.g., any application can read text from the screen by importing the type Text [»wirtN9_1989]
| Quote: self-describing data may be completely determined only at the time of actual processing; needs an extensible language [»parnDL3_1976]
| Quote: can extend imported Oberon data types without losing compatibility with the base type; motivation for the Oberon language [»wirtN9_1989]
| Quote: extended, Oberon objects are byte compatible with their base type; can be integrated into existing structures [»wirtN9_1989]
| Quote: in FQL, can incrementally define data; no pre-defined schema [»buneP1_1981]
| Quote: extensible records using a simple, perfect-hash coding; rapid access, efficient creation, one extra field [»remyD6_1992]
| Subtopic: expression extensibility
Quote: to prevent ambiguities, C++ operator overloading can not change precedence, change expression syntax, or define operator tokens [»stroB_1991]
| Subtopic: macros
Quote: use macrogeneration for semantic extension of a language [»straC8_1967]
| Subtopic: premature specialization
Quote: programming language designers have made unnecessary, pre-emptive decisions about the nature of various features; e.g., array implementation [»shawM3_1980]
| Quote: most compilers are designed for a special range of problems; better to have ability to add arbitrary, new notations [»holtAW5_1958]
| Subtopic: examples
Quote: meta-level compilation through extensible compiler with high-level state machines applied down every path; transitions triggered by patterns [»chouA11_2000]
| Quote: Fleximatic provides a set of services for any problem instead of special features for an area of computation [»holtAW5_1958]
| QuoteRef: thomK_1976 ;;379 "Since these operations can be user-supplied, it is easily extensible ([the Unix command line interpreter)
| Quote: in Flex can define new binary and unary operations [»kayAC6_1968, OK]
| QuoteRef: molnG8_1971 ;;Title: SEL a self-extensible programming language
| QuoteRef: wulfWA12_1971 ;;786 in Bliss, can change a structure when its use changes
| Quote: users extend EMACS by writing functions in the same language used to write EMACS [»stalRM6_1981]
| QuoteRef: kiebRB9_1973 ;;4.3 extend syntax eg expression ::= identifier of expression for access
| Quote: for future applications, a message interface includes messages for all relevant information; currently unused messages are ignored [»katzL_1981]
| Subtopic: extensibility is difficult
Quote: full extensibility is impossible because there is nothing to build on [»browPJ_1974]
| Quote: users need a large amount of effort and knowledge to extend a language significantly [»stanTA12_1971]
| Quote: an orthogonal extension to a language normally requires surgery on its underlying guts [»stanTA6_1975]
| Quote: lesson of extensible languages: no simple statement to an unknowledgeable computer can alter its behavior in major ways [»stanTA12_1971]
| Quote: the difficulty of modifying a language's compiler can prevent extending the language [»halpMI1_1968]
| QuoteRef: cbb_1973 ;; expansion capabilities of PL/1 and Algol very seldom used, i.e. power v. access
| QuoteRef: dod12_1977 ;;42 "The user shall not be able to modify the source language syntax
| Subtopic: problems with extensibility -- inefficient, poor diagnostics, base language
Quote: difficult to learn Smalltalk because of its size, diffuse nature, and generalist design [»nielJ5_1989]
| Quote: extensible languages are inefficient because compilers must be large and inefficiencies in the kernel were amplified in the extensions [»maclBJ_1987]
| Quote: extensible languages had poor diagnostics since error checking happened at the kernel level [»maclBJ_1987]
| Quote: PPL failed as an extensible language because the base language was preserved in the extensions [»stanTA12_1971]
| Quote: with an entirely extensible language, great language designers make bad design decisions and unreadable code [»bergT9_1997]
| Quote: Smalltalk dropt syntax extensions so that programs can be read
|
Related Topics
Group: goals for a programming system (21 topics, 983 quotes)
Topic: compiling pseudocode designs (8 items)
Topic: design for change (76 items)
Topic: domain specific language (8 items)
Topic: evolutionary systems (47 items)
Topic: extensible systems (22 items)
Topic: function syntax by pattern (15 items)
Topic: grammar modification (10 items)
Topic: language extension via macros (23 items)
Topic: open systems (33 items)
Topic: orthogonal extension and cartesian products (11 items)
Topic: programming language design (53 items)
Topic: programming with a database of modules (94 items)
Topic: restricted and extended types (35 items)
Topic: scripting language (27 items)
Topic: Thesa as a database of modules (23 items)
Topic: words defined by words (25 items)
Topic: user-defined languages (42 items)
|