- There are Natural Languages such as Burmese and English.
- There are many Programming Languages.
In the first conference on “History of Programming Languages”, thirteen languages were presented.
There are hundreds (and possibly thousands) of programming languages that have been proposed and/or implemented.
At a given time, there is a relatively small group of “preferred” programming languages.
- In Computer Science and applications, a Programming Language is a language used to program (e.g. instruct) computers.
- In the early days, computer engineers and selected programmers have to program in Machine Language (with strings of Zeroes and Ones). They are due partly to the choice of Binary Number System as the basis of designing Arithmetic and Logic Unit (ALU) of the computer.
- [Obsolete} : On the ICL 1902S computer, we often have to use the 24 keys to enter short pieces of Machine Code. That is history.
- To bridge the human users and the computers, the next step was to use Assembly Languages such as
(a) Simple/Symbolic Assembly Language
(b) Macro Assembly Language.
- An Assembler translates a program in Assembly Language into Machine Language instructions.
- A Macro Processor translates Macros (a well-defined group of Assembly Language instructions) into Machine Language instructions.
- The development of the first dozen (or so) programming languages can be found in the Proceedings of the first HOPL (History of Programming Languages) Conference.
- Currently, there are thousands of programming languages (some for academic purposes) and a limited number used for production.
Over the years, the style of programming evolved. The list is not exhaustive.
- Procedural programming (e.g. telling the computer system what to do, emphasis on the “verbs”)
- Non-procedural programming (e.g. telling the computer system what one wants)
- Object Oriented programming (e.g. emphasis on the “nouns”)
- Functional programming (e.g. based on “functions”)
- Logic programming (e.g. based on “Horn logic” and similar logic systems)
- Top down step wise development
- Bottom up & Middle out techniques
- AI programming
Within each paradigm, there are several programming languages with known advantages and limitations.
Alan Mathias Turing presented a theoretical model called “Turing Machine”, which is primitive but has the computational power of modern computers.
The ACM Turing Award (named in honor of Alan Turing) is considered the “Nobel Prize in Computing”.
Alan Perlis, a pioneer Computer Scientist and Programming Language Designer, defined a “Turing Tar Pit, where everything is possible [to compute], but nothing is easy.”
Alan Perlis was an early recipient of the ACM Turing Award.