• Aucun résultat trouvé

Hall of Fame I

N/A
N/A
Protected

Academic year: 2022

Partager "Hall of Fame I "

Copied!
14
0
0

Texte intégral

(1)

Was ist überhaupt ein Programm?

Ein Computerprogramm ist eine Folge von Befehlen, die auf einem Computer zur Ausführung gebracht werden können, um damit eine bestimmte Funktionalität (z. B. Textverarbeitung) zu erzielen.

Das Computerprogramm liegt zumeist auf einem Datenträger als ausführbare Programmdatei (im sog. Maschinencode) vor und wird zur Ausführung in den Arbeitsspeicher des Rechners geladen.

Das Programm wird als Abfolge von Prozessorbefehlen von dem Prozessor des Computers verarbeitet und damit zur Ausführung gebracht.

Nach [http://de.wikipedia.org]

Wann wurde das erste Computer-Programm geschrieben?

(2)

1842/1843 von Ada Lovelace auf der AnalyticalEngine von Charles Babbage!

[http://www.fourmilab.ch/babbage/]

[http://de.wikipedia.org]

Grace Hopper: Entwickelte den ersten Compiler (1952) und erfand die Sprache COBOL (nach 1957).

Sie „erfand“ den Begriff debugging.

Ken Thompson und Dennis Ritchie: Die Väter von UNIX und C (1971)

Hall of Fame I

(3)

Niklaus Wirth (strukturierte Programmierung und PASCAL):

Programming is a constructive art.

James Gosling (CTO der Produktentwicklergruppe bei SUN) ist einer der Urväter der objektorientierten und plattform- unabhängigen Programmiersprache JAVA.

[http://de.wikipedia.org]

Bjarne Stroustrup: C++

Hall of Fame II

(4)

[http://de.wikipedia.org]

Diese Grafik sagt nicht, dass es nur einen „Überlebenden“ gibt!

Programmiersprachen

(5)

Hello World

define method hallo-welt()

format-out("Hallo Welt!\n");

end method hallo-welt;

hallo-welt();

main :: IO ()

main = putStrLn "Hallo Welt!"

,'(17,),&$7,21',9,6,21 352*5$0,'+(//2:25/' 352&('85(',9,6,21

0$,1',63/$<+DOOR:HOW 6723581

LQFOXGHLRVWUHDP!

LQWPDLQ^

VWGFRXW+DOOR:HOWVWGHQGO

` FODVV+DOOR^

SXEOLFVWDWLFYRLGPDLQ6WULQJ>@DUJV^

6\VWHPRXWSULQWOQ+DOOR:HOW

``

[http://de.wikipedia.org/wiki/Liste_von_Hallo-Welt-Programmen/Programmiersprachen]

(6)

UNIVAC (1951)

Z1 (1938)

Der erste IBM-PC, das Modell IBM 5150

[http://de.wikipedia.org und http://www.atarimuseum.de/1040st.htm]

Apple Lisa (1983)

C64 (um 1985)

AppleII (1977)

Die Auswahl auf den letzten Seiten erfolgte ziemlich willkürlich und ist unvollständig!

Hall of Fame III

Lochkartensteuerung der Jacquard-Maschine (19. Jhr.)

Atari 1040ST (1988)

(7)

Reale Welt

Modelle

Programme, Maschinen

Systeme

analysieren, modellieren

entwerfen, bauen

implementieren, testen

installieren, anwenden

Programme in der realen Welt

(8)

Programme

Programmieren heißt:

Dem Computer in kleinen Schritten erklären, was er tun soll!

Eine solche Folge von einzelnen Maßnahmen zur Erreichung eines gewünschten Ergebnisses kennt man auch aus anderen Bereichen:

§ Bedienungsanleitungen

§ mathematische Berechnungsvorschriften (Gauss, Euklid,

§ Spiele,…

Eine derartige Folge bezeichnen wir als Algorithmus.

(9)

Beispiele

Die Beschreibung setzt auf einem gegebenen Umfang an Basisaktionen auf.

Marmorkuchen:

•Fetten Sie eine Kranz- oder Gugelhupfform gründlich ein.

•Streuen Sie sie mit Semmelbröseln aus.

•Schlagen Sie die Butter oder Margarine zusammen mit dem Zucker, dem Vanillinzucker und dem Salz zu einer hellschaumigen Masse.

•Rühren Sie nach und nach die Eier gründlich unter.

•Heizen Sie den Backofen auf 175 Grad vor.

•Mischen Sie das Mehl mit den Mandeln und dem Backpulver.

•…

Wir implementieren Algorithmen in Programmen!

BinaereSuche(A,Schluessel,links,rechts) 1 while links ≤ rechts do

2 mitte := (links + rechts)/2 {Mitte bestimmen, Ergebnis runden}

3 if A[mitte] = Schluessel then return mitte 4 if A[mitte] > Schluessel then rechts := mitte-1 5 if A[mitte] < Schluessel then links := mitte+1 6 endwhile

7 return "nicht gefunden"

(10)

Programmcode

Die Lösung dieses Dilemmas:

Wir codieren in einer höheren Programmier-Sprache und lassen die so erstellten Programmtexte in Maschinensprache übersetzen!

Ein Rechner versteht im Prinzip nur Maschinensprache - das sind binäre, rechnerspezifische Anweisungen.

Eine für den Menschen völlig ungeeignete Darstellung.

01001011010010……

(11)

Compiler

• Eine Maschinensprache besteht aus einem Satz von Befehlen, die eine ganz bestimmte Rechenmaschine ausführen kann.

• Höhere Programmiersprachen sind nicht an Maschinen orientiert, sondern an den Problemen.

• Sie werden entweder von einem speziellen Programm

interpretiert (Interpreter) oder von einem Compiler in eine Folge von Maschinenbefehlen übersetzt und dann ausgeführt

.

• Der Compiler überprüft auch die grammatikalische Korrektheit des Quelltextes und zeigt diese Fehler an.

Was ist der Nachteil eines Interpreters?

Syntax=Grammatik Semantik=Bedeutung

Compiler Test

(12)

Idee oder Vorgabe

exakt definierte Programmieraufgabe

(Spezifikation)

algorithmische Formulierung einer Lösung

Programm

Computer- Software/ Hardware

Test: Tut das Programm, was es soll?

Test: Entspricht das Programm der ursprünglichen Idee bzw.

Vorgabe?

fertig

ja nein

Test: Läuft das Programm?

nein

nein

ja

ja

Programmerstellung

(13)

Editieren

Testen Compilieren

Debugging

Test ok

Test nicht ok Quell-

Programm

ausführbares Programm

Editieren: Erstellen und ändern eines Programmtextes Compilieren: Übersetzen eines Programmtextes in ein

Maschinenprogramm

Testen: Systematische Erprobung eines (fast) fertigen (Teil-) Programms

Debugging: Fehlersuche und -beseitigung (to debug = entlausen)

Programmentwicklung

(14)

Gute Programme, schlechte Programme

§ Gute Struktur

§ Effiziente Nutzung der Sprache!

§ Verständlich und

nachvollziehbar= wartbar

§ performant

§ unstrukturiert

§ Für die gewählte Sprache nicht adäquat umgesetzt

§ unkommentiert

§ undokumentiert

§ zu lange Antwortzeiten

Selbstverständlich unterstellen wir dabei, dass die Programme ihren Zweck (ihre Spezifikation) erfüllen. Das alleine macht aber noch kein gutes Programm aus!

Références

Documents relatifs

Husmann L, Herzog BA, Burkhard N, Tatsugami F, Valenta I, Gaemperli O, Wyss CA, Landmesser U, Kaufmann PA (2009) Body physique and heart rate variability determine the occurrence

Chaque mécanisme vise à améliorer certains facteurs de performances (i.e., la fiabilité, le contrôle de congestion, l’économie de l’énergie ou le délai de livraison), d’où,

We performed an association study in 1839 patients with sepsis due to community acquired pneumonia (CAP) or peritonitis recruited from intensive care units (ICUs) across Europe as

Wer Interesse am wissenschaftli- chen Arbeiten hat und einen ent- sprechenden Master- oder Diplom- abschluss im betreffenden Gebiet vorweisen kann, sollte sich zuerst über ein

Ziel der Skalenkonstruktion war es, eine ökonomische, reliable und valide Messung der physischen Attraktivität von Befragungspersonen zu ermöglichen, bei der die üblichen

Beweise, dass q dann auch eine Faserung ist.. Beweise die

Beweise, dass ein Z -Modul genau dann flach ist, wenn er torsionsfrei ist.. Hier benutzt man, dass ein endlich erzeugter torsionsfreier Z -Modul

Die Aufgabe 12.5 wird nicht