Von Assembler zu Java
|
|
- Felix Mann
- vor 5 Jahren
- Abrufe
Transkript
1 Von Assembler zu Java Prof. Dr.-Ing. Thomas Schwotzer 1 Einführung Die erste imperativen Programme wurden in den Urzeiten der IT tatsächlich direkt auf der Hardware der Maschinen geschrieben. Die verfügbaren Befehle der jeweiligen Prozessoren wurden direkt angesprochen. Die Prozessoren hatten (und haben) unterschiedliche Befehlssätze. Sie gibt es einen grundsätzlichen Unterschied zwischen RISC (reduced instruction set computer) und CISC (complex..) Prozessoren. RISC Prozessoren verfügen über einen möglichst kleinen Satz an Befehlen. Das macht die Prozessoren billiger und schneller. CISC Prozessoren bieten deutlich mehr Befehle an als RISC. Sie sind teurer Die einzelnen Befehle mögen zwar teilweise deutlich länger dauern aber dafür lösen sie komplexere Probleme. Fakt ist aber auch: Jedes Programm was man auf einem CISC Rechner schreiben kann, kann man auch auf einem RISC Rechner implementieren macht braucht nur mehr Befehle. Wir wollen das Thema CISC/RISC hier nicht vertiefen. In den Urzeiten der IT, d.h. bis in die 1960er hinein hat man eher daran gedacht, die Hardware für ein Problem zu bauen, d.h. spezielle Prozessoren für spezielle Aufgaben zu bauen. Ab den 1970er änderte sich das grundsätzlich. Rechner fanden eine stark wachsende Verbreitung und es eine rasant wachsende Zahl von Problemen wurden durch IT bearbeitet. Gesucht waren Prozessoren, die möglichst viele Probleme lösen können. Gesucht waren aber auch Entwickler/innen, die in der Lage waren möglichst schnell Programme zu schreiben. Schnell stellt man fest: Es ist enorm ineffektiv, wenn das gleiche Programm für jeden Prozessor neu geschrieben wird. Besser wäre es, wenn ein Programm einmal geschrieben wird und dann läuft es auf verschiedenen (möglichst allen) Prozessoren die am Markt verfügbar sind. 2 Maschinen- und Hochsprache Eine Maschinensprache ist die Menge aller möglichen Befehle, die ein Prozessor ausführen kann. Alle Prozessoren können Speicher schreiben und lesen und addieren. Manche können komplexere Funktionen direkt auf der Hardware durchführen. 1
2 Programme in Maschinensprache funktionieren nur auf dem jeweils passenden Prozessor. Die Idee einer Hochsprache besteht darin: Es wird eine Sprache entwickelt, die für Menschen 1 lesbarer sein soll. C war die erste Sprache, die weite Verbreitung fand (und noch heute hat), die nicht für einen konkreten Prozessor entwickelt worden war. Das folgende ist ein C Programm: int main(char** args) { int x, y, z; x = 1; y = 2; z = x + y; Es wird eine Funktion definiert. Dann werden drei Variablen definiert(a,b,c). Den Variablen a und b wird ein Wert zugewiesen. Am Ende wird der Variablen c die Summe der beiden Werte zugewiesen. Nettes kleines Programm. Das Problem ist nur: Dieses Programm läuft auf keinem Prozessor. Wie auch? Es ist nicht in der Maschinensprache des Prozessors geschrieben. Für jede Hochsprache werden Compiler benötigt. Compiler sind Programme. Diese Programm nehmen das Programm der Hochsprache als Eingabe und produzieren ein Programm in Maschinensprache. Und wenn der Compiler keinen Fehler hat, dann macht das Maschinenprogramm das, was sich die Entwickler in der Hochsprache beschrieben haben. Abbildung 1 stellt die Situation dar. Das obige Programm wird in ein Maschinenprogramm übersetzt 2. Und wenn Sie sich fragen, in welcher Sprache der erste Compiler geschrieben wurden, dann liegt die Antwort auf der Hand: In Maschinensprache natürlich. Aber bereits der zweite Compiler kann in C geschrieben werden. Das muss man mal durchdenken: Wenn man einen Compiler hat, dann kann man mit einer Hochsprache einen neuen Compiler programmieren, den man mit dem alten übersetzt. Ja, das bereitet etwas Kopfschmerzen und wir vertiefen das auch nicht weiter. Der Compiler muss die Konzepte der Hochsprache in die Maschinenbefehle übersetzen. Es gibt keine Variablen in einem Rechner. Der Compiler schreibt also die Werte 1 und 2, die eigentlich x und y zugewiesen werden sollen in den Speicher. Der Compiler hat sich offenbar entschieden, dass die Werte von x im Speicher auf der Adresse 1 stehen und der Wert von y in der Zelle 2. Was in 1 konkret ITler, die auch Menschen sind, auch wenn sie manchmal scheinbar wirr reden! 2 Das ist nicht ganz exakt, was die Grafik darstellt. Maschinenbefehle sind immer als Zahlen gespeichert. Ein Maschinenprogramm ist daher immer eine Abfolge von Zahlen, die die CPU als Befehl interpretieren kann. Das ist leider denkbar schlecht lesbar für Menschen. Daher hat man sich Assember ausgedacht und genau das ist, was in der Grafik symbolisiert ist. Für jeden Maschinenbefehl definiert man einen Assemblerbefehl, der etwas besser für Menschen lesbar ist. Da wir aber (leider) keine Rechnerorganisation oder Compilerbau machen, ignorieren wir diese wichtigen Unterschied und behandeln Assembler und Maschinencode gleich. 2
3 Abbildung 1: Compiler: Hochsprache zu Maschinensprache der Hochsprache x heißt, ist im Maschinenprogramm Speicherzelle Nummer 1. Kann man so machen. Dann soll addiert werden. Es werden als erst einmal die beiden Werte aus dem Speicher in die CPU geladen. Dann werden sie addiert und das Ergebnis wird in den Speicher zurück geschrieben. Konkret wird das Ergebnis auf die Adresse 3 im Speicher geschrieben. Die Kunst der Entwicklung einer Hochsprache besteht darin: Man braucht eine Sprache, die leichter zu programmieren ist als Maschinencode. Diese Sprache muss aber auch ohne Probleme durch ein Programm in Maschinencode übersetzt werden können. Das geht. C ist der Beweis. 3 Betriebssysteme und Compiler Schauen wir uns aber das Programm an: int main(char** args) { printf("hallo Welt"); Dieses C Programm wird die Zeichenkette Hallo Welt auf dem Bildschirm ausgeben.wie machtderprozessordas?dieantwortist:machternicht -macht das Betriebssystem. Wir wollen hier dem Modul Betriebssysteme nur ganz wenig vorgreifen: Ein Betriebssystem bietet u.a. eine Fülle von Funktionen an, die die viele Programm benötigen. Die Ausgabe auf den Bildschirm gehört dazu. Anstatt dass sich alle Entwickler damit herumschlagen, welche elektrischen Signale man auf ein Röhrengerät 3
4 Abbildung 2: Compiler Abhängigkeit vom Betriebssystem schickt, hat das einmal jemand gemacht und es zum Teil eines Betriebssystems gemacht. Was macht nun aber der Compiler? Der Compiler übersetzt den Befehl printf("hallo Welt") in einen Aufruf einer Betriebssystem-Funktion. Wir werden das hier nicht vertiefen - spitzen Sie die Ohren in dem anderen Modul! Entscheidend ist aber: Ein Compiler übersetzt ein Programm für einen Prozessor und ein Betriebssystem. Der Maschinencode des gleichen Programms auf dem gleichen Prozessor unterscheidet sich vom genutzten Betriebssystem. Das ist an sich nicht weiter schlimm, man muss es nur wissen. Die Welt sieht also eigentlich so aus, siehe Abbildung 2. Für jede Prozessor/Betriebssystem-Kombination muss es einen Compiler geben. Das war lange Jahre auch kein Problem. Das Problem ist etwas anderes. 4 Virtuelle Maschine Wenn man eine IT-Firma ist, dann verkauft man Software. Software sind Programme. Die konnte man auch im Jahre 1970 schon klauen und oft will man auch nicht, dass die liebe Konkurrenz den Code zu Gesicht bekommt. Daher liefert man gern compilierte Programm aus und nicht den Quellcode. Was aber, wenn das Unternehmen das Programm nicht in alle denkbaren Kombinationen von Maschinencode übersetzt hat? Was wenn es neue Prozessoren gibt, aber das Unternehmen nicht mehr existiert? Und überhaupt ist es schon anstrengend sich einen Zoo von unterschiedlichen Compilern zu halten. Ende der 1990er Jahre kamen Leute die bei der Firma SUN gearbeitet haben auf folgende Idee: Wie wäre es, wenn man eine Sprache baut und dafür nur einen einzigen Compiler bereit stellt. Der erzeugt Maschinencode. Dieser Maschinencode soll aber gar nicht auf einer existierenden Hardware laufen. Dieser Code soll auf einer virtuellen Hardware, einer virtuellen Maschine laufen. 4
5 Abbildung 3: Virtuelle Maschine Hä? Auf die Idee konnte man auch erst in den 1990ern kommen als die Prozessoren sehr schnell waren. Die Idee ist in vielen Systemen umgesetzt; sie ist das Konzept der virtuellen Maschine: Man beschreibt eine solche virtuelle Maschine. Diese ist vergleichbar mit einem realen Prozessor. Wie ein Prozessor bietet sie eine Satz von Befehlen an und sie kann Programme abarbeiten. Man schreibt Compiler, die die Hochsprache (es ist Java!) in die Sprache dieser Java Virtual Machine (JVM) übersetzt. Das kennen wir an sich schon. Die JVM wiederum ist ein Programm! Für jede Betriebssystemversion muss eine eigene JVM gebaut werden und das Ganze sieht dann so aus wie in Abbildung 3. Das Java Programm wird übersetzt in den Java Bytecode (so nennt sich die Java Maschinensprache). Dieser Bytecode wird einem Programm übergeben, das auf einem Betriebssystem läuft und diesen Bytecode abarbeitet. Das ist die Java Virtual Machine (JVM). Anfangs wurde das Konzepte sehr skeptisch gesehen aber das Konzept write once run everywhere mit der VM hat sich durchgesetzt. C# nutzt das gleiche Konzept. Und es gibt nun auch andere Sprachen (Scala z.b.) die Bytecode generieren und damit auf einer JVM laufen. Androidprogramme sind ebenfalls Java. Allerdings wird nicht die JVM genutzt, sondern eine eigene Entwicklung. Das hat wiederum mit rechtlichen Streitigkeiten zu tun zwischen Google und Oracle. Oracle hat SUN vor Jahren gekauft und Google war nicht bereit die geforderten Lizenzkosten zu zahlen. Android-Programme und andere Java-Programme sind aber dort wo man in den 1970 auch einmal war: Die Hochsprache ist Java, aber die Compiler erzeugen unterschiedlichen Bytecode für die unterschiedlichen Virtuellen Maschinen. 5
6 5 Ein Java Programm Und hier ist endlich auch mal ein Java-Programm. class X { public static void int main(string[] args) { int x, y, z; x = 1; y = 2; z = x + y; System.out.println("Hallo Welt"); Die Elternschaft von C ist in Java nicht zu übersehen! Die Details dieses Programm diskutieren wir im SU und in den Übungen. Lesen Sie unbedingt in Ihrem bevorzugten Java-Buch nach. 5.1 Variable Jede imperative Hochsprache benutzt Variablen. Eine Variable ist ein Speicherplatz. Es ist ein Ort an dem Daten abgelegt werden. Wir können beliebig viele Variable definieren. Wir können aus dem Vollen schöpfen. Das ist gut. In obigem Beispiel wurden die Variable x, y und z definiert. Wir haben auch gesehen, was der Compiler daraus gemacht hat. Jeder Variablen wird ein Speicherplatz zugewiesen. Was in der Hochsprache x heißt ist im Maschinenprogramm die Speicherzelle mit der Nummer 1. Das schöne an einer Hochsprache ist, dass wir uns nicht damit beschäftigen müssen an welche Adresse denn irgendwelche Daten liegen. Wir sagen einfach nur: Ich brauche Platz. Und diesem Platz gebe ich einen Namen. Fertig ist das. Gut! In Java muss jede Variable vor ihrer Benutzung deklariert werden. Das geschieht in der Zeile int x, y, z; Damit wird dem Compiler klar gemacht, dass er in folgenden drei Speicherzellen suchen muss, in denen er Werte ablegt. Und der Compiler muss sich auch merken, welcher Variablen welcher Speicherplatz zugewiesen wurde. Das ist nicht schwer. Das ist eine einfache Tabelle, die der Compiler hält: Variable Speicherplatz x #1 y #2 z #3 6
7 Mit dieser Tabelle ist es dann auch nicht schwer die weiteren Befehle zu übersetzen. x = 1; y = 2; Diese Java-Befehle sind Zuweisungen. Es bedeutet, dass einer Variablen ein Wert zugewiesen wird. Nachdem diese Befehle ausgeführt wurden, soll die Variable x den Wert 1 beinhalten und die Variable y den Wert 2. Das ist nicht schwer. Dem Compiler fällt es auch nicht schwer, Maschinencode zu produzieren: Jede Variable entspricht einem Speicherplatz. Es gibt einen Maschinenbefehl der den Speicherplatz füllt. Dank der obigen Tabell kennt der Compiler auch die Adresse, die er jeder Variablen zugewiesen hat. Also kann er die beiden Java-Befehle übersetzen: MOV 1 #1 MOV 2 #2 Merken wir uns: Variable sind Speicherzellen. Variable müssen vor Nutzung deklariert werden. Variablen können Werte zugeweisen werden. Es gibt unterschiedliche Variablentypen. Darauf gehen wir bald ein. Das Programm nutzt int. Das ist eine vorzeichenbehaftete 32 Bit Zahl. Passen Sie in TGI schön auf. Dort erfahren Sie viel über die internen Darstellung von Binärzahlen. 7
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.......
MehrEindimensionale Arrays und Heap
Eindimensionale Arrays und Heap Prof. Dr.-Ing. Thomas Schwotzer 1 Einführung Wir haben bisher mit einfachen Datentypen gearbeitet, d.h. Datentypen, die in einer Speicherzelle abgelegt werden können. Praktisch
MehrHello World! Eine Einführung in das Programmieren Das erste Programm
Hello World! Eine Einführung in das Programmieren Das erste Programm Görschwin Fey Institute of Embedded Systems Hamburg University of Technology Slide 2 Betriebssystem Funktion Anwendung Gerätesteuerung
MehrSichtbarkeiten, Klassenmember und -methoden
Sichtbarkeiten, Klassenmember und -methoden Prof. Dr.-Ing. Thomas Schwotzer 11. November 2017 1 Einführung Wir haben uns mit Klassen und Objekten beschäftigt. Wir wissen nun, dass Objekte anhand von Klassen
MehrVorkurs Informatik WiSe 16/17
Java Einführung Dr. Werner Struckmann / Stephan Mielke, Jakob Garbe, 04.10.2016 Technische Universität Braunschweig, IPS Überblick Organisatorisches Hello! 04.10.2016 Dr. Werner Struckmann / Stephan Mielke,
MehrInstitut für Programmierung und Reaktive Systeme. Java 1. Markus Reschke
Java 1 Markus Reschke 06.10.2014 Überblick Einführung in die Programmierung zur Vereinfachung des Einstiegs ins Studium Erstellung von ausführbaren Programmen für den Computer Denk- und Vorgehensweisen
MehrPolymorphie und UML Klassendiagramme
Polymorphie und UML Klassendiagramme Prof. Dr.-Ing. Thomas Schwotzer 1 Einführung Vererbung hat einen sehr interessanten und effektiven Effekt: die Polymorphie. Darum geht es in dieser Veranstaltung. 2
MehrProgrammieren was ist das genau?
Programmieren was ist das genau? Programmieren heisst Computerprogramme herstellen (von griechisch programma für Vorschrift). Ein Computerprogramm ist Teil der Software eines Computers. Als Software bezeichnet
MehrMehrdimensionale Arrays
Mehrdimensionale Arrays Prof. Dr.-Ing. Thomas Schwotzer 1 Einführung Eindimensionale Arrays haben wir bereits kennen gelernt. Es gibt aber auch mehrdimensionale Arrays. Die sind auch sehr notwendig, denken
MehrHochschule Düsseldorf University of Applied Sciences HSD RISC &CISC
HSD RISC &CISC CISC - Complex Instruction Set Computer - Annahme: größerer Befehlssatz und komplexere Befehlen höhere Leistungsfähigkeit - Möglichst wenige Zeilen verwendet, um Aufgaben auszuführen - Großer
MehrOffenbar hängt das Ergebnis nur von der Summe der beiden Argumente ab...
0 1 2 0 2 1 1 2 0 2 1 0 Offenbar hängt das Ergebnis nur von der Summe der beiden Argumente ab... 0 1 2 0 1 2 1 1 3 2 2 3 212 Um solche Tabellen leicht implementieren zu können, stellt Java das switch-statement
MehrJava: Kapitel 1. Überblick. Programmentwicklung WS 2008/2009. Holger Röder Holger Röder
Java: Kapitel 1 Überblick Programmentwicklung WS 2008/2009 Holger Röder holger.roeder@informatik.uni-stuttgart.de Was ist Java? Die Java-Technologie umfasst die Programmiersprache Java sowie die Java-Plattform
MehrPraktische Informatik 1
Praktische Informatik 1 Imperative Programmierung und Objektorientierung Karsten Hölscher und Jan Peleska Wintersemester 2011/2012 Session 2 Programmierung Begriffe C/C++ Compiler: übersetzt Quellcode
Mehr2 Eine einfache Programmiersprache. Variablen. Operationen Zuweisung. Variablen
Variablen Eine Programmiersprache soll Datenstrukturen anbieten Operationen auf Daten erlauben Kontrollstrukturen zur Ablaufsteuerung bereitstellen Variablen dienen zur Speicherung von Daten. Um Variablen
Mehr2 Eine einfache Programmiersprache
2 Eine einfache Programmiersprache Eine Programmiersprache soll Datenstrukturen anbieten Operationen auf Daten erlauben Kontrollstrukturen zur Ablaufsteuerung bereitstellen Als Beispiel betrachten wir
MehrDefinitionen/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
MehrDer 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$
MehrTesten nebenläufiger Objekte
Testen nebenläufiger Objekte Threads in Java Julian Lambertz Seminar Tests in Informatik und Statistik im SS 2004 Universität Ulm J.L., Juni 2004 1 Themenüberblick Einleitung Begriff der Nebenläufigkeit
MehrEinführung in die Programmierung 1
Einführung in die Programmierung 1 Einführung (S.2) Einrichten von Eclipse (S.4) Mein Erstes Programm (S.5) Hallo Welt!? Programm Der Mensch (S.11) Klassen (S.12) Einführung Wie Funktioniert Code? Geschriebener
MehrVorkurs Informatik WiSe 15/16
Java 1 Dr. Werner Struckmann / Stephan Mielke, Jakob Garbe, 12.10.2015 Technische Universität Braunschweig, IPS Überblick Organisatorisches Arbeitsablauf Hello! 12.10.2015 Dr. Werner Struckmann / Stephan
MehrObjekte. Theorieteil. Inhaltsverzeichnis. Begriffe. Programmieren mit Java Modul 5. 1 Modulübersicht 3
Programmieren mit Java Modul 5 Objekte Theorieteil Inhaltsverzeichnis 1 Modulübersicht 3 2 Klassen und Objekte 3 2.1 Klassen.................................... 4 2.2 Objektvariablen und Methoden.......................
Mehr2 Eine einfache Programmiersprache
2 Eine einfache Programmiersprache Eine Programmiersprache soll Datenstrukturen anbieten Operationen auf Daten erlauben Kontrollstrukturen zur Ablaufsteuerung bereitstellen Als Beispiel betrachten wir
MehrGrundlagen der Informatik für Ingenieure I
2 Java: Java-Einführung 2 Java: Java-Einführung 2.1 Java-Entwicklungsgeschichte 2.2 Java Eigenschaften 2.3 Java-Entwicklungsumgebung 2.4 Application vs. Applet 2.5 Ein erstes Programm 2.1 2.1 Java - Entwicklungsgeschichte
MehrInformatik I - Einstiegskurs
Informatik I - Einstiegskurs Dr. Henrik Brosenne Georg-August-Universität Göttingen Institut für Informatik Basiert auf dem Einstiegskurs im Wintersemester 2009/10 von Markus Osterhoff Wintersemester 2012/13
MehrEinführung in die Programmierung mit Java
Einführung in die Programmierung mit Java Martin Wirsing 2 Ziele Geschichte der OO-Programmiersprachen Warum Java als Programmiersprache verwenden? Ein einfaches Java-Programm erstellen, übersetzen und
MehrProgrammierung. Programme, Compiler, virtuelle Maschinen, Java
Programmierung Programme, Compiler, virtuelle Maschinen, Java Programme Ein Programm ist eine Folge von Anweisungen, die einem Computer sagen, was er tun soll tuwas.c for(int i=0; i=0; i
Mehr2 Eine einfache Programmiersprache
2 Eine einfache Programmiersprache Eine Programmiersprache soll Datenstrukturen anbieten Operationen auf Daten erlauben Kontrollstrukturen zur Ablaufsteuerung bereitstellen Als Beispiel betrachten wir
MehrProgrammiersprache. 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
MehrProgrammieren lernen mit Groovy Allgemeines Programme und ihre Ausführung
Programmieren lernen mit Groovy Allgemeines Programme und ihre Ausführung Seite 1 Allgemeines Dozent Dr. Th. Letschert Lernziel Einführung in die Software-Entwicklung und Programmierung Kenntnisse einer
MehrEinstieg imperative Programmierung auf Von-Neumann-Rechnern
Einstieg imperative Programmierung auf Von-Neumann-Rechnern Prof. Dr.-Ing. Thomas Schwotzer 1 Einführung In diesem Kurs werden Sie die Grundlagen der Programmierung mit Java erlernen. Java ist eine imperative
MehrVon der Programmiersprache WHILE zum ersten Einstieg in Java
Von der Programmiersprache WHILE zum ersten Einstieg in Java Die Programmiersprache WHILE bildet den Kern jeder imperativen Programmiersprache. Man geht davon aus, dass die Ein- Ausgabe primitiv organisiert
MehrEine JAVA Einführung ... Quellcode:... COMA Übung 3. T.Bosse. A.Griewank. Vorschau JAVA Programme Sprachen Kate
COMA Eine Einführung Quellcode: Anweisung(en)1 Wiederhole: T.Bosse Anweisung(en) 2 Einfache Schleifen (z.b. for-loop) Wiederhole: Falls (Bedingung) wahr, tue: Anweisung(en) 2 sonst führe Verzweigungen
MehrGrundlagen 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
MehrVorkurs Informatik WiSe 17/18
Java Einführung Dr. Werner Struckmann / Stephan Mielke, Nicole Naczk, 04.10.2017 Technische Universität Braunschweig, IPS Überblick Organisatorisches Arbeitsablauf Hello World 04.10.2017 Dr. Werner Struckmann
Mehr2.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
MehrAusgabe:
Aufgabe 2.10: Schreiben Sie ein Programm, das zunächst die Quadratzahlen zu den Zahlen 1-10 mit Hilfe einer While- Schleife und danach die Quadratzahlen zu den Zahlen 3, 6, 9,.., 30 mit Hilfe einer For-Schleife
Mehr2 Eine einfache Programmiersprache
2 Eine einfache Programmiersprache Eine Programmiersprache soll Datenstrukturen anbieten Operationen auf Daten erlauben Kontrollstrukturen zur Ablaufsteuerung bereitstellen Als Beispiel betrachten wir
MehrCompilerbau + Virtuelle Maschinen
Helmut Seidl Compilerbau + Virtuelle Maschinen München Sommersemester 2009 1 Organisatorisches Der erste Abschnitt Die Übersetzung von C ist den Vorlesungen Compilerbau und Virtuelle Maschinen gemeinsam
MehrProgrammiertechnik. Prof. Dr. Oliver Haase Raum G124 haase@htwg-konstanz.de Tel: 07531/206-150. Oliver Haase Hochschule Konstanz 1
Programmiertechnik Prof. Dr. Oliver Haase Raum G124 haase@htwg-konstanz.de Tel: 07531/206-150 Oliver Haase Hochschule Konstanz 1 Organisatorisches Vorlesung: montags, 8:00 9:30h, Raum C-109 freitags, 8:00
MehrII.1.1. Erste Schritte - 1 -
1. Grundelemente der Programmierung 2. Objekte, Klassen und Methoden 3. Rekursion und dynamische Datenstrukturen 4. Erweiterung von Klassen und fortgeschrittene Konzepte II.1.1. Erste Schritte - 1 - 1.
MehrKapitel 1: Die ersten Schritte 1
Kapitel 1: Die ersten Schritte Thema: Programmieren Seite: 1 Kapitel 1: Die ersten Schritte 1 Starten Sie Eclipse. Importieren Sie das Eclipse-Projekt scenarios-chapter-1. Gehen Sie in den Unterordner
MehrJava Einführung Programmcode
Java Einführung Programmcode Inhalt dieser Einheit Programmelemente Der erste Programmcode Die Entwicklungsumgebung: Sun's Java Software Development Kit (SDK) Vom Code zum Ausführen des Programms 2 Wiederholung:
MehrGrundlagen der Programmierung UE
Grundlagen der Programmierung UE Research and teaching network GdP UE H. Prähofer, R. Wolfinger 1 Vortragende Dr. Herbert Praehofer (G1 u. G2) Mag. Reinhard Wolfinger (G3 u. G4) Institute for System Software
MehrEinführung in Java. Ausgewählte Quellen zu Java
Einführung in Java Wesentliche Eigenschaften und Merkmale der Programmiersprache Java Prof. Dr. Stefan Böttcher Universität Paderborn im Rahmen der Vorlesung: Webbasierte Informationssysteme SS 2004 Einführung
MehrOrganisatorisches (1)
Organisatorisches (1) Abteilung Echtzeitsysteme und Kommunikation Prof. Dr. Nett nett@ivs.cs.uni-magdeburg.de Sekretariat: Frau Duckstein, Tel. 67-18345 pduckste@ivs.cs.uni-magdeburg.de Gebäude 29/ Etage
MehrMartin Unold INFORMATIK. Geoinformatik und Vermessung
Zusammenfassung Was ist eine Programmiersprache? Eine Sprache, die Formal eindeutig in Maschinenbefehle übersetzbar ist Für Menschen einfacher verständlich ist als Bytecode Zur Formulierung von Datenstrukturen
MehrII.1.1. Erste Schritte - 1 -
1. Grundelemente der Programmierung 2. Objekte, Klassen und Methoden 3. Rekursion und dynamische Datenstrukturen 4. Erweiterung von Klassen und fortgeschrittene Konzepte II.1.1. Erste Schritte - 1 - 1.
MehrII.1.1. Erste Schritte - 1 -
1. Grundelemente der Programmierung 2. Objekte, Klassen und Methoden 3. Rekursion und dynamische Datenstrukturen 4. Erweiterung von Klassen und fortgeschrittene Konzepte II.1.1. Erste Schritte - 1 - 1.
MehrJava Kurs für Anfänger LMU SS09 Einheit 1 Javaumgebung
Java Kurs für Anfänger LMU SS09 Einheit 1 Javaumgebung Ludwig-Maximilians-Universität München Institut für Informatik Programmierung und Softwaretechnik (PST) Prof. Wirsing 6. Mai 2009 1 Der Name Java
MehrUnterprogramme. AnPr. Wiederholungen im Code werden vermieden. Programme werden leichter lesbar. Die Entwicklung und der Test werden vereinfacht.
Name Klasse Datum 1 Allgemeines Programme werden üblicherweise nicht als ein einziger, fortlaufender Programmcode verfasst, sondern mit geeigneten Mitteln unterteilt und somit strukturiert. Die Methodik
MehrÜbungsblatt 10 (Block C 2) (16 Punkte)
georg.von-der-brueggen [ ] tu-dortmund.de ulrich.gabor [ ] tu-dortmund.de pascal.libuschewski [ ] tu-dortmund.de Übung zur Vorlesung Rechnerstrukturen Wintersemester 2016 Übungsblatt 10 (Block C 2) (16
MehrGrundlagen der Programmierung UE
Grundlagen der Programmierung UE Research and teaching network GdP UE H. Prähofer, M Löberbauer 1 Vortragende Dipl.-Ing. Markus Löberbauer (G1) Dr. Herbert Praehofer (G2 u. G3) Institute for System Software
MehrAlgorithmen versus Programmiersprachen
Coma I Einleitung Computer und Algorithmen Programmiersprachen Algorithmen versus Programmiersprachen Literaturhinweise Computer und Algorithmen Programmiersprachen Algorithmen versus Programmiersprachen
MehrVorlesung 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ÜBUNGS-BLOCK 7 LÖSUNGEN
ÜBUNGS-BLOCK 7 LÖSUNGEN Aufgabe 1: Gegeben ist folgender Code: Auto[] array = new Auto[3]; // Alle Autos im Array tunen: for (int i = 1; i
MehrKapitel 1: Einführung
Liste P: Programmieren mit Java WS 2001/2002 Prof. Dr. V. Turau FH Wiesbaden Kapitel 1: Einführung Folie 1 : Rückblick Entwicklung von Java begann etwa 1990 Erste öffentliche Version 1994 Erste große Anwendung:
MehrKapitel 3. Programmierkurs. Arten von Anweisungen. 3.1 Was sind Anweisungen?
Kapitel 3 Programmierkurs Birgit Engels, Anna Schulze ZAIK Universität zu Köln Anweisungen, Variablen Arten von Anweisungen Variablen Konstanten Höchste Zeit für ein Programm Gültigkeitsbereich von Variablen
MehrIntensivübung zu Algorithmen und Datenstrukturen
Intensivübung zu Algorithmen und Datenstrukturen Silvia Schreier Informatik 2 Programmiersysteme Martensstraße 3 91058 Erlangen Übersicht Programmierung Fallunterscheidung Flussdiagramm Bedingungen Boolesche
MehrJava Virtual Machine (JVM) Bytecode
Java Virtual Machine (JVM) durch Java-Interpreter (java) realisiert abstrakte Maschine = Softwareschicht zwischen Anwendung und Betriebssystem verantwortlich für Laden von Klassen, Ausführen des Bytecodes,
MehrKlausur 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
MehrInstitut für Computational Science Prof. Dr. H. Hinterberger. Praxismodul 1. Einführung in die Programmierung Erste Programme
Institut für Computational Science Prof. Dr. H. Hinterberger Praxismodul 1 Einführung in die Programmierung Erste Programme Einführung in die Programmierung 2 Institut für Computational Science, ETH Zürich,
MehrWiederholung JAVA. 1. (Vorbereitung)
Softwaretechnik für IM, WS2018/2019 http://knopper.net/bw/swt/ Übung 1 Wiederholung JAVA Hinweise: Das JAVA Development Kit (JDK) zum Entwickeln von JAVA-Programmen und das JAVA Runtime Environment (JRE)
MehrKlausur über den Stoff der Vorlesung Grundlagen der Informatik II (90 Minuten)
Institut für Angewandte Informatik und Formale Beschreibungsverfahren 15.02.2010 Klausur über den Stoff der Vorlesung Grundlagen der Informatik II (90 Minuten) Name: Vorname: Matr.-Nr.: Semester: (WS 2009/10)
MehrJust-In-Time-Compiler (2)
Just-In-Time-Compiler (2) Dr.-Ing. Volkmar Sieh Department Informatik 4 Verteilte Systeme und Betriebssysteme Friedrich-Alexander-Universität Erlangen-Nürnberg WS 2015/2016 V. Sieh Just-In-Time-Compiler
MehrÜbung 1 - Betriebssysteme I
Prof. Dr. Th. Letschert FB MNI 13. März 2002 Aufgabe 0: Basiswissen Rechnerarchitektur: Übung 1 - Betriebssysteme I Aus welchen Komponenten besteht ein Rechner mit Von-Neumann Architektur? Was sind Bits
MehrEinstieg in Java und OOP
examen.press Einstieg in Java und OOP Bearbeitet von Christian Silberbauer 1. Auflage 2009. Taschenbuch. x, 170 S. Paperback ISBN 978 3 540 78615 3 Format (B x L): 15,5 x 23,5 cm Gewicht: 314 g Weitere
MehrVorlesung Informatik 1
Vorlesung Informatik 1 Fachhochschule für Technik Esslingen Studiengang Wirtschaftsinformatik Programmiertipps Dr. rer. nat. Andreas Rau http://www.fht-esslingen.de/~rau andreas.rau@fht-esslingen.de Struktur
Mehr1.3 Handhabung eines Programmiersystems
1.3 Handhabung eines Programmiersystems Der Turbo-Pascal-Editor Man muss nichts vom Innenleben eines Computers verstehen, um mit ihm umgehen zu können. Wir wollen ihn als "black box" verwenden, also lediglich
MehrBeim Programmieren mit MMIX habt ihr vielleicht schon öfter eine der folgenden Fehlermeldungen von MMIXAL bekommen:
1 ADRESSIERUNG IN MMIX Beim Programmieren mit MMIX habt ihr vielleicht schon öfter eine der folgenden Fehlermeldungen von MMIXAL bekommen: no base address is close enough to the address A! relative address
MehrWintersemester 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;
MehrInformatik. Studiengang Chemische Technologie. Michael Roth Hochschule Darmstadt -Fachbereich Informatik- WS 2012/2013.
Informatik Studiengang Chemische Technologie Michael Roth michael.roth@h-da.de Hochschule Darmstadt -Fachbereich Informatik- WS 2012/2013 Inhalt Teil VIII Einstieg in Java II Michael Roth (h_da) Informatik
MehrÜbung 7 Rechnerstrukturen
Übung 7 Rechnerstrukturen Aufgabe 7.: X X2 X3 X4 F F2 F3 F4 X-X4 sind alle möglichen Binär-Werte. F-F2 ist das Ergebnis der Multiplikation von (XX2) und (X3X4). Dabei funktioniert die Multimpliation folgendermaßen:
MehrZeiger in C und C++ Zeiger in Java und C/C++
1 Zeiger in Java und C/C++ Zeigervariable (kurz: Zeiger, engl.: pointer): eine Variable, die als Wert eine Speicheradresse enthält Java: Zeiger werden implizit für Referenztypen (Klassen und Arrays) verwendet,
MehrMultiprozessoren. Dr.-Ing. Volkmar Sieh. Institut für Informatik 3: Rechnerarchitektur Friedrich-Alexander-Universität Erlangen-Nürnberg SS 2011
Multiprozessoren Dr.-Ing. Volkmar Sieh Institut für Informatik 3: Rechnerarchitektur Friedrich-Alexander-Universität Erlangen-Nürnberg SS 2011 Multiprozessoren 1/29 2011-06-16 Multiprozessoren Leistungsfähigkeit
MehrJ.5 Die Java Virtual Machine
Java Virtual Machine Die Java Virtual Machine 22 Prof. Dr. Rainer Manthey Informatik II Java-Compiler und Java Virtual Machine Quellcode-Datei class C... javac D.java Java-Compiler - Dateien class class
MehrÜbungen zum Bioinformatik-Tutorium. Blatt 3
Institut für Informatik Wintersemester 2018/19 Praktische Informatik und Bioinformatik Prof. Dr. Ralf Zimmer Übungen zum Bioinformatik-Tutorium Blatt 3 Termin: Dienstag, 6.11.2018, 11 Uhr 1. Hello World
MehrEinführung in die Informatik. Jumping into Java
Einführung in die Informatik Jumping into Java Programme, Modelle, Objekte, Klassen, Methoden Wolfram Burgard 1 Java, eine moderne, objektorientierte Sprache Beispielprogramm: import java.io.*; class Program1
MehrCS1005 Objektorientierte Programmierung
CS1005 Objektorientierte Programmierung Bachelor of Science (Informatik) Programme Erstellen und Ausführen Seite 1 Th Letschert Programme Erstellen Lebenszyklus der Software Software werden in mehreren
MehrProgrammierkurs Java. Grundlagen. Prof. Dr. Stefan Fischer Institut für Telematik, Universität zu Lübeck http://www.itm.uni-luebeck.
Programmierkurs Java Grundlagen Prof. Dr. Stefan Fischer Institut für Telematik, Universität zu Lübeck http://www.itm.uni-luebeck.de/people/fischer #2 Algorithmen, Maschinen- und Programmiersprachen Algorithmen
MehrInformatik B. Vorlesung 14 Serialisierung, Autoboxing. Dr. Ralf Kunze
Vorlesung 14 Serialisierung, Autoboxing 1 Serialisierung von Objekten Die Objekte innerhalb eines Java-Programmes sollen manchmal auch nach Beendigung der JVM verfügbar bleiben Objekte müssen ab und an
MehrKapitel 02. Java was, wann, warum, wieso. Fachgebiet Knowledge Engineering Prof. Dr. Johannes Fürnkranz
Kapitel 02 Java was, wann, warum, wieso Java, eine objektorientierte Programmiersprache Java ist eine objektorientierte Programmiersprache und als solche ein eingetragenes Warenzeichen der Firma Sun Microsystems.
MehrInstitut für Informatik
Technische Universität München Institut für Informatik Lehrstuhl für Computer Graphik & Visualisierung WS 2010 Praktikum: Grundlagen der Programmierung Aufgabenblatt 4 Prof. R. Westermann, A. Lehmann,
MehrEinführung in die Informatik Jumping into Java
Einführung in die Informatik Jumping into Java Programme, Modelle, Objekte, Klassen, Methoden Wolfram Burgard Cyrill Stachniss 2.1 Java, eine moderne, objektorientierte Sprache Beispielprogramm: import
MehrJava - Einführung in die Programmiersprache. Leibniz Universität IT Services Anja Aue
Java - Einführung in die Programmiersprache Leibniz Universität Anja Aue Handbücher am RRZN Programmierung. Java: Grundlagen und Einführung Java: Fortgeschrittene Techniken und APIs Java und XML Java -
Mehr41.2 LUA Grundlagen - Funktionen
41.2 LUA Grundlagen - Funktionen Autor: Goetz Quelle: Mein EEP-Forum Im Grunde genommen sind Funktionen - Programmierer schauen jetzt bitte mal weg! - auch Variablen. Jedenfalls gibt es da einige Gemeinsamkeiten.
MehrJust-In-Time-Compiler (2)
Just-In-Time-Compiler (2) Dr.-Ing. Volkmar Sieh Department Informatik 3: Rechnerarchitektur Friedrich-Alexander-Universität Erlangen-Nürnberg WS 2011/2012 Just-In-Time-Compiler (2) 1/13 2011-09-12 Just-In-Time-Compiler
MehrTeil 3 - Java. Grundlagen Klassen, Attribute Methoden
Teil 3 - Java Grundlagen Klassen, Attribute Methoden 1 Java 2 - Geschichte Ursprung: Green -Project bei der Firma Sun Microsystems 1991 Entwicklung eines Systems mit folgenden Eigenschaften: hardwareunabhängig
Mehr1. 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
Mehr1. 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
MehrAssembler - Einleitung
Assembler - Einleitung Dr.-Ing. Volkmar Sieh Department Informatik 3: Rechnerarchitektur Friedrich-Alexander-Universität Erlangen-Nürnberg SS 2008 Assembler - Einleitung 1/19 2008-04-01 Teil 1: Hochsprache
Mehr2 Programmieren in Java I noch ohne Nachbearbeitung
1 2 Programmieren in Java I noch ohne Nachbearbeitung 2.1 Was sind Programme? Eingabe = Verarbeitung = Ausgabe Die Eingabe kann sein Konstanten im Quelltext; Kommandozeilenparameter oder interaktive Eingabe
MehrGrundlagen der Rechnerarchitektur. MIPS Assembler
Grundlagen der Rechnerarchitektur MIPS Assembler Übersicht Arithmetik, Register und Speicherzugriff Darstellung von Instruktionen Logische Operationen Weitere Arithmetik Branches und Jumps Prozeduren 32
MehrDie Programmiersprache Java. Dr. Wolfgang Süß Thorsten Schlachter
Die Programmiersprache Java Dr. Wolfgang Süß Thorsten Schlachter Eigenschaften von Java Java ist eine von der Firma Sun Microsystems entwickelte objektorientierte Programmiersprache. Java ist......a simple,
MehrVorlesung Programmieren
Vorlesung Programmieren Speicherverwaltung und Parameterübergabe Prof. Dr. Stefan Fischer Institut für Telematik, Universität zu Lübeck http://www.itm.uni-luebeck.de/people/fischer Gültigkeitsbereich von
MehrProgrammiersprachen Einführung in C
Programmiersprachen Einführung in C Teil 1: Von der Maschinensprache zu C Prof. Dr. Maschinensprache: MIPS R2000 Was bewirkt folgendes Programm: 00100111101111011111111111100000 10101111101111110000000000010100
Mehr