Topic: user-defined languages

topics > computer science > programming > Group: types of programming languages

command language
command-line as a UserInterface
customized user interfaces
domain specific language
extensible languages
grammar modification
keyboard macros
language extension via macros
programming language design
programming with a database of modules
programming with data
scripting language
specific purpose computer systems
statement language
Thesa as a database of modules
understanding systems
user maintenance
user profile
user-centered design
user-defined data type
words defined by words


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 up

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 up

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 up

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 up

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 up

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 up

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 up

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 up

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 up

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 up

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)

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