Content deleted Content added
m Reverted edits by 85.199.231.44 (talk) (AV) |
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 |
||
(7 intermediate revisions by 5 users not shown) | |||
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
|