Topic: command language
Topic: command-line as a UserInterface
Topic: customized user interfaces
Topic: domain specific language
Topic: extensible languages
Topic: grammar modification
Topic: keyboard macros
Topic: language extension via macros
Topic: macros
Topic: programming language design
Topic: programming with a database of modules
Topic: programming with data
Topic: scripting language
Topic: specific purpose computer systems
Topic: spreadsheet
Topic: statement language
Topic: Thesa as a database of modules
Topic: understanding systems
Topic: user maintenance
Topic: user profile
Topic: user-centered design
Topic: user-defined data type
Topic: words defined by words
| |
Summary
Users want flexible languages tuned to their applications. They'd rather not have language shells nor languages which require implementing programs. The goal of user defined, or extensible, languages is user oriented languages. Such languages can be extended downward to define new machine accesses, or extended upwards to specify new high-level operations. Macro assemblers were an early, and in many ways unsuccessful, implementation of extensibility. What is found with most extensible features is that despite their power, they are seldom used; partly due to expensive implementations, partly due to understanding difficulties, and partly due to costly feature development. Their major difficulty is that extended constructs must be rebuilt for each application. Users must construct their extended programming systems before they can use them to instruct their machines.
Advantages-- Users design their own language for controlling their systems. The language evolves to fit the application. Unneeded language features can be dropped. (cbb 5/80)
Subtopic: user defined language
Quote: Smalltalk provides a simple semantics and syntax for the creation of domain-specific programming systems [»goldA10_1995]
| Quote: using typed metamorphs, define a new language in 400 lines; including parser and code generator
| QuoteRef: sammJE7_1972 ;;608 user defined languages
| QuoteRef: rohmJ_1979 ;;404 "It is better to try to speak their language (Petri nets. cashflow...) than to convince them that the solution to their problems implies their understanding of FORTRAN, PASCAL or APL
| QuoteRef: mckeWM_1974 ;;515 McKeeman 66: "The major responsibility for computer language design should rest with the language user ..."
| Quote: solve communication problems between systems analysts and end-users by making the end-users the developers [»mccrDD4_1982]
| Quote: for large applications, should develop a language tailored to the application, then implement it to run efficiently [»schwJT_1978]
| Quote: user-defined functions for Excel using vectors and matrices as first-class values; parameters as a subset of cells [»joneSP8_2003]
| QuoteRef: wirtN3_1976 ;;3 "Languages to instruct or to construct machines?
| QuoteRef: mckeWM_1970 ;;1 Weekley: "Stability in language is synonymous with rigor mortis"
| Subtopic: grow a 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
| Subtopic: defining a vocabulary
Quote: a thought that seems primitive in our minds is not primitive in a programming language [»steeGL10_1998]
| Quote: as we write code, we stop frequently to define new terms
| Quote: the library in Programmers_Assistant defines a vocabulary, i.e., names for common algorithms and named parts for those algorithms [»wateRC1_1982]
| Quote: Forth's application oriented vocabulary removes the need for interfaces to other languages [»rathED10_1976]
| Quote: the 'vocabulary' of a program is the sum of unique operators and unique operands [»smitCP_1980]
| Quote: classes define the vocabulary for describing a system
| Subtopic: user customization
Quote: the goal of end-user programming is to allow the user to significantly customize the system [»myerBA_1992]
| Quote: users extend EMACS by writing functions in the same language used to write EMACS [»stalRM6_1981]
| Quote: Emacs users can add and replace functions and modules; writing their definitions in the same language used for writing Emacs
| Quote: Emacs is a real-time display editor which can be extended by the user while it is running [»stallRM6_1981]
| Quote: since Emacs allows user customization, the whole user community becomes a source and testing ground for new ideas [»stallRM6_1981]
| Quote: user customization allows the whole user community to participate in modifying the system [»stalRM6_1981]
| Quote: use Star's CUStomer Programming Language (CUSP) to write computation rules for fields [»smitDC4_1982]
| Quote: user customization language for screen formatting; popular; very simple, flexible syntax [»boreNS_1991]
| Quote: Andrew's Console program included a library of easily selected, alternative formats; between default format and full customization [»boreNS_1991]
| Subtopic: rubble programs
Quote: a rubble program, or proto-program, is a loosely related collection of program fragments; includes one for each program output
| Quote: the ideal language for an application solves a problem with rubble programs, i.e., immediate products of mental action [»schwJT_1978]
| Quote: a programming system should deal with rubble programs directly, i.e., the initial creation of a programmer [»schwJT_1978]
| Quote: a rubble program, i.e., initial attempt by a programmer, can be vastly inefficient
| Quote: the ultimate goal of programming language design is to express rubble programs which are automatically converted to efficient forms [»schwJT_1978]
| Subtopic: macro language
Quote: a programming language is best defined by macros [»halpMI1_1968]
| Quote: a macro definition feature allows the programmer to redesign the machine [»halpMI1_1968]
| Subtopic: Thesa as language
QuoteRef: cbb_1973 ;;(reading sammJE5_62) making syntactic definition the norm instead of the exception
| QuoteRef: cbb_1973 ;;9/3/74 language in which to write a language, like relay experimentation
| QuoteRef: cbb_1973 ;;9/13/79 Purna is designed for defining your own language (creative). It is far easier to reuse a procedure than to redefine it (conservative)
| Subtopic: meta-programmers define language
Quote: since meta-programmers define the local language, have efficient feedback communication from the technicians [»simoC12_1976]
| Quote: meta-programmers create the informal, local language used for program descriptions
| Subtopic: problems with user definition
Quote: user customization hits a barrier when customization becomes impossible or it requires new techniques; e.g., HyperTalk in HyperCard, or macro language in a spreadsheet
| QuoteRef: stanTA6_1975 ;;20 "As a user, you may not want to build your own programming language any more than you may want to build your own car
| QuoteRef: dod12_1977 ;;42 "The user shall not be able to modify the source language syntax
|
Related Topics
Topic: command language (23 items)
Topic: command-line as a UserInterface (25 items)
Topic: customized user interfaces (10 items)
Topic: domain specific language (8 items)
Topic: extensible languages (71 items)
Topic: grammar modification (10 items)
Topic: keyboard macros (12 items)
Topic: language extension via macros (23 items)
Topic: macros (22 items)
Topic: programming language design (53 items)
Topic: programming with a database of modules (94 items)
Topic: programming with data (16 items)
Topic: scripting language (27 items)
Topic: specific purpose computer systems (9 items)
Topic: spreadsheet (28 items)
Topic: statement language (10 items)
Topic: Thesa as a database of modules (23 items)
Topic: understanding systems (48 items)
Topic: user maintenance (13 items)
Topic: user profile (16 items)
Topic: user-centered design (65 items)
Topic: user-defined data type (13 items)
Topic: words defined by words (25 items)
|