Polychotomous key for the classification of programming languages
This is a key for the top four levels of the taxonomy of programming languages I have been developing as part of the HOPL database. It is unconventional in that it invokes some external recognitors, while other criteria are eponymous or periodically based. This is at least in part because the representation is of cultural phenomena rather than natural phenomena: as such they admit to derivations from more than one domain. (A comparison here would be of dance or musical form – no one source will provide sufficient differentiators for their typology). And a compounding feature is that as with all cultural phenomena, more than one point of classification is applicable. That does not negate the validity of the scheme, rather it shows how complex problems are solved best by hybrid solutions (in fact some of the taxa are themselves hybrid).
This is a work in progress: I have an unpublished paper on the full rationale, and a comparison of other pre-existing taxonomic systems for programming languages, which I shall release soon. This is a draft of the polychotomous key for those who are interested in programming typology. Comments can be addressed to me at d.pigott@murdoch.edu.au
Diarmuid Pigott
March 2005
To use, begin at 1, and proceed according to the answers to the questions:
1 |
|
Is the informing principle internal? |
Endogenous |
|
Is the informing principle external? |
Exogenous |
Is the language defined in terms of (higher or lower order) steps to be taken? |
Algorithmic |
|||
Is the language defined in terms of (higher or lower order) functions which can be used? |
Functional |
Is the language defined in terms of (higher or lower order)concepts suitable for representing the world? |
Structural |
|||
Is the language defined in terms of mirroring the world as closely as possible? |
Reflexive |
Does the language allow for the steps to be expressed as a series of questions and answers? |
Conversational |
|||
Does the language use control structures to indicate instructions order and modularity? |
Imperative |
|||
Does the language use control structures to indicate instructions order and modularity? |
Spatial |
Is the language chiefly defined in terms of possible operations? |
Operation-oriented |
|||
Is the language chiefly defined in terms of expressions that are evaluated? |
Expression-oriented |
|||
Is the language defined in terms of states and transitions? |
State/flow |
|||
Is the language defined in terms of a functional calculus? |
Lambda calculus |
Does the language summarise the world in terms of a single discrete structure? |
Specific |
|||
Does the language summarise the world in terms of repurposable generic structures? |
Generic |
Does the language describe the world in terms of phenomena that can be measured? |
Phenomenological |
|||
Does the language describe the world by creating a simulated model of it? |
Simulating |
|||
Does the language describe the world by creating a one-to-one mapping of it? |
Close mapping |
Is it a language derived from the JOSS system at RAND? |
JOSS family |
| ||
Is it a language derived from the BASIC system at Dartmouth? |
BASIC family |
| ||
It is conversational, but not derived from JOSS or BASIC? |
Other Conversational |
|
Is it a language derived from or associated with the IBM Fortran system? |
Fortran family |
| ||
Is it a language derived from or associated with the ACM/GAMM IAL/Algol system? |
Algol family |
| ||
Is it a language derived from or associated with the IBM PL/I system? |
PL/I Languages |
| ||
Is it an historical isolate algorithmic language? |
Historic algorithmic languages |
| ||
Is it a recent isolate algorithmic language? |
Other algorithmic |
|
Does the language's spatiality derive from the layout of text? |
Textually spatial |
| ||
Does the language's spatiality derive from an arrangement of shapes? |
Graphically Spatial |
|
Does the language have a set of standardised fixed operators? |
Fixed operation |
| ||
Does the language have a set of mutable operators? |
Mutable operation |
|
Are the expressions logic-based? |
Logical |
| ||
Are the expressions mathematically-based? |
Mathematical |
|
Is the system expressed in terms of state transitions? |
State transition tables |
| ||
Is the system expressed in terms of state charts? |
State-charts |
| ||
Is the system expressed in terms of the flow of data though the system? |
Dataflow |
| ||
Is the system expressed in terms of Petri nets? |
Petri Net Systems |
|
Lambda calculus |
Is it a language derived from or associated with the IBM/Backus FP system? |
FPs |
| |
Is it a language derived from or associated with the MIT/McCarthy's LISP system? |
LISPs |
| ||
It is Lambda-based, but not derived from either FP or LISP? |
Other lambda |
|
Specific |
Is the representation based on 1-dimensional structures? |
Rank 1 |
| |
Is the representation based on 2-dimensional structures? |
Rank 2 |
| ||
Is the representation based on folded 2-dimensional structures? |
Rank 2 folded |
| ||
Is the representation based on 3-dimensional structures? |
Rank 3 and greater |
|
Generic |
Is the representation based on a generalised abstract object? |
Object-oriented |
| |
Is the representation based on a generalised theory of abstraction? |
Theoretical incl category based |
|
Phenomenological |
Is the phenomenon solely sound-related? |
Sound-related |
| |
Is the phenomenon solely image-related? |
Image-related |
| ||
Is the phenomenon sound-and-image related? |
AV-related |
| ||
Is the phenomenon chemically based? |
Chemical representations |
| ||
Is the phenomenon the control of mechanisms? |
Physical control |
| ||
Is the phenomenon the representation of external measurement and feedback? |
Externalities |
|
Simulation |
Is the simulation system based on discrete operations? |
Discrete |
| |
Is the simulation system based on continuous functions? |
Continuous |
| ||
Is the simulation system based on a hybrid of discrete and continuous methods? |
Hybrid |
| ||
Is the simulation system based on Monte Carlo sampling? |
Monte Carlo |
|
Close mapping |
Is the language representing point-based occurences in the world? |
Data representation |
| |
Is the language representing business data processing? |
Data processing |
| ||
Does the language consist of questions and answers? |
Erotetic systems |
| ||
Does the language represent a series of items in context? |
Content-reflexive |
| ||
Does the language represent a stream of logical propositions? |
Logic-reflexive |
|