Sprachen und Automaten. Tino Hempel

Sprachen und Automaten Tino Hempel 4 Computer und Sprache Wie werden Informationen zu Daten kodiert? o o o Wie erfolgt die Verarbeitung der Date...
1 downloads 0 Views 1MB Size
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

Suggest Documents