WikiDer > Programmiersprache

EIN Programmiersprache ist ein formelle Sprache in denen die Aufgaben, die a Computer ausführen muss, geschrieben werden. Diese Sprachen haben eine andere Syntax und Grammatik als natürliche Sprachen. Letztere sind zu komplex und mehrdeutig als Programmiersprache fungieren. Code in einer Programmiersprache geschrieben, sollte der Computer nur auf eine Weise "verstehen".
Programmierparadigma
Im Laufe der Jahre waren es Tausende[1] Programmiersprachen entstehen und sie können auf unterschiedliche Weise kategorisiert werden. Eine häufig verwendete Unterscheidung ist die des Programmierparadigmas. Einige wichtige Beispiele sind die Imperativ, funktional und logisch Programmierparadigmen, wobei darauf hingewiesen wird, dass Programmiersprachen manchmal mehrere Paradigmen kombinieren.
Benutzen
Es gibt mehrere Möglichkeiten, wie ein Softwareentwickler schreibt Computer Programm kann von einem Computer durchgeführt werden. Der Code, den der Entwickler sieht und bearbeitet, wird zum Quellcode der genannten Software; die irgendwie umgewandelt werden muss in die Maschinensprache des betreffenden Computers, der von der Prozessor durchgeführt werden kann. Grob gesagt gibt es folgende Möglichkeiten:
- Keine Konvertierung: Der Programmierer gibt den Maschinencode direkt in den Speicher des Computers ein. Das ist so unpraktisch und zeitaufwendig, dass es kaum noch vorkommt.
- Interpretation: ein Dolmetscher liest Stück für Stück Text aus dem Quellcode, interpretiert ihn in sinnvolle Anweisungen und führt diese direkt, unterstützt durch eine Laufzeitbibliothek, aus. Ein Programm, das so funktioniert, wird normalerweise zu einem Skript benannt und die betreffende Programmiersprache a Skriptsprache.
- Versammlung: ein Assemblersprache ermöglicht es, Programme als Folge von Anweisungen und Daten zu schreiben, die sich direkt auf Maschinensprache abbilden lassen, in denen aber etwas symbolischer gearbeitet werden kann, zum Beispiel weil die Maschinenanweisungen Namen haben, Speicheradressen mit Namen versehen werden können und MakroFotos können verwendet werden; ein Monteur Konvertieren Sie solchen Code in Dateien mit Objektcode, die durch a links zusammen mit dem bereits existierenden Objektcode von Softwarebibliotheken in ein ausführbares Programm kompiliert.
- Zusammenstellung: Übersetzung von Quellcode in eine andere Sprache (die Zielsprache) durch eine Compiler. Die Zielsprache kann eine Assemblersprache sein; oder eine speziell für den Übersetzungsprozess entwickelte maschinenunabhängige Zwischensprache (Byte-Code, ebenfalls P-Code benannt), die dann kompiliert oder interpretiert werden müssen; oder eine andere Programmiersprache.
Hiervon gibt es alle möglichen Zwischenformen und Varianten.
EIN höher (dh kompilierte oder interpretierte) Programmiersprache soll es dem Programmierer ermöglichen, so klar und elegant wie möglich zu spezifizieren, was ein Programm in den Begriffen tun soll, in denen der Programmierer über das Problem denkt, ohne genaue Kenntnisse darüber, wie es genau sein wird vom Computer ausgeführt werden: Solche Sprachen bieten Abstraktionen auf hoher Ebene und sind maschinenunabhängig. In Assembler wird nur dann programmiert, wenn spezielle Kenntnisse über die genaue Funktionsweise des jeweiligen Computers benötigt werden, zum Beispiel weil das Programm sonst zu viel Platz oder Zeit beansprucht.
Bei der Kompilierung ist oft zu unterscheiden zwischen Aktionen während der Bearbeitung des Quellcodes ('zur Bearbeitungszeit'), während des Übersetzungsprozesses vom Quellcode in den Zielcode ('zur Kompilierzeit') und während performed die Ausführung des Zielcodes ('zur Laufzeit'). In jeder dieser Phasen kann Software den Programmierer unterstützen, indem sie beispielsweise die Gültigkeit oder Nützlichkeit bestimmter Operationen oder Ausdrücke überprüft.
Bei der Übersetzung findet sich oft Optimierung des Codes. Ein einfaches Beispiel: Wenn sich während der Übersetzung herausstellt, dass der Zielcode a . enthält Zusatz oder Subtraktion bei 0 kann es weggelassen werden.
Ein Programm, das mit einem Compiler in Zielcode übersetzt wurde, kann in der Regel – auch durch Optimierungen – vom Computer schneller ausgeführt werden als bei Verwendung eines Interpreters, da dieser die Befehle immer zuerst in Maschinensprache umwandeln muss – das Äquivalent der Kompilierung erfolgt zur Laufzeit. Viele Sprachen arbeiten jedoch mit einer Zwischenform, in der in dem Moment, in dem ein Programm zur Ausführung befohlen wird, noch eine Kompilierung in Zwischencode und/oder Zielcode erfolgt: Just-In-Time-Zusammenstellung.
Die traditionelle Unterscheidung zwischen kompilierten Sprachen einerseits und interpretierten Sprachen (oder „Schriftsprachen“) ist daher nicht ganz richtig. Wenn eine interpretierte Programmiersprache populär ist, werden oft Compiler (JIT oder andere) dafür geschrieben, um die Ausführung zu beschleunigen; es kommt auch vor, dass ein Interpreter für eine zuvor nur kompilierte Sprache geschrieben wird oder ein Übersetzer von einer Programmiersprache in eine andere.
Definition
Programmiersprachen sind in der gebräuchlichen Definition Sprachen, die Turingkomplett sein. Das heißt, es muss möglich sein, einen Interpreter für a in der Programmiersprache zu verwenden Turing Maschine und dass es möglich sein sollte, einen Interpreter für die Programmiersprache auf einer Turing-Maschine zu schreiben.
In einer nicht Turing-vollständigen Sprache können weniger Probleme gelöst werden als in einer Turing-vollständigen Sprache. Im SQL zum Beispiel kann man Summen von Datentabellen berechnen, aber man kann nicht berechnen, was die kürzeste Route zwischen zwei Punkten in einem Anzahl ist.
Geschichte
Es ist möglich, Computer direkt in ihrer eigenen Maschinensprache zu programmieren: direkte Angabe der Einsen und Nullen, die der Prozessor verstehen kann. Dies war bei den ersten Computern üblich, mit Schaltern wurden Gruppen von 8 Bit eingestellt. Es stellte sich jedoch bald heraus, dass es viel zu schwierig war, so konzipierte Programme auszuführen geschrieben, aufrecht erhalten. Schnell wurde daher ein symbolischer Weg gefunden, die Maschinenanleitung als Text in Form von Mnemonik. Dies machte es möglich, Anweisungen viel einfacher zu lesen. Ein solcher Code, der weitgehend eins zu eins mit den Befehlscodes übereinstimmt, heißt Montagecode oder auch Monteur und ist geschrieben in Assemblersprache. Ein Programm, das diesen Code in Maschinensprache umwandelt, heißt a Monteur erwähnt.
Die Programmierung von Assembler- und Maschinensprache erfordert, dass der Programmierer viel über den Computer weiß, den er programmieren möchte. Um die Programmierung zu erleichtern, können andere Programmiersprachen, die sogenannten höhere Programmiersprachen entwickelt. Je höher die Ordnung, desto weiter ist die Sprache von der Maschinenanleitung entfernt. Eine zwingende Programmiersprache (wie z Pascal oder C) ist näher an den Maschinenanweisungen als eine funktionale Programmiersprache (wie ( planen und Haskell). Eine funktionale Programmiersprache entspricht eher dem menschlichen Denken als der internen Funktionsweise des Computers. In Haskell ist es beispielsweise möglich, „normale“ mathematische Definitionen zu verwenden.
Programmiersprachen werden ebenfalls in Generationen unterteilt:
- Erste Generation: Maschinensprache.
- Zweite Generation: Assembler (die bloße Maschinenanleitung, aber leserlich geschrieben).
- Dritte Generation: prozedural Sprachen wie COBOL, algol, Pascal, C und fortran, und später auch objektorientierten Sprachen wie C und Java.
- vierte Generation: Sprachen mit einem höheren Abstraktionsgrad, die für einen bestimmten Zweck entwickelt wurden, wie z SQL und Fortschritt 4GL.
- Fünfte Generation: Problemlösende Sprachen. Der Programmierer gibt keine an Algorithmus aber das Problem selbst, mit einigen damit verbundenen Einschränkungen. Sprachen der fünften Generation werden hauptsächlich im Bereich der künstliche Intelligenz. Das bekannteste Beispiel ist Prolog.
Die Generationen werden oft als GL abgekürzt, zum Beispiel 3GL, als Abkürzung für 3rd Generation Language(s).
Eine der ersten höheren Programmiersprachen war Plankalül, im 1946 entwickelt von der Deutschen Konrad Zuse.
Die Entwicklung von Programmiersprachen weist folgende Merkmale auf:
- Es gibt Tausende; ständig kommen neue Sprachen hinzu, während Sprachen auch ständig in Vergessenheit geraten. Eine Programmiersprache kann unbrauchbar werden (wenn es dafür keinen Compiler oder Interpreter gibt, der auf einem noch arbeitenden Rechner funktioniert) und sogar verloren gehen (wenn auch Kenntnisse über die Sprache verloren gehen).
- Ihre Popularität variiert stark: Einige Sprachen wurden immer nur von ihren eigenen Schöpfern verwendet, während andere täglich von Millionen verwendet werden.
- Die verwendeten Sprachen entwickeln sich tendenziell weiter, wobei Erweiterungen und Änderungen in aufeinanderfolgenden Versionen vorgenommen werden (VB.NET sieht zum Beispiel gar nicht mehr danach aus BASIC aus dem es entwickelt wurde). Diese Entwicklung muss nicht linear sein: Eine Sprache kann auf einer anderen aufbauen oder Elemente aus anderen Sprachen weitgehend einbeziehen; eine Sprache kann sich auch in verschiedene Versionen aufteilen, die sich jeweils weiterentwickeln.
Um Programmiersprachen zu beschreiben, wurde eine Metasprache entwickelt: BNF oder Backus-Naur-Form. Dies beschreibt nur das Formular (Syntax) von Programmen, die in der Sprache geschrieben sind, nicht ihre Bedeutung (Semantik).
Für viele Programmiersprachen kann der Programmierer a Softwareentwicklungsumgebung die speziell ausgestattet ist, um die Entwicklung von Programmen in dieser Sprache zu unterstützen.
Siehe auch
Externer Link
Quellen, Anmerkungen und/oder Verweise
|
| Programmiersprachen |
|---|
ABAP ·ABC ·ActionScript ·Ada ·algol ·APL ·Assemblersprachen ·AWK ·B ·BASIC ·BCPL ·C ·C ·C♯ ·sauber ·Schermaschine ·COBOL ·COMAL ·Curry ·d ·Eiffel ·Erlang ·F♯ ·her ·fortran ·gehen ·Haskell ·Symbol ·J ·Java ·Kotlin ·lispeln ·Logo ·lua ·m4 ·ML ·Modula-2 ·Oberon ·Objekt Pascal ·Ziel c ·Ocamli ·Unze ·Pascal ·perl ·PHP ·PL/I ·PL/SQL ·Prolog ·Prova ·Python ·Rexx ·Rollenspiel ·Rubin ·Frieden ·SAS ·Reichweite ·planen ·Selbst ·Simula ·Smalltalk ·Schnell ·TCL ·Typoskript ·vala ·Visual Basic |