Content deleted Content added
No edit summary Tag: Reverted |
Replacing Kotlin_logo_2021.svg with File:Kotlin_logo_(2021-present).svg (by CommonsDelinker because: File renamed: Criterion 4 (harmonizing names of file set) · to match the name of othe |
||
(8 intermediate revisions by 6 users not shown) | |||
Line 6:
{{History of computing}}
The first high-level programming language was [[Plankalkül]], created by [[Konrad Zuse]] between 1942 and 1945.<ref>{{cite journal |last1=Knuth |first1=Donald E. |last2=Pardo |first2=Luis Trabb |title=Early development of programming languages |journal=Encyclopedia of Computer Science and Technology |volume=7 |pages=419–493 |publisher=Marcel Dekker}}</ref> The first high-level language to have an associated [[compiler]] was created by [[Corrado Böhm]] in 1951, for his [[Doctor of Philosophy|PhD]] thesis.<ref>[http://e-collection.library.ethz.ch/eserv/eth:32719/eth-32719-02.pdf Corrado Böhm's PhD thesis]</ref> The first commercially available language was [[FORTRAN]] (FORmula TRANslation), developed in 1956 (first manual appeared in 1956, but first developed in 1954) by a team led by [[John Backus]] at [[IBM]].
== Early history ==
During
[[Jacquard Loom]]s and Charles Babbage's [[Difference engine|Difference Engine]] both were designed to utilize [[punched card]]s,<ref name="Bales">{{cite web |last=Bales |first=Rebecca |title=Charles Babbage Analytical Engine Explained|url=https://history-computer.com/charles-babbage-analytical-engine/|website=history-computer.com|date=24 July 2023}}</ref><ref name="Swade">{{cite web |last=Swade |first=Doron |title=The Engines|url=https://www.computerhistory.org/babbage/engines/|website=computerhistory.org|access-date=23 February 2024}}</ref> which would describe the sequence of operations that their programmable machines should perform.
Line 44:
* syntax and [[Semantics_(computer_science)|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 of being
{{Multiple image
Line 85:
* 1967 – [[BCPL]] (forerunner to C)
* 1967 – [[Logo (programming language)|Logo]] (an educational language that later influenced [[Smalltalk]] and [[Scratch (programming language)|Scratch]]).
* 1968 – [[Algol 68]]
{{div col end}}
Line 108 ⟶ 109:
* '''[[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 (programming language)|ML]]''' built a polymorphic type system (invented by [[Robin Milner]] in 1973) on Lisp,<ref name="Gordon1996">{{cite web |last=Gordon |first=Michael J. C. |author-link=Michael J. C. Gordon |year=1996 |title=From LCF to HOL: a short history |url=http://www.cl.cam.ac.uk/~mjcg/papers/HolHistory.pdf |page=3 |quote=Edinburgh LCF, including the ML interpreter, was implemented in Lisp. |access-date=2015-05-04}}</ref> pioneering [[type system|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 <code>[[goto]]</code>. A significant fraction of programmers believed that, even in languages that provide <code>goto</code>, it is bad [[programming style]] to use it except in rare circumstances. This debate was closely related to language design: some languages had no <code>goto</code>, which forced the use of structured programming.
Line 292 ⟶ 295:
| image8 = Swift logo.svg
| caption8 = Swift
| image9= Kotlin logo (2021-present).svg
| caption9 = Kotlin
| image10 = Typescript.svg
|