5.4 KiB
| title | chunk | source | category | tags | date_saved | instance |
|---|---|---|---|---|---|---|
| History of programming languages | 2/4 | https://en.wikipedia.org/wiki/History_of_programming_languages | reference | science, encyclopedia | 2026-05-05T16:17:21.154089+00:00 | kb-cron |
syntax and semantics became even more orthogonal, with anonymous routines, a recursive typing system with higher-order functions, etc.; not only the context-free part, but the full language syntax and semantics were defined formally, in terms of Van Wijngaarden grammar, a formalism designed specifically for this purpose. ALGOL 68's many little-used language features (for example, concurrent and parallel blocks) and its complex system of syntactic shortcuts and automatic type coercions made it unpopular with implementers and gained it a reputation for being difficult. Niklaus Wirth actually walked out of the design committee to create the simpler Pascal language.
Some notable languages that were developed in this period include:
== Establishing fundamental paradigms ==
The period from the late 1960s to the late 1970s brought a major flowering of programming languages. Most of the major language paradigms now in use were invented in this period:
Speakeasy, developed in 1964 at Argonne National Laboratory (ANL) by Stanley Cohen, is an object-oriented programming system (OOPS), much like the later MATLAB, IDL and Mathematica numerical package. Speakeasy has a clear Fortran foundation syntax. It first addressed efficient physics computing internally at ANL, was modified for research use (as "Modeleasy") for the Federal Reserve Board in the early 1970s and then was made available commercially; Speakeasy and Modeleasy are still in use. Simula, invented in the late 1960s by Nygaard and Dahl as a superset of ALGOL 60, was the first language designed to support object-oriented programming. FORTH, the earliest concatenative programming language was designed by Charles Moore in 1969 as a personal development system while at the National Radio Astronomy Observatory (NRAO). C, an early systems programming language, was developed by Dennis Ritchie and Ken Thompson at Bell Labs between 1969 and 1973. Smalltalk (mid-1970s) provided a complete ground-up design of an object-oriented language. Prolog, designed in 1972 by Alain Colmerauer, Phillipe Roussel, and Robert Kowalski, was the first logic programming language. ML built a polymorphic type system (invented by Robin Milner in 1973) on Lisp, pioneering statically typed functional programming languages. Each of these languages spawned an entire family of descendants, and most modern languages count at least one of them in their ancestry. The 1960s and 1970s also saw considerable debate over the merits of "structured programming", which essentially meant programming without the use of goto. A significant fraction of programmers believed that, even in languages that provide goto, it is bad programming style to use it except in rare circumstances. This debate was closely related to language design: some languages had no goto, which forced the use of structured programming. To provide even faster compile times, some languages were structured for "one-pass compilers" which expect subordinate routines to be defined first, as with Pascal, where the main routine, or driver function, is the final section of the program listing. Some notable languages that were developed in this period include:
== 1980s: consolidation, modules, performance ==
The 1980s were years of relative consolidation in imperative languages. Rather than inventing new paradigms, all of these movements elaborated upon the ideas invented in the prior decade. C++ combined object-oriented and systems programming. The United States government standardized Ada, a systems programming language intended for use by defense contractors. In Japan and elsewhere, vast sums were spent investigating so-called fifth-generation programming languages that incorporated logic programming constructs. The functional languages community moved to standardize ML and Lisp. Research in Miranda, a functional language with lazy evaluation, began to take hold in this decade. One important new trend in language design was an increased focus on programming for large-scale systems through the use of modules, or large-scale organizational units of code. Modula, Ada, and ML all developed notable module systems in the 1980s. Module systems were often wedded to generic programming constructs: generics being, in essence, parametrized modules (see also Polymorphism (computer science)). Although major new paradigms for imperative programming languages did not appear, many researchers expanded on the ideas of prior languages and adapted them to new contexts. For example, the languages of the Argus and Emerald systems adapted object-oriented programming to distributed computing systems. The 1980s also brought advances in programming language implementation. The reduced instruction set computer (RISC) movement in computer architecture postulated that hardware should be designed for compilers rather than for human assembly programmers. Aided by central processing unit (CPU) speed improvements that enabled increasingly aggressive compiling methods, the RISC movement sparked greater interest in compiler technology for high-level languages. Language technology continued along these lines well into the 1990s. Some notable languages that were developed in this period include:
== 1990s: the Internet age ==