Zum Inhalt springen

„Programmcode“ – Versionsunterschied

aus Wikipedia, der freien Enzyklopädie
[gesichtete Version][gesichtete Version]
Inhalt gelöscht Inhalt hinzugefügt
Mocht (Diskussion | Beiträge)
+„verwalteter […]“ und „nicht verwalteter Code“, nebenher u.a. Einzelbelege einheitlicher gesetzt und zugehörige Zeitangaben ergänzt
Zeile 1: Zeile 1:
Als '''Programmcode''' (oder '''Programmkode''') werden die [[Anweisung (Programmierung)|Anweisungen]] bezeichnet, die im Rahmen der [[Softwareentwicklung]] für ein bestimmtes [[Computerprogramm]] oder einen Teil davon entstehen und die dessen Funktionalität in einer bestimmten [[Programmiersprache]] beschreiben bzw. repräsentieren.
Als '''Programmcode''' (oder '''Programmkode''') werden die [[Anweisung (Programmierung)|Anweisungen]] bezeichnet, die im Rahmen der [[Softwareentwicklung]] für ein bestimmtes [[Computerprogramm]] oder einen Teil davon entstehen und die dessen Funktionalität in einer bestimmten [[Programmiersprache]] beschreiben bzw. repräsentieren.


== {{Anker|verwaltet|managed|nicht verwaltet|unmanaged}}Arten ==
== Unterschiedliche Bedeutungen==

Im Allgemeinen werden folgende Arten von Programmcode unterschieden:
Im Allgemeinen werden folgende Arten von Programmcode unterschieden:

* ''[[Quelltext]]'' ist die für Menschen lesbare und meist von Menschen erstellte Form eines Computerprogramms.
* ''[[Quelltext]]'' ist die für Menschen lesbare und meist von Menschen erstellte Form eines Computerprogramms.
::(wird auch ''Quell-'', ''Source-'', ''Primärcode'' oder ''Quellprogramm'' genannt)
::(wird auch ''Quell-'', ''Source-'', ''Primärcode'' oder ''Quellprogramm'' genannt)

* ''[[Zwischencode]]'' wird beim [[Compiler|Kompiliervorgang]] erzeugt und anschließend [[Interpreter|interpretiert]] oder in andere [[formale Sprache]]n, z. B. Maschinencode, übersetzt.
* ''[[Zwischencode]]'' wird beim [[Compiler|Kompiliervorgang]] erzeugt und anschließend [[Interpreter|interpretiert]] oder in andere [[formale Sprache]]n, z. B. Maschinencode, übersetzt.
::(wird plattformspezifisch meist unterschiedlich bezeichnet: [[Bytecode]], [[Objektcode]], Pseudocode oder ähnlich)
::(wird plattformspezifisch meist unterschiedlich bezeichnet: [[Bytecode]], [[Objektcode]], Pseudocode oder ähnlich)

* ''[[Maschinencode]]'' kann von einer Maschine direkt ausgeführt werden, ist für Menschen jedoch nicht oder nur schwer lesbar.
* ''[[Maschinencode]]'' kann von einer Maschine direkt ausgeführt werden, ist für Menschen jedoch nicht oder nur schwer lesbar.
::(wird auch ''Maschinenprogramm'', ''Binärprogramm'' oder ähnlich genannt)
::(wird auch ''Maschinenprogramm'', ''Binärprogramm'' oder ähnlich genannt)

In der Literatur wird der Ausdruck ‚Programmcode‘ zum Teil ''als Synonym'' für nur eine der vorgenannten Unterarten verwendet, in vielen Fällen nur für 'Quelltext', Beispiel siehe <ref>Duden.de (Rechtschreibung) [http://www.duden.de/rechtschreibung/Programmcode] ''Programmcode oder Programmkode = Quellcode''</ref>, aber auch für andere Codearten, zum Beispiel für 'Maschinencode' (wie in <ref>Informatik DUDEN ISBN 3-411-05232-5 Ausgabe 1993, Seite 132 ''(Programm-)Code = „Ein in eine Maschinensprache übersetztes Programm“''</ref> oder in <ref>TUM [http://ttt.in.tum.de/dl/Diplom_VAM.pdf] „[…] aber in dem übersetzten Programmcode, welcher der abstrakten Maschine als Eingabe gilt, […]“</ref>).
* bei ''verwaltetem'' und ''nicht verwaltetem Code'' wird die Speicherverwaltung weitgehend von der [[integrierte Entwicklungsumgebung|Entwicklungs-]] (genauer vom Übersetzer oder auch sogenanntem ''[[Compiler]]'') sowie von der [[Laufzeitumgebung]] übernommen
::(englisch ''‚{{lang|en|managed …}}‘'' und ''‚{{lang|en|unmanaged code}}‘'' genannt; siehe beispielsweise in ''[[Java (Programmiersprache)|Java]]'' oder auch in den ''[[.NET]]''-Sprachen)

In der Literatur wird der Ausdruck „Programmcode“ zum Teil gleichbedeutend für nur eine der vorgenannten Unterarten verwendet, in vielen Fällen nur für „Quelltext“,<ref>[//www.duden.de/rechtschreibung/Programmcode Programmcode, Programmkode] ''[[Duden]]'', veröffentlich 2018; u.a. unter „Bedeutungsübersicht“ mit „''Quellcode''</ref> aber auch für andere Codearten, zum Beispiel für „Maschinencode“.<ref>Informatik DUDEN ISBN 3-411-05232-5 Ausgabe 1993, Seite 132 ''(Programm-)Code = „Ein in eine Maschinensprache übersetztes Programm“''</ref><ref>TUM [http://ttt.in.tum.de/dl/Diplom_VAM.pdf Visualisierung Abstrakter Maschinen] ([[Portable Document Format|PDF]], ≈&nbsp;1&nbsp;[[Megabyte|MB]]) – ''[[Universität Trier]]'', veröffentlicht am {{Datum|5|3|2001}}; u.a. mit „[…] aber in dem übersetzten Programmcode, welcher der abstrakten Maschine als Eingabe gilt, […]“</ref>


== Abgrenzung/Mehrdeutige Verwendung des Begriffs ==
== Abgrenzung/Mehrdeutige Verwendung des Begriffs ==


* Mit ‚Programmcode‘ ist nicht ‚Code‘ im Sinn von Sprache/Syntax gemeint, sondern i.S. von ‚Programmstück‘.
* Mit ‚Programmcode‘ ist nicht ‚Code‘ im Sinn von Sprache/Syntax gemeint, sondern i.S. von ‚Programmstück‘.
* Anweisungen, die mit [[Deklarative Programmierung|deklarativen Programmiersprachen]] oder mit [[Grafische Programmiersprache|grafischen Programmiersprachen]] erzeugt wurden, werden nur teilweise als ‚Programmcode‘ bezeichnet (Beispiel siehe <ref>National Instruments: [http://www.ni.com/white-paper/14556/de/ ''Die Vorteile der grafischen Programmierung mit NI LabVIEW''] ''Bezeichnet das grafische Blockdiagramm als Programmcode''</ref>); zum Teil werden derartige Anweisungen aber auch als Gegenteil von Programmcode (hier im Sinn von 'Programmtext') bezeichnet.<ref>[http://books.google.de/books?id=LFMhNmBx8RgC&pg=PA899 ''Visual C[#&#93; 2008: Windows-Programmierung mit dem .NET Framework 3.5 - Jürgen Bayer'']
* Anweisungen, die mit [[Deklarative Programmierung|deklarativen Programmiersprachen]] oder mit [[Grafische Programmiersprache|grafischen Programmiersprachen]] erzeugt wurden, werden nur teilweise als „Programmcode“ bezeichnet;<ref>National Instruments: [http://www.ni.com/white-paper/14556/de/ Die Vorteile der grafischen Programmierung mit NI LabVIEW] – ''[[National Instruments]]'', am {{Datum|7|8|2013}}; dort wurde das ''grafische Blockdiagramm'' als ''Programmcode'' bezeichnet</ref> zum Teil werden derartige Anweisungen aber auch als Gegenteil von Programmcode (hier im Sinn von „Programmtext“) bezeichnet.<ref>[//books.google.de/books?id=LFMhNmBx8RgC&pg=PA899 14.2.5. Vordefinierte Befehle mit Steuerelementen einsetzen] – Abschnitt in ''Visual C# 2008: Windows-Programmierung mit dem .NET Framework 3.5'', von ''Jürgen Bayer'' über den ''[[Markt+Technik Verlag|Markt-und-Technik-Verlag]]'' 2008 veröffentlicht; ISBN 978-38272-4339-3; Seite 899, u.a. mit „Das Ganze erfordert keine einzige Zeile Programmcode, sondern wird komplett (deklarativ) in XAML definiert.“</ref>
''„... erfordert keine einzige Zeile Programmcode, sondern wird komplett (deklarativ) in XAML definiert.“''</ref>


== Aufeinander aufbauend ==
== Aufeinander aufbauend ==
Zeile 22: Zeile 29:


== Immaterieller Begriff ==
== Immaterieller Begriff ==

‚Programmcode‘ ist ein immaterieller Begriff und kann in unterschiedlichen Medien existieren, beispielsweise im Hauptspeicher eines Editors (während der Erstellung von Quelltext), als Member einer Programmbibliothek oder als ausführbare Datei (wenn er gespeichert wird), im Hauptspeicher des Computers (bei der Ausführung des Programms) oder auf Papier (beispielsweise in einer Quelltextliste).
‚Programmcode‘ ist ein immaterieller Begriff und kann in unterschiedlichen Medien existieren, beispielsweise im Hauptspeicher eines Editors (während der Erstellung von Quelltext), als Member einer Programmbibliothek oder als ausführbare Datei (wenn er gespeichert wird), im Hauptspeicher des Computers (bei der Ausführung des Programms) oder auf Papier (beispielsweise in einer Quelltextliste).


{{Anker|FormatUnterschiede}}
== Formale Unterschiede ==
== Formale Unterschiede ==

Programmcodevarianten unterscheiden sich bezüglich ihrer ''Struktur, Form, Syntax, Speicherung etc.'' je nach Programmiersprache und den verwendeten Programmierwerkzeugen erheblich. Zum Teil fallen nicht alle Codevarianten an (zum Beispiel kein Zwischencode oder kein Maschinencode), oder sie werden mit individuell anderen ''Bezeichnungen'' benannt (wie 'Bytecode').
Programmcodevarianten unterscheiden sich bezüglich ihrer ''Struktur, Form, Syntax, Speicherung etc.'' je nach Programmiersprache und den verwendeten Programmierwerkzeugen erheblich. Zum Teil fallen nicht alle Codevarianten an (zum Beispiel kein Zwischencode oder kein Maschinencode), oder sie werden mit individuell anderen ''Bezeichnungen'' benannt (wie 'Bytecode').


Zeile 38: Zeile 46:


== Siehe auch ==
== Siehe auch ==

{{Wiktionary|Programmcode}}
{{Wiktionary|Programmcode}}


== Einzelnachweise ==
== Einzelnachweise ==

<references />
<references/>


[[Kategorie:Programmierung]]
[[Kategorie:Programmierung]]

Version vom 5. Februar 2018, 08:38 Uhr

Als Programmcode (oder Programmkode) werden die Anweisungen bezeichnet, die im Rahmen der Softwareentwicklung für ein bestimmtes Computerprogramm oder einen Teil davon entstehen und die dessen Funktionalität in einer bestimmten Programmiersprache beschreiben bzw. repräsentieren.

Arten

Im Allgemeinen werden folgende Arten von Programmcode unterschieden:

  • Quelltext ist die für Menschen lesbare und meist von Menschen erstellte Form eines Computerprogramms.
(wird auch Quell-, Source-, Primärcode oder Quellprogramm genannt)
(wird plattformspezifisch meist unterschiedlich bezeichnet: Bytecode, Objektcode, Pseudocode oder ähnlich)
  • Maschinencode kann von einer Maschine direkt ausgeführt werden, ist für Menschen jedoch nicht oder nur schwer lesbar.
(wird auch Maschinenprogramm, Binärprogramm oder ähnlich genannt)
  • bei verwaltetem und nicht verwaltetem Code wird die Speicherverwaltung weitgehend von der Entwicklungs- (genauer vom Übersetzer oder auch sogenanntem Compiler) sowie von der Laufzeitumgebung übernommen
(englisch managed … und unmanaged code genannt; siehe beispielsweise in Java oder auch in den .NET-Sprachen)

In der Literatur wird der Ausdruck „Programmcode“ zum Teil gleichbedeutend für nur eine der vorgenannten Unterarten verwendet, in vielen Fällen nur für „Quelltext“,[1] aber auch für andere Codearten, zum Beispiel für „Maschinencode“.[2][3]

Abgrenzung/Mehrdeutige Verwendung des Begriffs

  • Mit ‚Programmcode‘ ist nicht ‚Code‘ im Sinn von Sprache/Syntax gemeint, sondern i.S. von ‚Programmstück‘.
  • Anweisungen, die mit deklarativen Programmiersprachen oder mit grafischen Programmiersprachen erzeugt wurden, werden nur teilweise als „Programmcode“ bezeichnet;[4] zum Teil werden derartige Anweisungen aber auch als Gegenteil von Programmcode (hier im Sinn von „Programmtext“) bezeichnet.[5]

Aufeinander aufbauend

Jeder Programmcode bezieht sich auf genau ein Programm oder einen Programmteil. Die verschiedenen Codearten bauen aufeinander auf. Beispiel: Der Quelltext > ist die Grundlage für den Zwischencode > dieser für den Maschinencode. Quelltext wird von Programmierern erzeugt, die anderen Arten von Programmcode werden in der Regel automatisch generiert. Dabei werden auf der nächsten Entwicklungsstufe häufig Programmcodes für mehrere Funktionen/Programmteile zusammengefasst, sodass die letzte Stufe, zum Beispiel der Maschinencode, oft nur noch ein (1) Programmcode ist, der unter Verwendung mehrerer/vieler Codeteile entstand.

Immaterieller Begriff

‚Programmcode‘ ist ein immaterieller Begriff und kann in unterschiedlichen Medien existieren, beispielsweise im Hauptspeicher eines Editors (während der Erstellung von Quelltext), als Member einer Programmbibliothek oder als ausführbare Datei (wenn er gespeichert wird), im Hauptspeicher des Computers (bei der Ausführung des Programms) oder auf Papier (beispielsweise in einer Quelltextliste).

Formale Unterschiede

Programmcodevarianten unterscheiden sich bezüglich ihrer Struktur, Form, Syntax, Speicherung etc. je nach Programmiersprache und den verwendeten Programmierwerkzeugen erheblich. Zum Teil fallen nicht alle Codevarianten an (zum Beispiel kein Zwischencode oder kein Maschinencode), oder sie werden mit individuell anderen Bezeichnungen benannt (wie 'Bytecode').

Lebensdauer

Im Rahmen der Entwicklung von Programmcode wird dieser meist sehr oft und kurzfristig geändert/korrigiert (Quelltext) bzw. neu erzeugt (die anderen Arten). Programmcodes existieren dabei oft nur temporär bis zur nächsten Version, zum Beispiel nach der Korrektur eines Programmfehlers.

Vom Quelltext zur Ausführung

Bevor ein Computerprogramm von einem Computer ausgeführt werden kann, muss es in Maschinensprache, also in eine vom Computer verständliche Folge von Bits, umgesetzt werden. Dies kann entweder vorab durch einen Compiler oder – zur Laufzeit – durch einen Interpreter oder JIT-Compiler geschehen. In vielen Fällen wird mittlerweile eine Kombination aus beiden Varianten gewählt, bei der zur Übersetzungszeit der Quelltext der eigentlichen Programmiersprache in einen abstrakten Zwischencode übersetzt wird, welcher dann zur Laufzeit von einer Laufzeitumgebung durch einen Interpreter oder JIT-Compiler in den eigentlichen Maschinencode überführt wird. Dieses Prinzip hat den Vorteil, dass ein und derselbe Zwischencode auf sehr vielen verschiedenen Rechnerarchitekturen ausführbar ist und somit nicht für jede Zielarchitektur eine eigene Version der Software erscheinen muss. Typische Beispiele für einen solchen Zwischencode sind der Java-Bytecode sowie die Common Intermediate Language. Mittels eines Debuggers kann die Funktionsweise des Programmes zur Laufzeit verfolgt werden.

Siehe auch

Wiktionary: Programmcode – Bedeutungserklärungen, Wortherkunft, Synonyme, Übersetzungen

Einzelnachweise

  1. Programmcode, ProgrammkodeDuden, veröffentlich 2018; u.a. unter „Bedeutungsübersicht“ mit „Quellcode
  2. Informatik DUDEN ISBN 3-411-05232-5 Ausgabe 1993, Seite 132 (Programm-)Code = „Ein in eine Maschinensprache übersetztes Programm“
  3. TUM Visualisierung Abstrakter Maschinen (PDF, ≈ 1 MB) – Universität Trier, veröffentlicht am Vorlage:Datum – die Form mit drei unbenannten Parametern oder anderen einzelnen Zeiteinheiten ist veraltet und wird nicht mehr unterstützt. Bitte gib das Datum einfach im Klartext an.; u.a. mit „[…] aber in dem übersetzten Programmcode, welcher der abstrakten Maschine als Eingabe gilt, […]“
  4. National Instruments: Die Vorteile der grafischen Programmierung mit NI LabVIEWNational Instruments, am Vorlage:Datum – die Form mit drei unbenannten Parametern oder anderen einzelnen Zeiteinheiten ist veraltet und wird nicht mehr unterstützt. Bitte gib das Datum einfach im Klartext an.; dort wurde das grafische Blockdiagramm als Programmcode bezeichnet
  5. 14.2.5. Vordefinierte Befehle mit Steuerelementen einsetzen – Abschnitt in Visual C# 2008: Windows-Programmierung mit dem .NET Framework 3.5, von Jürgen Bayer über den Markt-und-Technik-Verlag 2008 veröffentlicht; ISBN 978-38272-4339-3; Seite 899, u.a. mit „Das Ganze erfordert keine einzige Zeile Programmcode, sondern wird komplett (deklarativ) in XAML definiert.“