Sprachen und Automaten Tino Hempel
4
Computer und Sprache Wie werden Informationen zu Daten kodiert? o
o
o
Wie erfolgt die Verarbeitung der Daten?
Welche Datenträger gibt es?
Informationen werden Aufbau von im Computer binär Speichermedien: codiert Bit (binary digit) o Arbeitsspeicher mit Adressenzeilen und Datenspalten Kodierung von Zahlen Byte, o CD/DVD Hexadezimalsystem o Festplatte o USB-Stick Kodierung von Zeichen ASCII, Unicode © T. Hempel
o
EVA-Prinzip Eingabe ↓ Verarbeitung ↓ Ausgabe
o
Einblick in das vonNeumann-Prinzip
2
Kodierung
Bit – binary digit
Kleinste Darstellungseinheit für binäre Daten Mögliche Werte: 0 oder 1 Verwechslungsgefahr mit bit (basic indissoluble information unit): Einheit des Informationsgehalts einer Nachricht (Informationstheorie nach C. Shannon)
Byte
Zusammenfassung von acht Bit zu einer Einheit Historisch: Speichermenge zur Darstellung eines Zeichens Maß für die Speicherkapazität Hinweis auf das Problem der Größenpräfixe © T. Hempel
3
Kodierung Dezimalsystem • Basis: 10, Ziffern: 0, 1, …, 9 • Beispiel: 1204d = 1·103 + 2·102 + 0·101 + 4·100
Divisionsmethode mit Basis 2
Divisionsmethode mit Basis 16
Stellwertsystem nutzen
Binärsystem • Basis: 2, Ziffern: 0, 1 • Beispiel: 1101b = 1·23 + 1·22 + 0·21 + 1·20
16er Tabelle nutzen
© T. Hempel
Hexadezimalsystem • Basis: 16, Ziffern: 0, …, 9, A, B, …, F • Beispiel: 1E7h = 1·162 + 14·161 + 7·160 4
Kodierung Zahlen auf dem Computer: 8 Bit – ganze Zahl
•
• •
Dezimalzahl
Binärzahl
Dezimalzahl
Binärzahl
0
0000 0000
- 128
1000 0000
1
0000 0001
- 127
1000 0001
2
0000 0010
…
…
…
…
-3
1111 1101
254
1111 1110
-2
1111 1110
255
1111 1111
-1
1111 1111
0
0000 0000
1
0000 0001
…
…
126
0111 1110
127
0111 1111
Darstellung wird i.d.R. verwendet Subtraktion kann auf Addition zurückgeführt werden! Problem: 127 + 1 = -128 © T. Hempel
5
Kodierung Zahlen auf dem Computer: 8 Bit – „Komma“-Zahlen
Grundidee: bisher: 1101b = 1·23 + 1·22 + 0·21 + 1·20 = 13d jetzt: 1101b = 1·22 + 1·21 + 0·20 + 1·2-1 = 5,5d
Erweiterung der Exponentenschreibweise in „negative Zahlrichtung“ Problem 1: Wann wird welcher Exponent benutzt? Norm: IEEE – 754 Problem 2: Nicht alle reellen Zahlen lassen sich damit darstellen/zusammenbauen! © T. Hempel
6
Kodierung Zahlen auf dem Computer: 8 Bit – „Komma“-Zahlen
4
4−2
© T. Hempel
7
Kodierung
Ein Code f über den Alphabeten A und B ist eine injektive Abbildung (= Kodierung) der Form f: A B. Er ordnet jedem Wort über dem Alphabet A höchstens ein Wort über dem Alphabet B zu.
Der Code heißt entzifferbar, wenn es eine eindeutige Umkehrabbildung f−1 gibt, die jedem Nachrichtenwort aus B wieder das ursprüngliche Wort aus A zuordnet.
Beispiele: ASCII, ANSI, Unicode …
© T. Hempel
8
Kodierung ASCII (1963) American Standard Code for Information Interchance 7-Bit-Zeichenkodierung 95 druckbare Zeichen Erweiterung auf 8. Bit Ländercodepages ASCII-Art Zeichen Dezimal Hex Binär (((( (((( )))) _ .---. ( |`---'| \| | : .___, : `-----'
A
65
41
1000001
B
66
42
1000010
C
67
43
1000011
…
…
…
…
© T. Hempel
9
Kodierung Unicode (1991) Versuch, möglichst viele Schriftzeichen in einem Code zu normieren 32-Bit-Zeichenkodierung 1.114.112 Zeichen möglich Beispiel für falsche Kodierung:
© T. Hempel
10
Speicherung Wiederholung: Digitale Speichermedien
Foto: Xell. URL: http://upload.wikimedia.org/wikipedia/commons/2/26/Storage_size_comparison.jpg
© T. Hempel
11
Von-Neumann-Architektur John von Neumann (1945): First Draft of a report on the EDVAC
Allgemeingültiges Konzept eines universellen, speicherprogrammierbaren Rechner
Für den Unterricht: „Meilensteine der Naturwissenschaft und Technik: Konrad Zuse und der Computer“
© T. Hempel
12
Fotoquelle: http://upload.wikimedia.org/wikipedia/commons/5/5e/JohnvonNeumann-LosAlamos.gif
Informationsverarbeitung
Intermezzo
Quelle: Lutz Pestel (1988): In radio - fernsehen - elektronik Heft 04/1989
© T. Hempel
13
Von-Neumann-Architektur Ein elektronisch arbeitender Rechner besteht stets aus:
dem Rechenwerk (ALU - Arithmetic Logic Unit) dem Steuerwerk (CU - Control Unit) dem Speicherwerk (M - Memory Unit) dem Eingabe-/Ausgabewerk (I/O Unit) dem Verbindungssystem (BUS - Bidirectional Universal Switch) Rechenwerk
Steuerwerk CPU
BUS-System Ein-/Ausgabewerk © T. Hempel
Speicherwerk 14
Von-Neumann-Architektur
Rechner ist universell einsetzbar, löst Vielzahl von Problemen notwendig: externe Eingabe eines Programm in Speicher Im Speicher: Programme, Daten und Ergebnisse; sind binär codiert Speicheraufbau: gleichgroße, fortlaufend nummerierten Zellen. Über die Nummer (Adresse) lässt sich jede Speicherzelle direkt lesen oder schreiben. Programm: Folge von Anweisungen; steht hintereinander im Speicher. Sprungbefehle erlauben Abweichungen von sequentiellen Abarbeitung © T. Hempel
15
Von-Neumann-Architektur
Es gibt mindestens
arithmetische Befehle für Addition, Multiplikation, Konstanten laden, ... logische Befehle für Vergleiche, sowie logisches NOT, AND, OR, .... Transportbefehle für Bewegungen von Daten zwischen Speicherwerk und Rechenwerk sowie zur Ein- und Ausgabe bedingte Sprünge für die Implementierung von Wiederholungen und Bedingungen sonstige Befehle für Bitschieben, Unterbrechen, Warten, ... © T. Hempel
16
Von-Neumann-Architektur Demonstration eines realen Minimalrechners (LC 80) CPU
I/O-Unit 2 und 3
Taktgenerator 900 kHz
7-SegmentAnzeige
Festwertspeicher mit Betriebssystem (2 KByte)
Tastatur
I/O-Unit 1 Arbeitsspeicher (1 KByte) © T. Hempel
17
Von-Neumann-Architektur Demonstration des Simulators MOPS Arbeitsspeicher
CPU
Ausgabe Eingabe
© T. Hempel
18
Von-Neumann-Architektur Befehle Datentransport
Ein-/Ausgabe
Rechenbefehle
Vergleichsbefehl
Sprungbefehle
Programmende
© T. Hempel
19
Von-Neumann-Architektur MOPS-Beispiel Adresse 00 02 04 06 08 10 12
Code 20 64 20 65 10 64 30 65 12 66 22 66 60
Assembler in $64 in $65 ld $64 add $65 st $66 out $66 end
© T. Hempel
20
„Echte“ Maschinensprache „echtes“ Beispiel für einen Z80-Rechner Adresse Code 4000H 4003H 4004H 4005H 4006H 4007H 400AH 4040H 4040H 4041H 4042H
Assembler
Kommentar
2A 40 40 LD HL,(4040H) 44 LD B, H 7D LD A, L 80 ADD B 27 DAA 32 42 40 LD (4042H), A 76 HALT
05 06 00
ORG 4040H DEFB 05H DEFB 06H DEFB 00H
;Operanden von Zelle 4040H in HL ;erster Operand nach B ;zweiter Operand nach A ;Addiere B zu A ;Dezimalkorrektur ;Speichere A auf Zelle 4042H ;Halt ;Datenadresse organisieren ;erster Operand ;zweiter Operand
© T. Hempel
21
„Echte“ Maschinensprache Ausflug zu FlowCode und zum PolyComputer 880
© T. Hempel
22
Von-Neumann-Architektur Syntax-Regeln Pro Zeile einen Befehl Ein Leerzeichen zwischen Befehl und Operand Kommentare durch Semikolon Adressen durch ein vorangestelltes $ Daten auf die acht Adressen $64 .. $71 Sprungziele: Angabe durch Raute und Zeilennummer Marken
Definition nach Befehl mit vorangestellten Doppelpunkt Sprung zu Marke ohne Doppelpunkt
Programmende durch Befehl end © T. Hempel
23
Computersprachen
Maschinensprache/Assembler:
Für Menschen unverständlich bzw. sehr schwer lesbar Prozessorabhängig
Idee von Grace Hopper (1957)
Verwendung von klaren (natürlichen) Befehle Compiler A0 Weiterentwicklung COBOL Weitere „Leistungen“ von Grace Hopper: Begriff Bug, Debugging Millenniumproblem Quelle: http://en.wikipedia.org/wiki/Image:GraceHopper.jpg
© T. Hempel
24
Quelle: http://upload.wikimedia.org/wikipedia/commons/8/8a/H96566k.jpg
Computersprachen
© T. Hempel 25
Computersprachen Stammbaum der Computer-Programmiersprachen
Abbildung http://www.jambit.de/images/stammbaum.gif Eine wesentlich aktuellere und detaillierte Darstellung gibt es unter der URL: http://www.levenez.com/lang/
© T. Hempel
26
Rückfragen
© T. Hempel
27