Loading [MathJax]/jax/output/HTML-CSS/fonts/TeX/fontdata.js

Lernziele:

 

1. Problembeschreibung Problemspezifikation abgrenzen. Einzelne Teil Problemspezifikation erläutern

2. Algorythmus Programm voneinander abgrenzen

3. Maschinensprache, Assemblersprache und Programmiersprache erläutern abgrenzen 

4. das prozedurale imperative und das objektorientierte Programmparadigma kennen und vom 

deklarativen Programmierparadigma abgrenzen. 

5. Funktion Steuerwerk Rechenwerk erklären abgrenzen Speichertypen

6. Anwendungssoftware vom Betriebssystem abgrenzen. Hauptaufgaben Betriebssystem.

 

2.1 Problem und Algorythmus

Problem enthält relevante Tatbestände

legt fest was getan wird.

Eine präzisierte und formalisierte Problembeschreibung ist eine Problemspezifikation

Problemspezifikation sollte enthalten Eingabe, Vorbedingung, Ausgabe, Nachbedingung

Aus der Problemspezifikation erhalten wir die Problembeschreibung indem wir das eigentliche 

Lösungsverfahren ergänzen.

Algorithmus unter Verfahren angegeben. 

Beispiel 2.1.2 >

Definition Algorythmus

Algorithmus: Menge von Regeln Verfahren aus Eingabegrößen Ausgabegrößen herleiten 

wobei folgende Bedingungen erfüllt sein müssen. 

Finitheit: Verfahren muss in endlichen Text vollständig beschrieben sein. 

Effektivität: Jeder einzelne Schritt des Verfahrens muss ausführbar sein. 

Terminierung: Das Verfahren kommt in endlich vielen Schritte 

Determinierheit: Der Ablauf des Verfahrens ist zu jedem Punkt fest vorgeschrieben. 

 

Funktion muss berechnbar sein.

2.2 Programmiersprache

Regeln denen ein Programm gehrochen muss bestimmt von Programmiersprache

Syntax: Regeln auch durch Syntax. Vokabular, Regeln über Aufbau.

Semantik: Präzisiert Bedeutung erlaubter Anweisungen. (Auswirkung etc.)

Programmdarstellung: Keine Toleranz für Fehler.

Maschinensprach: Binärsprache.

Maschinenprogramm: Programm in Maschinensprache, kann direkt ausgeführt werdne. 

Übersetzer: Übersetzt Anweisungen in Maschinensprache

Assemblersprache: Der Befehl einer Assemblersprache wird meist eins zu eins auf

einen Maschinenbefehl abgebildet. Praktisch gleiche primitiven Operationen wie Maschinenprogramme.

Höhere Programmiersprachen: Befehle, die für den Menschen versändlicher sind.

Compiler: Übersetzt höhere Programmiersprache in Maschinensprache. 

Problemorientierte Programmiersprachen.

2.3 >

Korrektheit: Nachweis für Korrektheit des Aglorithmus in Ermittlung eines Lösungswegs enthalten.

Korrektheitsbeweis: Nachweise, dass der Algorithmus für jede Eingabe, welche die Nachbedingung erfüllt, terminiert und

Ausgabe die Nachbedingung erfüllt. (Vor u Nachbedingungen in Problemspezifikation). Algorithmus muss hinreichend formal beschrieben sein. 

Algorithmen in natürlicher Sprache können nicht bewiesen werden, das geht aber über eine Programmiersprache mit formal definierter 

Syntax und Semantik. 

Große Programme ermöglichen nicht immer einen Korrektheitsbeweiß. Testen kommt zum Zuge.

Dokumentation: 

2.4 Programmierparadigmen (Paradigma grundlegendes Prinzip)

Imperatives Programmierparadigma: Programm Lösungsweg in Form eines Algorithmus vorgeben.

 

Es wird angegeben, wie ein Problem zu lösen ist. Konzept von Neumann Achitektur. Sprungbefehele geben dem starren

Geflecht Flexibilität.  Befehle verarbeiten Daten, die im Speicher abgelegt sind. 

Variable: Logischer Speicherplatz, der einen Wert enthält. 

Die wichtigsten Ausprägungen des imperativen Programmierparadigmas sind die prozedurale, imperative, und die objektorientierte

imperative Programmierung. 

Prozedurale Imperative Programmierung: Befehle, Daten werden separat behandelt. 

Prozedur: Zentrale Strukturierungsprodukt. Prozedur Zusammenfassung on Unterprogrammen aktiviert durch einen Befehl (Aufruf).

Befehle im Vordergrund. Zentrale Strukturierungskonstrukt Prozedur. Prozedur fasst logisch zusammengehörende Befehle zu einem Unter-

programm zusammen, das durch einen Befehl aktiviert wird. Strukturierungsform Befehle, nicht Daten. C, COBOL, FORTRAN, Pascal, PL/I .

 

In Objektorietierte Programmierung werden zusammengehörende Befehle und Daten zu Objekt zusammengefasst. Objekt repräsentiert

oft Dinge aus der realen Welt. Prozedurale imperative Befehlsfolge auf Objekte aufgeteilt. In Objektorientierte Programmierung Daren im Vordergrund. 

Ermöglich Modularisierung. C++,C#, Java, Smalltalk.

Imperative programmierparadigma, wie ein Problem zu lösen ist. 

Deklaratives Programmparadigma nimmt Problem entgegen und findet selbst eine Lösung. 

Logische und funktionale Programmierung.

Logische Programmierung. Der Computer versucht eine Behauptung mit dem vorhandenen Wissen zu beweisen. PROLOG

Funktionale Programmierung: Benutzt mathematische Funktionen zur Fomulierung von Programmen. Argumente und Resultate

von Funktionen können selbst wieder Funktionen sein. Lisp, Scheme

2.5.1 Rechnerarchitektur

Steuerwerk Steuerwerk folgende Aufgaben: Laden der Anweisungen 

Decodierung der Befehle 

Interpretation der Befehle

Versorgung der an der Ausführung der Befehle beteiligten Funktionseinheiten mit den nötigen Steuersignalen

 

Befehlsregister: Operationsteil, Adressteil. Operationsteil im Decodierer entschlüsselt. 

Befehlszählregister: Speichert Adresse des nächsten auszuführenden Befehls. + 1. Sprungbefehle Adresse kopiert

Mikroprogrammeinheit: Docdiert Informationen Operationscode Folge Signale Befehlsausführung. Kann fest oder variabel

gestaltet sein.

 

Rechenwerk

Aritmetische und logische Verknüpfungen werden durchgeführt. Auch ALU. Operanden werden dem Rechenwerk vom Steuerwerk zugeführt. 

Zentraleinheit, CPU-Prozessor: Steuerwerk + Rechenwerk

Speicher

Aufbewahren von Daten und Programmen.

Binärer Speicher kleinste Einheit 1 Bit. 8 Bit nötig für ein Zeichen. Byte.

Adresse: Identifikator im Speicher für eine Speicherzelle (1 Byte überlicherweise).

4-8 Speicherzellen Speicherwort oder Wort. 

Externe Speicher (Hintergrund und Sekundärspeicher) 

Ram, Zyklischer Zugriff, sequentieller Zugriff.

Von Neumann Prinzipien > S.25

 

 

 

 

 

 

1.1 Einleitung

Marco Urso
Module by Marco Urso, updated more than 1 year ago
No tags specified