Bibtex

@InCollection{,
  Year    = "2019", 
  Title    = "Programm (Computerprogramm)", 
  Author    = "Kurbel, Prof. em. Dr. Karl", 
  Booktitle    = "Gronau, Norbert ; Becker, Jörg ; Kliewer, Natalia ; Leimeister, Jan Marco ; Overhage, Sven (Herausgeber): Enzyklopädie der Wirtschaftsinformatik – Online-Lexikon",
  Publisher    = "Berlin : GITO",
  Url    = "https://wi-lex.de/index.php/lexikon/technologische-und-methodische-grundlagen/programm-computerprogramm/", 
  Note    = "[Online; Stand 28. March 2024]",
}

Programm (Computerprogramm)

Ein Programm ist ein Stück Software, das Aktionen eines Computers veranlasst. Der Begriff wird sowohl auf umfangreiche Standardanwendungssoftware als auch auf individuelle Anweisungsfolgen angewendet, die ein Computerbenutzer in einer Programmiersprache geschrieben oder die ein Übersetzungsprogramm in ein maschineninternes Format überführt hat.

Programm aus Benutzersicht

Aus Sicht eines Benutzers ist ein Programm ein Stück Software, das an einem Computer­arbeits­platz abläuft und bestimmte Aufgaben löst oder den Benutzer bei der Aufgabenlösung unter­stützt. Dies kann ein einzelnes Programm sein, das Webseiten anzeigt (Browser), Computer­viren beseitigt (Viren-Scanner) oder das Erstellen von Textdokumenten erlaubt (Text­ver­arbei­tungsprogramm), aber auch ein betriebliches Informationssystem, welches aus zahlreichen integrierten Einzelpro­gram­men besteht (z.B. ein ERP-System).

Die auf leistungsfähigen Mobiltelefonen (sog. Smartphones) laufenden Apps sind ebenfalls Programme. “App” ist eine Kurzform von “Applikation” (oder englisch “Application”), was im IT-Sprachgebrauch für Anwendungsprogramm steht.

Programm aus Entwicklersicht

Programme werden mit Hilfe von Programmiersprachen und auf der Grundlage einer bestimm­ten Herangehensweise an die Problemlösung entwickelt. In den Anfängen der Datenverarbei­tung, als Programme und Programmiersprachen noch die funktionale Arbeitsweise eines an der Von-Neu­mann-Architektur orientierten Computers reflektierten, wurde ein Programm in den meisten Lehr­büchern als eine Rechenvorschrift, ein Algorithmus oder eine Folge von Anweisungen definiert, die angibt, welche Operationen in welcher Reihenfolge ausgeführt und welche Datenstrukturen wie verwendet werden sollen [Knuth 1968, S. 5, Wirth 1975a, S. 7].

“Der Computer ist ein Automat, der Prozesse nach genau vorgeschriebenen Verhaltensmaßregeln ausführt”
[Wirth 1975b, S. 13]

Da Programme als Folgen von Befehlen (Anweisungen, Instruktionen) verstanden wurden, bezeich­nete man den zugrundeliegen­den Programmierstil als “imperative Programmierung” oder wegen des am Ablauf orientierten Charakters als “prozedurale Programmierung”. Gängige Programmierspra­chen wie Cobol, Fortran, Basic und Pl/1 erlaubten das Schreiben von Pro­gram­men genau diesem Programmierstil entsprechend.

Im Lauf der Zeit fanden andere Programmierstile (sog. Programmierparadigmen) als die imperative oder prozedurale Programmierung Verbreitung und wurden durch anders geartete Programmier­spra­chen unterstützt. Deshalb ist die obige Definition nicht mehr generell anwend­bar. In einem funktionalen Programm sind die Kernbegriffe beipielsweise “Funktion” und “Argument” und nicht “Befehl” oder “Datenstruktur”. In einem objektorientierten Pro­gramm spricht man von Objekten, Klassen, Nachrichten und Methoden.

Allgemein gültige Definitionen des Begriffs Programm werden deshalb zwangsläufig auf einer hohen Abstraktionsebene angesiedelt. Ein Programm ist letztlich ein Text, der Anweisungen für einen Computer enthält [Gumm, Sommer 2013, S. 82]. Dies führt zu der Definition:

Ein Programm stellt eine logisch gegliederte Menge von Anweisungen dar, die mit den Ausdruckmitteln einer Programmiersprache zur Lösung einer gegebenen Aufgabe durch einen Computer formuliert wurden.

Je nach Paradigma muss diese allgemeine Beschreibung weiter präzisiert werden. Beispielsweise beschreiben die Anweisungen eines objektorientierten Programms, das in Java formuliert ist, die verwendeten Objekte und wie die Objekte mit Hilfe von Nachrichtenaustausch zur Lösung der Aufgabe tätig werden. Ein logisches Programm enthält dagegen Anweisungen, die logische Konstrukte wie Prämissen, Implikationen und Fakten beschreiben und den Wahrheitsgehalt von logischen Aussagen auswerten.

Programm aus Systemsicht

Programme lassen sich aus Sicht des Betriebssystems, wie in Abbildung 1 veranschaulicht, wie folgt unterscheiden:

  • Quellprogramm – ein Programm, das mit den Ausdrucksmitteln einer Programmiersprache geschrieben ist und als Text (Quelltext) in dieser Sprache vorliegt.

  • Maschinenprogramm (Objektprogramm) – ein von einem Übersetzungsprogramm (Compiler oder Assembler) in eine Form überführtes Programm, die vom Prozessor des zugrunde liegenden Computersystems direkt ausgeführt werden kann. Das Maschinenprogramm liegt in binärer Form vor (Folgen von 0 und 1).

  • Hauptprogramm (eines Programmsystems) – dasjenige Programm, welches vom Betriebssystem zur Ausführung des Programmsystems gestartet wird. Im Allgemeinen ruft das Hauptprogramm andere Programme (Unterprogramme) auf, die Teilaufgaben lösen.

Programmsystem-2b.gif

Abb. 1: Programmbegriffe aus Betriebssystemsicht

Programme können auch integrale Bestandteile von technischen Systemen sein und z.B. zur Steuerung dieser Systeme dienen (eingebettete Programme).


Literatur

Gumm, Heinz-Peter ; Sommer, Manfred: Einführung in die Informatik. 10. Auflage. Oldenbourg : München 2013.

Knuth, Donald E.: The Art of Computer Programming. Volume 1 : Fundamental Algorithms. Addison-Wesley : Reading, MA 1968.

Wirth, Niklaus: Algorithmen und Datenstrukturen. B.G. Teubner : Stuttgart 1975a.

Wirth, Niklaus: Systematisches Programmieren. B.G. Teubner : Stuttgart 1975b

 

Hier weiterverbreiten

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert