Modul: Programmierung B-PRG Grundlagen der Programmierung 1 Teil 1 V0

Größe: px
Ab Seite anzeigen:

Download "Modul: Programmierung B-PRG Grundlagen der Programmierung 1 Teil 1 V0"

Transkript

1 Modul: Programmierung B-PRG Grundlagen der Programmierung 1 Teil 1 V0 Computer Algorithmen - Programme Professur für Graphische Datenverarbeitung Institut für Informatik Fachbereich Informatik und Mathematik (12) Rückblick Wir hatten einige zentrale Grundbegriffe der Informatik kennen gelernt: Daten und Information und die zugehörigen Einheiten (Bit/bit) Kodierung Syntax Semantik Pragmatik Digitalisierung: Abtastung und Quantisierung Grundzüge der Shannonschen Informationstheorie 2 Programmieren 1 Teil 1 V2 1

2 Wo sind wir? V V 1 V 2 V V 4 V V 6 V V 8 V 9 V10 V11 Begrüßung und Einführung Daten Information Wissen Computer Algorithmus Programm Variablen Datentypen Objekte Elementare numerische Datentypen Zeichenketten Verzweigungen und Schleifen Prozeduren Aggregierte Datentypen Klassen Graphen und Bäume Bibliotheken 3 Programmieren 1 Teil 1 V2 Unser heutiges Lernziel Drei weitere zentrale Grundbegriffe kennen lernen: Computer und ihre Leistungsfähigkeit; etwas Geschichte Algorithmen und erste Beschreibungsmöglichkeiten und schließlich der Unterschied zum Programm. Hierzu gehören natürlich Programmiersprachen, die grundsätzlichen Unterschiede und ihre Genealogie 4 Programmieren 1 Teil 1 V2 2

3 Übersicht Was ist ein Computer? Die Ausführungsvarianten: PDA -Arbeitsplatzrechner Server Host Supercomputer Eine ganz kurze Historie Modellbildungen (Turingmaschine) Registermaschinen (Minimalmaschinen) im Skript nachlesen Algorithmen und Programme Der Begriff Algorithmus Formulierung von Algorithmen Programme Die Entwicklung von Programmiersprachen Die Generationen Compiler versus Interpreter 5 Programmieren 1 Teil 1 V2 Was ist ein Computer? Eine Maschine (heute i.d.r. eine digitalelektronische) zur Speicherung und automatischen Verarbeitung von Daten resp. Informationen (z.b. für mathematische Berechnungen oder allgemeiner Zeichenersetzungen) durch Angabe einer programmierbaren (Rechen-)vorschrift. Die programmierbare, d.h. veränderbare (Rechen-)vorschrift nennen wir Programm Ł Hardware (die Elektronik), das unveränderbare Ł Software (das Programm), das veränderbare Aus der Begriffsbestimmung ergibt sich u.a.: was war der erste Computer? 6 Programmieren 1 Teil 1 V2 3

4 Der Begriff Computer Computer = Rechner oder Rechenanlage lässt sich aus dem lateinischen computare (zählen, rechnen) herleiten. entstammt im modernen Deutsch dem Englischen computer. abgeleitet vom Verb to compute (rechnen), ursprünglich: computer bezeichnete Menschen, die im Mittelalter für Astronomen die quälend langwierigen Berechnungen vornahmen. Zunächst wurden Arbeiter, die entsprechende Maschinen bedienten, als Computer bezeichnet, später ging der Begriff auf diese Maschinen über. 7 Programmieren 1 Teil 1 V2 Digitalcomputer - Analogcomputer Unsere Definition ist eingeschränkt auf Digitalrechner, also solche Rechner, die mit diskreten, endlichen Zahlenmengen oder Zeichenmengen arbeiten (Informationstragenden Größen = Daten) Historisch gibt es eine andere Art: die Analogcomputer oder Analogrechner: Sie repräsentieren ihre Daten nicht als diskrete Werte, sondern als kontinuierliche eben analoge Größen, zum Beispiel in Form von geometrischen Längen oder Winkeln (mechanisch, z.b. Rechenschieber, Planimeter) oder elektrischen Spannungen oder Strömen. 8 Programmieren 1 Teil 1 V2 4

5 Digitalrechner Elementare Operatoren: Bausteine des Programmierens Addition, Subtraktion, Konkatenation, etc. Zuweisung (A = B, A:=B, A B) Verzweigung if <Bedingung> then... elementares Rechnen, Vergleichen, Ersetzen Analogrechner Elementare Operatoren: Summierer, Multiplizierer, Integratoren, Differentiatoren Funktionsgeber (Sinus, Sprung, Impuls, etc.), Koeffizienteneinsteller Löst gewöhnliche Differentialgleichungen 9 Programmieren 1 Teil 1 V2 Programm und Ausgabe eines Analogrechners 10 Programmieren 1 Teil 1 V2 5

6 Nachteile des Analogcomputers Entscheidendes Problem analoger Rechner ist die Genauigkeit, bedingt durch unvermeidliches Rauschen (Störsignale) Wir können (auch z. Zt.) nur Meßgeräte bauen, die einen maximalen Meßbereich von 6 7 Zehnerpotenzen aufweisen. Ł das Gewicht eines Lkws ist aufs Milligramm genau messen, aber z.b. nicht der Umsatz eines Großunternehmens in Cent genau oder die Berechnung einer Flugbahn zum Mars Ł Nur bis in die 70er Jahre gebräuchlich, die digitale Mikroelektronik war so leistungsfähig, dass man sie auch zur Integration, Differentiation, usw. nutzen konnte ohne die genannten Nachteile 11 Programmieren 1 Teil 1 V2 Vielgestalt des heutigen Computers (1) die meisten Computer sind als solche kaum erkennbar: ubiquitous (allgegenwärtig) als embedded System im Handy, im Auto, in der Waschmaschine PDA: Personal Digital Assistant ist ein handflächengroßer tragbarer Computer (Handcomputer; Palmtop); seit 1993: Newton Message Pad Laptop (= "Auf dem Schoß"), oder Notebook (notebook = Notizbuch ein Handelsname) ist ein tragbarer Personal-Computer (Arbeitsplatzrechner) in der Größe eines Buches 12 Programmieren 1 Teil 1 V2 6

7 Vielgestalt des heutigen Computers (2) Arbeitsplatzrechner (Desktop Computer, Personalcomputer, PC): "persönlicher Rechner", auch ein Handelsname heute aber Gattungsbezeichnung. Rechnertypen die einer einzelnen Person zur Verfügung stehen und auf deren Bedürfnisse anpasst sind seit Anfang der 80er Jahre Verfügbar (Apple Lisa, PERQ, etc.) Ein Server ist ein Rechner, "auf dem ein Serverprogramm läuft", das für Clients, z.b. auf Arbeitsplatzsystemen spezifische Dienstleistungen anbietet: Print-Server (Zugriff auf Drucker), Mailserver ( -Server), Datenbankserver; Webserver; Dateiserver, etc. 13 Programmieren 1 Teil 1 V2 Vielgestalt des heutigen Computers (3) Die Hardware, auf der ein oder mehrere Server laufen, bezeichnet man als Host, deutet auf vernetzte Strukturen hin. Mainframe (Großrechner, ggf. Host) ist ein großes und umfangreiches Computersystem, das weit über die Kapazitäten eines Personal Computers und oft sogar über die typischer Serversysteme hinausgeht meist im kommerziellen und kaufmännischen Bereich eingesetzt (z.b. für Flug-Buchungssysteme, im Bankenbereich, etc.). Im Gegensatz zu Supercomputern (für maximale Rechenleistung ausgelegt) ist ein Großrechner für Zuverlässigkeit und hohen Datendurchsatz, für tausende parallel zu bearbeitende Transaktionen optimiert. 14 Programmieren 1 Teil 1 V2 7

8 Supercomputer sind Hoch-(Höchst-)leistungsrechner, die zum Zeitpunkt ihrer Einführung im obersten realisierbaren Leistungsbereich operieren, siehe (Vierteljährlich wird die Liste der 500 schnellsten Supercomputer veröffentlicht). Typisches Merkmale eines heutigen Supercomputers sind seine große Anzahl an Prozessoren (einige Hundert bis einige Tausend), i.d.r. sehr großer Hauptspeicher. Zum Vergleich: Sämtliche Berechnungen aller Computer weltweit, im Zeitraum on 1960 bis 1970 (in 10 Jahren) könnte ein heutiger Supercomputer in etwa 30 Minuten durchführen. 15 Programmieren 1 Teil 1 V2 Leistungsfähigkeit (Performance) anfangs gemessen in MIPS (Millionen Instruktionen pro Sekunde) und/oder MFLOPS (Millionen Floating Point Operationen pro Sekunde) = Gleitkommaoperationen (approximieren rationale Zahlen) sehr weinig Aussagekraft über Laufzeit einer Anwendung Frühe 80er-Jahre: Messung durch Dhrystones und Whetstones durch sogenannte Benchmarks (fest vereinbarte künstliche Programme (zu keinem anderen Zweck), die typische Anweisungsfolgen aufweisen) = typischer Mix von Anweisungen, gibt Anzahl Operationen dieser Mischung an 16 Programmieren 1 Teil 1 V2 8

9 Performance (2) Dhrystone (von Reinhold Weicker 1984 entwickelt) enthält nur Integer-Operationen (Ganze Zahlen) sein Name ist ein Wortspiel auf den damals sehr populären Gleitkomma-Benchmark Whetstone. Whetstone (dt. Wetzstein) schon 1976 in den National Physical Laboratories in Großbritannien entwickelt Er verwendet dazu Fließkomma-Operationen, aber auch Integer- Arithmetik und Zugriffe auf Array-Elemente: [KWIPS oder MWIPS] 17 Programmieren 1 Teil 1 V2 Performance (3) heute meist SPEC (seit 1989): Es handelt sich um eine Serie von Anwendungen (z.b. neuronale Netze, finite Elemente, Videoencodierung usw.), die in Integer-bezogene (SpecInt) und Floatingpoint-bezogene (SpecFp)-Programme eingeteilt werden. Entsprechend bilden das Endergebnis der Tests immer zwei Zahlen, die die Leistung bezogen auf eine Referenzmaschine (benchmark) angeben. Bei Spec2000 ist dies z.b. eine Sun UltraSparcIIi/256MB. 18 Programmieren 1 Teil 1 V2 9

10 Ans Eingemachte... nur PC... alles weitere dann in Hardware - Architekturen von Rechenanlagen (Technische Informatik) 19 Programmieren 1 Teil 1 V2 Ein Blockschaltbild (erste Abstraktion) reicht uns nicht... weiter abstrahieren, d.h. Details weglassen, nur zielorientiert die Essentials erhalten Maschinenunabhängig Programmieren 20 Programmieren 1 Teil 1 V2 10

11 von Neumann Architekur benannt nach John von Neumann ist ein Schaltungskonzept zur Realisierung universeller Rechner (Von-Neumann-Rechner) welches folgende Komponenten enthält: Rechenwerk (führt Rechenoperationen und logische Verknüpfungen aus) Speicher (speichert sowohl Programme als auch Daten Steuerwerk (interpretiert die Anweisungen eines Programms und steuert die Ausführung dieser Befehle) Eingabe-/Ausgabewerke (steuert die Ein- und Ausgabe von Daten) (Verbindungssystem) Das Rechen- und das Steuerwerk (manchmal auch Leitwerk genannt) bilden die so genannte Zentraleinheit, den Prozessor (CPU) 21 Programmieren 1 Teil 1 V2 von Neumann Architekur (2) Dieses Konzept wurde 1945 in dem Papier First Draft of a Report on the EDVAC im Rahmen des Baus der EDVAC beschrieben war zur Zeit seiner Entwicklung revolutionär. (oder auch nicht: Konrad Zuse hatte schon 1938 seine Z3 (Relaisrechner) realisiert) Anderer Rechner jener Zeit hatten ein festes Programm, das z.b. durch Schaltdrähte programmiert wurde oder waren nicht programmierbar In einer Von-Neumann-Architektur war es nun möglich, Änderungen an Programmen sehr schnell durchzuführen oder in kurzer Folge ganz verschiedene Programme ablaufen zu lassen, ohne Veränderungen an der Hardware vornehmen zu müssen Diese Architektur setzte sich sehr schnell durch. 22 Programmieren 1 Teil 1 V2 11

12 von Neumann Architekur (3) Daten Befehle Bedingungen Events 23 Programmieren 1 Teil 1 V2 Die Original von Neumann-Architektur. Extrahiert aus dem Text First Draft of Report on the EDVAC mit Datum R outside recording medium... a stack of punch-cards, a teletype tape, etc.: information can be produced directly by human action and sensed directly by human organs I input: organs to transfer numerical (or other) information from R to M O output: organs to transfer numerical information from M to R CC proper sequencing of the machines operations... a general / central organ functions: (1) receive orders from M (2) interpret them (3) carry them out or stimulate other organs to carry them out A very high speed automatic digital computing system M conciderable memory for at least the four following phases a) intermediate (partial) results must be remembered b) the instructions which govern the complicated problems c) specific functions, usually in form of a table d)... h) diverse other data... tempting to treat the entire memory as one organ instructions I CA J CA (numerical) data CA perform the elementary operations of aritmetic: + x +,, x, O CA C 24 Programmieren 1 Teil 1 V2 12

13 Die Kernideen der von Neumann Architektur 1. Ein Computer besteht aus 5 Funktionseinheiten: Speicher, Steuerwerk oder Leitwerk, Rechenwerk, Eingabe, Ausgabe (Steuerwerk und Rechenwerk bilden den Prozessor) 2. Im Speicher sind sowohl die zu bearbeitenden Daten als auch das Programm abgelegt. 3. Ein Befehls-Ausführungszyklus besteht aus der Folge: 1. Befehl aus dem Speicher holen FETCH 2. Befehl im Steuerwerk interpretieren DECODE 3. Operanden holen FETCH OPERANDS 4. Befehl ausführen EXECUTE 5. (Erhöhen des Befehlszählers UPDATE INSTRUCTION POINTER) 25 Programmieren 1 Teil 1 V2 Wie war es davor bis etwa 1950 (1) Name Fertigstellung Hauptentwickler Technologie Turingvollständig Programmierbar? Analytical Engine (nicht realisiert) Charles Babbage ( ) Mechanik Lochstreifen Ja ABC Computer John V. Atanasoff Clifford Berry 1941 Elektronenröhren Nein Nein Z 3 Konrad Zuse 1941 Relais Lochstreifen (Ja) Colossus M.H.Newman I.J. Good 1944 Elektronenröhren Datenband und Verkabelung Nein 26 Programmieren 1 Teil 1 V2 13

14 Architektur der Analytical Engine ( ) Store from store 2 1 Primed Ingress Axis 1 Ingress Axis 2 Ingress Axis x Run-Up Lever Mill Exgress Axis Primed Exgress Axis Number Cards Variable Cards Operations Cards 27 Programmieren 1 Teil 1 V2 Wie war es davor bis etwa 1950 (1) Name Fertigstellung Hauptentwickler Technologie Turingvollständig Programmierbar? Analytical Engine (nicht realisiert) Charles Babbage ( ) Mechanik Lochstreifen Ja ABC Computer John V. Atanasoff Clifford Berry 1941 Elektronenröhren Nein Nein Z 3 Konrad Zuse 1941 Relais Lochstreifen (Ja) Colossus M.H. Newman I.J. Good 1944 Elektronenröhren Datenband und Verkabelung Nein 28 Programmieren 1 Teil 1 V2 14

15 Wie war es davor bis etwa 1950 (2) Name Fertigstellung Hauptentwickler Technologie Turingvollständig Programmierbar? Harvard Mark I (ASCC) Howard H. Aiken Ł IBM 1944 Mechanik (und Relais) Lochstreifen Ja ENIAC Mauchley und Eckert 1946 Elektronenröhren Verkabelung Ja von Neumann Architektur (First Draft... EDVAC Electronic Discreet Variable Computer 1945 datiert, veröffentlicht 1946 Manchester Mark I Prototyp Baby F. Williams U Man 1948 Elektronenröhren und alle weiteren! stored program 29 Programmieren 1 Teil 1 V2 Ja Also, wer war der Erfinder des Computers? Z3 ENIAC Analytical Engine Konrad Zuse? John Mauchley, Presper Eckert? Charles Babbage John von Neumann Alle sicher nicht! Der Computer ist eine Gemeinschaftserfindung! 30 Programmieren 1 Teil 1 V2 15

16 Entwicklung ab 1950 Elektronengehirne In den USA vor allem mit Starthilfe von Howard Aiken Ł (der Computerhersteller) IBM Eckert und Mauchly (eigene Firma) Ł UNIVAC F. Williams ( U Manchester) Ł Ferranti Konrad Zuse Ł Zuse KG (AG) 1960 in den USA: IBM und die sieben Zwergen gemeint waren UNIVAC 12 % Marktanteil, Burroughs 3 %, NCR 3 %, CDC, RCA, Honeywell, GE: IBM beherrschte 70% des US Marktes: Big Blue 31 Programmieren 1 Teil 1 V2 Heute Alle Computer haben eine (modifizierte) von Neumann Architektur Multiprozessoren, d.h. haben mehrere Prozessorkerne CISC RISC 32 Programmieren 1 Teil 1 V2 16

17 Algorithmus Das Wort Algorithmus ist eine Abwandlung oder Verballhornung des Namens von Muhammad ibn Musa al-chwarizmi (* ca. 783, ca. 850), dem Autor des Buchs Hisab al-dschabr wa-l-muqabala (825, Regeln zur Wiederherstellung und Reduktion), durch das die Algebra im Westen verbreitet wurde. Die lateinische Fassung beginnt mit Dixit Algoritmi... (Algoritmus sprach...), womit der Autor gemeint war. Das Wort Algebra stammt ebenfalls (al-jabr Einrenkung ) aus dem Titel des Buches. Ursprünglich stand das Wort Algorism nur für die Regeln zur Arithmetik mit arabischen Ziffern. Heute steht es für alle geregelten Prozeduren, mit denen Probleme aller Art gelöst werden können. 33 Programmieren 1 Teil 1 V2 Ein Porträt? 34 Programmieren 1 Teil 1 V2 17

18 Algorithmus Unter einem Algorithmus versteht man allgemein eine genau definierte Handlungsvorschrift zur Lösung eines Problems oder einer bestimmten Art von Problemen. Alltagsalgorithmen: ein Kochrezept, ein Algorithmus? zumindest dann, wenn alle Angaben genau genug sind und es für alle Teilaufgaben, wie Braten, Rühren, etc., ebenfalls Algorithmen gibt. Auch Reparatur- und Bedienungsanleitungen oder Hilfen zum Ausfüllen von Formularen sind in der Regel Algorithmen.... aber in der Regel zu unpräzis 35 Programmieren 1 Teil 1 V2 Eigenschaft: Determiniertheit Kurz: Bei jeder Ausführung mit gleichen Startwerten muss das gleiche Ergebnis berechnet werden. Algorithmen sind determiniert, wenn sie bei gleichen Parametern und Startwert stets das gleiche Resultat liefern. 36 Programmieren 1 Teil 1 V2 18

19 Eigenschaft: Deterministisch (ein feiner Unterschied) Deterministisch heißen alle Algorithmen, bei denen zu jedem Zeitpunkt der Ausführung maximal eine Möglichkeit der Programmfortsetzung besteht. Gibt es mehrere Möglichkeiten der Programmfortsetzung und lassen sich diesen Wahrscheinlichkeiten zuweisen, so spricht man von stochastischen, randomisierten oder probabilistischen Algorithmen. In der Theorie gibt es neben dem Determinismus auch den Nichtdeterminismus, der aber in der Praxis kaum Verwendung findet, aber z.b. bei Quantencomputern, welche auch solche Algorithmen erfolgreich ausführen. Es gilt übrigens: Jeder deterministische Algorithmus ist auch determiniert. Nicht jeder determinierte Algorithmus ist jedoch deterministisch. 37 Programmieren 1 Teil 1 V2 Statische Finitheit Kurz: Die Beschreibung des Algorithmus ist endlich. Die Beschreibung eines Algorithmus darf nicht unendlich groß sein. Als statische Finitheit wird die Endlichkeit des Quelltextes bezeichnet. Der Quelltext darf nur eine begrenzte Anzahl, wenn auch bei Bedarf sehr viele Regeln enthalten. 38 Programmieren 1 Teil 1 V2 19

20 Dynamische Finitheit Kurz: Menge an Daten inclusive und Zwischenspeicherungen sind zu jeder Zeit endlich. Zu jedem Zeitpunkt der Ausführung darf der von einem Algorithmus benötigte Speicherbedarf nicht unendlich groß sein. Andernfalls wäre der Algorithmus nicht ausführbar. 39 Programmieren 1 Teil 1 V2 Terminiertheit Kurz: Der Algorithmus bricht nach endlicher Zeit kontrolliert ab. Algorithmen sind terminierend, wenn sie für jede mögliche Eingabe nach einer endlichen Zahl von Schritten zu einem Ergebnis kommen. Die tatsächliche Zahl der Schritte kann dabei beliebig groß sein. Steuerungssysteme und Betriebssysteme und auch viele Programme, die auf Interaktion mit dem Benutzer aufbauen, erfüllen diese Eigenschaft nicht: Wenn der Benutzer keinen Befehl zum Beenden gibt, läuft das Programm endlos weiter. 40 Programmieren 1 Teil 1 V2 20

21 Wie formuliert (beschreibt) man Algorithmen 1. Durch eine präzise Beschreibung in einer natürlichen Sprache. 2. Mittels einer Pseudo-Programmiersprache (Pseudo-Code): Folge von Zuweisung: name Ausdruck Verzweigung: if <Bedingung> then (Aktivitätsfolge) else (Aktivitätsfolge) while <Bedingung> do (Aktivitätsfolge) und mehr braucht man eigentlich nicht --- nach dem Prinzip: alles was verständlich und eindeutig ist, reicht! Es viele andere Möglichkeiten... später 41 Programmieren 1 Teil 1 V2 Algorithmus vs. Programm Algorithmen sind Abstraktionen von Programmen ob sie jetzt auf eine spezielle Maschine zugeschnittenen sind oder auch mit einer höheren (maschinenunabhängigen) Programmiersprache formuliert sind (d. h., die Abstraktion erfolgt hier durch Weglassen der Details der realen Maschine oder der realen Programmiersprache) das Programm ist eine konkrete Form des Algorithmus, angepasst an die Notwendigkeiten und Möglichkeiten der realen Maschine resp. der realen Programmiersprache 42 Programmieren 1 Teil 1 V2 21

22 Programmiersprachen zwei Hauptkriterien: die Generation das Paradigma und dann viele, viele Details: Wie viele Programmiersprachen gibt es? 43 Programmieren 1 Teil 1 V2 Maschinensprachen Sprachen der ersten Generation Direkte Programmierung der Hardware durch Folge elementarer im Binärcode repräsentierter Befehle eines bestimmten Prozessors CPU ist in der Lage 1. Befehle aus dem Speicher zu holen (fetch) 2. diese zu dekodieren (decode) 3. diese dann auszuführen (execute) und dann wieder 1. Was ist der minimale Befehlssatz? 44 Programmieren 1 Teil 1 V2 22

23 Ein typisches von Neumann Maschinenbefehlswort 45 Programmieren 1 Teil 1 V2 Ein Beispiel 46 Programmieren 1 Teil 1 V2 23

24 2. Generation : Assemblersprachen 47 Programmieren 1 Teil 1 V2 Assemblerprogramme Vorteil: Ermöglicht die Erstellung sehr effizienter Programme für eine speziellen Rechnertyp Nachteile: abhängig vom konkreten Rechnertyp Ł viel Portierarbeit Programme sind selbst für den Entwickler schwer verständlich Ł kaum wartbar nur noch sehr selten genutzt! 48 Programmieren 1 Teil 1 V2 24

25 3. Generation: Höhere Programmiersprachen Hardware (Maschinen)-Unabhängigkeit Für den Menschen verständlicher und einfacher zu handhaben Idee: Die mühsame Codierarbeit (dafür brauchte man früher Programmierer) soll doch die Maschine selbst machen! Ł spezielle Übersetzer (Compiler von to compile und Interpreter) als erste schon Ende der 50er Jahre FORTRAN (Formular Translation; Ausdrücke wie in der Mathematik) COBOL LISP 49 Programmieren 1 Teil 1 V2 4. und 5. Generation nicht wirklich wissenschaftlich, eher Marketingbegriffe... bitte nicht ernsthaft benutzen! 50 Programmieren 1 Teil 1 V2 25

26 Charakteristika von Programmiersprachen eindeutige Lexikalität: Festlegung der gültige Zeichen bzw. Wörter aus denen Programme zusammengesetzt werden eindeutige Syntax: legt fest, welche Folgen von Sätzen benutzt werden dürfen (syntaktisch korrekt sind) eindeutige Semantik: welche Auswirkung hat die Ausführung einer Anweisung? Pragmatik definiert den Einsatzbereich der Sprache 51 Programmieren 1 Teil 1 V2 Grace Murray Hopper ( ) Erfinderin des Compilers im Mark 1 Team (Aiken) The first computer bug 52 Programmieren 1 Teil 1 V2 26

27 Übersetzer (Compiler) 53 Programmieren 1 Teil 1 V2 Übersetzungsphasen 54 Programmieren 1 Teil 1 V2 27

28 Traditionelle Übersetzung 55 Programmieren 1 Teil 1 V2 Vor- und Nachteile von Compilern maximale Geschwindigkeit durch Optimierung des Codes aber: das übersetzte Programm läuft nur auf dem jeweiligen Maschinentyp weil Dienste des Betriebssystems benötigt werden sind die Programme trotzdem Plattformabhängig das Resultat: viele Dialekte einer Sprache 56 Programmieren 1 Teil 1 V2 28

29 Ein alternatives Vorgehen: Interpreter Ein Interpreter führt das Quellprogramm direkt aus: Arbeitsweise: 1. Lexikalische Analyse der nächsten Anweisung im Programm 2. Syntaktische Analyse 3. Übersetzung der Hochsprache in eine Befehlsfolge der Maschinensprache oder einer Zwischensprache, ggf. in sich selbst 4. Ausführung der generierten Befehlsfolge Wiederholung der Schritte 1 bis 4 57 Programmieren 1 Teil 1 V2 Vor und Nachteile Geänderte Programme sind sofort ausführbar (nicht übersetzen, binden,...) sehr hilfreich beim Testen schnelles Ändern auch ausprobieren (???) sehr gut für Prototypen die Ausführungszeiten sind gegenüber compilierten Programmen größer 58 Programmieren 1 Teil 1 V2 29

30 Heute sehr häufig, sowohl bei Compilern als auch Interpretern 59 Programmieren 1 Teil 1 V2 Vor- und Nachteile Nur ein Compiler/Interpreter für alle Prozessoren und Plattformen (natürlich braucht man eine VM pro Plattform, in der Regel ein Interpreter übersetzte Programme laufen auf allen Prozessoren und Plattformen (etwas) langsamer als Maschinencode 60 Programmieren 1 Teil 1 V2 30

31 Fragen und (hoffentlich) Antworten 61 Programmieren 1 Teil 1 V2 Ausblick Jetzt geht s bald zum Programmieren... zunächst in Python Dr. Tobias Breiner Danke für Ihre Aufmerksamkeit 62 Programmieren 1 Teil 1 V2 31

Modul: Programmierung B-PRG Grundlagen der Programmierung 1 Teil 1 V2

Modul: Programmierung B-PRG Grundlagen der Programmierung 1 Teil 1 V2 Modul: Programmierung B-PRG Grundlagen der Programmierung 1 Teil 1 V2 Computer Algorithmen - Programme Professur für Graphische Datenverarbeitung Institut für Informatik Fachbereich Informatik und Mathematik

Mehr

Modul: Programmierung B-PRG Grundlagen der Programmierung 1 Teil 1 V0. Rückblick. Wo sind wir? Computer Algorithmen - Programme

Modul: Programmierung B-PRG Grundlagen der Programmierung 1 Teil 1 V0. Rückblick. Wo sind wir? Computer Algorithmen - Programme Modul: Programmierung B-PRG Grundlagen der Programmierung 1 Teil 1 V0 Computer Algorithmen - Programme Professur für Graphische Datenverarbeitung Institut für Informatik Fachbereich Informatik und Mathematik

Mehr

Allgemeine Informatik Thema 1 Informatik; Konzepte (II)

Allgemeine Informatik Thema 1 Informatik; Konzepte (II) Conf. Dr. I. Intorsureanu Wirtschaftsakademie Bukarest Allgemeine Informatik Thema 1 Informatik; Konzepte (II) Inhalt: 1.1 Was ist Informatik? 1.2 Information und Daten 1.3 Computersysteme Hardware und

Mehr

Definitionen/Vorarbeit zum Thema Java

Definitionen/Vorarbeit zum Thema Java Definitionen/Vorarbeit zum Thema Java Programmiersprachen: System von Wörtern und Symbolen, die zur Formulierung von Programmen für die elektronische Datenverarbeitung verwendet werden. Arten: z.b. Javascript

Mehr

1 Vom Problem zum Program

1 Vom Problem zum Program Ein Problem besteht darin, aus einer Menge von Informationen eine weitere (unbekannte) Information zu bestimmen. mathematisch: Ein Problem beschreibt eine Funktion f : E A, mit E = zulässige Eingaben und

Mehr

1 Vom Problem zum Programm

1 Vom Problem zum Programm 1 Vom Problem zum Programm Ein Problem besteht darin, aus einer Menge von Informationen eine weitere (unbekannte) Information zu bestimmen. mathematisch: Ein Problem beschreibt eine Funktion f : E A, mit

Mehr

Einführung in die Informatik I (autip)

Einführung in die Informatik I (autip) Einführung in die Informatik I (autip) Dr. Stefan Lewandowski Fakultät 5: Informatik, Elektrotechnik und Informationstechnik Abteilung Formale Konzepte Universität Stuttgart 24. Oktober 2007 Was Sie bis

Mehr

Wintersemester 2007/2008 Helmut Seidl Institut für Informatik TU München

Wintersemester 2007/2008 Helmut Seidl Institut für Informatik TU München Informatik 1 Wintersemester 2007/2008 Helmut Seidl Institut für Informatik TU München 1 0 Allgemeines Inhalt dieser Vorlesung: Einführung in Grundkonzepte der Informatik; Einführung in Denkweisen der Informatik;

Mehr

Der von Neumann Computer

Der von Neumann Computer Der von Neumann Computer Grundlagen moderner Computer Technologie 1 Der moderne Computer ein weites Spektrum Typ Preis Anwendungsbeispiel embeded Computer 10-20 $ in Autos, Uhren,... Spielcomputer 100-200$

Mehr

Ideen und Konzepte der Informatik

Ideen und Konzepte der Informatik Ideen und Konzepte der Informatik Programme und Algorithmen Antonios Antoniadis 23. Oktober 2017 Algorithmen und Programme Algorithmus Schritt-für-Schritt Vorschrift zur Lösung eines Problems. Formuliert

Mehr

Ideen und Konzepte der Informatik. Programme und Algorithmen Kurt Mehlhorn

Ideen und Konzepte der Informatik. Programme und Algorithmen Kurt Mehlhorn Ideen und Konzepte der Informatik Programme und Algorithmen Kurt Mehlhorn Algorithmen und Programme Algorithmus Schritt-für-Schritt Vorschrift zur Lösung eines Problems. Formuliert man umgangssprachlich,

Mehr

n 1. Der Begriff Informatik n 2. Syntax und Semantik von Programmiersprachen - 1 -

n 1. Der Begriff Informatik n 2. Syntax und Semantik von Programmiersprachen - 1 - n 1. Der Begriff Informatik n 2. Syntax und Semantik von Programmiersprachen I.2. I.2. Grundlagen von von Programmiersprachen. - 1 - 1. Der Begriff Informatik n "Informatik" = Kunstwort aus Information

Mehr

Wichtige Rechnerarchitekturen

Wichtige Rechnerarchitekturen Wichtige Rechnerarchitekturen Teil 1 Überblick 1 Rechnergeschichte: Mechanische Rechenmaschinen Mechanische Rechenmaschinen (17.Jahrhundert) Rechenuhr von Schickard (1623) Pascaline von Blaise Pascal (1642)

Mehr

Was ist ein Computer? Was ist ein Programm? Können Computer Alles?

Was ist ein Computer? Was ist ein Programm? Können Computer Alles? Was ist ein Computer? Was ist ein Programm? Können Computer Alles? Beispiele von Computern Was ist die Essenz eines Computers? Die Turing Maschine Auf jedem Bandquadrat steht ein Buchstabe (Symbol, Zeichen)

Mehr

Einleitung. Dr.-Ing. Volkmar Sieh WS 2005/2006. Institut für Informatik 3: Rechnerarchitektur Friedrich-Alexander-Universität Erlangen-Nürnberg

Einleitung. Dr.-Ing. Volkmar Sieh WS 2005/2006. Institut für Informatik 3: Rechnerarchitektur Friedrich-Alexander-Universität Erlangen-Nürnberg Technologische Trends Historischer Rückblick Institut für Informatik 3: Rechnerarchitektur Friedrich-Alexander-Universität Erlangen-Nürnberg WS 2005/2006 Technologische Trends Historischer Rückblick Übersicht

Mehr

Ideen und Konzepte der Informatik. Programme und Algorithmen Kurt Mehlhorn

Ideen und Konzepte der Informatik. Programme und Algorithmen Kurt Mehlhorn Ideen und Konzepte der Informatik Programme und Algorithmen Kurt Mehlhorn November 2016 Algorithmen und Programme Algorithmus = Schritt-für-Schritt Vorschrift zur Lösung eines Problems. Formuliert man

Mehr

Inhalt. Einführung in die Strukturierte Programmierung 15

Inhalt. Einführung in die Strukturierte Programmierung 15 Inhalt Einführung in die Strukturierte Programmierung 15 1.1 Was bedeutet Programmieren? 17 1.2 Was bedeutet Strukturierte Programmierung? 18 1.3 Was ist Pascal? 19 1.4 Was ist PS/k? 20 1.5 Warum wird

Mehr

TECHNISCHE HOCHSCHULE NÜRNBERG GEORG SIMON OHM Die Mikroprogrammebene eines Rechners Das Abarbeiten eines Arbeitszyklus eines einzelnen Befehls besteht selbst wieder aus verschiedenen Schritten, z.b. Befehl

Mehr

Übersicht. Einleitung. Übersicht. Architektur. Dr.-Ing. Volkmar Sieh WS 2008/2009

Übersicht. Einleitung. Übersicht. Architektur. Dr.-Ing. Volkmar Sieh WS 2008/2009 Übersicht Einleitung 1 Einleitung Dr.-Ing. Volkmar Sieh 2 Technologische Trends Institut für Informatik 3: Rechnerarchitektur Friedrich-Alexander-Universität Erlangen-Nürnberg WS 2008/2009 3 Historischer

Mehr

Einleitung. Dr.-Ing. Volkmar Sieh. Institut für Informatik 3: Rechnerarchitektur Friedrich-Alexander-Universität Erlangen-Nürnberg WS 2006/2007

Einleitung. Dr.-Ing. Volkmar Sieh. Institut für Informatik 3: Rechnerarchitektur Friedrich-Alexander-Universität Erlangen-Nürnberg WS 2006/2007 Einleitung Dr.-Ing. Volkmar Sieh Institut für Informatik 3: Rechnerarchitektur Friedrich-Alexander-Universität Erlangen-Nürnberg WS 2006/2007 Einleitung 1/50 2006/10/09 Übersicht 1 Einleitung 2 Technologische

Mehr

Algorithmen versus Programmiersprachen

Algorithmen versus Programmiersprachen Coma I Einleitung Computer und Algorithmen Programmiersprachen Algorithmen versus Programmiersprachen Literaturhinweise Computer und Algorithmen Programmiersprachen Algorithmen versus Programmiersprachen

Mehr

Kapitel 1: Informationsverarbeitung durch Programme

Kapitel 1: Informationsverarbeitung durch Programme LUDWIG- MAXIMILIANS- UNIVERSITY MUNICH DEPARTMENT INSTITUTE FOR INFORMATICS Skript zur Vorlesung: Einführung in die Informatik: Systeme und Anwendungen Sommersemester 2009 Kapitel 1: Informationsverarbeitung

Mehr

Was ist ein Computer? Was ist ein Programm? Können Computer Alles?

Was ist ein Computer? Was ist ein Programm? Können Computer Alles? Was ist ein Computer? Was ist ein Programm? Können Computer Alles? Die Turing Maschine Auf jedem Bandquadrat steht ein Buchstabe (Symbol, Zeichen) in A,,Z, a,,z, 0,.,9,$,,., leer Endliches Alphabet Steuereinheit

Mehr

. Die obige Beschreibung der Laufzeit für ein bestimmtes k können wir also erweitern und erhalten die folgende Gleichung für den mittleren Fall:

. Die obige Beschreibung der Laufzeit für ein bestimmtes k können wir also erweitern und erhalten die folgende Gleichung für den mittleren Fall: Laufzeit von Quicksort im Mittel. Wir wollen die erwartete Effizienz von Quicksort ermitteln. Wir nehmen an, die Wahrscheinlichkeit, dass das gewählte Pivot-Element a j das k-t kleinste Element der Folge

Mehr

Einführung in die Programmierung

Einführung in die Programmierung Einleitung Gliederung Einführung in die Programmierung Wintersemester 08/09 Zum Begriff Informatik Zum Begriff Algorithmus Zum Begriff Programmieren Prof. Dr. Günter Rudolph Lehrstuhl für Algorithm Engineering

Mehr

Einführung in die Informatik Algorithms

Einführung in die Informatik Algorithms Einführung in die Informatik Algorithms Vom Problem zum Algorithmus und zum Programm Wolfram Burgard Cyrill Stachniss 1.1 Motivation und Einleitung In der Informatik sucht man im Normalfall nach Verfahren

Mehr

Kapitel 1: Einleitung. Gliederung. Zum Begriff Informatik Zum Begriff Algorithmus Zum Begriff Programmieren

Kapitel 1: Einleitung. Gliederung. Zum Begriff Informatik Zum Begriff Algorithmus Zum Begriff Programmieren Kapitel 1: Einleitung Wintersemester 2006/07 Einführung in die Informatik für Naturwissenschaftler und Ingenieure (alias Einführung in die Programmierung) (Vorlesung) Gliederung Zum Begriff Informatik

Mehr

2. Computer (Hardware) K. Bothe, Institut für Informatik, HU Berlin, GdP, WS 2015/16

2. Computer (Hardware) K. Bothe, Institut für Informatik, HU Berlin, GdP, WS 2015/16 2. Computer (Hardware) K. Bothe, Institut für Informatik, HU Berlin, GdP, WS 2015/16 Version: 14. Okt. 2015 Computeraufbau: nur ein Überblick Genauer: Modul Digitale Systeme (2. Semester) Jetzt: Grundverständnis

Mehr

Ideen und Konzepte der Informatik. Programme und Algorithmen Kurt Mehlhorn

Ideen und Konzepte der Informatik. Programme und Algorithmen Kurt Mehlhorn Ideen und Konzepte der Informatik Programme und Algorithmen Kurt Mehlhorn 26. Oktober 2015 Programme und Algorithmen Programmiersprache = Kunstsprache mit genau definierter Syntax (was ist ein zulässiger

Mehr

Informatik 12 Kapitel 3 - Funktionsweise eines Rechners

Informatik 12 Kapitel 3 - Funktionsweise eines Rechners Fachschaft Informatik Informatik 12 Kapitel 3 - Funktionsweise eines Rechners Michael Steinhuber König-Karlmann-Gymnasium Altötting 9. Februar 2017 Folie 1/36 Inhaltsverzeichnis I 1 Komponenten eines PCs

Mehr

Programmiersprache. Emily & rica

Programmiersprache. Emily & rica Programmiersprache Emily & rica inhaltsangabe Programmiersprache Def inition/funktion Arten Gängige Algorithmus/Syntax Compiler, Interpreter Def inition Unterscheidung Vor- und Nachteile Compiler/ Interpreter

Mehr

Allgemeine Informatik Thema 1 Informatik; Konzepte

Allgemeine Informatik Thema 1 Informatik; Konzepte Conf. dr. I. Intorsureanu Wirtschaftsakademie Bukarest Allgemeine Informatik Thema 1 Informatik; Konzepte Inhalt: Informatik Information und Daten Computer Hardware und Software Historischer Überblick

Mehr

2.1 Rechnersichten 2.2 Rechnerorganisation: Aufbau und Funktionsweise

2.1 Rechnersichten 2.2 Rechnerorganisation: Aufbau und Funktionsweise Teil 1 Kapitel 2 Rechner im Überblick 2.1 Rechnersichten 2.2 Rechnerorganisation: Aufbau und Funktionsweise Frank Schmiedle Technische Informatik I 2.1 Rechnersichten Modellierung eines Rechners Zusammenspiel

Mehr

Einführung in die Programmierung

Einführung in die Programmierung Einleitung Gliederung Einführung in die Programmierung Wintersemester 2017/18 Zum Begriff Informatik Zum Begriff Algorithmus Zum Begriff Programmieren Prof. Dr. Günter Rudolph Lehrstuhl für Algorithm Engineering

Mehr

Klausur Informatik II

Klausur Informatik II Klausur Informatik II Sommersemester 23 Bearbeitungszeit 2 Minuten Name: Vorname: Matrikelnummer: Bei der Klausur sind keine Hilfsmittel (Skripten, Taschenrechner, etc.) erlaubt. Schreiben Sie bitte mit

Mehr

Grundlagen der Rechnerarchitektur. Einführung

Grundlagen der Rechnerarchitektur. Einführung Grundlagen der Rechnerarchitektur Einführung Unsere erste Amtshandlung: Wir schrauben einen Rechner auf Grundlagen der Rechnerarchitektur Einführung 2 Vorlesungsinhalte Binäre Arithmetik MIPS Assembler

Mehr

Algorithmen und Datenstrukturen (für ET/IT)

Algorithmen und Datenstrukturen (für ET/IT) Algorithmen und Datenstrukturen (für ET/IT) Sommersemester 2016 Dr. Tobias Lasser Computer Aided Medical Procedures Technische Universität München Programm heute 1 Einführung 2 Grundlagen von Algorithmen

Mehr

Algorithmen und Datenstrukturen

Algorithmen und Datenstrukturen Algorithmen und Datenstrukturen Dipl. Inform. Andreas Wilkens aw@awilkens.com Überblick Grundlagen Definitionen Eigene Entwicklungen Datenstrukturen Elementare Datentypen Abstrakte Datentypen Elementare

Mehr

Einführung (1) Erster funktionsfähiger programmgesteuerter Rechenautomat Z3, fertiggestellt 1941 Bild: Nachbau im Deutschen Museum München

Einführung (1) Erster funktionsfähiger programmgesteuerter Rechenautomat Z3, fertiggestellt 1941 Bild: Nachbau im Deutschen Museum München Einführung (1) Erster funktionsfähiger programmgesteuerter Rechenautomat Z3, fertiggestellt 1941 Bild: Nachbau im Deutschen Museum München Einführung (2) Architektur des Haswell- Prozessors (aus c t) Einführung

Mehr

1 Einführende Bemerkungen

1 Einführende Bemerkungen 1 Einführende Bemerkungen Ziel des Moduls: Einführung in den prinzipiellen Aufbau und die grundlegende Verarbeitungsweise eines Rechners Hinführung an die objektorientierte Programmierung mittels Java

Mehr

systematischen Verarbeitung von Informationen Was ist Informatik?

systematischen Verarbeitung von Informationen Was ist Informatik? 13 1. Einführung Informatik: Definition und Geschichte, Algorithmen, Turing Maschine, Höhere Programmiersprachen, Werkzeuge der Programmierung, das erste C++ Programm und seine syntaktischen und semantischen

Mehr

Grundlagen der Informatik I Einführung

Grundlagen der Informatik I Einführung Grundlagen der Informatik I Einführung Konzepte imperativer Programmierung : Six, H.W., 99 Themen der heutigen Veranstaltung 1. Informatik, Computer, Programmierung 2. Problem und Algorithmus 3. Programme

Mehr

systematischen Verarbeitung von Informationen Was ist Informatik?

systematischen Verarbeitung von Informationen Was ist Informatik? 14 1. Einführung Informatik: Definition und Geschichte, Algorithmen, Turing Maschine, Höhere Programmiersprachen, Werkzeuge der Programmierung, das erste C++ Programm und seine syntaktischen und semantischen

Mehr

ECDL MODUL COMPUTING. Syllabus Version 1.0

ECDL MODUL COMPUTING. Syllabus Version 1.0 ECDL MODUL COMPUTING Syllabus Version 1.0 DLGI Dienstleistungsgesellschaft für Informatik Am Bonner Bogen 6 53227 Bonn Tel.: 0228-688-448-0 Fax: 0228-688-448-99 E-Mail: info@dlgi.de, URL: www.dlgi.de In

Mehr

Programme erstellen in Java

Programme erstellen in Java Programmieren mit Java Modul 0 Programme erstellen in Java Theorieteil Inhaltsverzeichnis 1 Modulübersicht 3 2 Schreiben von Computerprogrammen 3 2.1 Computerprogramme bestehen aus Daten und Instruktionen.......

Mehr

Programm heute. Algorithmen und Datenstrukturen (für ET/IT) Definition Algorithmus. Wie beschreibt man Algorithmen?

Programm heute. Algorithmen und Datenstrukturen (für ET/IT) Definition Algorithmus. Wie beschreibt man Algorithmen? Programm heute Algorithmen und Datenstrukturen (für ET/IT) Sommersemester 2015 1 Einführung Dr. Tobias Lasser Computer Aided Medical Procedures Technische Universität München 2 Grundlagen von Algorithmen

Mehr

FPGA Systementwurf. Rosbeh Etemadi. Paderborn University. 29. Mai 2007

FPGA Systementwurf. Rosbeh Etemadi. Paderborn University. 29. Mai 2007 Paderborn Center for Parallel l Computing Paderborn University 29. Mai 2007 Übersicht 1. FPGAs 2. Entwicklungssprache VHDL 3. Matlab/Simulink 4. Entwicklungssprache Handel-C 5. Fazit Übersicht FPGAs 1.

Mehr

Programmiersprachen und Übersetzer

Programmiersprachen und Übersetzer Programmiersprachen und Übersetzer Sommersemester 2009 5. April 2009 Vorteile bei der Verwendung höherer Programmiersprachen Vorteile bei der Verwendung höherer Programmiersprachen 1. Einfache Notation

Mehr

Probestudium. Paralleles Programmieren für moderne Multicore-Prozessoren. Prof. Dr. Hans Jürgen Ohlbach

Probestudium. Paralleles Programmieren für moderne Multicore-Prozessoren. Prof. Dr. Hans Jürgen Ohlbach Paralleles Programmieren für moderne Multicore-Prozessoren Prof. Dr. Hans Jürgen Ohlbach 1 Kurze Geschichte der Computer Erste Versuche Charles Babbage (1792 1871) difference Engine 1832 (zum Berechnen

Mehr

Einführung in die Programmierung Wintersemester 2016/17

Einführung in die Programmierung Wintersemester 2016/17 Einführung in die Programmierung Wintersemester 2016/17 Prof. Dr. Günter Rudolph Lehrstuhl für Algorithm Engineering Fakultät für Informatik TU Dortmund Einleitung Gliederung Zum Begriff Informatik Zum

Mehr

Dipl. Ing. (FH) Ehrenfried Stuhlpfarrer

Dipl. Ing. (FH) Ehrenfried Stuhlpfarrer Dipl. Ing. (FH) Ehrenfried Stuhlpfarrer Die Geschichte der Rechenmaschinen 1100 v. Chr. Abakus Ein Abakus ist ein mehr als 3000 Jahre altes einfaches mechanisches Rechenhilfsmittel. Der Abakus enthält

Mehr

Charles Babbage. Vortrag für das Oberseminar Geschichte der Informatik

Charles Babbage. Vortrag für das Oberseminar Geschichte der Informatik Charles Babbage Vortrag für das Oberseminar Geschichte der Informatik Übersicht Kurzer Überblick über das Leben und Wirken von Charles Babbage Die großen Erfindungen von Charles Babbage: Difference Engine

Mehr

Überblick. 1 Vorbemerkungen. 2 Algorithmen. 3 Eigenschaften von Algorithmen. 4 Historischer Überblick. Einführung

Überblick. 1 Vorbemerkungen. 2 Algorithmen. 3 Eigenschaften von Algorithmen. 4 Historischer Überblick. Einführung Teil I Einführung Überblick 1 Vorbemerkungen 2 Algorithmen 3 4 Historischer Überblick Prof. G. Stumme Algorithmen & Datenstrukturen Sommersemester 2009 1 1 Vorbemerkungen Was ist Informatik? Informatik

Mehr

Wintersemester Maschinenbau und Kunststofftechnik. Informatik. Tobias Wolf Seite 1 von 37

Wintersemester Maschinenbau und Kunststofftechnik. Informatik. Tobias Wolf  Seite 1 von 37 Skript Informatik Seite 1 von 37 Was ist Informatik? - Informatik ist die Wissenschaft von der systematischen Verarbeitung von Informationen, insbesondere deren automatisierte Verarbeitung mit Hilfe von

Mehr

Kapitel 1: Informationsverarbeitung durch Programme

Kapitel 1: Informationsverarbeitung durch Programme LUDWIG- MAXIMILIANS- UNIVERSITY MUNICH DEPARTMENT INSTITUTE FOR INFORMATICS Skript zur Vorlesung: Einführung in die Informatik: Systeme und Anwendungen Sommersemester 2008 Kapitel 1: Informationsverarbeitung

Mehr

Verhalten. Def. und Nutzen von Verhalten. Pseudocode Schreibtischtest. Algorithmen

Verhalten. Def. und Nutzen von Verhalten. Pseudocode Schreibtischtest. Algorithmen Verhalten Def. und Nutzen von Verhalten Algorithmen Pseudocode Schreibtischtest Verhalten & Pseudocode Das Verhalten beschreibt, wie sich die Datenstrukturen (Variablen) eines Programms verändern müssen,

Mehr

Inhaltsverzeichnis. Blatt COMPUTER HERKUNFT DES NAMENS GRUNDLAGEN 3 2 HARDWAREARCHITEKTUR 5

Inhaltsverzeichnis. Blatt COMPUTER HERKUNFT DES NAMENS GRUNDLAGEN 3 2 HARDWAREARCHITEKTUR 5 Deckblatt Inhaltsverzeichnis 1 COMPUTER 3 1.1 HERKUNFT DES NAMENS 3 1.2 GRUNDLAGEN 3 2 HARDWAREARCHITEKTUR 5 2.1 DER SPEICHER 5 2.2 JOHN VON NEUMAN 5 2.3 DIE ALU 6 2.4 SOFTWAREARCHITEKTUR 6 3 GESCHICHTE

Mehr

Einführung. (Compiler) Prof. Dr. Oliver Braun. Letzte Änderung: :49. Einführung 1/26

Einführung. (Compiler) Prof. Dr. Oliver Braun. Letzte Änderung: :49. Einführung 1/26 Einführung (Compiler) Prof. Dr. Oliver Braun Letzte Änderung: 10.05.2017 15:49 Einführung 1/26 Ein Compiler ist ein Computerprogramm das ein Programm geschrieben in einer Sprache in ein Programm übersetzt

Mehr

Kapitel 1: Informationsverarbeitung durch Programme

Kapitel 1: Informationsverarbeitung durch Programme LUDWIG- MAXIMILIANS- UNIVERSITY MUNICH DEPARTMENT INSTITUTE FOR INFORMATICS Skript zur Vorlesung: Einführung in die Informatik: Systeme und Anwendungen Sommersemester 2018 Kapitel 1: Informationsverarbeitung

Mehr

Compiler. Einführung. Prof. Dr. Oliver Braun. Fakultät für Informatik und Mathematik Hochschule München. Letzte Änderung:

Compiler. Einführung. Prof. Dr. Oliver Braun. Fakultät für Informatik und Mathematik Hochschule München. Letzte Änderung: Compiler Einführung Fakultät für Informatik und Mathematik Hochschule München Letzte Änderung: 10.05.2017 15:49 Inhaltsverzeichnis Ein Compiler................................... 2 Ein Compiler...................................

Mehr

Compiler: Einführung

Compiler: Einführung Fakultät für Informatik und Mathematik Hochschule München Letzte Änderung: 10.05.2017 15:49 Inhaltsverzeichnis Ein Compiler................................... 2 Ein Compiler...................................

Mehr

N Bit Binärzahlen. Stelle: Binär-Digit:

N Bit Binärzahlen. Stelle: Binär-Digit: N Bit Binärzahlen N Bit Binärzahlen, Beispiel 16 Bit: Stelle: 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 Binär-Digit: 0 0 1 0 1 0 0 1 1 1 0 0 1 0 0 0 Least Significant Bit (LSB) und Most Significant Bit (MSB)

Mehr

Übung zu Algorithmen und Datenstrukturen (für ET/IT)

Übung zu Algorithmen und Datenstrukturen (für ET/IT) Übung zu Algorithmen und Datenstrukturen (für ET/IT) Sommersemester 2015 Matthias Wieczorek Computer-Aided Medical Procedures Technische Universität München Administratives Zentralübung (Mittwoch, 09:45

Mehr

Übung zu Algorithmen und Datenstrukturen (für ET/IT)

Übung zu Algorithmen und Datenstrukturen (für ET/IT) Übung zu Algorithmen und Datenstrukturen (für ET/IT) Sommersemester 2017 Rüdiger Göbl, Mai Bui Computer Aided Medical Procedures Technische Universität München Administratives Zentralübung (Mittwoch, 09:45

Mehr

Wintersemester 2006/2007 Helmut Seidl Institut für Informatik TU München

Wintersemester 2006/2007 Helmut Seidl Institut für Informatik TU München Informatik 1 Wintersemester 2006/2007 Helmut Seidl Institut für Informatik TU München 1 0 Allgemeines Inhalt dieser Vorlesung: Einführung in Grundkonzepte der Informatik; Einführung in Denkweisen der Informatik;

Mehr

Informatik I: Einführung in die Programmierung

Informatik I: Einführung in die Programmierung Informatik I: Einführung in die Programmierung 30. Ausblick Albert-Ludwigs-Universität Freiburg Bernhard Nebel 13.02.2016 1 13.02.2016 B. Nebel Info I 3 / 17 Programmieren jedenfalls ein bisschen Python-Programme

Mehr

B Einführung. 1 Historische Entwicklung. 1 Historische Entwicklung (3) 1 Historische Entwicklung (2)

B Einführung. 1 Historische Entwicklung. 1 Historische Entwicklung (3) 1 Historische Entwicklung (2) 1 Historische Entwicklung 8500 v. Chr.: Zählsysteme in vielen Kulturen benutzt häufig 5 oder 10 als Basis 1. historische Entwicklung 2. Entwicklung der Mikroprozessoren 3. Entwicklung der Betriebssysteme

Mehr

Philipp Grasl PROZESSOREN

Philipp Grasl PROZESSOREN 1 PROZESSOREN INHALTSVERZEICHNIS Definition/Verwendung Prozessor Historische Entwicklung Prozessor Aufbau Prozessor Funktionsweise Prozessor Steuerung/Maschinenbefehle Prozessorkern Prozessortakt 2 DEFINITION

Mehr

2. Algorithmenbegriff

2. Algorithmenbegriff 2. Algorithmenbegriff Keine Algorithmen: Anleitungen, Kochrezepte, Wegbeschreibungen,... Algorithmus: Berechnungsvorschrift, die angibt, wie durch Ausführung bestimmter Elementaroperationen aus Eingabegrößen

Mehr

Technische Informatik I, SS 2001

Technische Informatik I, SS 2001 Technische Informatik I SS 2001 PD Dr. A. Strey Abteilung Neuroinformatik Universität Ulm Inhalt Einführung: Überblick über die historische Entwicklung der Rechnerhardware Teil 1: Digitale Logik kurzer

Mehr

Willkommen zur Vorlesung. Algorithmen und Datenstrukturen

Willkommen zur Vorlesung. Algorithmen und Datenstrukturen Willkommen zur Vorlesung Algorithmen und Datenstrukturen Mein Name: Andreas Berndt Zum Dozenten Diplom-Informatiker (TU Darmstadt) Derzeit Software-Entwickler für Web- Applikationen Derzeitige Sprachen:

Mehr

Brückenkurs / Computer

Brückenkurs / Computer Brückenkurs / Computer Sebastian Stabinger IIS 23 September 2013 Sebastian Stabinger (IIS) Brückenkurs / Computer 23 September 2013 1 / 20 Content 1 Allgemeines zum Studium 2 Was ist ein Computer? 3 Geschichte

Mehr

1 Funktionale vs. Imperative Programmierung

1 Funktionale vs. Imperative Programmierung 1 Funktionale vs. Imperative Programmierung 1.1 Einführung Programme einer funktionalen Programmiersprache (functional programming language, FPL) bestehen ausschließlich aus Funktionsdefinitionen und Funktionsaufrufen.

Mehr

Lösungsvorschlag Serie 2 Rekursion

Lösungsvorschlag Serie 2 Rekursion (/) Lösungsvorschlag Serie Rekursion. Algorithmen-Paradigmen Es gibt verschiedene Algorithmen-Paradigmen, also grundsätzliche Arten, wie man einen Algorithmus formulieren kann. Im funktionalen Paradigma

Mehr

Objektorientierte Programmierung VL: Prof. Dr. Marco Block-Berlitz - Freie Universität Berlin Proinformatik III

Objektorientierte Programmierung VL: Prof. Dr. Marco Block-Berlitz - Freie Universität Berlin Proinformatik III Objektorientierte Programmierung VL: Prof. Dr. Marco Block-Berlitz - Freie Universität Berlin Proinformatik III Text: Hinnerk van Bruinehsen - Grafiken: Jens Fischer powered by SDS.mint SoSe 2011 1 Teil

Mehr

Geschichte der Informatik

Geschichte der Informatik Entwicklung von Informationstechnik und Durchdringung des Alltags seit der 2. Hälfte des 20 Jahrhunderts explosionsartig Informationsgesellschaft Zunehmende Bedeutung und Wert von Informationen Schnelle

Mehr

Programmieren lernen mit Perl

Programmieren lernen mit Perl Xpert.press Programmieren lernen mit Perl Bearbeitet von Joachim Ziegler 1. Auflage 2002. Buch. XIV, 400 S. Hardcover ISBN 978 3 540 42685 1 Format (B x L): 15,5 x 23,5 cm Gewicht: 783 g Weitere Fachgebiete

Mehr

Wie funktionieren Computer?

Wie funktionieren Computer? Ideen und Konzepte der Informatik Wie funktionieren Computer? Kurt Mehlhorn Übersicht Wie funktionieren Computer? Der Von-Neumann-Rechner Universalität von Rechnern: Basis für Siegeszug der Informatik

Mehr

1 Einführung: Algorithmen. Algorithmen und Datenstrukturen WS 2012/13. Pro f. Dr. Sán do r Fe k e te

1 Einführung: Algorithmen. Algorithmen und Datenstrukturen WS 2012/13. Pro f. Dr. Sán do r Fe k e te 1 Einführung: Algorithmen Algorithmen und Datenstrukturen WS 2012/13 Pro f. Dr. Sán do r Fe k e te Literatur 1.1 Was ist ein Algorithmus? Ein Algorithmus ist eine aus endlich vielen Schritten bestehende

Mehr

1 Algorithmische Grundlagen

1 Algorithmische Grundlagen 1 Algorithmische Grundlagen Klocke/17.03.2003 1.1 1.1 Begriffsklärung Fragen Begriffsklärungen Abstraktionsebenen für Algorithmen und Datenstrukturen Algorithmus Qualität von Algorithmen Klocke/17.03.2003

Mehr

Vorlesung. Technologische Grundlagen der Informationsverarbeitung. Rechnerarchitektur. Dipl.-Ing. Gert Martin

Vorlesung. Technologische Grundlagen der Informationsverarbeitung. Rechnerarchitektur. Dipl.-Ing. Gert Martin Vorlesung Technologische Grundlagen der Informationsverarbeitung Rechnerarchitektur Dipl.-Ing. Gert Martin Geschichte der Computer Erste Versuche Charles Babbage (1792 1871) difference Engine 1832 (zum

Mehr

3 Syntax von Programmiersprachen

3 Syntax von Programmiersprachen 3 Syntax von Programmiersprachen Syntax ( Lehre vom Satzbau ) formale Beschreibung des Aufbaus der Worte und Sätze, die zu einer Sprache gehören; im Falle einer Programmiersprache Festlegung, wie Programme

Mehr

a) Wandeln Sie folgende Dualzahlen durch Gruppenbildung in das Oktal- und Hexdezimalsystem um

a) Wandeln Sie folgende Dualzahlen durch Gruppenbildung in das Oktal- und Hexdezimalsystem um WI Zahlenumwandlungen Informatik I Aufgabentyp 1: a) Wandeln Sie folgende Dualzahlen durch Gruppenbildung in das Oktal- und Hexdezimalsystem um 000100010101 2 = Okt:., Hex:.. Wandeln Sie folgende Zahlen

Mehr

Konzepte der Programmiersprachen

Konzepte der Programmiersprachen Konzepte der Programmiersprachen Lehrstuhl Prof. Plödereder Eduard Wiebe Institut für Softwaretechnologie Abteilung Programmiersprachen und Übersetzerbau Sommersemester 2007 Programm-Ausführung Programmiersprachen

Mehr

1. Der Begriff Informatik 2. Syntax und Semantik von Programmiersprachen - 1 -

1. Der Begriff Informatik 2. Syntax und Semantik von Programmiersprachen - 1 - 1. Der Begriff Informatik 2. Syntax und Semantik von Programmiersprachen I.2. I.2. Grundlagen von von Programmiersprachen. - 1 - 1. Der Begriff Informatik "Informatik" = Kunstwort aus Information und Mathematik

Mehr

1. Der Begriff Informatik 2. Syntax und Semantik von Programmiersprachen - 1 -

1. Der Begriff Informatik 2. Syntax und Semantik von Programmiersprachen - 1 - 1. Der Begriff Informatik 2. Syntax und Semantik von Programmiersprachen I.2. I.2. Grundlagen von von Programmiersprachen. - 1 - 1. Der Begriff Informatik "Informatik" = Kunstwort aus Information und Mathematik

Mehr

Programmierkurs II. C und Assembler

Programmierkurs II. C und Assembler Programmierkurs II C und Assembler Prof. Dr. Wolfgang Effelsberg Universität Mannheim Sommersemester 2003 1-1 Inhalt Teil I: Die Programmiersprache C 2. Datentypen und Deklarationen 3. Operatoren und Ausdrücke

Mehr

Vorlesung Rechnerarchitektur. Einführung

Vorlesung Rechnerarchitektur. Einführung Vorlesung Rechnerarchitektur Einführung Themen der Vorlesung Die Vorlesung entwickelt an Hand von zwei Beispielen wichtige Prinzipien der Prozessorarchitektur und der Speicherarchitektur: MU0 Arm Speicher

Mehr

systematischen Verarbeitung von Informationen Was ist Informatik?

systematischen Verarbeitung von Informationen Was ist Informatik? 23 1. Einführung Informatik: Definition und Geschichte, Algorithmen, Turing Maschine, Höhere Programmiersprachen, Werkzeuge der Programmierung, das erste C++ Programm und seine syntaktischen und semantischen

Mehr

Funktionale Programmiersprachen

Funktionale Programmiersprachen Funktionale Programmiersprachen An den Beispielen Haskell und Erlang Übersicht Programmiersprachen λ-kalkül Syntax, Definitionen Besonderheiten von funktionalen Programmiersprache, bzw. Haskell Objektorientierte

Mehr

Kapitel 1 Einleitung. Definition: Algorithmus nach M. Broy: aus: Informatik: Eine grundlegende Einführung, Band 1, Springer-Verlag, Berlin

Kapitel 1 Einleitung. Definition: Algorithmus nach M. Broy: aus: Informatik: Eine grundlegende Einführung, Band 1, Springer-Verlag, Berlin Kapitel 1 Einleitung 1.1. Begriff des Algorithmus Eine der ältesten Beschreibungstechniken für Abläufe: Benannt nach dem Mathematiker Al-Khwarizmi (ca. 780...840), der am Hof der Kalifen von Bagdad wirkte.

Mehr