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 preexisting 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? 
Operationoriented 

Is the language chiefly defined in terms of expressions that are evaluated? 
Expressionoriented 

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 onetoone 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 logicbased? 
Logical 
 
Are the expressions mathematicallybased? 
Mathematical 

Is the system expressed in terms of state transitions? 
State transition tables 
 
Is the system expressed in terms of state charts? 
Statecharts 
 
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 Lambdabased, but not derived from either FP or LISP? 
Other lambda 

Specific 
Is the representation based on 1dimensional structures? 
Rank 1 
 
Is the representation based on 2dimensional structures? 
Rank 2 
 
Is the representation based on folded 2dimensional structures? 
Rank 2 folded 
 
Is the representation based on 3dimensional structures? 
Rank 3 and greater 

Generic 
Is the representation based on a generalised abstract object? 
Objectoriented 
 
Is the representation based on a generalised theory of abstraction? 
Theoretical incl category based 

Phenomenological 
Is the phenomenon solely soundrelated? 
Soundrelated 
 
Is the phenomenon solely imagerelated? 
Imagerelated 
 
Is the phenomenon soundandimage related? 
AVrelated 
 
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 pointbased 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? 
Contentreflexive 
 
Does the language represent a stream of logical propositions? 
Logicreflexive 
