Geschichte der Programmiersprachen

Das Geschichte der Programmiersprachen Spans von der Dokumentation früher mechanischer Computer bis hin zu modernen Tools für die Softwareentwicklung. Frühe Programmiersprachen waren hochspezialisiert und stützten sich auf mathematische Notation und ähnlich obskure Syntax.[1] Im Laufe des 20. Jahrhunderts Forschung in Compiler Die Theorie führte zur Schaffung von Programmiersprachen auf hoher Ebene, die eine besser zugängliche Syntax verwenden, um Anweisungen zu kommunizieren.

Die erste Programmiersprache auf hoher Ebene war Plankalkül, erstellt von Konrad Zuse Zwischen 1942 und 1945.[2] Die erste hochrangige Sprache, die eine zugeordnete hat Compiler wurde von Corrado Böhm 1951 für seine Doktorarbeit.[3] Die erste im Handel erhältliche Sprache war Forran (Formelübersetzung), entwickelt 1956 (erstes Handbuch erschien 1956, aber erstmals 1954 entwickelt) von einem Team unter der Leitung John Backus bei IBM.

Frühe Geschichte

1842–1849, Ada Lovelace Übersetzte die Memoiren des italienischen Mathematikers Luigi Menabrea um Charles BabbageDie neueste vorgeschlagene Maschine: die Analytischer Motor; Sie ergänzte die Memoiren mit Notizen, die im Detail eine Methode zur Berechnung festgelegt haben Bernoulli -Zahlen mit dem Motor, der von den meisten Historikern als erstes veröffentlichtes Computerprogramm der Welt anerkannt wurde.[4]

Die ersten Computercodes waren für ihre Anwendungen spezialisiert: z. B.,, Alonzo -Kirche war in der Lage, das auszudrücken Lambda -Kalkül auf formelhafte Weise und die Turing Maschine war eine Abstraktion des Betriebs einer Klebebandmaschine.

Jacquard tobs und Charles Babbag's Differenzmotor Beide hatten einfache Sprachen, um die Aktionen zu beschreiben, die diese Maschinen ausführen sollten, daher waren sie die Schöpfer der ersten Programmiersprache.

Erste Programmiersprachen

In den 1940er Jahren wurden die ersten erkennbar modernen elektrisch angetriebenen Computer erstellt. Die begrenzte Geschwindigkeits- und Speicherkapazität zwang die Programmierer, handabgestaltet zu schreiben Montagesprache Programme. Es wurde schließlich erkannt, dass die Programmierung in der Versammlungssprache viel intellektuelle Anstrengungen erforderte.

Ein früher Vorschlag für a Programmiersprache auf hoher Ebene war Plankalkül, entwickelt von Konrad Zuse für ihn Z1 -Computer Zwischen 1942 und 1945, aber zu dieser Zeit nicht umgesetzt.[5]

Die ersten funktionierenden Programmiersprachen, die in den frühen 1950er Jahren Anweisungen an einen Computer vermitteln konnten. John Mauchly's Kurzer Code, vorgeschlagen 1949, war eine der ersten hochrangigen Sprachen, die jemals für eine entwickelt wurden elektronischer Computer.[6] nicht wie Maschinensprache, Kurze Code -Anweisungen repräsentierten mathematische Ausdrücke in verständlicher Form. Das Programm musste jedoch sein interpretiert hinein Maschinensprache Jedes Mal, wenn es lief, wird der Prozess viel langsamer, als den äquivalenten Maschinencode auszuführen.

In den frühen 1950er Jahren, Alick Glennie aufgetreten Autocode, möglicherweise die erste kompilierte Programmiersprache, am Universität von Manchester. Im Jahr 1954 wurde eine zweite Iteration der Sprache, bekannt als "Mark 1 Autocode", für die Marke 1 von entwickelt R. A. Brooker. Brooker entwickelte auch einen Autocode für die Ferranti Quecksilber In den 1950er Jahren in Verbindung mit der University of Manchester. Die Version für die Edsac 2 wurde von entwickelt von Douglas HARTREE von Mathematische Labor der Universität von Cambridge 1961 als Edsac 2 AutoCode bekannt, war es eine gerade Entwicklung aus Mercury Autocode, die für lokale Umstände angepasst war, und wurde für seine Objektcodeoptimierung und Quellsprachdiagnostik festgestellt, die für die Zeit vorgezogen wurden. Ein zeitgenössischer, aber getrennter Entwicklungsfaden, Atlas Autocode wurde für die Universität von Manchester entwickelt Atlas 1 Maschine.

Im Jahr 1954, Forran wurde bei IBM von einem Team erfunden, das von angeführt wurde John Backus; Es war das erste weit verbreitete hochrangige Programmiersprache Allzweckes Programmiersprache eine funktionale Implementierung im Gegensatz zu einem Design auf Papier haben.[7][8] Als Forran zum ersten Mal eingeführt wurde, wurde es aufgrund von Fehlern, Verzögerungen in der Entwicklung und der vergleichenden Effizienz von "handkodierten" Programmen in der Versammlung mit Skepsis betrachtet.[9] In einem Hardwaremarkt entwickelte sich jedoch schnell; Die Sprache wurde schließlich für ihre Effizienz bekannt. Es ist immer noch eine beliebte Sprache für High Performance Computing[10] und wird für Programme verwendet, die die Welt bewerten und die Welt bewerten schnellste Supercomputer.[11]

Eine weitere frühe Programmiersprache wurde von entwickelt von Grace Hopper in den USA, gerufen Fließen matisch. Es wurde für die entwickelt Univac i bei Remington Rand In diesem Zeitraum von 1955 bis 1959 stellte Hopper fest, dass die Kunden der Geschäftsdaten mit mathematischer Notation unangenehm waren, und Anfang 1955 schrieben sie und ihr Team eine Spezifikation für eine Englisch Programmiersprache und implementierte einen Prototyp.[12] Der Flow-Matic-Compiler wurde Anfang 1958 öffentlich verfügbar und wurde 1959 im Wesentlichen abgeschlossen.[13] Flow-Matic war ein großer Einfluss auf die Gestaltung von Cobolda nur es und sein direkter Nachkomme Aimaco wurden damals tatsächlich verwendet.[14]

Andere Sprachen sind noch heute verwendet LISPELN (1958), erfunden von John McCarthy und Cobol (1959), geschaffen vom Kurzstreckenkomitee. Ein weiterer Meilenstein Ende der 1950er Jahre war die Veröffentlichung eines Ausschusses amerikanischer und europäischer Informatiker von "einer neuen Sprache für Algorithmen"; das Algol 60 Bericht (das "Algorithmisch LAnguage "). Dieser Bericht konsolidierte viele Ideen zu dieser Zeit und zeigte drei wichtige Sprachinnovationen:

  • verschachtelte Blockstruktur: Codesequenzen und zugehörige Deklarationen könnten in zusammengefasst werden Blöcke ohne zu separate, explizit benannte Verfahren;
  • lexikaler Scoping: Ein Block könnte seine eigenen privaten Variablen, Verfahren und Funktionen haben, die außerhalb dieses Blocks, dh, unsichtbar sind, dh, Informationen verstecken sich.

Eine weitere Innovation, die sich darauf bezieht, war in der Beschreibung der Sprache:

  • eine mathematisch genaue Notation, Backus -Naur -Form (BNF) wurde verwendet, um die Syntax der Sprache zu beschreiben. Fast alle nachfolgenden Programmiersprachen haben eine Variante von BNF verwendet, um die zu beschreiben kontextfrei Teil ihrer Syntax.

Algol 60 war besonders einflussreich bei der Gestaltung späterer Sprachen, von denen einige bald beliebter wurden. Das Burroughs große Systeme wurden so konzipiert, dass sie in einer erweiterten Untergruppe von Algol programmiert werden.

Die Schlüsselideen von Algol wurden fortgesetzt und produziert Algol 68:

  • Syntax und Semantik wurden noch orthogonaler, mit anonymen Routinen, einem rekursiven Typierungssystem mit Funktionen höherer Ordnung usw.;
  • Nicht nur der kontextfreie Teil, sondern auch die vollständige Sprachsyntax und die Semantik wurden in Bezug Van Wijngaarden Grammatik, ein Formalismus, der speziell für diesen Zweck entworfen wurde.

Die vielen wenig verwendeten Sprachmerkmale von Algol 68 (z. B. gleichzeitige und parallele Blöcke) und sein komplexes System syntaktischer Verknüpfungen und automatischen Zwangszwecke machten es unpopulär mit Implementierern und erlangten es zum Ruf des Seins schwierig. Niklaus Wirth Gingen tatsächlich aus dem Designkomitee, um die Einfacheren zu schaffen Pascal Sprache.

Forran

Einige bemerkenswerte Sprachen, die in dieser Zeit entwickelt wurden, sind:

Grundlage grundlegender Paradigmen

Planen

Die Zeit der späten 1960er bis Ende der 1970er Jahre brachte eine große Blüte von Programmiersprachen. Die meisten der derzeit verwendeten Hauptsprachenparadigmen wurden in dieser Zeit erfunden:[Originalforschung?]

Jede dieser Sprachen brachte eine ganze Familie von Nachkommen hervor, und die meisten modernen Sprachen zählen mindestens einen von ihnen in ihrer Abstammung.

In den 1960er und 1970er Jahren diskutierte auch die Vorzüge von "erheblich"Strukturierte Programmierung", was im Wesentlichen das Programmieren ohne die Verwendung von" bedeutete "gehe zu". Ein bedeutender Teil der Programmierer glaubte, dass es schlimm ist, selbst in Sprachen, die" Goto "liefern, schlecht ist Programmierstil es zu verwenden, außer unter seltenen Umständen. Diese Debatte stand eng mit dem Sprachdesign zusammen: Einige Sprachen beinhalteten überhaupt keine "Goto", die dem Programmierer strukturierte Programmierung erzwang.

Um noch schnellere Kompilierungszeiten zu liefern, wurden einige Sprachen strukturiert "Ein-Pass-Compiler"Was erwarten, dass untergeordnete Routinen zuerst definiert werden, wie bei Pascal, wo die Hauptroutine oder die Treiberfunktion der letzte Abschnitt der Programmliste ist.

Einige bemerkenswerte Sprachen, die in dieser Zeit entwickelt wurden, sind:

1980er Jahre: Konsolidierung, Module, Leistung

Matlab
Erlang
Tcl

Die 1980er Jahre waren jahrelange relative Konsolidierung in Imperative Sprachen. Anstatt neue Paradigmen zu erfinden, wurden all diese Bewegungen auf die im vergangenen Jahrzehnt erfundenen Ideen ausgearbeitet. C ++ Kombinierte objektorientierte und Systemprogrammierung. Die Regierung der Vereinigten Staaten standardisiert standardisiert Ada, Eine Systemprogrammiersprache, die für die Verwendung von Verteidigungsunternehmern bestimmt ist. In Japan und anderswo wurden große Summen damit verbracht, sogenannte Untersuchungen zu untersuchen Programmiersprachen der fünften Generation Das umfasste logische Programmierkonstrukte. Die Community der funktionalen Sprachen wurde bewegt, um ML und Lisp zu standardisieren. Forschung in Miranda, eine funktionale Sprache mit faule Bewertung, begann in diesem Jahrzehnt zu ergreifen.

Ein wichtiger neuer Trend im Sprachdesign war ein verstärkter Fokus auf die Programmierung für groß angelegte Systeme durch die Verwendung von Module, oder groß angelegte Organisationseinheiten von Code. Modula, ADA und ML entwickelten in den 1980er Jahren alle bemerkenswerten Modulsysteme. Modulsysteme wurden oft mit aufgeheiratet mit generische Programmierung Konstrukte --- Generika sein im Wesentlichen parametrisierte Module (siehe auch Polymorphismus in objektorientierter Programmierung).

Obwohl große neue Paradigmen für imperative Programmiersprachen nicht erschienen waren, erweiterten viele Forscher die Ideen früherer Sprachen und adaptierten sie an neue Kontexte. Zum Beispiel die Sprachen der Sprachen der Argus und Emerald-Systeme adaptierte objektorientierte Programmierung an verteilte Systeme.

Die 1980er Jahre brachten auch Fortschritte bei der Implementierung der Programmiersprache. Das RISC Bewegung in Rechnerarchitektur postuliert, dass Hardware für für die Auseinandersetzung sein sollte Compiler eher als für Programmierer der menschlichen Versammlung. Geholfen von Prozessor Geschwindigkeitsverbesserungen, die zunehmend aggressive Kompilierungstechniken ermöglichten, weckte die RISC-Bewegung ein größeres Interesse an Kompilierungstechnologie für Sprachen auf hoher Ebene.

Die Sprachtechnologie setzte sich bis in die neunziger Jahre fort.

Einige bemerkenswerte Sprachen, die in dieser Zeit entwickelt wurden, sind:

1990er Jahre: Das Internet -Alter

Haskell
Lua
Php
Rebol

Das schnelle Wachstum des Internets Mitte der neunziger Jahre war das nächste große historische Ereignis in Programmiersprachen. Durch die Eröffnung einer radikal neuen Plattform für Computersysteme hat das Internet eine Gelegenheit für die Übernahme neuer Sprachen geschaffen. Insbesondere die JavaScript Die Programmiersprache wurde aufgrund seiner frühen Integration in den Netscape Navigator -Webbrowser an Popularität erhoben. Verschiedene andere Skriptsprachen erreichten weit verbreitete Verwendung bei der Entwicklung maßgeschneiderter Anwendungen für Webserver wie PHP. In den 1990er Jahren gab es keine grundlegende Neuheit in Imperative Sprachen, aber viel Rekombination und Reifung alter Ideen. Diese Ära begann die Verbreitung von Funktionssprachen. Eine große Fahrphilosophie war die Programmiererproduktivität. Viele "schnelle Anwendungsentwicklung" (RAD) Sprachen entstanden, die normalerweise mit einem geliefert wurden Ide, Müllsammlungund waren Nachkommen älterer Sprachen. Alle diese Sprachen waren objektorientierter. Diese enthielten Objekt Pascal, Visual Basic, und Java. Insbesondere Java erhielt viel Aufmerksamkeit.

Radikaler und innovativer als die rad -Sprachen waren die neuen Skriptsprachen. Diese stiegen nicht direkt aus anderen Sprachen ab und enthielten neue Syntaxe und liberalere Einbindung von Merkmalen. Viele betrachten diese Skriptsprachen als produktiver als selbst die RAD -Sprachen, aber oft aufgrund der Entscheidungen, die kleine Programme einfacher, aber große Programme erschweren, schwieriger zu schreiben und zu warten. Trotzdem wurden die Skriptsprachen die bekanntesten im Zusammenhang mit dem Web verwendet.

Einige bemerkenswerte Sprachen, die in dieser Zeit entwickelt wurden, sind:

Aktuelle Entwicklungen

Die Programmiersprache Evolution wird sowohl in Industrie als auch in der Forschung fortgesetzt. Einige der jüngsten Trends zählen:

D Programmiersprache
Groovig
Power Shell
Rost
Kratzen

Einige bemerkenswerte Sprachen, die in dieser Zeit entwickelt wurden, umfassen:[17][18]

Andere neue Programmiersprachen umfassen Rot, Kristall, Ulme, Hacken, Haxe, Zick und Grund.

Schlüsselfiguren

Dennis Ritchie
Niklaus Wirth
Grace M. Hopper
Bjarne Stroustrup
Anders Hejlsberg
Guido van Rossum
Yukihiro Matsumoto

Einige Schlüsselpersonen, die bei der Entwicklung von Programmiersprachen beigetragen haben:

Siehe auch

Verweise

  1. ^ Hopper (1978) p. 16.
  2. ^ Knuth, Donald E.; Pardo, Luis Trabb. "Frühe Entwicklung von Programmiersprachen". Enzyklopädie der Informatik und Technologie. Marcel Dekker. 7: 419–493.
  3. ^ Corrado Böhms Doktorarbeit
  4. ^ J. Fuegi und J. Francis (Oktober - Dezember 2003), "Lovelace & Babbage und die Schaffung der 'Notizen von 1843'",", Annalen der Geschichte des Computers, 25 (4): 16–26, doi:10.1109/mahc.2003.1253887
  5. ^ In den Jahren 1998 und 2000 wurden Compiler für die Sprache als historische Übung geschaffen. Rojas, Raúlet al. (2000). "Plankalkül: Die erste Programmiersprache auf hoher Ebene und ihre Implementierung". Institut Frame Informatik, Freie Universität Berlin, Technischer Bericht B-3/2000. (voller Text)
  6. ^ Sebesta, W.S. (2006). Konzepte von Programmiersprachen. p. 44. ISBN 978-0-321-33025-3.
  7. ^ "Der Forran -Schöpfer John Backus stirbt - Tech und Gadgets -NBC News". NBC News. 2007-03-20. Abgerufen 2010-04-25.
  8. ^ "CSC-302 99S: Klasse 02: Eine kurze Geschichte der Programmiersprachen". Math.grin.edu. Archiviert von das Original Am 2010-07-15. Abgerufen 2010-04-25.
  9. ^ Padua, David (Februar 2000). "Der Forran I Compiler" (PDF). Computing in Wissenschaft und Ingenieurwesen. 2 (1): 70–75. doi:10.1109/5992.814661. Abgerufen 7. November 2019.
  10. ^ Eugene Loh (18. Juni 2010). "Die ideale HPC -Programmiersprache". Warteschlange. Assoziation von Computermaschinen. 8 (6).
  11. ^ "HPL-Eine tragbare Implementierung des leistungsstarken Linpack-Benchmarks für verteilte Computercomputer". Abgerufen 2015-02-21.
  12. ^ Hopper (1978) p. 16.
  13. ^ Sammet (1969) p. 316
  14. ^ Sammet (1978) p. 204.
  15. ^ Gordon, Michael J. C. (1996). "Von LCF bis Hol: eine kurze Geschichte" (PDF). p. 3. Abgerufen 2015-05-04. Edinburgh LCF, einschließlich des ML -Dolmetschers, wurde in LISP implementiert.
  16. ^ Manjoo, Farhad (29. Juli 2020). "Woher weißt du, dass ein Mensch das geschrieben hat?". Die New York Times. ISSN 0362-4331. Abgerufen 4. August, 2020.
  17. ^ Tiobe (25. Mai 2018). "Tiobe Index, Top 100 Programmiersprachen nach dem Tiobe -Index". www.tiobe.com. Tiobe_index.
  18. ^ "Githubs Octoverse 2018". Archiviert von das Original Am 2019-03-22.
  19. ^ Rojas, Raúl; Hashagen, ULF (2002). Die ersten Computer: Geschichte und Architekturen. MIT Press. p. 292. ISBN 978-0262681377. Abgerufen 25. Oktober, 2013.

Weitere Lektüre

  • Rosen, Saul, (Editor), Programmiersysteme und Sprachen, McGraw-Hill, 1967.
  • Sammet, Jean E., Programmiersprachen: Geschichte und Grundlagen, Prentice-Hall, 1969.
  • Sammet, Jean E. (Juli 1972). "Programmiersprachen: Geschichte und Zukunft". Kommunikation der ACM. 15 (7): 601–610. doi:10.1145/361454.361485. S2CID 2003242.
  • Richard L. Wexelblat (ed.): Geschichte der Programmiersprachen, Akademische Presse 1981.
  • Thomas J. Bergin und Richard G. Gibson (Hrsg.): Geschichte der Programmiersprachen, Addison Wesley, 1996.
  • Sebesta, Robert W. Konzepte von Programmiersprachen.Pearson Education India, 2004.

Externe Links