PlusPedia wird derzeit technisch modernisiert. Aktuell laufen Wartungsarbeiten. Für etwaige Unannehmlichkeiten bitten wir um Entschuldigung; es sind aber alle Artikel zugänglich und Sie können PlusPedia genauso nutzen wie immer.

Neue User bitte dringend diese Hinweise lesen:

Anmeldung - E-Mail-Adresse Neue Benutzer benötigen ab sofort eine gültige Email-Adresse. Wenn keine Email ankommt, meldet Euch bitte unter NewU25@PlusPedia.de.

Hinweis zur Passwortsicherheit:
Bitte nutzen Sie Ihr PlusPedia-Passwort nur bei PlusPedia.
Wenn Sie Ihr PlusPedia-Passwort andernorts nutzen, ändern Sie es bitte DORT bis unsere Modernisierung abgeschlossen ist.
Überall wo es sensibel, sollte man generell immer unterschiedliche Passworte verwenden! Das gilt hier und im gesamten Internet.
Aus Gründen der Sicherheit (PlusPedia hatte bis 24.07.2025 kein SSL | https://)

Bei PlusPedia sind Sie sicher: – Wir verarbeiten keine personenbezogenen Daten, erlauben umfassend anonyme Mitarbeit und erfüllen die Datenschutz-Grundverordnung (DSGVO) vollumfänglich. Es haftet der Vorsitzende des Trägervereins.

PlusPedia blüht wieder auf als freundliches deutsches Lexikon.
Wir haben auf die neue Version 1.43.3 aktualisiert.
Wir haben SSL aktiviert.
Hier geht es zu den aktuellen Aktuelle Ereignissen

Programmiersprache: Unterschied zwischen den Versionen

Aus PlusPedia
Zur Navigation springen Zur Suche springen
Fmrauch (Diskussion | Beiträge)
KKeine Bearbeitungszusammenfassung
 
(44 dazwischenliegende Versionen von 5 Benutzern werden nicht angezeigt)
Zeile 1: Zeile 1:
Eine '''Programmiersprache''' ist ein Werkzeug, um [[Computerprogramm|Computerprogramme]] zu schreiben.
Eine '''Programmiersprache''' ist eine [[formale Sprache]], in der [[Computerprogramm]]e geschrieben werden. Das Erstellen und Ändern solcher Programme wird als [[Programmierung]] bezeichnet. Programmiersprachen werden nach verschiedenen Kategorien und Anwendungsbereichen unterschieden:


== Unterscheidung nach Generationen ==
== Maschinenorientierte Sprache ==
=== Erste Generation ===
Die Programmierung der [[Hardware]] erfolgt durch eine Folge elementarer Befehle für die Maschine, die sogenannte [[Maschinensprache]] (als [[Binärcode]] oder im [[Hexadezimalsystem]]). Nachteil dieses Verfahrens ist, dass die Befehle schwer verständlich und das Programm daher schlecht zu warten ist. Die Fehlersuche ist sehr aufwändig. Als Hilfe dient meist ein [[Assembler]]. Zur Erleichterung wurden zunächst [[Assemblersprache]]n und später [[höhere Programmiersprache]]n entwickelt.
* [[Maschinensprache]]  
** Programmierung der Hardware durch Folge elementarer Befehle der Maschine
** Sehr anstrengend zu programmieren
** sehr fehleranfällig
** schlecht wartbar
** Höhere Performance als Hochsprachen


=== Zweite Generation ===
== Benutzerorientierte Sprache ==
* [[Assemblersprache]]
Höhere Programmiersprachen sind weitgehend von der Hardware unabhängig und für den Menschen besser verständlich. Die Übersetzung erfolgt mit Hilfe eines [[Compiler]]s in die [[Maschinensprache]].
** Ein Assemblerbefehl entspricht einem Maschinenbefehl
** Ebenfalls sehr fehleranfällig und schwer wartbar.
** Höhere Performance als Hochsprachen


===  Höhere Programmiersprachen ===
Die ersten höheren Programmiersprachen entstanden in den 1950er/1960er Jahren. Dazu gehören
* Hardware (Maschinen)-Unabhängigkeit
* [[BASIC]], oft als Einstiegs-Sprache genutzt
* Für den Menschen verständlich
* [[COBOL]] für kaufmännische und [[betriebswirtschaft]]liche Anwendungen
* Codierarbeit soll die Maschine selbst machen
* [[Fortran]] für [[wissenschaft]]liche und technische Anwendungen
* Niedrigere Performance als Maschinensprache und Assembler
* [[PL/1]] hat die Möglichkeiten von Fortran und COBOL vereint


Dafür sind
Später kamen weitere Sprachen dazu wie
* [[Interpreter]]
* [[C (Programmiersprache)|C]] und C+
* und/oder [[Compiler]]
* [[Pascal (Programmiersprache)|Pascal]] wurde ähnlich wie Basic ursprünglich zum Lernen entwickelt
notwendig.


Die ersten höheren Programmiersprachen entstanden Ende der 1950er.
== Prinzipien von Programmiersprachen ==
* [[Fortran]]
Der Computer macht nur genau das, was man ihm sagt. Dieser oft zitierte Satz führt dazu, dass Programmiersprache bestimmte Prinzpien haben:
* [[COBOL]]
* Eindeutige [[Lexikalität]]
* [[LISP]]
* Eindeutige [[Syntax]]
* Eindeutige [[Semantik]]


=== 4. Generation ===
Die Lexikalität bedeutet, dass es einen festgelegten Vorrat an Befehlen gibt. Aus dem Regelwerk folgt zum Beispiel ein bestimmtes Format für Kommentare und Daten. Über sogenannte Bibliotheken könne Erweiterungen vorgenommen werden, die auch in einer anderen Programmiersprache erstellt sein können. Die Syntax ist sehr starr im Vergleich zur menschlichen Sprache. Die Semantik bestimmt, das es immer nur eine Bedeutung für bestimmte Zeichenfolgen gibt. Allerdings ist zu beachten, dass Daten und Programme voneinander getrennt werden müssen, wobei der Datenbereich innerhalb des Programms definiert wird. Da sich die Daten ändern, werden innerhalb des Programms in der Regel keine Daten mitgeliefert, sondern diese werden erst zur Laufzeit eingebunden.
Marketingaussagen


=== 5. Generation ===
== Fehler und Bugs ==
[[Grace Muray Hopper]] erfand die Sprache COBOL. Ihr wird der Begriff [[Bug (Informatik)|Bug]] für versteckte Fehler in den Programmen zugeschrieben. Diese entstehen hauptsächlich bei komplexen Programmen. Die Suche nach solchen Fehlern ist oft sehr aufwändig, da diese meist nur unter bestimmten Bedingungen auftreten und manchmal erst durch einen Benutzer oder nach längerem Einsatz des Programms entdeckt werden. Daher werden in der Regel vor dem Einsatz eines Programms mehrere Testläufe durchgeführt.


== Compiler und Interpreter ==
Der [[Compiler]] übersetzt das Quellprogramm (englisch ''source code'') als Ganzes in die Maschinensprache. Jede Programmiersprache hat ihren eigenen Compiler.
Beim ''Binden'' werden vorübersetzte Servicefunktionen und Module hinzugefügt, symbolische Namen ersetzt (z.B. statische / dynamische DLLs) oder auch mehrere Pakete von Programmen aus verschiedenen Programmiersprachen zusammengesetzt.
Der Vorteil eines Compilers ist die maximale Geschwindigkeit beim Ausführen des fertigen Programms. Allerdings läuft das übersetzte Programm nur auf bestimmten Maschinen (Hardware) und oft auch nur unter einem [[Betriebssystem]].


Ein Nachteil des Compilers ist, dass meist noch anschließend ein Test mit den tatsächlichen Daten erfolgen muss, was einen zusätzlichen Zeitaufwand bedeutet. Die Laufzeit kann - insbesondere bei größeren Datenmengen - oft erst bei diesem Test festgestellt werden.


== Unterscheidung nach [[Programmierparadigma|Programmierparadigmen]] ==
Beim [[Interpreter]] erfolgt die Übersetzung der Hochsprache in Befehlsfolgen der Maschinensprache oder in eine Zwischensprache bereits zur Laufzeit. Dafür wurden sogenannte [[Skriptsprache]]n entwickelt. Diese haben den Vorteil, dass geänderte Programme sofort ausführbar sind. Dies ist sehr hilfreich beim Testen. Schnelle Änderungen sind möglich und das Verfahren ist sehr gut für [[Prototyp]]en geeignet, stellt allerdings gegenüber einem Compiler höhere Anforderung an die Leistung des Computers. Ein großer Nachteil kann die wesentlich längere Ausführungszeit der einzelnen Tests sein.


== Charakteristika von Programmiersprachen ==
Das Ergebnis kann optimiert werden, indem häufige Befehlsfolgen als [[Modul]] eingebunden, Parallelitäten genutzt und Vorausberechnungen für die Laufzeit erstellt werden.
* Eindeutige Lexikalität
** Festlegung von gültigen Zeichen
* Eindeutige Syntax
* Eindeutige Semantik
** Der Computer macht genau das was man ihm sagt


* Pragmatik
== Siehe auch ==
 
== Vorgehensweise beim Übersetzen von Programmen ==
* Lexikalische Analyse
* Syntaktsiche Analyse
* Semantische Analyse
* Code Generierung
 
== Bugs ==
Grace Muray Hopper erfand die Sprache COBOL. Ihr wird der Begriff Bug zugeschrieben.
 
== Vor- und Nachteile von Compilern und Interpretern ==
* "The deifference between theory and practice is that in theory, there is no difference between tehory and practice, but in practice there is"
 
Maximae Geschwindigkeit durch Optimierung des Codes aber das übersetzte Programm läuft nur auf einer Maschine
 
Compiler übersetzt das Quellprogramm "als Ganzes"
* Kann dann optimieren (Befehlsfolgen vertauschen, Paralletitäten nutzen, Vorausberechnung)
* Binden
** Vorübersetzte Servicefunktionen werden hinzugefügt. Symbolische Namen ersetzt (statische / dynamische DLLs)
* Laufen lassen
 
Interpreter
# Lexikalische Analyse nur einer Anweisung im Programm
# Syntaktische Analyse
# Übersetzung er Hochsprache in Befehlsfolge der Maschinensrpache oder einer Zwischensprache; dnamisch binden
# Ausführen
 
* Geänderte Programme sind sofort ausführbar
* seehr hilfreich beim Testen
* Schnelles Ändern
* Sehr gut für Prototypen
* Aber langsam
 
== Virtuelle Maschine ==
Eine virtuelle Maschine dient dazu Programmen aus Hochsprachen in einen einheitlichen Code einer virtuellen Maschine zu übersetzen. Dieser Code läuft dann mithilfe der virtuellen Maschine auf Prozessoren, für die es entsprechende Umsetzungen gibt.
 
 
== Links und Quellen ==
=== Siehe auch ===
* [[Algorithmus]]
* [[Algorithmus]]


=== Weblinks ===
{{PPA-Silber}}
=== Quellen ===
=== Literatur ===
=== Einzelnachweise ===
<references/>
----
 


[[Kategorie:Software]]
[[Kategorie:Programmiersprache| ]]
[[Kategorie:Programmiersprache| ]]
[[Kategorie:Compilerbau]]
{{Vorlage:PPA-Eisen|Txt=Programmiersprache}}

Aktuelle Version vom 22. Juni 2025, 19:01 Uhr

Eine Programmiersprache ist eine formale Sprache, in der Computerprogramme geschrieben werden. Das Erstellen und Ändern solcher Programme wird als Programmierung bezeichnet. Programmiersprachen werden nach verschiedenen Kategorien und Anwendungsbereichen unterschieden:

Maschinenorientierte Sprache

Die Programmierung der Hardware erfolgt durch eine Folge elementarer Befehle für die Maschine, die sogenannte Maschinensprache (als Binärcode oder im Hexadezimalsystem). Nachteil dieses Verfahrens ist, dass die Befehle schwer verständlich und das Programm daher schlecht zu warten ist. Die Fehlersuche ist sehr aufwändig. Als Hilfe dient meist ein Assembler. Zur Erleichterung wurden zunächst Assemblersprachen und später höhere Programmiersprachen entwickelt.

Benutzerorientierte Sprache

Höhere Programmiersprachen sind weitgehend von der Hardware unabhängig und für den Menschen besser verständlich. Die Übersetzung erfolgt mit Hilfe eines Compilers in die Maschinensprache.

Die ersten höheren Programmiersprachen entstanden in den 1950er/1960er Jahren. Dazu gehören

Später kamen weitere Sprachen dazu wie

  • C und C+
  • Pascal wurde ähnlich wie Basic ursprünglich zum Lernen entwickelt

Prinzipien von Programmiersprachen

Der Computer macht nur genau das, was man ihm sagt. Dieser oft zitierte Satz führt dazu, dass Programmiersprache bestimmte Prinzpien haben:

Die Lexikalität bedeutet, dass es einen festgelegten Vorrat an Befehlen gibt. Aus dem Regelwerk folgt zum Beispiel ein bestimmtes Format für Kommentare und Daten. Über sogenannte Bibliotheken könne Erweiterungen vorgenommen werden, die auch in einer anderen Programmiersprache erstellt sein können. Die Syntax ist sehr starr im Vergleich zur menschlichen Sprache. Die Semantik bestimmt, das es immer nur eine Bedeutung für bestimmte Zeichenfolgen gibt. Allerdings ist zu beachten, dass Daten und Programme voneinander getrennt werden müssen, wobei der Datenbereich innerhalb des Programms definiert wird. Da sich die Daten ändern, werden innerhalb des Programms in der Regel keine Daten mitgeliefert, sondern diese werden erst zur Laufzeit eingebunden.

Fehler und Bugs

Grace Muray Hopper erfand die Sprache COBOL. Ihr wird der Begriff Bug für versteckte Fehler in den Programmen zugeschrieben. Diese entstehen hauptsächlich bei komplexen Programmen. Die Suche nach solchen Fehlern ist oft sehr aufwändig, da diese meist nur unter bestimmten Bedingungen auftreten und manchmal erst durch einen Benutzer oder nach längerem Einsatz des Programms entdeckt werden. Daher werden in der Regel vor dem Einsatz eines Programms mehrere Testläufe durchgeführt.

Compiler und Interpreter

Der Compiler übersetzt das Quellprogramm (englisch source code) als Ganzes in die Maschinensprache. Jede Programmiersprache hat ihren eigenen Compiler. Beim Binden werden vorübersetzte Servicefunktionen und Module hinzugefügt, symbolische Namen ersetzt (z.B. statische / dynamische DLLs) oder auch mehrere Pakete von Programmen aus verschiedenen Programmiersprachen zusammengesetzt. Der Vorteil eines Compilers ist die maximale Geschwindigkeit beim Ausführen des fertigen Programms. Allerdings läuft das übersetzte Programm nur auf bestimmten Maschinen (Hardware) und oft auch nur unter einem Betriebssystem.

Ein Nachteil des Compilers ist, dass meist noch anschließend ein Test mit den tatsächlichen Daten erfolgen muss, was einen zusätzlichen Zeitaufwand bedeutet. Die Laufzeit kann - insbesondere bei größeren Datenmengen - oft erst bei diesem Test festgestellt werden.

Beim Interpreter erfolgt die Übersetzung der Hochsprache in Befehlsfolgen der Maschinensprache oder in eine Zwischensprache bereits zur Laufzeit. Dafür wurden sogenannte Skriptsprachen entwickelt. Diese haben den Vorteil, dass geänderte Programme sofort ausführbar sind. Dies ist sehr hilfreich beim Testen. Schnelle Änderungen sind möglich und das Verfahren ist sehr gut für Prototypen geeignet, stellt allerdings gegenüber einem Compiler höhere Anforderung an die Leistung des Computers. Ein großer Nachteil kann die wesentlich längere Ausführungszeit der einzelnen Tests sein.

Das Ergebnis kann optimiert werden, indem häufige Befehlsfolgen als Modul eingebunden, Parallelitäten genutzt und Vorausberechnungen für die Laufzeit erstellt werden.

Siehe auch

Vergleich zu Wikipedia