The seismic kernel system—a large-scale exercise in Fortran 77 portability
Software—Practice & Experience
Flow diagrams, turing machines and languages with only two formation rules
Communications of the ACM
Power-Law Distributions of Component Size in General Software Systems
IEEE Transactions on Software Engineering
Hi-index | 0.00 |
A search of the web reveals that natural language is considered to be language which a human would consider natural and unnatural language is language a human would consider artificial. This clearly raises interpretation questions and plenty of leeway so I am going to take the latter view here and bend it somewhat to consider programming languages as particularly good examples of unnatural language. Programming languages are something like 60 years old. Their evolution tells us much about the triumph of creativity over parsimony; the need for diversity and the frequent triumph of politics over common sense or logic. Yet their minimum set of features is defined by the beauty and simplicity of the Böhm-Jacopini theorem [1] and their underlying similarity in information theoretic terms is shown in the theorem proved by myself in [3],[4]. This essay is a reflection on programming languages both old and new, engineering, systems evolution and the role of education.