Geschichte der Programmiersprachen
lima-city → Forum → Sonstiges → Spam und sonstiges Unvergütetes
basic
baute
compiler
elan
entwicklung
fragen
imperativ
intelligenz
jahr
konzept
objekt
pascal
programmiersprache
programmierung
rahmen
richtung
semantik
smalltalk
sprache
zukunft
-
Entwicklung der Programmiersprachen
Das obige Bild zeigt eine (grobe) ?bersicht ?ber die Entwicklung der Programmiersprachen. Gestrichelte Linien repr?sentieren einen schwachen Einflu? auf andere Sprachen, wie z.B. bei ALGOL 68. D?nne Linien, wie vom Plankalk?l zu ALGOL 58 und zu PROLOG dokumentieren ?hnlichkeiten zwischen den Sprachen. Der Plankalk?l (1945) von Konrad Zuse hatte nur wenig bzw. gar keinen Einflu? auf ALGOL58 bzw. ALGOL 60, aber es wurde das Ergibtzeichen des Plankalk?l diskutiert (Siehe dazu Peter Naur). Der Plankalk?l hat ?hnlichkeiten mit PROLOG (D?nne Linien), aber auch eine Gemeinsamkeit mit EIFFEL (ASSERTION, siehe weiter unten). ALGOL68 wird wegen ihrer Kompliziertheit nur wenig genutzt, obwohl die Sprache einen starken Einflu? auf andere Sprachen hatte. Die gestrichelte Linie von ALGOL68 in Richtung Jahr 1995 zeigt, da? die Sprache nicht mehr aktuell ist. MATH-MATIC ist als eine separate Entwicklung zu sehen, die kaum einen Einflu? auf andere Sprachen hatte, obwohl eine grobe ?hnlichkeit zu FORTRAN 0 bestand.
Der Plankalk?l (1942-1945, Endfassung 1945/46) von Konrad Zuse, der schon 1941 mit der Z3 den ersten funktionierenden programmgesteuerten Rechner der Welt baute, gilt als die erste universelle Programmiersprache der Welt. Das Manuskript wurde von Konrad Zuse von 1942-1945/46 (Endfassung 1945/46) erstellt, aber der internationalen ?ffentlichkeit erst 1972 bekannt. Der Plankalk?l war aus heutiger Sicht eine bemerkenswert vollst?ndige Programmiersprache, die u.a. Datenstrukturen enthielt, die sich erst 1968 bei der Entwicklung von ALGOL 68 wiederfanden. Der Plankalk?l wurde niemals implementiert. Interessant ist auch eine Verbindung des Plankalk?l mit der Sprache EIFFEL, und zwar das ASSERTION (Assertion is a property of some of the values of program entities. For exanple, an assertion may express that a certain integer has a positive value or that a certain reference is void).
Seit der Entwicklung des ersten Computers wurden ca. ein Tausend Programmiersprachen entwickelt, wie der Turm von Babylon der Programmiersprachen bez?glich der Programmiersprachen von Sammet /SAMM69/ illustriert.
Aus FLOW-MATIC, 1958, entstand unter entscheidender Mitwirkung von Grace Hopper die COBOL Sprachfamilie. Die Entwicklung von FORTRAN (Short-Code wurde von John Mauchly f?r die MARK I entwickelt), wurde wesentlich von John Backus initiiert. Allerdings entwickelte die Gruppe von Grace Hopper unter der Leitung von Charles Katz 1957 die Sprache MATH-MATIC, die ?hnliche mathematische Sprachelemente aufwies. Ein wesentlicher Beitrag zu der Entwicklung und Struktur von Programmiersprachen fanden sich in ALGOL 60 (1960), das auf den Vorl?ufer ALGOL 58 von 1958 zur?ckgeht. Wissenschaftler, wie z.B. Peter Naur, Friedrich Bauer, Alan Perlis, Charles Hoare und Klaus Samuelsen haben wichtige Beitr?ge auf den ACM-GAMM (Association for Computing Machinery-Gesellschaft f?r Mathematik und Mechanik) dazu geleistet. Diese Entwicklung fand statt in Wechselbeziehung mit der Fortentwicklung der funktionellen F?higkeiten der Rechenanlagen (symbolische Adresse von Wilkes 1953, indirekte Adressierung von Schecher 1955) und unter dem Eindruck der Probleme der maschinellen ?bersetzung von algorithmischen Sprachen in Maschinensprachen (Rutishauser 1951, Bauer und Samuelson 1957). Rutishauser baute insbesondere auf dem Plankalk?l von Konrad. Zuse (1948) auf. In diese Richtung war mit den Listen (Sprache LISP) von McCarthy (1959) und den Verbunden von Hoare (1966) der heutige Stand erreicht. Andere wesentliche Beitr?ge zu einem einheitlichen und vollst?ndigen begrifflichen System der Programmierung oder, wie man es auch ausdr?ckt, zur Schaffung einer semantischen Basis, leisteten J.Green 1959 (Namenserzeugung), K.Samuelson 1959 (Blockstruktur), und N.Wirth 1965 (Referenzkonzept und die Sprachen ALGOLW, PASCAL, usw.). Allgemeine Fragen der Semantik behandelten McCarthy 1962, Landin 1965, Floyd 1967, und beginnend 1962, van Wijngaarden, dessen Untersuchungen ?ber eine operative Semantik zu ALGOL 68 f?hrten.
Aus der Sprache ALGOL entstanden viele andere imperative Sprachen, wie ALGOLW, PASCAL, SIMULA, ALGOL68, PL/1, C, und besonders ADA. ADA wurde als eine moderne und leistungsf?hige Hochsprache von DoD (Department of Defense der USA) konzipiert. Es ist keine Frage, da? in ADA viele Zielvorstellungen des modernen Software Engineering im Compiler enthalten sind, aber kritische Stimmen sind nicht ausgeblieben. Die Sprache EUCLID (1976-1977), entwickelt von der Universit?t Toronto, erweitert PASCAL u.a. mit abstrakten Datentypen. MESA (1976-1979) wurde vom Xerox Palo Alto Research Center entwickelt. Es erweitert PASCAL mit einer speziellen Modul-Einheit und Ausnahmebehandlungen, weches erlaubt, es in Betriebssystemen einzusetzen. Die Sprache ELAN wurde an der TU-Berlin im Rahmen des Forschungsvorhabens Schulsprache entwickelt. Das Projekt wurde bis 1977 von der DFG gef?rdert /HOMM79/. ELAN ist eine Sprache, die zur ALGOL60 Familie geh?rt, es sind aber mehr Ideen von ALGOL68 (nicht das Referenzkonzept) als von PASCAL eingegeangen. ELAN hatte St?rken in Hinsicht auf Lesbarkeit, Sicherheit und Ausdrucksm?glichkeit.
Bei Sprachen wie PROLOG (Kowalski) wird bewu?t auf eine kontrollflu?gesteuerte Auswertung verzichtet, wie dies bei prozeduralen Programmiersprachen (z.B. ALGOL, PL/1, usw.) der Fall ist. Ein PROLOG Programm besteht z.B. aus einer Folge von bedingten Regeln. Als die erste Sprache f?r Anwendungen in der k?nstlichen Intelligenz mu? die Sprache LISP von McCarthy angesehen werden, aus der von 1975 bis 1985 die Sprachen SCHEME und COMMON-LISP entwickelt wurden. Es mu? aber auch erw?hnt werden, da? Konrad Zuse mit seinem Plankalk?l typische Anwendungen der k?nstlichen Intelligenz betrachtete, n?mlich das Schachspiel, und er daf?r auch Programme schrieb.
Eine Art Au?enseiter bei der Entwicklung von Programmiersprachen ist APL, welches schon vor 1960 von K. Iverson entwickelt wurde. Die Sprache basiert auf Matrizen, Symbolen und Skalaren. Eine erhebliche Erweiterung dieser Sprache wurde mit J 1991 von K. Iverson et. al. vorgestellt.
SNOBOL wurde in den fr?hen 60-ziger Jahren von Farber, Griswold und Plensky entwickelt. Idee war eine Sprache und einen Compiler f?r m?chtige Zeichenkettenverarbeitung zu entwickeln. Die Sprache SNOBOL ist heutzutage nicht mehr weit verbreitet.
Die Sprache BASIC, entwickelt von Kemeny und Kurtz, hat eine erstaunliche Verbreitung gefunden. Die Einfachheit von BASIC kommt allen jenen Menschen entgegen, die den Computer zwar verwenden, aber nicht das Programmieren lernen m?chten. BASIC hat durch QUICKBASIC, aus dem Visual BASIC3 (1990), Visual BASIC4 (1994), Visual BASIC5 (1997) und Visual BASIC6 (1998) von Microsoft folgten, eine bemerkenswerte Renaissance erlebt. Visual BASIC wurde u.a. f?r die Konzeption und Entwicklung von WINDOW Benutzer Schnittstellen (Interfaces) entwickelt.
Der Bereich interaktiver und kommunizierender Systeme, der im gewissen Sinne auch Sprachen f?r konkurrierende Systeme im einen Extrem und reine Abfragesprachen im anderen Extrem umfa?t, hat sicherlich seine st?rkste Entwicklung noch vor sich. Wichtige Meilensteine in dieser Entwicklung stellen wohl Sprachen wie SIMULA67, und objektorientierte Sprachen wie SMALLTALK und Sprachen f?r die B?roautomation dar.
Die Geschichte der objektorientierten Programmierung begann schon in den Siebziger-Jahren mit der Programmiersprache SIMULA, einer Spezialsprache zur Simulation von Vorg?ngen in der realen Welt. Obwohl mit SIMULA bereits die Begriffe Klasse und Objekt eingef?hrt wurden, sprach damals noch kein Mensch von objektorientierter Programmierung. Das ?nderte sich mit SMALLTALK, der ersten rein objektorientierten Sprache. SMALLTALK gilt wegen der reinen Objektorientiertheit auch heute noch als die objektorientierte Programmiersprache an sich. Das ist unter anderem daran erkennbar, da? die heute ?bliche Terminologie fast ausschlie?lich aus der SMALLTALK-Literatur stammt und da? sich fast alle neueren objektorientierten Sprachen in der einen oder anderen Weise an SMALLTALK anlehnen. Die meisten objektorientierten Sprachen sind blockstrukturiert und haben daher letztlich ihren Ursprung in der Sprache ALGOL. JAVA ist eine objekt-orientierte Sprache, welche sich aus C++ ableitete. JAVA kennt aber nicht das Pointerprinzip von C++ und verf?gt eine standardisierte Beschreibung einer visuellen Schnittstelle f?r alle Plattformen von Betriebssystemen.
Auf PASCAL als die heute noch wichtigste strukturierte Programmiersprache folgte MODULA-2 als modulorientierte Sprache. Aus MODULA-2 ging wiederum OBERON hervor, das 1991 zu OBERON-2, einer echten objektorientierten Sprache ausgebaut wurde. Object-PASCAL ist eine objektorientierte Erweiterung von PASCAL. Von der Sprache C stammen zwei objektorientierte Sprachen ab: C++ und Objective C. Objective C lehnt sich st?rker an SMALLTALK an als C++, das viele eigenst?ndige Sprachelemente enth?lt, die man in anderen objektorientierten Sprachen nicht findet.
Noch heute werden u.a. LISP, FORTRAN und COBOL, die zu den ?ltesten Programmiersprachen z?hlen, im wissenschaftlichen und kaufm?nnischen Bereich verwendet. Es stellt sich die Frage: Was sind die Programmiersprachen der Zukunft? Die vor nicht allzulanger Zeit im Rahmen der Anstrengungen des US-Verteidigungsministeriums ge?u?erte forsche Einsch?tzung: ADA ist wohl die letzte Programmiersprache, ist sicherlich im Sinn der historisch letzten Programmiersprache heute als falsch erkennbar. Ob ADA aus PASCAL entstand, wird kontrovers diskutiert. ADA ist eine imperative Sprache, wie z.B. ALGOL60, enth?lt aber das Konzept der abstrakten Datentypen, die Vererbung und das Klassenkonzept. ADA erleichtert die modulare Erstellung von Modulen (Package Konzept).
Prinzipiell mu? der Hoffnung auf die eine allen Anwendungen gerecht werdende Programmiersprache wohl mit gro?er Skepsis begegnet werden. J?ngste Forschungen zeigen die Vielfalt von programmiersprachlichen Konzepten. Eine Einbeziehung all dieser Konzepte in eine Programmiersprache scheint weder m?glich noch w?nschenswert. Was vielmehr ben?tigt wird, ist eine Familie von schlanken Sprachen mit klaren semantischen Konzepten f?r die unterschiedlichen Anforderungen.
Sprachen der Zukunft werden sich u.a. dadurch auszeichnen, da? der Programmierer oder Anwender formulieren kann, was er gel?st haben m?chte. Er wird die Probleml?sung nicht formulieren m?ssen. Dieser Ansatz wird vor allem von den Datenbank-Abfrage-Sprachen genutzt. Bekannte Vertreter dieser Sprachen der vierten Generation sind u.a. ADF, FOCUS, MANTIS und NATURAL. Diese Sprachen werden aber FORTRAN, COBOL und ADA nicht ersetzen, sondern erg?nzen.
-
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage