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

Größe: px
Ab Seite anzeigen:

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

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 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 1

2 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 Ü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 2

3 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 = Digitale 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 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 3

4 Programm und Ausgabe eines Analogrechners 10 Programmieren 1 Teil 1 V2 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 4

5 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 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 5

6 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 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 6

7 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 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 7

8 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 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 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 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 I CA J CA (numerical) data CA + x perform the elementary operations of aritmetic: +,, x, O CA C 24 Programmieren 1 Teil 1 V2 8

9 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) Z 3 Name Analytical Engine (nicht realisiert) ABC Computer Fertigstellunlogie Techno- ( ) Mechanik Hauptentwickler Charles Babbage John V. Atanasoff Clifford Berry Konrad Zuse Turingvollständig Ja Relais Lochstreifen Nein Lochstreifen Programmierbar? Elektronenröhren Nein (Ja) Colossus M.H.Newman I.J. Good 1944 Elektronenröhren Datenband und Verkabelung Nein 26 Programmieren 1 Teil 1 V2 Architektur der Analytical Engine ( ) Store from store 2 1 Primed Ingress Axis 1 Ingress Axis 2 Ingress Axis 1 + -x Run-Up Lever Mill Primed Exgress Axis Exgress Axis Number Cards Variable Cards Operations Cards 27 Programmieren 1 Teil 1 V2 9

10 Wie war es davor bis etwa 1950 (1) Z 3 Name Analytical Engine (nicht realisiert) ABC Computer Charles Babbage John V. Atanasoff Clifford Berry Konrad Zuse ( ) Relais Lochstreifen Nein Lochstreifen Nein (Ja) Colossus M.H. Newman I.J. Good 1944 Elektronenröhren Datenband und Verkabelung Nein 28 Programmieren 1 Teil 1 V2 Wie war es davor bis etwa 1950 (2) Name Fertigstellung Hauptentwickler Technologie Turingvollständig Programmierbar? Harvard Mark I (ASCC) ENIAC Howard H. Aiken IBM Mauchley und Eckert Mechanik (und Relais) Elektronenröhren Lochstreifen Verkabelung Ja 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 Programmierbar? Elektronenröhren Turingvollständig Ja Technologie Mechanik Fertigstellung Hauptentwickler Elektronenröhren stored program und alle weiteren! 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 10

11 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 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 11

12 Ein Porträt? 34 Programmieren 1 Teil 1 V2 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 12

13 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 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 13

14 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 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 14

15 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 Ein typisches von Neumann Maschinenbefehlswort 45 Programmieren 1 Teil 1 V2 15

16 Ein Beispiel 46 Programmieren 1 Teil 1 V2 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 16

17 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 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 17

18 Grace Murray Hopper ( ) Erfinderin des Compilers im Mark 1 Team (Aiken) The first computer bug 52 Programmieren 1 Teil 1 V2 Übersetzer (Compiler) 53 Programmieren 1 Teil 1 V2 Übersetzungsphasen 54 Programmieren 1 Teil 1 V2 18

19 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 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 19

20 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 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 20

21 Fragen und (hoffentlich) Antworten 61 Programmieren 1 Teil 1 V2 Ausblick Jetzt geht s bald zum Programmieren... zunächst in Python Danke für Ihre Aufmerksamkeit 62 Programmieren 1 Teil 1 V2 Entwicklung der höheren Programmiersprachen SW-Krise Strukturierte Programmierung Fortran 1954 Fortran III 1958 Fortran IV 1962 Fortran 66 BASIC 1964 Prolog 1970 MS BASIC Pascal 1970 Modula 1975 Algol 1958 Algol 60 Algol 68 Erste Objektorientierte Sprache C 1971 Simula 1962 Simula 67 PL/I 1964 PL/ Cobol 1959 Cobol 65 Cobol 68 Cobol 74 Smalltalk 1971 Smalltalk 1976 Lisp Programmieren 1 Teil 1 V2 21

22 Entwicklung der höheren Programmiersprachen SW-Krise Objektorientierung Fortran 77 Fortran 90 Fortran 95 MS BASIC Visual BASIC 1991 Prolog II 1982 Prolog III 1984 Ada 1979 Ada 83 (ANSI) Ada 87(ISO) Ada 95 Turbo PASCAL 1988 Delphi 1995 ALGOL Java 1995 Simula C (K+R) 1978 ANSI C 1989 C Python 91 ISO C 1995 Ruby 1993 Cobol 74 Perl 1987 Perl Perl Smalltalk 1976 Smalltalk 1980 PHP/FI 1995 Common Lisp 1984 Com. Lisp ANSI 1994 Haskell 1987 Haskell Programmieren 1 Teil 1 V2 Entwicklung der höheren Programmiersprachen Popularität Fortran 95 VB Prolog IV 1997 Ada 95 Skriptsprachen Fortran 2003 VB.NET 2001 Ada 2006 (draft) Delphi 1995 Delphi Delphi 2005 Delphi 2006 Java Java Java C# 2000 C# C# ISO C 1995 ISO C 1999 C++ ISO 1998 Python Python Ruby Ruby OO Cobol 1997 Cobol 2002 Perl Perl Smalltalk 1998 PHP/FI 1995 PHP PHP Haskell Haskell 98 Platz in % 5 8,1% 1 18,0% 9 3,4% 2 15,6% 3 11,1% 7 3,9% 10 2,7% 6 6,4% 4 9,5% 39 0,1% 65 Programmieren 1 Teil 1 V2 22

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

Modul: Programmierung B-PRG Grundlagen der Programmierung 1 Teil 1 V0 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

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

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

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

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

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

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

III.1 Prinzipien der funktionalen Programmierung - 1 -

III.1 Prinzipien der funktionalen Programmierung - 1 - 1. Prinzipien der funktionalen Programmierung 2. Deklarationen 3. Ausdrücke 4. Muster (Patterns) 5. Typen und Datenstrukturen 6. Funktionale Programmiertechniken III.1 Prinzipien der funktionalen Programmierung

Mehr

Programmieren in C. Eine Einführung in die Programmiersprache C. Prof. Dr. Nikolaus Wulff

Programmieren in C. Eine Einführung in die Programmiersprache C. Prof. Dr. Nikolaus Wulff Programmieren in C Eine Einführung in die Programmiersprache C Prof. Dr. Nikolaus Wulff Agenda Elementare Einführung C Programm Syntax Datentypen, Variablen und Konstanten Operatoren und Ausdrücke Kontrollstrukturen

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

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

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

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

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

Inhalt. n Algorithmus. n Euklidscher Algorithmus. n Sortieren. n Programmiersprachen. n Entwicklungsschritte eines Programms.

Inhalt. n Algorithmus. n Euklidscher Algorithmus. n Sortieren. n Programmiersprachen. n Entwicklungsschritte eines Programms. Inhalt Algorithmus Euklidscher Algorithmus Sortieren Programmiersprachen Entwicklungsschritte eines Programms Algorithmen 1 Algorithmus Eindeutige Beschreibung eines allgemeinen Verfahrens unter Verwendung

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

Gliederung. n Teil I: Einleitung und Grundbegriffe. n Teil II: Imperative und objektorientierte Programmierung

Gliederung. n Teil I: Einleitung und Grundbegriffe. n Teil II: Imperative und objektorientierte Programmierung Gliederung n Teil I: Einleitung und Grundbegriffe l 1. Organisatorisches l 2. Grundlagen von Programmiersprachen n Teil II: Imperative und objektorientierte Programmierung l 1. Grundelemente der Programmierung

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

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

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

2. JAVA-Programmierung. Informatik II für Verkehrsingenieure

2. JAVA-Programmierung. Informatik II für Verkehrsingenieure 2. JAVA-Programmierung Informatik II für Verkehrsingenieure Problem-Algorithmus-Umsetzung Problemstellung Algorithmus Umsetzung 2 Beispiele für Algorithmen 3 Definitionsversuch Algorithmus Anleitung, wie

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

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

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

1 Programmiersprachen 1.1 1

1 Programmiersprachen 1.1 1 1 Programmiersprachen 1.1 1 Meilensteine imperativer Programmiersprachen (teilweise objektorientiert) Fortran 1960 Cobol Algol 60 PL/I Algol W Simula 67 Algol 68 1970 Pascal C Smalltalk Modula 1980 Ada

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

Einführung in die Programmierung mit VBA

Einführung in die Programmierung mit VBA Einführung in die Programmierung mit VBA Vorlesung vom 07. November 2016 Birger Krägelin Inhalt Vom Algorithmus zum Programm Programmiersprachen Programmieren mit VBA in Excel Datentypen und Variablen

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

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

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

1. Grundkonzepte der logischen Programmierung 2. Syntax von Prolog 3. Rechnen in Prolog. IV.1 Grundkonzepte der logischen Programmierung - 1 -

1. Grundkonzepte der logischen Programmierung 2. Syntax von Prolog 3. Rechnen in Prolog. IV.1 Grundkonzepte der logischen Programmierung - 1 - 1. Grundkonzepte der logischen Programmierung 2. Syntax von Prolog 3. Rechnen in Prolog IV.1 Grundkonzepte der logischen Programmierung - 1 - Übersicht Imperative Sprachen Deklarative Sprachen Folge von

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

Programmiersprachen und Programmierkonzepte

Programmiersprachen und Programmierkonzepte Programmiersprachen und Programmierkonzepte Inhalt Programmiersprachen- Entwicklung Programmiersprachen und Programmierparadigmen Die Geschichte der Programmiersprachen Anfänge vor 200 Jahren Programmierbare

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

n 1. Grundkonzepte der logischen Programmierung n 2. Syntax von Prolog n 3. Rechnen in Prolog IV.1 Grundkonzepte der logischen Programmierung - 1 -

n 1. Grundkonzepte der logischen Programmierung n 2. Syntax von Prolog n 3. Rechnen in Prolog IV.1 Grundkonzepte der logischen Programmierung - 1 - n 1. Grundkonzepte der logischen Programmierung n 2. Syntax von Prolog n 3. Rechnen in Prolog IV.1 Grundkonzepte der logischen Programmierung - 1 - Übersicht Imperative Sprachen Deklarative Sprachen l

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

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

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

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

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

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

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

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

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

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

Geschichte der Informatik

Geschichte der Informatik ! Ägyptische Multiplikation (oder Indische Multiplikation ), ca. 16. Jhd. v. Chr.! Ab ca. 450 v. Chr.: Verwendung des Abakus als Hilfsmittel für die Grundrechenarten.! Euklid (365-300 v.chr.): euklidischer

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

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

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

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

. 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 Informatik: Programmierung und Software-Entwicklung, WS 16/17. Kapitel 1. Einführung und Grundbegriffe

Einführung in die Informatik: Programmierung und Software-Entwicklung, WS 16/17. Kapitel 1. Einführung und Grundbegriffe 1 Kapitel 1 2 Ziele Begriffsbildungen: Informatik, Algorithmus, Programm, Compiler, Einordnung von Java Ein einfaches Java-Programm erstellen, übersetzen und ausführen Java-Programme dokumentieren 3 Informatik

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

Programmiersprachen. Organisation und Einführung. Berthold Hoffmann. Studiengang Informatik Universität Bremen

Programmiersprachen. Organisation und Einführung. Berthold Hoffmann. Studiengang Informatik Universität Bremen Organisation und Einführung Studiengang Informatik Universität Bremen Sommersemester 2010 (Vorlesung am Montag, der 12. April 2010) (Montag, der 12. April 2008) 1 Vorstellung 2 Organisation 3 Einführung

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

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

1. Einführung Programmieren / Algorithmen und Datenstrukturen 1 Prof. Dr. Bernhard Humm FB Informatik, Hochschule Darmstadt

1. Einführung Programmieren / Algorithmen und Datenstrukturen 1 Prof. Dr. Bernhard Humm FB Informatik, Hochschule Darmstadt 1. Einführung Programmieren / Algorithmen und Datenstrukturen 1 Prof. Dr. Bernhard Humm FB Informatik, Hochschule Darmstadt 1 Ein Zitat zu Beginn Vor der Wahl, ein theoretischer Physiker oder ein Programmierer

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

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

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

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

EIGENSCHAFTEN VON SPRACHEN

EIGENSCHAFTEN VON SPRACHEN Vorlesung und Übung Universität Paderborn Wintersemester 2016/2017 Dr. Peter Pfahler EIGENSCHAFTEN VON SPRACHEN EWS, WS 2016/17, Pfahler C-1 Einführung Sprachen in der Informatik werden für bestimmte Zwecke

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

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

Grundlagen der Modellierung und Programmierung, Übung

Grundlagen der Modellierung und Programmierung, Übung Grundlagen der Modellierung und Programmierung Übung Prof. Wolfram Amme LS Softwaretechnik Prof. Klaus Küspert LS Datenbanksysteme Prof. Birgitta König-Ries LS Verteilte Systeme Prof. Dr. Wilhelm Rossak

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

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

2. Einführung. Informatik II für Verkehrsingenieure

2. Einführung. Informatik II für Verkehrsingenieure 2. Einführung Informatik II für Verkehrsingenieure Überblick ZIEL DER EINFÜHRUNG Was ist Informatik Historische Entwicklung von Programmiersprachen 2 Was ist Informatik? 3 Was ist Informatik? FRANZÖSISCH

Mehr

Grundlagen Internet-Technologien. Clientseitige Web-Programmierung

Grundlagen Internet-Technologien. Clientseitige Web-Programmierung Clientseitige Web-Programmierung mit JavaScript Version 1.1 3.5.2010 1 aktuelles 2 clientseitige Web-Programmierung verschiedene Ansätze JavaScript Java Applet Adobe Flash Microsoft Silverlight RIA: rich

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

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

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

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

Es gibt keinen Algorithmus zum Schreiben eines Programms bzw. Algorithmus.

Es gibt keinen Algorithmus zum Schreiben eines Programms bzw. Algorithmus. 1 Einführung Programmiersprachen: Ermöglichen formale Beschreibung von Problemlösungsverfahren, die auf einem Computer oder Computersystemen ausführbar sind. Bilden die Basis zur Entwicklung von Software

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

Einführung in die Informatik Turing Machines

Einführung in die Informatik Turing Machines Einführung in die Informatik Turing Machines Eine abstrakte Maschine zur Präzisierung des Algorithmenbegriffs Wolfram Burgard Cyrill Stachniss 1/14 Motivation und Einleitung Bisher haben wir verschiedene

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

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

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

C-Grundlagen. Einführung von Tronje Krabbe 1/21

C-Grundlagen. Einführung von Tronje Krabbe 1/21 C-Grundlagen Einführung von Tronje Krabbe 1/21 Gliederung Hintergrund Geschichte Nutzungsgebiete C-Derivate Syntax Compiler Beispielcode 2/21 Was ist C? C ist eine imperative, kompilierte Programmiersprache

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

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

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

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

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