Movatterモバイル変換


[0]ホーム

URL:


Jump to content
WikipediaThe Free Encyclopedia
Search

History of programming languages

From Wikipedia, the free encyclopedia

For a detailed timeline of events, seeTimeline of programming languages. For the conference series, seeHistory of Programming Languages.
For broader coverage of this topic, seeProgramming language.
This article'slead sectionmay be too short to adequatelysummarize the key points. Please consider expanding the lead toprovide an accessible overview of all important aspects of the article.(February 2018)
History of computing
Hardware
Software
Computer science
Modern concepts
By country
Timeline of computing
Glossary of computer science

Thehistory of programming languages spans from documentation of early mechanical computers to modern tools forsoftware development. Early programming languages were highly specialized, relying onmathematical notation and similarly obscuresyntax.[1] Throughout the 20th century, research incompiler theory led to the creation ofhigh-level programming languages, which use a more accessible syntax to communicate instructions.

The first high-level programming language wasPlankalkül, created byKonrad Zuse between 1942 and 1945.[2] The first high-level language to have an associatedcompiler was created byCorrado Böhm in 1951, for hisPhD thesis.[3] The first commercially available language wasFORTRAN (FORmula TRANslation), developed in 1956 (first manual appeared in 1956, but first developed in 1954) by a team led byJohn Backus atIBM.

Early history

[edit]

During 1842–1849,Ada Lovelace translated the memoir of Italian mathematicianLuigi Menabrea aboutCharles Babbage's newest proposed machine: theAnalytical Engine; she supplemented the memoir with notes that specified in detail a method for calculatingBernoulli numbers with the engine, recognized by most historians as the world's first published computer program.[4]

Jacquard Looms and Charles Babbage'sDifference Engine both were designed to utilizepunched cards,[5][6] which would describe the sequence of operations that their programmable machines should perform.

The first computercodes were specialized for their applications: e.g.,Alonzo Church was able to express thelambda calculus in a formulaic way, and theTuring machine was an abstraction of the operation of a tape-marking machine.

First programming languages

[edit]

In the 1940s, the first recognizably modern electrically powered computers were created. The limited speed andmemory capacity forced programmers to write hand-tunedassembly language programs. It was eventually realized that programming in assembly language required a great deal of intellectual effort.[citation needed]

An early proposal for ahigh-level programming language wasPlankalkül, developed byKonrad Zuse for hisZ1 computer between 1942 and 1945, but not implemented at the time.[7]

The first functioning programming languages designed to communicate instructions to a computer were written in the early 1950s.John Mauchly'sShort Code, proposed in 1949, was one of the first high-level languages ever developed for anelectronic computer.[8] Unlikemachine code, Short Code statements representedmathematical expressions in an understandable form. However, the program had to beinterpreted into machine code every time it ran, making the process much slower than running the equivalent machine code.

In the early 1950s,Alick Glennie developedAutocode, possibly the first compiled programming language, at theUniversity of Manchester. In 1954, a second iteration of the language, known as the "Mark 1 Autocode", was developed for theMark 1 byR. A. Brooker. Brooker, with the University of Manchester, also developed an autocode for theFerranti Mercury in the 1950s. The version for theEDSAC 2 was devised byDouglas Hartree of theUniversity of Cambridge Mathematical Laboratory in 1961. Known as EDSAC 2 Autocode, it was a straight development from Mercury Autocode, adapted for local circumstances, and was noted for itsobject code optimization and source-language diagnostics, which were advanced for the time. A contemporary but separate thread of development,Atlas Autocode was developed for theUniversity of ManchesterAtlas 1 machine.

In 1954,FORTRAN was invented at IBM by a team led byJohn Backus; it was the first widely used high-level general-purpose language to have a functional implementation, in contrast to only a design on paper.[9][10] When FORTRAN was first introduced, it was viewed with skepticism due to bugs, delays in development, and the comparative efficiency of "hand-coded" programs written in assembly.[11] However, in a hardware market that was rapidly evolving, the language eventually became known for its efficiency. It is still a popular language forhigh-performance computing[12] and is used for programs that benchmark and rank the world'sTOP500 fastest supercomputers.[13]

Another early programming language was devised byGrace Hopper in the US, namedFLOW-MATIC. It was developed for theUNIVAC I atRemington Rand during the period from 1955 until 1959. Hopper found that businessdata processing customers were uncomfortable withmathematical notation, and in early 1955, she and her team wrote a specification for anEnglish language programming language and implemented a prototype.[14] The FLOW-MATIC compiler became publicly available in early 1958 and was substantially complete in 1959.[15] Flow-Matic was a major influence in the design ofCOBOL, since only it and its direct descendantAIMACO were in use at the time.[16]

Other languages still in use today includeLISP (1958), invented byJohn McCarthy, andCOBOL (1959), created by the Short Range Committee. Another milestone in the late 1950s was the publication, by a committee of American and European computer scientists, of "a new language for algorithms"; theALGOL 60 Report (the "ALGOrithmicLanguage"). This report consolidated many ideas circulating at the time and featured three key language innovations:

  • nested block structure: code sequences and associated declarations could be grouped intoblocks without having to be turned into separate, explicitly named procedures;
  • lexical scoping: a block could have its own private variables, procedures, and functions, invisible to code outside that block, that is,information hiding.

Another innovation, related to this, was in how the language was described:

  • a mathematically exact notation,Backus–Naur form (BNF), was used to describe the language's syntax. Nearly all subsequent programming languages have used a variant of BNF to describe thecontext-free portion of their syntax.

ALGOL 60 was particularly influential in the design of later languages, some of which soon became more popular. TheBurroughs large systems were designed to be programmed in an extended subset of ALGOL.

ALGOL's key ideas were continued, producingALGOL 68:

  • syntax andsemantics 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 ofVan 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 simplerPascal language.

Logos
Fortran
Lisp
Simula

Some notable languages that were developed in this period include:

Establishing fundamental paradigms

[edit]
Logos
Scheme
C
Smalltalk

The period from the late 1960s to the late 1970s brought a major flowering of programming languages. Most of the major languageparadigms now in use were invented in this period:[original research?]

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 ofgoto. A significant fraction of programmers believed that, even in languages that providegoto, it is badprogramming style to use it except in rare circumstances. This debate was closely related to language design: some languages had nogoto, 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 withPascal, 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

[edit]
Logos
MATLAB
Erlang
Tcl
C++

The 1980s were years of relative consolidation inimperative 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 standardizedAda, a systems programming language intended for use by defense contractors. In Japan and elsewhere, vast sums were spent investigating so-calledfifth-generation programming languages that incorporated logic programming constructs. The functional languages community moved to standardize ML and Lisp. Research inMiranda, a functional language withlazy 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 ofmodules, or large-scale organizational units of code.Modula, Ada, and ML all developed notable module systems in the 1980s. Module systems were often wedded togeneric programming constructs: generics being, in essence, parametrized modules[citation needed] (see alsoPolymorphism (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 theArgus and Emerald systems adapted object-oriented programming todistributed computing systems.

The 1980s also brought advances in programming language implementation. Thereduced instruction set computer (RISC) movement incomputer architecture postulated that hardware should be designed forcompilers rather than for human assembly programmers. Aided bycentral 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

[edit]
Logos
Haskell
Lua
PHP
Rebol
Python
Ruby
Ocaml

The rapid growth of the Internet in the mid-1990s was the next major historic event in programming languages. By opening up a radically new platform for computer systems, the Internet created an opportunity for new languages to be adopted. In particular, theJavaScript programming language rose to popularity because of its early integration with the Netscape Navigator web browser. Various other scripting languages achieved widespread use in developing customized applications for web servers such as PHP. The 1990s saw no fundamental novelty inimperative languages, but much recombination and maturation of old ideas. This era began the spread offunctional languages. A big driving philosophy was programmer productivity. Manyrapid application development (RAD) languages emerged, which usually came with anintegrated development environment (IDE),garbage collection, and were descendants of older languages. All such languages wereobject-oriented. These includedObject Pascal, Objective Caml (renamedOCaml),Visual Basic, andJava. Java in particular received much attention.

More radical and innovative than the RAD languages were the newscripting languages. These did not directly descend from other languages and featured new syntaxes and more liberal incorporation of features. Many consider these scripting languages to be more productive than even the RAD languages, but often because of choices that make small programs simpler but large programs more difficult to write and maintain.[citation needed] Nevertheless, scripting languages came to be the most prominent ones used in connection with the Web.

Some programming languages included other languages in their distribution to save the development time. for example both ofPython andRuby includedTcl to supportGUI programming through libraries likeTkinter.

Some notable languages that were developed in this period include:

2000s: programming paradigms

[edit]
Logos
D
Groovy
PowerShell
Scratch
Go
Clojure
Haxe

Programming language evolution continues, and more programming paradigms are used in production.

Some of the trends have included:

Big Tech companies introduced multiple new programming languages that are designed to serve their needs. for example:

Some notable languages developed during this period include:

2010s: the Mobile age

[edit]
Logos
Rust
Dart
Swift
Kotlin
TypeScript
C#
Ring
Julia
Zig

Programming language evolution continues with the rise of new programming domains.

  • Increased interest in distribution and mobility.
  • Integration with databases, includingXML andrelational databases.
  • Open source as a developmental philosophy for languages, including the GNU Compiler Collection and languages such asPHP,Python,Ruby, andScala.
  • Massively parallel languages for GPU graphics processing units and supercomputer arrays, includingOpenCL
  • Early research intoquantum computing programming languages (seelist)
  • Early research in applyingartificial intelligence (AI) methods to generate code using AI like usingGPT-3 andGemini.[18][19]
  • Multiple new programming languages tried to provide a modern replacement for the C programming language.
  • Many new programming languages are influenced by the popular dynamic languages and promised adding type safety without decreasing the productivity.
  • Many new programming languages usesLLVM in their implementation.

ManyBig Tech companies continued introducing new programming languages that are designed to serve their needs and provides first-class support for their platforms. for example:

Some notable languages developed during this period include:[20][21]

Other new programming languages includeElm,Ballerina,Red,Crystal,V (Vlang),Reason.

2020s: Current trends

[edit]
Logos
Power Fx
Carbon

The development of new programming languages continues, and some new languages appears with focus on providing a replacement for current languages. These new languages try to provide the advantages of a known language like C++ (versatile and fast) while adding safety or reducing complexity. Other new languages try to bring ease of use as provided by Python while adding performance as a priority. Also, the growing of Machine Learning and AI tools still plays a big rule behind these languages' development, where some visual languages focus on integrating these AI tools while other textual languages focus on providing more suitable support for developing them.[22][23][24]

Some notable new programming languages include:

Key figures

[edit]
Some innovators
Dennis Ritchie
Niklaus Wirth
Grace M. Hopper
Bjarne Stroustrup
Anders Hejlsberg
Guido van Rossum
Yukihiro Matsumoto
James Gosling
Larry Wall

Some key people who helped develop programming languages:

See also

[edit]

References

[edit]
  1. ^Hopper (1978) p. 16.
  2. ^Knuth, Donald E.; Pardo, Luis Trabb. "Early development of programming languages".Encyclopedia of Computer Science and Technology.7. Marcel Dekker:419–493.
  3. ^Corrado Böhm's PhD thesis
  4. ^Fuegi, J.; Francis, J. (October–December 2003), "Lovelace & Babbage and the creation of the 1843 'notes'",Annals of the History of Computing,25 (4):16–26,Bibcode:2003IAHC...25d..16F,doi:10.1109/MAHC.2003.1253887
  5. ^Bales, Rebecca (24 July 2023)."Charles Babbage Analytical Engine Explained".history-computer.com.
  6. ^Swade, Doron."The Engines".computerhistory.org. Retrieved23 February 2024.
  7. ^In 1998 and 2000 compilers were created for the language as a historical exercise.Rojas, Raúl, et al. (2000). "Plankalkül: The First High-Level Programming Language and its Implementation". Institut frame Informatik, Freie Universität Berlin, Technical Report B-3/2000.(full text)
  8. ^Sebesta, W.S. (2006).Concepts of Programming Languages. Pearson/Addison-Wesley. p. 44.ISBN 978-0-321-33025-3.
  9. ^"Fortran creator John Backus dies – Tech and gadgets". NBC News. 2007-03-20. Retrieved2010-04-25.
  10. ^"CSC-302 99S : Class 02: A Brief History of Programming Languages". Math.grin.edu. Archived fromthe original on 2010-07-15. Retrieved2010-04-25.
  11. ^Padua, David (Feb 2000)."The FORTRAN I Compiler"(PDF).Computing in Science and Engineering.2 (1):70–75.Bibcode:2000CSE.....2a..70P.doi:10.1109/5992.814661. Retrieved7 November 2019.
  12. ^Eugene Loh (18 June 2010)."The Ideal HPC Programming Language".ACM Queue.8 (6). Association of Computing Machines.
  13. ^"HPL – A Portable Implementation of the High-Performance Linpack Benchmark for Distributed-Memory Computers". Retrieved2015-02-21.
  14. ^Hopper (1978) p. 16.
  15. ^Sammet (1969) p. 316
  16. ^Sammet (1978) p. 204.
  17. ^Gordon, Michael J. C. (1996)."From LCF to HOL: a short history"(PDF). p. 3. Retrieved2015-05-04.Edinburgh LCF, including the ML interpreter, was implemented in Lisp.
  18. ^Manjoo, Farhad (July 29, 2020)."How Do You Know a Human Wrote This?".The New York Times.ISSN 0362-4331. RetrievedAugust 4, 2020.
  19. ^Milmo, Dan (2023-12-06)."Google says new AI model Gemini outperforms ChatGPT in most tests".The Guardian.ISSN 0261-3077. Retrieved2024-02-26.
  20. ^"TIOBE Index, Top 100 programming languages according to TIOBE Index".www.tiobe.com.TIOBE index. 22 February 2024.
  21. ^"GitHub's Octoverse 2018". Archived fromthe original on 2019-03-22.
  22. ^"Introducing new Copilot features for Power Fx".Microsoft. 29 April 2024.
  23. ^"Carbon language aims to be a better C++".
  24. ^"Modular Makes a Case for Mojo Programming Language, Based on Python". 5 April 2024.
  25. ^Rojas, Raúl; Hashagen, Ulf (2002).The First Computers: History and Architectures. MIT Press. p. 292.ISBN 978-0262681377. RetrievedOctober 25, 2013.

Further reading

[edit]

External links

[edit]
Retrieved from "https://en.wikipedia.org/w/index.php?title=History_of_programming_languages&oldid=1312815541"
Categories:
Hidden categories:

[8]ページ先頭

©2009-2025 Movatter.jp