Zum Forum
Passwort vergessen?
Noch keinen Account?
lexikon
Hauptseite
Zufälliger Artikel
Diskussion
Diskussion : Computerprogramm
Links
Forum
Portale
Reisen
Versicherung
Inhaltsverzeichnis
Hauptmenü
Home
Editorial
Bildung
E-Learning
Fremdsprachen
Magazin
Wissen
Wörterbücher
Enzyklopädien
Expertendienste
Wissenswertes
Praktische Ratgeber
--------------------------
Biologie
Chemie
Computer
Film/ Theater
Geografie
Geschichte
Jura
Kunst
Literatur
Mathematik
Medizin
Musik
Philosophie
Physik/ Astronomie
Politik
Psychologie
Religionen
Sport
Umwelt
Wirtschaft
Reisen
Lexikon
Versicherung
Suchen
Schnellsuche
Suchmaschinen
Metasuchmaschinen
Webkataloge
News
Treffpunkt
Chat
Forum
Suche
Schnellsuche
Sitemap
Kontakt
Impressum
Computerprogramm
Stichpunkte
Allgemein
Ein Computerprogramm
ist die Umsetzung eines Algorithmus in eine Form
die von einem Computer verarbeitet werden kann
Dieser Prozess wird als Implementierung bezeichnet
Im Sprachgebrauch wird Computerprogramm meist zu Programm abgekürzt oder der engl
Begriff Software (für Ein- und Mehrzahl) verwendet
Sowohl der in einer Programmiersprache verfasste Quelltext als auch der von einem Computer ausführbare Maschinencode können als Programm bezeichnet werden
wird ein Assembler
Compiler oder Interpreter benötigt
Um aus dem Quelltext den Maschinencode zu generieren
in die semantisch entsprechenden Befehle der Maschinensprache des verwendeten Computers. Inhaltsverzeichnis showTocToggle("Anzeigen"
Diese übersetzen die Befehle der Programmiersprache
"Verbergen") 1 Geschichte 1.1 Das erste Computerprogramm von Ada Lovelace 1.2 Erste Programme auf Lochstreifen 1.3 Programme im Arbeitsspeicher 1.4 Höhere Programmiersprachen und Compiler 2 Vom Algorithmus zum Programm 2.1 Berechnung des größten gemeinsamen Teilers 2.2 Verwendung einer Programmiersprache 2.3 Berücksichtigung aller Sonderfälle 2.4 Elementare Schritte 2.5 Ein vollständiges Programm 2.6 Übersetzung und Ausführung 3 Literatur [Bearbeiten]
die für menschliche Benutzer verständlich und bearbeitbar sein sollen
Geschichte
[Bearbeiten]
Das erste Computerprogramm von Ada Lovelace
die Ada Lovelace in den Jahren 1842/1843 für die mechanische Analytical Engine von Charles Babbage erstellte
Als weltweit erstes Computerprogramm gilt eine Vorschrift für die Berechnung von Bernoulli-Zahlen
Dieses Programm konnte zu ihrer Zeit nur von Hand ausgeführt werden
denn wegen Fertigungsproblemen gab es im 19
Jahrhundert keine funktionsfähige Maschine. [Bearbeiten]
Erste Programme auf Lochstreifen
die ersten Computerprogramme
die lange Befehlsfolgen auf einem Lochstreifen verarbeiteten
die auf realen Maschinen ausgeführt werden konnten
In den Jahren 1936 bis 1941 entwarf Konrad Zuse die Rechner Z1 und Z3
der Lochstreifen enthielt jeweils eine Rechenoperation und eine Speicheradresse
Die Rechner beherrschten die vier Grundrechenarten und Quadratwurzelberechnungen auf binären Gleitkommazahlen
Auf Zuse geht auch die erste höhere Programmiersprache
zurück
Plankalkül
Damit lassen sich Probleme maschinenunabhängig formulieren und später in eine maschinenlesbare Form überführen. [Bearbeiten]
Programme im Arbeitsspeicher
hatte einen Quecksilber-Verzögerungsspeicher für 1024 Fest- oder Gleitkommazahlen mit jeweils 44 Bits
Der EDVAC-Rechner
der auf einem Entwurf von John von Neumann aus dem Jahre 1945 basiert
Jede Speicherzelle konnte statt einer Zahl auch einen Befehl aufnehmen
Bei diesem Rechnerkonzept war es möglich
die Befehle eines Computerprogramms vor der Ausführung erstmals in den Arbeitsspeicher übertragen
Dies ist noch heute üblich
EDVAC wurde jedoch erst im Jahre 1951 teilweise fertiggestellt
Der Demonstrationsrechner Manchester SSE und der auf dem EDVAC aufbauende EDSAC-Rechner hatten schon vorher Programme aus dem Arbeitsspeicher ausgegeführt. [Bearbeiten]
Höhere Programmiersprachen und Compiler
Ende der 1950er Jahre wurden Computer so leistungsfähig
dass spezielle Programme
also ausführbare Programme
Compiler
übersetzen konnten
Quelltexte in höheren Programmiersprachen automatisch in Maschinenbefehle
wie beim EDVAC
Ausführbare Programme können dann
in den Speicher geladen und abgearbeitet werden
ALGOL und LISP entstanden in den späten 1950er Jahren die ersten standardisierten höheren Programmiersprachen
Mit Fortran
Programme in diesen Sprachen laufen durch einen entsprechenden Compiler übersetzt auf unterschiedlichen Rechnern
Sie können teilweise auch noch auf modernen Computern eingesetzt werden. [Bearbeiten]
Vom Algorithmus zum Programm
[Bearbeiten]
Berechnung des größten gemeinsamen Teilers
Es soll ein Programm zur Bestimmung des größten gemeinsamen Teilers (ggT) zweier Zahlen erstellt werden
Zunächst muss ein geeigneter Algorithmus gefunden werden
Der euklidische Algorithmus
der bereits um 300 v
dann mit Schritt 1 fortfahren
Chr. beschrieben wurde
ermittelt den größten gemeinsamen Teilers (ggT) zweier natürlicher Zahlen A und B: Sei A die größere der beiden Zahlen A und B (gegenenfalls vertauschen) Setze A = A – B Wenn A und B ungleich sind
dann den Algorithmus beenden: Diese Zahl ist der größte gemeinsame Teiler. [Bearbeiten]
wenn sie gleich sind
Verwendung einer Programmiersprache
also eine genau definierte Verarbeitungsvorschrift
kann der Algorithmus umgesetzt (implementiert) werden
Sobald eine formale Beschreibung eines Algorithmus
vorliegt
Dazu wird eine geeignete Programmiersprache ausgewählt
die von einem Computer eventuell nicht direkt ausgeführt werden kann
Zur Umsetzung wird heute meist eine höhere Programmiersprache verwendet
sondern zuerst compiliert oder interpretiert werden muss
In Sprachen wie Pascal dienen Variablen
Ausdrücke
Vergleiche
Zuweisungen und Kontrollstrukturen zur Umsetzung des ggT-Algorithmus: (* Schritt3: *) WHILE A <> B DO BEGIN (* Solange A ungleich B *) (* Schritt1: *) IF B > A THEN BEGIN (* Falls B größer als A *) H := A; A := B; B := H; (* A und B vertauschen *) END; (* Schritt2: *) A := A-B; (* A durch A-B ersetzen *) END; [Bearbeiten]
Berücksichtigung aller Sonderfälle
Bei der Umsetzung wird mit der Prüfung von Schritt 3 begonnen
dass A und B bereits zu Beginn gleich sein können
Der ursprüngliche Algorithmus berücksichtigt nicht den Fall
den größten Teiler von 103 und 103 zu finden
würde ein Mensch sofort das Ergebnis 103 nennen
er würde den Algorithmus gar nicht bemühen
Wäre die Aufgabe
Der originale Algorithmus würde aber null ergeben
Die Umsetzung auf einem Rechner muss auch alle Sonderfälle berücksichtigen
Durch das Vorziehen von Schritt 3 wird der Sonderfall hier korrekt behandelt. [Bearbeiten]
Elementare Schritte
Pascal und andere Programmiersprachen besitzen keine Operation zum Vertauschen von Zahlen
Dies muss daher in elementarere Schritte umgesetzt werden
Eine zusätzliche Variable H
erlaubt die Vertauschung mit Hilfe von drei Zuweisungen: H := A; (* Wert von A in der Hilfsvariablen H retten *) A := B; (* A mit dem Wert von B überschreiben *) B := A; (* B mit dem Wert von H (=A) überschreiben *) Dies ist auch ein kleiner Algorithmus. [Bearbeiten]
eine so genannte Hilfsvariable
Ein vollständiges Programm
Damit hieraus ein korrektes Programm wird
muss der Algorithmus noch um Ein- bzw
Ausgabeanweisungen
oft jedoch auch um Variablen und eine Programmstruktur ergänzt werden
Diese sind nicht Teil des eigentlichen Algorithmus: PROGRAM Ggt(Input
B
H: Integer; (* Variablendefinition *) BEGIN ReadLn(A
Output); (* Programmkopf *) VAR A
B); (* Eingabe von A und B *) WHILE A <> B DO BEGIN (* Euklidischer *) IF B > A THEN BEGIN (* Algorithmus *) H := A; A := B; B := H; END; A := A-B; END; WriteLn(A); (* Ausgabe von A *) END. (* Programmende *) [Bearbeiten]
Übersetzung und Ausführung
Erst dieses Programm kann mit einem Texteditor in eine Datei geschrieben werden
die dann übersetzt und ausgeführt werden kann
Hierzu ist ein Compiler erforderlich
der den Code in der Programmiersprache in Maschinensprache übersetzt und das Ergebnis in eine ausführbare Datei schreibt
Diese kann dann über ein Betriebssystem gestartet werden
Das Programm muss dabei nur einmal übersetzt werden
Es kann danach beliebig oft gestartet werden. (Siehe auch Kompilierung)
Einige Programmiersprachen benötigen keinen Compiler
der Programme ohne vorherige Übersetzung ausführen kann
aber statt dessen einen Interpreter
Der Interpreter selbst ist dann ein ausführbares Programm in Maschinensprache. Eine weitere Möglichkeit besteht in der Verwendung von Zwischencode (Bytecode)
der vom Compiler an Stelle des Maschinencodes generiert wird
Zusätzlich bieten einige moderne Programmiersprachen wie Java mit Hilfe von Decompiler-Programmen aus einer fertig kompilierten Anwendung den ursprünglichen Sourcecode wieder zu rekonstruieren
die dafür sorgt
Um dies zu verhindern gibt es wiederum Obfuscator-Software
dass der Sourcecode nicht mehr lesbar ist. [Bearbeiten]
Literatur
John von Neumann: First Draft of a Report on the EDVAC (http://www.virtualtravelog.net/entries/2003-08-TheFirstDraft.pdf) 1945 Siehe auch: Software
Betriebssystem en:Computer program es:programa de ordenador ja:プãƒã‚°ãƒ©ãƒ nl:computerprogramma pt:Programas De Computador th:โปรà¹?à¸?รม zh:程åº?
Anwendungsprogramm
Dienstprogramm
Dieser Artikel basiert auf dem Artikel
Computerprogramm
aus der freien Enzyklopädie
wikipedia
und steht unter der
GNU Lizenz für freie Dokumentation
. In der wikipedia ist eine
Liste der Autoren
verfügbar.
Chemische Energie
Computervirus
Cosimo de Medici
Command.com
Christiaan Huygens
Claus Schenk von Stauffenberg
C-Plusplus
[ Zurück ]
Inhalt Lexikon:
A
B
C
D
E
F
G
H
I
J
K
L
M
N
O
P
Q
R
S
T
U
V
W
X
Y
Z
1
2
3
4
5
6
7
8
9
Chat
|
Lexikon
|
Reisen
|
Versicherung
|
Forum
|
Kontakt