www.wikidata.de-de.nina.az
Eine Programmiersprache ist eine formale Sprache zur Formulierung von Datenstrukturen und Algorithmen d h von Rechenvorschriften die von einem Computer ausgefuhrt werden konnen 1 Sie setzen sich ublicherweise aus schrittweisen Anweisungen aus erlaubten Text Mustern zusammen der sogenannten Syntax Quelltext eines Programms in der Programmiersprache C Quelltext eines Programms in der Programmiersprache Scratch Wahrend die ersten Programmiersprachen noch unmittelbar an den Eigenschaften der jeweiligen Rechner ausgerichtet waren werden heute meist problemorientierte oder auch allgemeiner hohere Programmiersprachen verwendet die eine maschinenunabhangigere 2 und somit fur den Menschen leichter verstandliche Ausdrucksweise erlauben In diesen Sprachen geschriebene Programme konnen automatisiert in Maschinensprache ubersetzt werden welche unmittelbar von einem Prozessor ausgefuhrt werden kann Zunehmend kommen auch visuelle Programmiersprachen zum Einsatz welche den Zugang zu Programmiersprachen erleichtern Bei deklarativen Programmiersprachen ist der Ausfuhrungsalgorithmus schon vorab festgelegt und wird nicht im Quelltext ausformuliert beschrieben sondern es werden nur seine Anfangswerte und Bedingungen festgelegt sowie die Regeln die das Ergebnis erfullen muss Inhaltsverzeichnis 1 Ubersicht 1 1 Panorama 1 2 Anweisungskategorien 1 3 Ubersetzer 2 Geschichte 3 Programmierparadigmen 3 1 Strukturierte Programmiersprachen 3 2 Imperative Programmiersprachen 3 3 Deklarative Programmiersprachen 3 4 Objektorientierte Programmiersprachen 4 Typsystem 5 Sonstiges 6 Siehe auch 7 Literatur 8 Weblinks 9 EinzelnachweiseUbersicht Bearbeiten Begriffszusammenhange Programmiersprache Die Anweisungen eines Programms werden meist mittels einfacher Texteditoren erzeugt man nennt sie den Quelltext oder auch Quellcode Um auf einem Computer ausgefuhrt zu werden muss der Quelltext in die Maschinensprache dieses Computer typ s ubersetzt werden Diese ist im Gegensatz zu hoheren Programmiersprachen und zur Assemblersprache ein fur Menschen schwer lesbarer Binarcode Wird von Programmierung in Maschinensprache gesprochen so ist heute meist die Assemblersprache gemeint Die Ubersetzung in Maschinensprache kann entweder vor der Ausfuhrung durch einen Compiler oder zur Laufzeit durch einen Interpreter oder JIT Compiler geschehen Oft wird eine Kombination aus beiden Varianten gewahlt bei der zuerst der Quelltext des Programms in einen Zwischencode ubersetzt wird welcher dann zur Laufzeit innerhalb einer Laufzeitumgebung in Maschinencode uberfuhrt wird Dieses Prinzip hat den Vorteil dass derselbe Zwischencode auf verschiedenen Plattformen ausfuhrbar ist Beispiele fur einen solchen Zwischencode sind der Java Bytecode sowie die Common Intermediate Language Programmiersprachen bieten meist mindestens Ein Ausgabe Befehle damit das Programm Daten entgegennehmen und wieder ausgeben kann Deklaration von Variablen und Feldern um Informationen zwischenspeichern zu konnen mathematische Grund und Standardfunktionen Grundfunktionen zur Zeichenkettenverarbeitung Steueranweisungen fur bedingte Ausfuhrung Wiederholung Programmunterteilung z B in Unterfunktionen sowie Einbinden von Bibliotheken Meist ist es moglich aus diesen Grundfunktionen hohere Funktionen zu erstellen und diese als Bibliothek wiederverwendbar zu kapseln Von dort zu einer hoheren oder problemorientierten Sprache zu gelangen ist kein grosser Schritt mehr So gab es schon bald eine grosse Zahl an Spezialsprachen fur die verschiedensten Anwendungsgebiete Damit steigt die Effizienz der Programmierer und die Portabilitat der Programme meist nimmt dafur die Verarbeitungsgeschwindigkeit der erzeugten Programme ab und die Machtigkeit der Sprache nimmt ab Je hoher und komfortabler die Sprache desto mehr ist der Programmierer daran gebunden die in ihr vorgesehenen Wege zu beschreiten Sprachen sind verschieden erfolgreich manche wachsen und finden zunehmend breitere Anwendung immer wieder sind auch Sprachen mit dem Anspruch entworfen worden Mehrzweck und Breitbandsprachen zu sein oft mit bescheidenem Erfolg PL 1 Ada Algol 68 Verschiedene Dienste versuchen die Verbreitung der verschiedenen Sprachen zu messen bekannt sind beispielsweise der TIOBE Index PYPL 3 und die Analysen von RedMonk 4 Panorama Bearbeiten Die Bedeutung von Programmiersprachen fur die Informatik druckt sich auch in der Vielfalt der Auspragungen und der Breite der Anwendungen aus Maschinensprache Assemblersprachen oder C erlauben eine hardwarenahe Programmierung Hohere Programmiersprachen erlauben komfortableres schnelleres Programmieren Skriptsprachen dienen zur einfachen Steuerung von Rechnern wie bei der Stapelverarbeitung Sprachen mit visuellen Programmierumgebungen erleichtern die graphische Gestaltung von Benutzeroberflachen Esoterische Programmiersprachen sind experimentelle Sprachen mit unublichen Programmierkonzepten und oder Berucksichtigung themenfremder Aspekte z B asthetisches Aussehen des Quellcodes Grafische Programmiersprachen sollen einen besonders leichten Zugang zum Programmieren bieten statt Quelltext zu schreiben kann das Programm aus Verarbeitungsblocken zusammengeklickt werden Minisprachen sollen Kinder fruh ans Programmieren heranfuhren nicht zu verwechseln mit minilanguages einem Synonym fur domain specific languages Umgangssprachlich wird auch in anderen Bereichen von Programmiersprachen gesprochen Nachfolgende Sprachen sind jedoch nicht fur die Beschreibung von Algorithmen und allgemeine Datenverarbeitung entworfen also keine Allzweck Programmiersprachen Auszeichnungssprachen werden fur die Formatierung von Texten und Dateien verwendet CNC Programmiersprachen sind oder dienen der Erzeugung von Steuerungsinformationen fur Werkzeugmaschinen Datenbanksprachen sind fur den Einsatz in und die Abfrage von Datenbanken gedacht Seitenbeschreibungssprachen sowie sonstige Beschreibungssprachen z B VHDL sind eine imperative Form eines Dateiformats Stylesheet Sprachen werden verwendet um das Erscheinungsbild zu bestimmenDerartige Sprachen fallen unter die domanenspezifischen Sprachen Anweisungskategorien Bearbeiten Die Anweisungen von Programmiersprachen Beispiele siehe hier lassen sich nach folgenden Gruppen klassifizieren Eingabe und Ausgabe Befehle lesen Daten von der Tastatur von einer Datei oder aus anderen Quellen ein oder sie geben sie auf uber ein bestimmtes Ausgabegerat Bildschirm Datei Drucker aus Zuweisungen und Berechnungen verandern oder erzeugen Dateninhalte Kontrollflussanweisungen Entscheidungsanweisungen auch Verzweigungsanweisungen Iterationsanweisungen Sprunganweisungen entscheiden aufgrund der vorliegenden Daten welche Befehle als Nachstes ausgefuhrt werden Deklarationen reservieren Speicherplatz fur Variablen oder Datenstrukturen unter einem fast frei wahlbaren Namen Uber diesen Namen konnen sie spater angesprochen werden Aufrufe programm externer Unterroutinen Module wie Systemfunktionen z B Read oder funktionaler Module auch aus anderen Programmiersprachen Ubersetzer Bearbeiten Hauptartikel Compiler Um ein in einer bestimmten Programmiersprache erstelltes Programm ausfuhren zu konnen muss anstatt dessen Quellcode eine aquivalente Folge von Maschinenbefehlen ausgefuhrt werden Das ist notwendig da der Quellcode aus Zeichenfolgen besteht z B A B 100 C die der Prozessor nicht versteht Die in der Geschichte der Computertechnik und der Softwaretechnologie eingetretenen Entwicklungssprunge brachten auch unterschiedliche Werkzeuge zur Erzeugung von Maschinencode ggf uber mehrere Stufen mit sich Diese werden beispielsweise als Compiler Interpreter Precompiler Linker etc bezeichnet In Bezug auf die Art und den Zeitpunkt wie der Computer zu einem aquivalenten Maschinencode kommt konnen zwei Prinzipien unterschieden werden Wird ein Programmtext als Ganzes ubersetzt also aus dem Quelltext ein Maschinenprogramm erstellt so spricht man in Bezug auf den Ubersetzungsmechanismus von einem Compiler Der Compiler selbst ist ein Programm das als Dateneingabe den Programm Quellcode liest und als Datenausgabe den Maschinencode z B Objectcode EXE Datei executable oder einen Zwischencode liefert Wenn abhangig vom Programmtext wahrend der Ausfuhrung entsprechende Maschinencodeblocke ausgefuhrt werden spricht man von einer interpretierten Sprache Das Programm wird in einer Laufzeitumgebung z B veraltete JVM interpretiert und je nach Programmbefehl ein entsprechender Maschinenbefehlblock ausgefuhrt Daneben existieren verschiedene Mischvarianten Bei der Just in Time Kompilierung wird der Programmtext direkt vor jedem Programmlauf neu ubersetzt ggf werden erst wahrend des interpretierten Programmlaufs einzelne Programmabschnitte kompiliert Zum Teil erzeugen Compiler einen noch nicht ausfuhrbaren Programmcode der von nachfolgenden Systemprogrammen zu ausfuhrbarem Maschinencode umgeformt wird Hier sind die Konzepte plattformunabhangiger Zwischencode z B im Rahmen der Software Verteilung und plattformgebundener Objektcode wird zusammen mit weiteren Modulen zu ausfuhrbarem Code z T Lademodul genannt zusammengebunden zu unterscheiden Mit Precompilern konnen spezielle in der Programmiersprache selbst nicht vorgesehene Syntax Konstrukte zum Beispiel Entscheidungstabellen bearbeitet und vor ubersetzt in die gewahlte Programmiersprache im Quellcode eingefugt werden Zur Steuerung des Ubersetzens kann der Quelltext neben den Anweisungen der Programmiersprache zusatzliche spezielle Compiler Anweisungen enthalten Komplexe Ubersetzungsvorgange werden bei Anwendung bestimmter Programmiersprachen Entwicklungsumgebungen durch einen Projekterstellungsprozess und die darin gesetzten Parameter gesteuert Geschichte Bearbeiten Hauptartikel Geschichte der Programmiersprachen Siehe auch Computerprogramm Geschichte und Programmierung Geschichte Grace Hopper entwickelte den ersten Compiler und gilt als Grandma COBOL Zur Vorgeschichte der Programmiersprachen kann man von praktischer Seite die zahlreichen Notationen zahlen die sowohl in der Fernmeldetechnik Morsecode als auch zur Steuerung von Maschinen Jacquardwebstuhl entwickelt worden waren dann die Assemblersprachen der ersten Rechner die doch nur deren Weiterentwicklung waren Von theoretischer Seite zahlen dazu die vielen Prazisierungen des Algorithmusbegriffs von denen der l Kalkul die bei weitem bedeutendste ist Auch Zuses Plankalkul gehort hierhin denn er ist dem minimalistischen Ansatz der Theoretiker verpflichtet Bit als Grundbaustein In einer ersten Phase wurden ab Mitte der 1950er Jahre unzahlige Sprachen 5 entwickelt die praktisch an gegebenen Aufgaben und Mitteln orientiert waren Seit der Entwicklung von Algol 60 1958 1963 ist die Aufgabe des Ubersetzerbaus in der praktischen Informatik etabliert und wird zunachst mit Schwerpunkt Syntax erkennung Parser intensiv bearbeitet Auf der praktischen Seite wurden erweiterte Datentypen wie Verbunde Zeichenketten und Zeiger eingefuhrt konsequent z B in Algol 68 In den 1950er Jahren wurden in den USA die ersten drei weiter verbreiteten praktisch eingesetzten hohere Programmiersprachen entwickelt Dabei verfolgten diese sowohl imperative als auch deklarativ funktionale Ansatze Die Entwicklung von Algol 60 lautete eine fruchtbare Phase vieler neuer Konzepte wie das der prozeduralen Programmierung ein Der Bedarf an neuen Programmiersprachen wurde durch den schnellen Fortschritt der Computertechnik gesteigert In dieser Phase entstanden die bis heute verbreiteten Programmiersprachen BASIC und C In der Nachfolgezeit ab 1980 konnten sich die neu entwickelten logischen Programmiersprachen nicht gegen die Weiterentwicklung traditioneller Konzepte in Form des objektorientierten Programmierens durchsetzen Das in den 1990er Jahren immer schneller wachsende Internet forderte seinen Tribut beispielsweise in Form von neuen Skriptsprachen fur die Entwicklung von Webserver Anwendungen Derzeit schreitet die Integration der Konzepte der letzten Jahrzehnte voran Grossere Beachtung findet so beispielsweise der Aspekt der Codesicherheit in Form von virtuellen Maschinen Neuere integrierte visuelle Entwicklungsumgebungen erfordern deutlich weniger Aufwand an Zeit und Kosten Bedienoberflachen lassen sich meist visuell gestalten Codefragmente sind per Klick direkt erreichbar Dokumentation zu anderen Programmteilen und Bibliotheken ist direkt einsehbar meist gibt es sogar lookup Funktionalitat die noch wahrend des Schreibens herausfindet welche Symbole an dieser Stelle erlaubt sind und entsprechende Vorschlage macht Autovervollstandigen Neben der mittlerweile etablierten objektorientierten Programmierung ist die modellgetriebene Architektur ein weiterer Ansatz zur Verbesserung der Software Entwicklung in der Programme aus syntaktisch und semantisch formal spezifizierten Modellen generiert werden Diese Techniken markieren gleichzeitig den Ubergang von einer eher handwerklichen individuellen Kunst zu einem industriell organisierten Prozess SprachgenerationenMan hat die Maschinen Assembler und hoheren Programmiersprachen auch als Sprachen der ersten bis dritten Generation bezeichnet auch in Analogie zu den gleichzeitigen Hardwaregenerationen Als vierte Generation wurden verschiedenste Systeme beworben die mit Programmgeneratoren und Hilfsprogrammen z B zur Gestaltung von Bildschirmmasken screen painter ausgestattet waren Die Sprache der funften Generation schliesslich sollte in den 1980er Jahren im Sinne des Fifth Generation Computing Concurrent Prolog sein Programmierparadigmen Bearbeiten Hauptartikel Programmierparadigma Paradigmen in Programmiersprachen Auswahl Name funktional imperativ objektorientiert deklarativ logisch nebenlaufigAda X X XC XProlog X XScheme X X X X X Haskell X X X X Scala X X X X XDie Programmiersprachen lassen sich in Kategorien einteilen die sich im evolutionaren Verlauf der Programmiersprachen Entwicklung als sog Programmierparadigmen gebildet haben Grundlegend sind die Paradigmen der strukturierten der imperativen der deklarativen und der objektorientierten Programmierung mit jeweils weiteren Unterteilungen Eine Programmiersprache kann jedoch auch mehreren Paradigmen gehorchen das heisst die begriffsbestimmenden Merkmale mehrerer Paradigmen unterstutzen Strukturierte Programmiersprachen Bearbeiten Hauptartikel Strukturierte Programmierung Strukturierte Programmierung ist Anfang der 1970er Jahre auch aufgrund der Softwarekrise popular geworden Es beinhaltet die Zerlegung eines Programms in Unterprogramme prozedurale Programmierung und die Beschrankung auf die drei elementaren Kontrollstrukturen Anweisungs Reihenfolge Verzweigung und Wiederholung Imperative Programmiersprachen Bearbeiten Ein in einer imperativen Programmiersprache geschriebenes Programm besteht aus Anweisungen latein imperare befehlen die beschreiben wie das Programm seine Ergebnisse erzeugt zum Beispiel Wenn dann Folgen Schleifen Multiplikationen etc Deklarative Programmiersprachen Bearbeiten Den genau umgekehrten Ansatz verfolgen die deklarativen Programmiersprachen Dabei beschreibt der Programmierer welche Bedingungen die Ausgabe des Programms das Was erfullen muss Wie die Ergebnisse konkret erzeugt werden wird bei der Ubersetzung zum Beispiel durch einen Interpreter festgelegt Ein Beispiel ist die Datenbankabfragesprache SQL Ein Programm muss nicht unbedingt eine Liste von Anweisungen enthalten Stattdessen konnen grafische Programmieransatze zum Beispiel wie bei der in der Automatisierung verwendeten Plattform STEP 7 benutzt werden Die Art der formulierten Bedingungen unterteilen die deklarativen Programmiersprachen in logische Programmiersprachen die mathematische Logik benutzen und funktionale Programmiersprachen die dafur mathematische Funktionen einsetzen Objektorientierte Programmiersprachen Bearbeiten Hauptartikel Objektorientierte Programmierung Im Gegensatz zur prozeduralen Programmierung wo zuerst die verarbeitenden Prozeduren im Fokus stehen Was will ich rechnen und die Daten irgendwie durchgeschleust werden konzentriert sich die objektorientierte Programmierung zunachst auf die Daten Mit welchen Dingen der Real Aussenwelt soll gearbeitet werden Welche Attribute Daten beschreiben diese Objekt Klassen Erst anschliessend wird die Handhabung zu den Objekten entworfen Methoden was kann man mit diesem Objekt machen Was kann dieses Objekt fur das Programm machen Die Methoden werden den Daten zugeordnet und zusammen werden beide in Objekten Objekt Klassen zusammengefasst Objektorientierung verringert die Komplexitat der entstehenden Programme macht sie wiederverwendbarer und bildet die Realitat meist genauer ab als dies bei rein prozeduraler Programmierung der Fall ist Objektorientierung bietet die folgenden Paradigmen 6 Datenkapselung Verbergen von Implementierungsdetails Ein Objekt bietet dem Verwender eine festgelegte Menge an Moglichkeiten Methoden es zu andern zu beeinflussen etwas zu berechnen oder Auskunfte zu erhalten Daruber hinausgehende Hilfsroutinen oder Zustandsspeicher werden verborgen auf sie kann nicht direkt zugegriffen werden Vererbung Spezialisierung und Generalisierung Vererbung heisst vereinfacht dass eine abgeleitete Klasse die Methoden und Attribute der Basisklasse ebenfalls besitzt also erbt Zudem kann sie zusatzliche Attribute und Eigenschaften besitzen und zusatzliche Handlungsmoglichkeiten bieten eine abgeleitete Klasse ist ein Spezialfall der Basisklasse Umgekehrt kann gleiche Funktionalitat mehrerer Klassen in eine gemeinsamen Basisklasse ausgelagert werden wo sie nur noch 1 Mal programmiert ist was Code spart leichter wartbar ist und ggf fur weitere Spezialklassen wiederverwendbar ist sie erben einfach von dieser Basisklasse die Basisklasse beschreibt das generelle Verhalten aller abgeleiteten Spezial Klassen Polymorphie Ein Objekt einer Spezialklasse kann stets auch als Mitglied der Basisklasse betrachtet werden Dadurch kann in einer Variable die ein Objekt der Basisklasse aufnehmen kann auch ein Objekt einer abgeleiteten Klasse gespeichert werden denn aufgrund der Vererbung bietet es ja die Methoden und Attribute der Basisklasse Typsystem Bearbeiten Hauptartikel Typisierung Informatik Variablen sind mit einem Namen versehene Orte im Speicher die einen Wert aufnehmen konnen Um die Art des abgelegten Wertes festzulegen muss in vielen Programmiersprachen der Variablen ein Datentyp zugewiesen werden Haufige Datentypen sind Ganz und Gleitkommazahlen oder auch Zeichenketten Es wird zwischen typisierten und typenlosen Sprachen unterschieden In typisierten Sprachen zum Beispiel C oder Java wird der Inhalt der Variable durch einen Datentyp festgelegt So gibt es fur Ganz und Gleitkommazahlen verschiedene Datentypen die sich durch ihren Wertebereich unterscheiden Sie konnen vorzeichenlos oder vorzeichenbehaftet sein Nach aufsteigendem Wertebereich sind dies zum Beispiel Short Integer oder Long Datentypen fur Gleitkommazahlen sind zum Beispiel Float oder Double Einzelne Zeichen konnen im Datentyp Char gespeichert werden Fur Zeichenketten steht der Datentyp String zur Verfugung Die typisierten Sprachen konnen anhand des Zeitpunkts der Typuberprufung unterschieden werden Findet die Typuberprufung bereits bei der Ubersetzung des Programms statt spricht man von statischer Typisierung Findet die Typprufung zur Laufzeit statt spricht man von dynamischer Typisierung Erkennt eine Programmiersprache Typfehler spatestens zur Laufzeit wird sie als typsicher bezeichnet Bei statischer Typprufung ist der Programmierer versucht diese zu umgehen oder sie wird nicht vollstandig durchgesetzt zum jetzigen Stand der Technik muss es in jeder statischen Sprache eine Moglichkeit geben typlose Daten zu erzeugen oder zwischen Typen zu wechseln etwa wenn Daten vom Massenspeicher gelesen werden In Sprachen mit dynamischer Typprufung werden manche Typfehler erst gefunden wenn es zu spat ist Soll der Datentyp einer Variablen geandert werden ist ein expliziter Befehl zur Umwandlung notig Die typenlosen Sprachen zum Beispiel JavaScript oder Prolog verfugen im Gegensatz zu den typisierten Sprachen uber keine differenzierten Datentypen Der Datentyp einer Variablen wird erst zur Laufzeit festgelegt Wird einer Variablen ein Wert eines anderen Typs zugewiesen findet eine Umwandlung der Variablen in den neuen Typ statt Die typenlosen Sprachen behandeln oftmals alle Einheiten als Zeichenketten und kennen fur zusammengesetzte Daten eine allgemeine Liste Durch die Festlegung des Datentyps werden vor allem zwei Zwecke verfolgt Deskriptive Typangaben erleichtern die Programmierung und entlasten die Notation Beim Zugriff auf ein Feld mit einem Index kann die Speicherstelle an der sich der abgefragte Wert befindet abhangig vom verwendeten Datentyp berechnet werden Praskriptive Typangaben schliessen bestimmte Operationen aus Es kann zum Beispiel das Einhalten von Feldgrenzen gepruft werden um einen Zugriff uber die Feldgrenzen hinaus zu verhindern Das sichere Typsystem der Programmiersprache ML bildet die Grundlage fur die Korrektheit der in ihr programmierten Beweissysteme LCF HOL Isabelle in ahnlicher Weise versucht man jetzt auch die Sicherheit von Betriebssystemen zu gewahrleisten 7 Schliesslich ermoglichen erst unterschiedliche Typangaben das populare Uberladen von Bezeichnern Nach Strachey sollte das Typsystem im Mittelpunkt der Definition einer Programmiersprache stehen Die Definition von Daten erfolgt im Allgemeinen durch die Angabe einer konkreten Spezifikation zur Datenhaltung und der dazu notigen Operationen Diese konkrete Spezifikation legt das allgemeine Verhalten der Operationen fest und abstrahiert damit von der konkreten Implementierung der Datenstruktur s a Deklaration Oft kann an den Burgern erster Klasse First class Citizens FCCs einer Programmiersprache also den Formen von Daten die direkt verwendet werden konnen erkannt werden welchem Paradigma die Sprache gehorcht In Java z B sind Objekte FCCs in Lisp ist jedes Stuck Programm FCCs in Perl sind es Zeichenketten Arrays und Hashes Auch der Aufbau der Daten folgt syntaktischen Regeln Mit Variablen kann man bequem auf die Daten zugreifen und den dualen Charakter von Referenz und Datum einer Variablen ausnutzen Um die Zeichenketten der Daten mit ihrer semantischen Bedeutung nutzen zu konnen muss man diese Bedeutung durch die Angabe eines Datentyps angeben Zumeist besteht im Rahmen des Typsystems auch die Moglichkeit neue Typen zu vereinbaren LISP verwendet als konzeptionelle Hauptstruktur Listen Auch das Programm ist eine Liste von Befehlen die andere Listen verandern Forth verwendet als konzeptionelle Hauptstruktur Stacks und Stack Operationen sowie ein zur Laufzeit erweiterbares Worterbuch von Definitionen und fuhrt in den meisten Implementationen uberhaupt keine Typprufungen durch Sonstiges BearbeitenEin beliebter Einstieg in eine Programmiersprache ist es mit ihr den Text Hello World oder deutsch Hallo Welt auf den Bildschirm oder einem anderen Ausgabegerat auszugeben siehe Hallo Welt Programm Entsprechend gibt es Listen von Hallo Welt Programmen und eigene Webseiten 8 die beispielhafte Implementierungen in verschiedenen Programmiersprachen gegenuberstellen Siehe auch BearbeitenListe von Programmiersprachen Zeittafel der Programmiersprachen Bildungsorientierte ProgrammiersprachenLiteratur BearbeitenFriedrich L Bauer Hans Wossner Algorithmische Sprache und Programmentwicklung 2 verbesserte Auflage Springer Berlin u a 1984 ISBN 3 540 12962 6 Peter A Henning Holger Vogelsang Handbuch Programmiersprachen Softwareentwicklung zum Lernen und Nachschlagen Hanser Munchen 2007 ISBN 978 3 446 40558 5 Kenneth C Louden Programmiersprachen Grundlagen Konzepte Entwurf Internat Thomson Publ Bonn Albany u a 1994 ISBN 3 929821 03 6 John C Reynolds Theories of Programming Languages Cambridge Univ Press Cambridge 1998 ISBN 0 521 59414 6 Robert Harper Practical Foundations for Programming Languages Cambridge Univ Press Cambridge 2016 ISBN 978 1 107 15030 0 Peter van Roy Seif Haridi Concepts Techniques and Models of Computer Programming MIT Press Cambridge 2004 ISBN 0 262 22069 5 Michael L Scott Programming language pragmatics 2 Auflage Elsevier Morgan Kaufmann Amsterdam 2006 ISBN 0 12 633951 1 Weblinks Bearbeiten Wiktionary Programmiersprache Bedeutungserklarungen Wortherkunft Synonyme Ubersetzungen Wikibooks Programmierung Lern und Lehrmaterialien Commons Programmiersprachen Sammlung von Bildern Videos und Audiodateien 99 Bottles of Beer Ein Programm in hunderten von Programmiersprachen bzw Dialekten englisch Einzelnachweise Bearbeiten Programmiersprache Duden 2019 dort wortlich mit System von Wortern und Symbolen die zur Formulierung von Programmen 4 fur die elektronische Datenverarbeitung verwendet werden siehe auch Duden Informatik ISBN 3 411 05232 5 siehe auch Plattformunabhangigkeit vor allem auch im Sinne der Herstellerunabhangigkeit bezuglich der Rechenwerke sowie Abstraktion Informatik PYPL RedMonk Um 1965 zahlte man 1700 vgl ISWIM Peter A Henning Holger Vogelsang Taschenbuch Programmiersprachen Fachbuchverlag im Carl Hanser Verlag Leipzig 2007 ISBN 978 3 446 40744 2 Vgl Sprachbasiertes System z B Singularity basierend auf der Programmiersprache Sing JX fur Java Coyotos mit der Sprache BitC Auflistung von Hello World Programmen nach ProgrammiersprachenNormdaten Sachbegriff GND 4047409 4 lobid OGND AKS Abgerufen von https de wikipedia org w index php title Programmiersprache amp oldid 230457558