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

go to 2

Is the informing principle external?

Exogenous

go to 3

                                                                                                                                                                                                 

2

Endogenous

Is the language defined in terms of (higher or lower order) steps to be taken?

Algorithmic

go to 4

Is the language defined in terms of (higher or lower order) functions which can be used?

Functional

go to 5

                                                                         

3

Exogenous

Is the language defined in terms of (higher or lower order)concepts suitable for representing the world?

Structural

go to 6

Is the language defined in terms of mirroring the world as closely as possible?

Reflexive

go to 7

                                                                         

4

Algorithmic

Does the language allow for the steps to be expressed as a series of questions and answers?

Conversational

go to 8

Does the language use control structures to indicate instructions order and modularity?

Imperative

go to 9

Does the language use control structures to indicate instructions order and modularity?

Spatial

go to 10

                                                                          

5

Functional

Is the language chiefly defined in terms of possible operations?

Operation-oriented

go to 11

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

Expression-oriented

go to 12

Is the language defined in terms of states and transitions?

State/flow

go to 13

Is the language defined in terms of a functional calculus?

Lambda calculus

go to 14

                                                                          

6

Structural

Does the language summarise the world in terms of a single discrete structure?

Specific

go to 15

Does the language summarise the world in terms of repurposable generic structures?

Generic

go to 16

                                                                          

7

Reflexive

Does the language describe the world in terms of phenomena that can be measured?

Phenomenological

go to 17

Does the language describe the world by creating a simulated model of it?

Simulating

go to 18

Does the language describe the world by creating a one-to-one mapping of it?

Close mapping

go to 19

                                                                                                                                                                                                 

8

Conversational

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

 

                                                                                                                                                                                                 

9

Imperative

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

 

                                                                                                                                                                                                 

10

Spatial

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

 

                                                                                                                                                                                                 

11

Operation-oriented

Does the language have a set of standardised fixed operators?

Fixed operation

 

Does the language have a set of mutable operators?

Mutable operation

 

                                                                                                                                                                                                 

12

Expression-oriented

Are the expressions logic-based?

Logical

 

Are the expressions mathematically-based?

Mathematical

 

                                                                                                                                                                                                 

13

State/flow

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

 

                                                                                                                                                                                                 

14

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

 

 

15

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

 

                                                                                                                                                                                                   

16

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

 

 

17

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

 

 

18

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

 

 

19

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