Programmierung eines Computers Funktionsweise Wussten Sie schon das

  • Slides: 20
Download presentation
Programmierung eines Computers (Funktionsweise) Wussten Sie schon das Computer eigentlich ziemlich dumm sind? Computer

Programmierung eines Computers (Funktionsweise) Wussten Sie schon das Computer eigentlich ziemlich dumm sind? Computer können nur ganz wenige Dinge, z. B. : -zwei Zahlen addieren - zwei Zahlen vergleichen - zur nächsten Anweisung springen

Programmierung eines Computers (Funktionsweise) Sicherlich kennen Sie das auch. Sie haben hunderte Zahlen im

Programmierung eines Computers (Funktionsweise) Sicherlich kennen Sie das auch. Sie haben hunderte Zahlen im Kopf, da wäre es schön wenn man die irgendwo merken könnte. Also nehmen Sie sich ein Blatt Papier und schreiben die Zahlen auf. Der Computer arbeitet mit Milliarden solcher Zahlen und ihm geht genauso die Puste aus wie Ihnen. Deshalb schenkt man ihm einen riesengroßen Papierstapel (=Speicher), wo er seine Zahlen aufschreiben kann. Jeder Computer hat spezielle Anweisungen, damit man ihm sagen kann auf welches Blatt Papier er welche Zahl schreiben soll. Er kann leider nur eine Zahl pro Blatt Papier merken.

Programmierung eines Computers (Funktionsweise) In der Mathematik können Sie mit unbegrenzt großen Zahlen rechnen.

Programmierung eines Computers (Funktionsweise) In der Mathematik können Sie mit unbegrenzt großen Zahlen rechnen. Ein Computer kann das leider nicht, jedenfalls nicht ohne Unterstützung. Die meisten Computer kennen Zahlen von 0 - 255 (8 Bit) 0 – 65535 (16 Bit) 0 – 4294967295 (32 Bit)

Programmierung eines Computers (Funktionsweise) Sie wussten es schon oder? Ein 64 Bit Computer kann

Programmierung eines Computers (Funktionsweise) Sie wussten es schon oder? Ein 64 Bit Computer kann demnach mit noch größeren Zahlen arbeiten. Er wird nicht zwangsläufig schneller dadurch. Mit Unterstützung der Software kann der Computer auch größere Zahlen berechnen. Die muss er aber wieder in seinem begrenzten Papierstapel (Speicher) aufschreiben.

Programmierung eines Computers (Funktionsweise) Komplexere Dinge wie Multiplikation, Division, Wurzelziehen werden alle auf die

Programmierung eines Computers (Funktionsweise) Komplexere Dinge wie Multiplikation, Division, Wurzelziehen werden alle auf die Addition zurückgeführt. Die meisten Computer haben hier spezielle Anweisungen, die fest verdrahtet sind in der Hardware. Computer haben einen Vorteil gegenüber Ihnen: Sie sind verdammt schnell in dem was sie tun.

Programmierung eines Computers (Was ist Programmieren? ) Programmieren bedeutet nun: 1. Die passenden Anweisungen

Programmierung eines Computers (Was ist Programmieren? ) Programmieren bedeutet nun: 1. Die passenden Anweisungen benutzen 2. Anweisungen in richtiger Reihenfolge zusammensetzen 3. Fehler finden weil man 1. und 2. falsch gemacht hat Die meiste Zeit seines Lebens verbringt der Programmierer in Phase 3.

Programmierung eines Computers (Anweisungen und Reihenfolge) Wenn Sie folgende Aufgabe lösen wollen: 4+5*3+2 Dann

Programmierung eines Computers (Anweisungen und Reihenfolge) Wenn Sie folgende Aufgabe lösen wollen: 4+5*3+2 Dann müssen Sie dem Computer folgende Anweisungen sagen: 1. 2. 3. 4. 5. 6. Addiere 4 + 5 Schreibe das Ergebnis auf Blatt 1 Addiere 3 + 2 Schreibe das Ergebnis auf Blatt 2 Multipliziere die Zahlen auf Blatt 1 und 2 Schreibe das Ergebnis auf Blatt 3

Programmierung eines Computers (Entscheidungen) Das ist ganz schön langweilig oder? Wenn man nur Zahlen

Programmierung eines Computers (Entscheidungen) Das ist ganz schön langweilig oder? Wenn man nur Zahlen hintereinander berechnet und nichts damit macht hat das wenig Sinn. Daher kennt jeder Computer Anweisungen um die Zahlen zu vergleichen und entsprechend an eine andere Stelle zu springen.

Programmierung eines Computers (Entscheidungen) Sie möchten die Zahl auf Blatt 3 mit 45 vergleichen.

Programmierung eines Computers (Entscheidungen) Sie möchten die Zahl auf Blatt 3 mit 45 vergleichen. Abhängig davon soll die Zahl 0 oder die Zahl 1 auf ein neues Blatt 4 schreiben. Dies würde dann so aussehen: 5. … 6. Schreibe das Ergebnis auf Blatt 3 7. Vergleiche die Zahl auf Blatt 3 mit 45 8. Wenn die Zahlen gleich waren, dann springe zu Zeile 11 9. Schreibe die Zahl 0 auf Blatt 4 10. Springe zu Zeile 12 11. Schreibe die Zahl 1 auf Blatt 4 12. …

Programmierung eines Computers (Sprachen) Wie in der realen Sprachwelt gibt es unzählige Programmiersprachen und

Programmierung eines Computers (Sprachen) Wie in der realen Sprachwelt gibt es unzählige Programmiersprachen und Dialekte um dem Computer die Anweisungen mitzuteilen. Jede dieser Sprachen hat Ihre Vor- und Nachteile. Will man den Computer richtig ausreizen, so wird man eine Sprache wählen, die direkten Zugriff auf den Papierstapel bietet. Will man abstrakter programmieren, so wählt man höhere Sprachen.

Programmierung eines Computers (Sprachen - Assembler) Assembler ist eine Sprache auf Maschinenebene und erlaubt

Programmierung eines Computers (Sprachen - Assembler) Assembler ist eine Sprache auf Maschinenebene und erlaubt es den Papierstapel direkt zu manipulieren. Unser bisheriges Beispiel würde auch analog dazu aussehen: 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. … ADD 4, 5 MOV Ergebnis, Blatt 1 ADD 3, 2 MOV Ergebnis, Blatt 2 MUL Blatt 1, Blatt 2 MOV Ergebnis, Blatt 3 CMP Blatt 3, 45 BEQ Zeile 11 MOV 0, Blatt 4 BRA Zeile 12 MOV 1, Blatt 4

Programmierung eines Computers (Sprachen – C) C ist eine höhere Sprache, welche es z.

Programmierung eines Computers (Sprachen – C) C ist eine höhere Sprache, welche es z. B. erlaubt die Papierblätter zu Strukturen zu gruppieren. Das ist in etwa so als würden Sie einen Ordner mit zusammengehörigen Blättern erstellen. Die Anweisungen wie man den Ordner benutzt legen sie aber woanders hin. Man nennt dies prozedural, weil Papierblätter und Anweisungen hier noch getrennt sind.

Programmierung eines Computers (Sprachen – C) Unser bisheriges Beispiel würde in C so aussehen:

Programmierung eines Computers (Sprachen – C) Unser bisheriges Beispiel würde in C so aussehen: Blatt 1 = 4 + 5. Blatt 2 = 3 + 2. Blatt 3 = Blatt 1 * Blatt 2. If (Blatt 3 == 5) Blatt 4 = 1 Else Blatt 4 = 0

Programmierung eines Computers (Sprachen – C++) C++ ist eine Erweiterung von C. Hier kann

Programmierung eines Computers (Sprachen – C++) C++ ist eine Erweiterung von C. Hier kann man die Ordner mit Papierblättern auch mit den Anweisungen zusammen ablegen. Man nennt die Ordner dann nicht mehr Strukturen, sondern Klassen. Man nennt dies objektorientiert.

Programmierung eines Computers (Sprachen – C++) Bei der Objektorientierung kann man auch Hinweise in

Programmierung eines Computers (Sprachen – C++) Bei der Objektorientierung kann man auch Hinweise in einen Ordner schreiben, um Informationen in anderen Ordnern zu finden. So muss man nicht immer alles neu aufschreiben. Objektorientierung ist also etwas für faule Programmierer, die nicht alles doppelt schreiben möchten.

Programmierung eines Computers (Sprachen – Smalltalk) Smalltalk ist eine rein objektorientierte Sprache. Man arbeitet

Programmierung eines Computers (Sprachen – Smalltalk) Smalltalk ist eine rein objektorientierte Sprache. Man arbeitet nicht mehr direkt mit einem Papierstapel, sondern betrachtet alles als ein Objekt, auch Zahlen und Ordner. Man addiert nicht mehr zwei Zahlen 4 und 5, sondern schickt dem Zahlobjekt 4 die Nachricht + mit einem Parameter 5. Es wird also dem Objekt überlassen, was es tun soll, wenn man ihm ein + schickt.

Programmierung eines Computers (Sprachen – Smalltalk) Was bringt diese ganze Objektorientiertheit nun? - Alles

Programmierung eines Computers (Sprachen – Smalltalk) Was bringt diese ganze Objektorientiertheit nun? - Alles ist ein Objekt -> Einfachheit Man braucht sich nicht mehr um den Papierstapel kümmern oder dessen Aufbau Man rechnet mit unbegrenzt großen Zahlobjekten und nicht mit begrenzten 32 -Bit-Zahlen Alle Objekte verstehen Nachrichten -> Gleichheit

Programmierung eines Computers (Sprachen – Smalltalk) Unser bisheriges Beispiel würde in Smalltalk so aussehen:

Programmierung eines Computers (Sprachen – Smalltalk) Unser bisheriges Beispiel würde in Smalltalk so aussehen: | ergebnis 1 ergebnis 2 ergebnis 3 ergebnis 4 | ergebnis 1 : = 4 + 5. ergebnis 2 : = 3 + 2. ergebnis 3 : = ergebnis 1 + ergebnis 2. ergebnis 3 = 45 if. True: [ergebnis 4 : = 1] if. False: [ergebnis 4 : = 0]

Programmierung eines Computers (Sprachen – Smalltalk) Wo wird Smalltalk nun eigentlich verwendet? Natürlich verwendet

Programmierung eines Computers (Sprachen – Smalltalk) Wo wird Smalltalk nun eigentlich verwendet? Natürlich verwendet die Firma Georg Heeg e. K die Sprache Smalltalk. Wir bieten Know. How und Software rund um die Sprache an. Da Smalltalk sehr einfach und konsistent ist können Programme deutlich schneller entworfen werden zu attraktiveren Preisen. Oder kurz gesagt: Wir verwenden Smalltalk damit ihre Geldbörse nicht zu dünn wird.

Programmierung eines Computers (Sprachen – Smalltalk) Wo wird Smalltalk nun eigentlich verwendet? Global Foundries

Programmierung eines Computers (Sprachen – Smalltalk) Wo wird Smalltalk nun eigentlich verwendet? Global Foundries Cincom Systems Georg Heeg e. K BMW Texas Instruments Und viele andere… ABB Deutsche Bahn IBIS JPMorgan Bach-Gesellschaft