Herzlich willkommen. SJC ein schlanker modularer Java Compiler für Forschung und Lehre
|
|
- Ella Kruse
- vor 8 Jahren
- Abrufe
Transkript
1 SJC ein schlanker modularer Java Compiler für Forschung und Lehre Herzlich willkommen zum Vortrag SJC ein schlanker modularer Java Compiler für Forschung und Lehre am 5. Oktober 2010 an der Java ist ein eingetragenes Warenzeichen von Oracle / Sun 05. Oktober
2 SJC ein schlanker modularer Java Compiler für Forschung und Lehre Inhalt 1. Motivation 2. Zielsetzung 3. Implementierung 4. Beispielanwendungen 5. Zusammenfassung und Fazit 05. Oktober
3 SJC ein schlanker modularer Java Compiler für Forschung und Lehre 1. Motivation 1. Motivation 2. Zielsetzung 3. Implementierung 4. Beispielanwendungen 5. Zusammenfassung und Fazit 05. Oktober
4 SJC 1. Motivation 1.1 Umfeld Motivierendes übergeordnetes Vorhaben: Komplett eigenes Betriebssystem System kann verteilt werden Verständliches Konzept Verständlicher Code Cluster-Dauer-Betrieb Erweiterung zur Laufzeit möglich Homogene und heterogene Hardware Entwicklung: nicht nur unter MS-Windows 05. Oktober
5 SJC 1. Motivation 1.2 Wunschliste Initialer Wunschzettel Kategorie must have : Typsicherheit und Objektorientierung Systemprogrammierung möglich Compiler übersetzt sich selbst Memory-Layout anpassbar Nice to have Wünsche: Tool-Chain verständlich Sprache weit verbreitet Schlank und modular 05. Oktober
6 SJC 1. Motivation 1.3 Sprachauswahl Welche Sprache? C, C++: nicht typsicher Oberon: nicht verbreitet (diverse andere: skipped) Java: wäre schon toll, aber Selbstübersetzungsfähigkeit des JDK?!? Systemprogrammierung mit JDK?!? Änderung zur Laufzeit mit JDK?!? JDK schlank und modular?!? Eigener Java-Compiler! 05. Oktober
7 SJC ein schlanker modularer Java Compiler für Forschung und Lehre 2. Zielsetzung 1. Motivation 2. Zielsetzung 3. Implementierung 4. Beispielanwendungen 5. Zusammenfassung und Fazit 05. Oktober
8 SJC 2. Zielsetzung 2.1 Ausgabe-Anforderungen Gesucht: Java-Compiler plus Memory-Layout-Anpassbarkeit Fähigkeit zur Selbstübersetzung Erzeugung von nativem Maschinencode von 8-Bit Mikrocontrollern bis 64 Bit Multicores Einschränkbarer Zugriff auf Hardware in Java Abstinenz von Bibliotheken und JNI-Funktionen Grundlage für Implementierung eines Cluster-OS Alles bitte schlank, modular, vermittelbar, ;-) 05. Oktober
9 SJC 2. Zielsetzung 2.2 Compiler-Anforderungen Kompatibilität mit Java-Sprache Compiler selbst vollständig in Java Kompatibilität mit SunJava / Eclipse etc. Einschränkungen bei Syntactic Sugar kein Auto-(Un)Boxing, Generics, Enumerations optional ohne implizite Basistyp-Konvertierungen Compiler versteht eigenen Quellcode Selbstübersetzbarkeit in Mini-OS Anforderungen an OS minimal Keine externen Bibliotheken 05. Oktober
10 SJC 2. Zielsetzung 2.3 System-Anforderungen Erweiterungen für die Systemprogrammierung Zugänglich für Kernel- und Treiberprogrammierer MAGIC: Hardwarezugriff und mehr Magisches direkter Zugriff auf Hauptspeicher und I/O-Raum Zugang zu RTE und Meta-Informationen STRUCT: Speicherstruktur-Abbild keine echten Objekte, nur Compilerhinweise z.b. für Profiler-Aktivierung, Interrupt-Handler Direkt für HW-Emulation in Java verwendbar 05. Oktober
11 SJC 2. Zielsetzung 2.4 Use-Case I Use-Case Videospeicher : Java-Seite Normales Java für normale Funktionalität public static void main() { print("hallo liebe Kollegen"); } public static void print(string str) { for (int i=0; i<str.length(); i++) print(str.charat(i)); } private static int vidpos; public static void print(char c) { if (vidpos<0 vidpos>=2000) vidpos=0; vidmem.digit[vidpos].ascii=(byte)c; vidmem.digit[vidpos++].color=0x07; } 05. Oktober
12 SJC 2. Zielsetzung 2.4 Use-Case II Use-Case Videospeicher : Magische Seite Magische Initialisierung für STRUCT private static VidMem vidmem =(VidMem)MAGIC.cast2Struct(0xB8000); Java-konforme Deklaration des Speicherlayouts public class VidChar extends STRUCT { byte ascii, color; } public class VidMem extends STRUCT VidChar[] digit; } Somit typsicherer und Überlauf-sicherer HW-Zugriff 05. Oktober
13 SJC 2. Zielsetzung 2.5 Cross-/Target-Übersetzung Abbild mit vollständigem Zielsystem Speicherabbild vom Compiler erzeugt Abbild-Lader in wenig Assembler initialisiert CPU, Stack etc. Entwicklungs- Rechner Quelltext in Java Compiler Nativ ausführbares Speicherabbild Ziel- Rechner Abbild-Lader Programmausführung 05. Oktober
14 SJC 2. Zielsetzung 2.6 Bootstrap-Übersetzung Compiler-Erst-Übersetzung mit Sun-JDK Bootstrap- Rechner Compiler- Quelltext SunJDK Entwicklungs- Rechner Quelltext in Java, z.b. Compiler Compiler (nativ oder mit SunJRE) Nativ ausführbares Speicherabbild Ziel- Rechner Abbild-Lader Programmausführung, z.b. Compiler 05. Oktober
15 SJC 2. Zielsetzung 2.7 In-System-Übersetzung In-System-Übersetzung im Cluster Entwicklungs- Rechner Nativ ausführbares Speicherabbild Cluster- Rechner Abbild-Lader Programmausführung (inklusive OS, Editor, Compiler...) Neuer oder geänderter Quelltext in Java 05. Oktober
16 SJC ein schlanker modularer Java Compiler für Forschung und Lehre 3. Implementierung 1. Motivation 2. Zielsetzung 3. Implementierung 4. Beispielanwendungen 5. Zusammenfassung und Fazit 05. Oktober
17 SJC 3. Implementierung 3.1 Modularisierung Modularisierungsregeln für den Compiler Sub-Packages implementieren je eine Schnittstelle Schnittstelle ist im zugehörigen Root-Package definiert Kein Zugriff auf Klassen fremder Sub-Packages Minimierung von Klassen in Root-Packages Klassische Modulbenennung Frontend: Quelltext Parse-Tree Backend: Parse-Tree Maschinen-Code Hilfsmodule: OS-Zugriff, Abbild-Erzeugung etc. 05. Oktober
18 Image SJC 3. Implementierung 3.2 Arbeitsschritte 1. Scannen und Parsen 2. Namensauflösung 3. Deskriptorenerzeugung 4. Codierung und Optimierung 5. Ausgabe des Speicherabbilds Text 1 Header Text 2 1 Parse- 2 Tree Decorated Parse- Tree 3 3 ClssDscs Constants 5 Output- File Text 3 4 Code 05. Oktober
19 Image SJC 3. Implementierung 3.3 Paketisierung SJC- Root- Package backend compbase compression debug emulation frontend memory osio output real relations symbols ui Frontend Context Backend Output Text 1 Header Text 2 1 Parse- 2 Tree Decorated Parse- Tree 3 3 ClssDscs Constants 5 Output- File Text 3 4 Code 05. Oktober
20 SJC 3. Implementierung 3.4 Größenvergleich SJC- Root- Package backend compbase compression debug emulation frontend memory osio output real relations symbols ui SJC- Sub- Package arm atmel ssa x86 binimp clist prepobj sjava lin sun win Stand: Größenvergleich SunJDK JikesRVM SJC Dateien Textzeilen 7.60 Mio 0.48 Mio 0.05 Mio Textzeichen Mio Mio 1.99 Mio 05. Oktober
21 SJC 3. Implementierung 3.5 Objekt- und Code-Design Speicherlayout mit zweiköpfigen Objekten Trennung von Referenzen und Skalaren Objektanalyse ohne zus. Feldinformation Optionale Indirektion für Skalare flexible Konsistenzmodellwechsel Standard-Stack für Methoden Für Parameter und lokale Variablen Registerbasierte Code-Erzeugung Stack nur einbezogen, falls keine Register frei 05. Oktober
22 SJC 3. Implementierung 3.6 Speicherlayout-Design Wahlmöglichkeiten für Gesamt-Speicherlayout Objekt-Verschiebbarkeit bei ROM-Image unsinnig Code-Verschiebbarkeit für Cluster erforderlich Wenig Zusatz-Code für verschiedene Modi Speichermodell-Auswahl Absolute (=statische) Adressberechnung bei Übersetzung (falls möglich) Relative (=indirekte) Adressberechnung zur Laufzeit verk. Obj., ROMable Objekte verkürzt normale Objekte normale Objekte Skalare indirekt embedded lean static dynamic indirscalars 05. Oktober
23 SJC ein schlanker modularer Java Compiler für Forschung und Lehre 4. Beispielanwendungen 1. Motivation 2. Zielsetzung 3. Implementierung 4. Beispielanwendungen 5. Zusammenfassung und Fazit 05. Oktober
24 SJC 4. Beispielanwendungen 4.1 Minimal-Hello-World Hello World x86-bootfähig in Java 16 Zeilen für vollständiges Hello World 59 Zeilen für Minimal-Laufzeitumgebung Speicherabbild insgesamt 724 Bytes groß* * Bootsektor der Diskette: +512 Bytes 05. Oktober
25 SJC 4. Beispielanwendungen 4.2 Eingebettete Systeme Zeitmessung für Rennbahn 8 Bit ATmega8 mit 8 kb Flash, 1 kb RAM Eingebettete mobile Datenaufzeichnung auf SD 8 Bit ATmega32 mit 32 kb Flash, 2 kb RAM 05. Oktober
26 SJC 4. Beispielanwendungen 4.3 Test-Betriebssystem Testsystem PicOS nur 34 bis 40 kb groß 32 oder 64 Bit mit gemeinsamer Codebasis inkl. Raytracer, Fraktalgenerator, MMU Oktober
27 SJC 4. Beispielanwendungen 4.4 Forschungsprojekte Forschungsprojekt Rainbow der Uni Ulm Verteiltes transaktionales 64 Bit Cluster-System vollständiges Betriebssystem inkl. Treiber (nic, gpu...) Derzeit diverse Dissertationen auf Basis von SJC demnächst: Dissertation zu Code- und Instanzevolution Wissenheim -Demonstrator als 3D-Umgebung Teilpaket des EU-Forschungsprojekts XtreemOS läuft mit SJC übersetzt nativ unter Linux im Grid gleicher Quellcode als JDK-Applet im Browser Kooperation mit Uni Ulm / Uni Düsseldorf 05. Oktober
28 SJC 4. Beispielanwendungen 4.5 Lehrverwendungen Lehr-Einsatz an der Vorlesung Betriebssystem im Eigenbau Vorlesung Verteiltes BS im Eigenbau Vielleicht bald mehr? Sehr gern! Lehr-Einsatz an der Uni Ulm VL Systemprogrammierung VL Technische Informatik PK BS im Eigenbau VL GPS-Logger 05. Oktober
29 SJC ein schlanker modularer Java Compiler für Forschung und Lehre 5. Zusammenfassung und Fazit 1. Motivation 2. Zielsetzung 3. Implementierung 4. Beispielanwendungen 5. Zusammenfassung und Fazit 05. Oktober
30 SJC 5. Zusammenfassung und Fazit 5.1 SJC in Stichworten SJC übersetzt Java-Quellen in Maschinencode Unterstützt werden diverse Systeme 8 bis 64 Bit SJC ist einsetzbar für Forschung und Lehre Unterstützt werden diverse Speicherlayouts SJC ist schlank und modular aufgebaut Leicht erweiterbar und gut verständlich Fazit: viel Arbeit, aber viel Spaß :-) 05. Oktober
31 SJC ein schlanker modularer Java Compiler für Forschung und Lehre Vielen Dank für Ihre Aufmerksamkeit SJC steht unter GPLv3 und ist erhältlich unter SJC ist entstanden als Ein-Personen-Freizeitprojekt. Für die produktiven Diskussionen vor allem mit P. Schulthess, M. Schöttner und P. Schmidt möchte ich mich herzlich bedanken. 05. Oktober
SJC Small Java Compiler
Vortrag am 17.3.2008 SJC Small Java Compiler Ein Überblick Folien für Vortrag am 17. März 2008, Weitergabe und Kopie nur mit Genehmigung 17.3.2008 1 Inhalt Inhalt Überblick über den Small Java Compiler
MehrEs sollte die MS-DOS Eingabeaufforderung starten. Geben Sie nun den Befehl javac ein.
Schritt 1: Installation des Javacompilers JDK. Der erste Start mit Eclipse Bevor Sie den Java-Compiler installieren sollten Sie sich vergewissern, ob er eventuell schon installiert ist. Gehen sie wie folgt
MehrVerhindert, dass eine Methode überschrieben wird. public final int holekontostand() {...} public final class Girokonto extends Konto {...
PIWIN I Kap. 8 Objektorientierte Programmierung - Vererbung 31 Schlüsselwort: final Verhindert, dass eine Methode überschrieben wird public final int holekontostand() {... Erben von einer Klasse verbieten:
MehrQuellcode-Repräsentation in Eclipse. Seminarvortrag PG Reclipse Jan Rieke
Quellcode-Repräsentation in Eclipse Seminarvortrag PG Reclipse Jan Rieke Gliederung Motivation Architektur von Eclipse Quelltext-Repräsentation in Eclipse Java-Modell Java DOM/AST Zusätzliche Konzepte
MehrJavadoc. Programmiermethodik. Eva Zangerle Universität Innsbruck
Javadoc Programmiermethodik Eva Zangerle Universität Innsbruck Überblick Einführung Java Ein erster Überblick Objektorientierung Vererbung und Polymorphismus Ausnahmebehandlung Pakete und Javadoc Spezielle
MehrPraxisorientierte Einführung in C++ Lektion: "Die Compiler-Chain (Vom Quellcode zum ausführbaren Programm)"
Praxisorientierte Einführung in C++ Lektion: "Die Compiler-Chain (Vom Quellcode zum ausführbaren Programm)" Christof Elbrechter Neuroinformatics Group, CITEC April 24, 2014 Christof Elbrechter Praxisorientierte
MehrObjektorientierte Programmierung
Objektorientierte Programmierung 1 Geschichte Dahl, Nygaard: Simula 67 (Algol 60 + Objektorientierung) Kay et al.: Smalltalk (erste rein-objektorientierte Sprache) Object Pascal, Objective C, C++ (wiederum
MehrZum Abschluss wird gezeigt, wie aus einem C++ Quell-Programm ein ausführbares Programm erzeugt wird. 1. Installation von NetBeans...
Erste Schritte Dieser Teil der Veranstaltung gibt einen ersten Eindruck der Programmierung mit C++. Es wird ein erstes Gefühl von Programmiersprachen vermittelt, ohne auf die gezeigten Bestandteile genau
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,
MehrInnere Klassen in Java
Innere Klassen in Java SS 2012 Prof. Dr. Margarita Esponda Innere Klassen Klassen- oder Interfacedefinitionen können zur besseren Strukturierung von Programmen verschachtelt werden Eine "Inner Class" wird
MehrCompilerbau mit Phoenix
Übersicht 2 Was ist ein Compiler? Frontend Analyse Backend Synthese Compiler-Pässe 3 Was ist ein Compiler? Frontend (Eingabesprache) Analyse Backend (Ausgabesprache) Synthese 4 Was ist ein Compiler? Frontend
MehrVersion 0.3. Installation von MinGW und Eclipse CDT
Version 0.3 Installation von MinGW und Eclipse CDT 1. Stellen Sie fest, ob Sie Windows in der 32 Bit Version oder in der 64 Bit Version installiert haben. 2. Prüfen Sie, welche Java Runtime vorhanden ist.
MehrProgrammieren in Java
Programmieren in Java objektorientierte Programmierung 2 2 Zusammenhang Klasse-Datei In jeder *.java Datei kann es genau eine public-klasse geben wobei Klassen- und Dateiname übereinstimmen. Es können
MehrProgrammieren in C. Macros, Funktionen und modulare Programmstruktur. Prof. Dr. Nikolaus Wulff
Programmieren in C Macros, Funktionen und modulare Programmstruktur Prof. Dr. Nikolaus Wulff Der C Präprozessor Vor einem Compile Lauf werden alle Präprozessor Kommandos/Makros ausgewertet. Diese sind
MehrEinführung in Eclipse und Java
Universität Bayreuth Lehrstuhl für Angewandte Informatik IV Datenbanken und Informationssysteme Prof. Dr.-Ing. Jablonski Einführung in Eclipse und Java Dipl.Inf. Manuel Götz Lehrstuhl für Angewandte Informatik
MehrGrundlagen von Python
Einführung in Python Grundlagen von Python Felix Döring, Felix Wittwer November 17, 2015 Scriptcharakter Programmierparadigmen Imperatives Programmieren Das Scoping Problem Objektorientiertes Programmieren
MehrC# im Vergleich zu Java
C# im Vergleich zu Java Serhad Ilgün Seminar Universität Dortmund SS 03 Gliederung Entstehung von C# und Java Überblick von C# und Java Unterschiede und Gemeinsamkeiten Zusammenfassung und Ausblick Entstehung
MehrEinführung in die Systemprogrammierung
Einführung in die Systemprogrammierung Sprachen und Übersetzer Prof. Dr. Christoph Reichenbach Fachbereich 12 / Institut für Informatik 4. Juni 2015 Sprachen vs. Übersetzer Sprache C11 Übersetzer GNU C
MehrWillkommen zur Vorlesung. Objektorientierte Programmierung Vertiefung - Java
Willkommen zur Vorlesung Objektorientierte Programmierung Vertiefung - Java Zum Dozenten Mein Name: Andreas Berndt Diplom-Informatiker (TU Darmstadt) Derzeit Software-Entwickler für Web- Applikationen
MehrVorkurs C++ Programmierung
Vorkurs C++ Programmierung Klassen Letzte Stunde Speicherverwaltung automatische Speicherverwaltung auf dem Stack dynamische Speicherverwaltung auf dem Heap new/new[] und delete/delete[] Speicherklassen:
MehrEinführung in PHP. (mit Aufgaben)
Einführung in PHP (mit Aufgaben) Dynamische Inhalte mit PHP? 2 Aus der Wikipedia (verkürzt): PHP wird auf etwa 244 Millionen Websites eingesetzt (Stand: Januar 2013) und wird auf etwa 80 % aller Websites
Mehr5. Tutorium zu Programmieren
5. Tutorium zu Programmieren Dennis Ewert Gruppe 6 Universität Karlsruhe Institut für Programmstrukturen und Datenorganisation (IPD) Lehrstuhl Programmierparadigmen WS 2008/2009 c 2008 by IPD Snelting
MehrTutorium Rechnerorganisation
Woche 2 Tutorien 3 und 4 zur Vorlesung Rechnerorganisation 1 Christian A. Mandery: KIT Universität des Landes Baden-Württemberg und nationales Grossforschungszentrum in der Helmholtz-Gemeinschaft www.kit.edu
Mehr4D Server v12 64-bit Version BETA VERSION
4D Server v12 64-bit Version BETA VERSION 4D Server v12 unterstützt jetzt das Windows 64-bit Betriebssystem. Hauptvorteil der 64-bit Technologie ist die rundum verbesserte Performance der Anwendungen und
MehrJava Entwicklung für Embedded Devices Best & Worst Practices!
Java Entwicklung für Embedded Devices! George Mesesan Microdoc GmbH Natürlich können wir dieses neue log4j Bundle auch auf dem Device verwenden. Ist doch alles Java. Java Micro Edition (ME) Java Standard
MehrDatenhaltung für Android Model First. 30.03.2011 Christian Ingenhaag, Frederik Götz, Carl Steeg
Datenhaltung für Android Model First 30.03.2011 Christian Ingenhaag, Frederik Götz, Carl Steeg Agenda Datenhaltung in Android Motivation / Projektziele Projekt Umsetzung Stand der Entwicklung Fazit 2 Datenhaltung
MehrÜbung 1 mit C# 6.0 MATTHIAS RONCORONI
Übung 1 mit C# 6.0 MATTHIAS RONCORONI Inhalt 2 1. Überblick über C# 2. Lösung der Übung 1 3. Code 4. Demo C# allgemein 3 aktuell: C# 6.0 mit.net-framework 4.6: Multiparadigmatisch (Strukturiert, Objektorientiert,
MehrPropädeutikum. Dipl.-Inf. Frank Güttler
Propädeutikum 2015 Vorbereitungskurs Informatikstudium Erfolgreich Studieren Programmieren (C-Kurs) guettler@informatik.uni-leipzig.de Universität Leipzig Institut für Informatik Technische Informatik
MehrJava: Vererbung. Teil 3: super() www.informatikzentrale.de
Java: Vererbung Teil 3: super() Konstruktor und Vererbung Kindklasse ruft SELBSTSTÄNDIG und IMMER zuerst den Konstruktor der Elternklasse auf! Konstruktor und Vererbung Kindklasse ruft SELBSTSTÄNDIG und
MehrFassade. Objektbasiertes Strukturmuster. C. Restorff & M. Rohlfing
Fassade Objektbasiertes Strukturmuster C. Restorff & M. Rohlfing Übersicht Motivation Anwendbarkeit Struktur Teilnehmer Interaktion Konsequenz Implementierung Beispiel Bekannte Verwendung Verwandte Muster
MehrProf. Dr.-Ing. Dietrich Schröder GIS und Programmiersprachen: Wohin geht die Reise?
Prof. Dr.-Ing. Dietrich Schröder GIS und Programmiersprachen: Wohin geht die Reise? 1954 1960 1965 1970 1975 1980 1985 1990 1995 01 02 03 04 40 Jahre Programmierenausbildung im Studiengang VG Programmiersprachen
MehrApplications Applets (eingeschränkte Rechte)
1 Arten von Java-Programmen Man unterscheidet 2 verschiedene Arten von Java-Programmen: Applications Applets (eingeschränkte Rechte) Erstere sind eigenständige Programme. Letztere sind "kleine" Programme,
MehrLinux Arbeitsspeicheranalyse
Linux Arbeitsspeicheranalyse 19. DFN Cert Workshop Peter Schulik, Jan Göbel, Thomas Schreck Agenda 1. Warum ist Speicheranalyse unter Linux wichtig? 2. Speicherakquise 3. Speicheranalyse 4. Volatility
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
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:
MehrAnleitung zur Installation und Verwendung von eclipseuml 2.1.0
Anleitung zur Installation und Verwendung von eclipseuml 2.1.0 In dieser Anleitung wird die Installation und Verwendung von Omodo eclipseuml 2.1.0 beschrieben. eclipseuml ist eine Zusatzsoftware für Eclipse,
MehrLEHRSTUHL FÜR DATENBANKEN
LEHRSTUHL FÜR DATENBANKEN Informatik II für Verkehrsingenieure Java & Eclipse Installationsguide Prof. Dr.-Ing. Wolfgang Lehner > Was ist Eclipse? Eine sogenannte Integrierte Entwicklungsumgebung (engl.
MehrPraktikum Datenbanksysteme. Ho Ngoc Duc IFIS - Universität zu Lübeck 01.06.2005
Praktikum Datenbanksysteme Ho Ngoc Duc IFIS - Universität zu Lübeck 01.06.2005 Tomcat-Installation $JAVA_HOME (z.b. /home/dbp00/j2sdk1.4.2) $CATALINA_HOME (/home/dbp00/jakarta-tomcat-4) Skripte zum Start/Stop:
MehrQuelltextähnlichkeit
Quelltextähnlichkeit String autor = Tobias Jamin ; String projekt = Arte-Fakt ; String seminar = Transformationen ; Date termin = new Date(3, // Tag 2, // Monat 2006); Presentation praesentation = new
MehrHardware Virtualisierungs Support für PikeOS
Virtualisierungs Support für PikeOS Design eines Virtual Machine Monitors auf Basis eines Mikrokernels Tobias Stumpf SYSGO AG, Am Pfaenstein 14, 55270 Klein-Winternheim HS Furtwangen, Fakultät Computer
MehrProf. Dr. Uwe Schmidt. 21. August 2007. Aufgaben zur Klausur Objektorientierte Programmierung im SS 2007 (IA 252)
Prof. Dr. Uwe Schmidt 21. August 2007 Aufgaben zur Klausur Objektorientierte Programmierung im SS 2007 (IA 252) Zeit: 75 Minuten erlaubte Hilfsmittel: keine Bitte tragen Sie Ihre Antworten und fertigen
MehrInstitut für Telematik Universität zu Lübeck. Programmieren. Kapitel 0: Organisatorisches. Wintersemester 2008/2009. Prof. Dr.
Institut für Telematik Universität zu Lübeck Programmieren Kapitel 0: Organisatorisches Wintersemester 2008/2009 Prof. Dr. Christian Werner 1-2 Überblick Ziele Inhaltsüberblick Ablauf der Veranstaltung
Mehr10 Erweiterung und Portierung
10.1 Überblick In vielen Fällen werden Compiler nicht vollständig neu geschrieben, sondern von einem Rechnersystem auf ein anderes portiert. Das spart viel Arbeit, ist aber immer noch eine sehr anspruchsvolle
MehrTIMI: Technische Informatik für Medieninformatiker
TIMI: Technische Informatik für Medieninformatiker Bachelor-Studiengang Digitale Medien Medieninformatik SS 2004 Niels Pollem Arbeitsgruppe Rechnernetze (Prof. Dr.-Ing. Ute Bormann) Scheduling:
MehrEinführung in wxwidgets & wxdev-c++
Einführung in wxwidgets & wxdev-c++ Vortrag im Rahmen der Vorlesung Computational Physics im Sommersemester 2009 Folie 1/13 Gliederung wxwidgets: Übersicht wxdev-c++: Übersicht Installation wxwidgets Syntax
MehrJ.6 Programmierung eingebetteter Systeme
Vorteile von C in eingebetteten Systemen: leichter Zugriff auf die Hardware gute Kontrolle über die verwendeten Ressourcen (Speicher, CPU) Probleme mit C: stark eingeschränkte Laufzeitüberprüfungen ISO
MehrBegleitendes Praktikum zur Vorlesung Künstliche Intelligenz
Begleitendes Praktikum zur Vorlesung Künstliche Intelligenz SS12 Kontakt Internet: http://cvpr.uni-muenster.de/teaching/ss12/ki/ RSS-Feed Kalender Dipl.-Math. Michael Schmeing m.schmeinguni-muenster.de
MehrEin Blick voraus. des Autors von C++: Bjarne Stroustrup. 04.06.2005 Conrad Kobsch
Ein Blick voraus des Autors von C++: Bjarne Stroustrup 04.06.2005 Conrad Kobsch Inhalt Einleitung Rückblick Nur eine Übergangslösung? Was würde C++ effektiver machen? Quelle 2 Einleitung Wo steht C++,
MehrDiplomarbeit Antrittsvortrag
Diplomarbeit Antrittsvortrag Christian Müller Run-time byte code compilation, interpretation and optimization for Alice Betreuer: Guido Tack Verantwortlicher Prof.: Gert Smolka Die nächsten 15 Minuten...
MehrEmbedded Linux. Embedded Linux. Daniel Buchheim daniel.buchheim@informatik.tu-cottbus.de. Seminar "Eingebettete drahtlose Systeme"
Daniel Buchheim daniel.buchheim@informatik.tu-cottbus.de Embedded Linux 30.01.2009 Daniel Buchheim Inhalt: Was ist Embedded Linux? Hardwareunterstützung in Eingebetteten Systemen Open Source Aspekte Aufbau
MehrDr. Nikolai Krambrock Andreas von Studnitz
Dr. Nikolai Krambrock Andreas von Studnitz Codequalität mit Magento Inhalt Vorstellung Motivation Code-Qualität Allgemein Code-Qualität Magento-spezifisch Fragen und Antworten Hello World! Dr. Nikolai
MehrEclipse. für die kleinen Dinge des (modernen) Lebens
Eclipse für die kleinen Dinge des (modernen) Lebens Agenda Vorstellung Zielsysteme Software Modellierung Übertragung zum Gerät Vorstellung www.mda4e.org Projektpartner mda4e itemis GmbH & Co. KG Spezialist
MehrObjektorientierte Programmierung für Anfänger am Beispiel PHP
Objektorientierte Programmierung für Anfänger am Beispiel PHP Johannes Mittendorfer http://jmittendorfer.hostingsociety.com 19. August 2012 Abstract Dieses Dokument soll die Vorteile der objektorientierten
MehrVererbung & Schnittstellen in C#
Vererbung & Schnittstellen in C# Inhaltsübersicht - Vorüberlegung - Vererbung - Schnittstellenklassen - Zusammenfassung 1 Vorüberlegung Wozu benötigt man Vererbung überhaubt? 1.Um Zeit zu sparen! Verwendung
MehrHow-to: Webserver NAT. Securepoint Security System Version 2007nx
Securepoint Security System Inhaltsverzeichnis Webserver NAT... 3 1 Konfiguration einer Webserver NAT... 4 1.1 Einrichten von Netzwerkobjekten... 4 1.2 Erstellen von Firewall-Regeln... 6 Seite 2 Webserver
MehrJAVA als erste Programmiersprache Semesterkurs
JAVA als erste Programmiersprache Semesterkurs 0 - Einstieg WS 2012 / 2013 Prof. Dr. Bodo Kraft Prof. Dr. Bodo Kraft FH Aachen University of Applied Sciences Fachbereich Medizintechnik und Technomathematik
MehrSoftware Engineering. Zur Architektur der Applikation Data Repository. Franz-Josef Elmer, Universität Basel, HS 2015
Software Engineering Zur Architektur der Applikation Data Repository Franz-Josef Elmer, Universität Basel, HS 2015 Software Engineering: Mit acht bewährten Praktiken zu gutem Code 2 Schichtarchitektur
MehrPrinzipien Objektorientierter Programmierung
Prinzipien Objektorientierter Programmierung Valerian Wintner Inhaltsverzeichnis 1 Vorwort 1 2 Kapselung 1 3 Polymorphie 2 3.1 Dynamische Polymorphie...................... 2 3.2 Statische Polymorphie........................
MehrGEONET Anleitung für Web-Autoren
GEONET Anleitung für Web-Autoren Alfred Wassermann Universität Bayreuth Alfred.Wassermann@uni-bayreuth.de 5. Mai 1999 Inhaltsverzeichnis 1 Technische Voraussetzungen 1 2 JAVA-Programme in HTML-Seiten verwenden
MehrSmartphone Entwicklung mit Android und Java
Smartphone Entwicklung mit Android und Java predic8 GmbH Moltkestr. 40 53173 Bonn Tel: (0228)5552576-0 www.predic8.de info@predic8.de Was ist Android Offene Plattform für mobile Geräte Software Kompletter
MehrProgrammentwicklung mit C++ (unter Unix/Linux)
Programmentwicklung mit C++ (unter Unix/Linux) Erste Schritte Der gcc - Compiler & Linker Organisation des Source-Codes & Libraries Automatische Programmgenerierung: Make Birgit Möller & Denis Williams
MehrJavakurs zu Informatik I. Henning Heitkötter
Javakurs zu Informatik I Arrays vergleichen Implementieren Sie folgende Methode, die prüft, ob die Elemente der beiden Arrays an jeder Position übereinstimmen: public static boolean identisch(int[] a,
MehrEinfache Arrays. Annabelle Klarl. Einführung in die Informatik Programmierung und Softwareentwicklung
Annabelle Klarl Zentralübung zur Vorlesung Einführung in die Informatik: http://www.pst.ifi.lmu.de/lehre/wise-13-14/infoeinf WS13/14 Action required now 1. Smartphone: installiere die App "socrative student"
MehrEinführung in die objektorientierte Programmierung mit Java. Klausur am 19. Oktober 2005
Einführung in die objektorientierte Programmierung mit Java Klausur am 19. Oktober 2005 Matrikelnummer: Nachname: Vorname: Semesteranzahl: Die Klausur besteht aus drei Frageblöcken zu den Inhalten der
MehrJavakurs 2013 Objektorientierung
Javakurs 2013 Objektorientierung Objektorientierte Programmierung I Armelle Vérité 7 März 2013 Technische Universität Berlin This work is licensed under the Creative Commons Attribution-ShareAlike 3.0
MehrBerner Fachhochschule Hochschule für Technik und Informatik HTI. Kapitel 1. Einstieg in Java. Dr. Elham Firouzi 06.09.10 1
Kapitel 1 Einstieg in Java Dr. Elham Firouzi 06.09.10 1 1 : Einstieg in Java Einleitung Ein erstes Beispiel Berner Fachhochschule Entwicklung von Java-Programmen Applikationen Applets Vor und Nachteile
MehrApplet Firewall und Freigabe der Objekte
Hauptseminar Applet Firewall und Freigabe der Objekte Nachweis von Sicherheitseigenschaften für JavaCard Jin Zhou Ein Überblick über diesen Vortrag Applet Firewall Kontext JCRE Entry Point Objekt Shareable
MehrEntwicklung einer echtzeitfähigen CLI-Laufzeitumgebung für den Einsatz in der Automatisierungstechnik
Entwicklung einer echtzeitfähigen CLI-Laufzeitumgebung für den Einsatz in der Automatisierungstechnik Echtzeit 2010 Alexej Schepeljanski Martin Däumler Matthias Werner Echtzeit 2010 / 18. November 2010
MehrSIM Application Toolkit basierter Angriff auf mobile Endgeräte durch Hardwaremanipulation an der SIM-Karte
SIM Application Toolkit basierter Angriff auf mobile Endgeräte durch Hardwaremanipulation an der SIM-Karte 12.5.2009 Benedikt Heinz Fraunhofer SIT benedikt.heinz@sit.fraunhofer.de Einführung BSI-Studie
MehrComputeranwendung in der Chemie Informatik für Chemiker(innen) 3. Software
Computeranwendung in der Chemie Informatik für Chemiker(innen) 3. Software Jens Döbler 2003 "Computer in der Chemie", WS 2003-04, Humboldt-Universität VL3 Folie 1 Grundlagen Software steuert Computersysteme
Mehr2D22 Prinzipien der Softwareentwicklung. Prinzipien der Softwareentwicklung S. Strahringer 1
2D22 1 Inhalte der Lehrveranstaltung Einführung in die Programmierung mit PHP Literatur: Theis, Thomas (2010): Einstieg in PHP 5.3 und MySQL 5.4. [für Programmieranfänger geeignet]. 6., aktualisierte Aufl.
MehrObjektorientierte Programmierung OOP Programmieren mit Java
Aufgaben: 2 JDK/SDK/JRE und Java Entwicklungswerkzeuge Objektorientierte Programmierung OOP Programmieren mit Java 1. Installation von Java 2. Erstes Java Programm Hello World 3. Dreimal Hallo Olten 2
MehrEinführung in die C-Programmierung
Einführung in die C-Programmierung Warum C? Sehr stark verbreitet (Praxisnähe) Höhere Programmiersprache Objektorientierte Erweiterung: C++ Aber auch hardwarenahe Programmierung möglich (z.b. Mikrokontroller).
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
Mehr<mail@carstengrohmann.de>
Security Enhanced Linux Eine Einführung Tom Vogt Carsten Grohmann Überblick Was ist SELinux? Erweiterung des Kernels Was bietet SELinux? Kapslung von Programmen
MehrEinstieg in die Informatik mit Java
1 / 14 Einstieg in die Informatik mit Java Swing Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 14 1 Einführendes Beispiel 2 Eigenschaften von Swing 3 Typisches Swing-Applet
MehrII. Grundlagen der Programmierung. 9. Datenstrukturen. Daten zusammenfassen. In Java (Forts.): In Java:
Technische Informatik für Ingenieure (TIfI) WS 2005/2006, Vorlesung 9 II. Grundlagen der Programmierung Ekkart Kindler Funktionen und Prozeduren Datenstrukturen 9. Datenstrukturen Daten zusammenfassen
MehrInstallation von Microsoft Visual C++ 2010 Express
Installation von Download unter http://www.microsoft.com/germany/express/products/windows.aspx Alternative: Ihr MSDNAA Zugang Registrierung nach spätestens 30 Tagen ist zwingend erforderlich. I Vorbereitung
MehrObjektorientierte Programmierung. Kapitel 12: Interfaces
12. Interfaces 1/14 Objektorientierte Programmierung Kapitel 12: Interfaces Stefan Brass Martin-Luther-Universität Halle-Wittenberg Wintersemester 2012/13 http://www.informatik.uni-halle.de/ brass/oop12/
MehrGforth EC auf dem NXT Brick
Gforth EC auf dem NXT Brick Forth Tagung 2007 Vernichtende Kritik am RCX Vergleich zum RCX Software Umfeld Ullrich Hoffmann: Wenn ich an den RCX Wettbewerb in Haminkeln zurückdenke, fand ich das Forth
MehrAbschnitt 16: Objektorientiertes Design
Abschnitt 16: Objektorientiertes Design 16. Objektorientiertes Design 16 Objektorientiertes Design Informatik 2 (SS 07) 610 Software-Entwicklung Zur Software-Entwicklung existiert eine Vielfalt von Vorgehensweisen
MehrEinführung in Java. PING e.v. Weiterbildung Andreas Rossbacher 24. März 2005
Einführung in Java PING e.v. Weiterbildung Andreas Rossbacher 24. März 2005 Gliederung 1. Was ist Java / Geschichte von Java 2. Prinzip der Plattformunabhängigkeit 3. Wie kommt man vom Quellcode zum Programm
MehrTechnische Basis für den Betrieb von ONTRAM
Technische Basis für den Betrieb von ONTRAM hello system Technische Basis für den Betrieb von ONTRAM Bestandteile von ONTRAM ONTRAM setzt sich aus mehreren Komponenten zusammen, die ebenso auf mehrere
Mehr7. Pakete Grundlagen der Programmierung 1 (Java)
7. Pakete Grundlagen der Programmierung 1 (Java) Fachhochschule Darmstadt Haardtring 100 D-64295 Darmstadt Prof. Dr. Bernhard Humm FH Darmstadt, 29. November 2005 Einordnung im Kontext der Vorlesung 1.
MehrFachgebiet Informationssysteme Prof. Dr.-Ing. N. Fuhr. Programmierung Prof. Dr.-Ing. Nobert Fuhr. Übungsblatt Nr. 6
Gudrun Fischer Sascha Kriewel programmierung@is.informatik.uni-duisburg.de Anmeldung zur Klausur! Übungsblatt Nr. 6 Um an der Klausur teilzunehmen, müssen sich Studierende der angewandten Informatik in
MehrSoftware-Engineering und Optimierungsanwendungen in der Thermodynamik
Software-Engineering und Optimierungsanwendungen in der Thermodynamik Software-Engineering 5 Programmentwicklung und Debuggen mit IDE und CASE-Tools Übungen Prof. Dr. Rolf Dornberger OPTSWE_SWE: 5 Programmentwicklung
Mehr3 Objektorientierte Konzepte in Java
3 Objektorientierte Konzepte in Java 3.1 Klassendeklarationen Fragen an die Klassendeklaration: Wie heißt die Klasse? Wer darf auf die Klasse und ihre Attribute/Methoden zugreifen? Ist die Klasse eine
MehrAlltagsnotizen eines Softwareentwicklers
Alltagsnotizen eines Softwareentwicklers Entkoppeln von Objekten durch Callbacks mit c++-interfaces oder boost.function und boost.bind Tags: c++, entkoppeln, objekt, oop, callback, boost.bind, boost.function,
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,
MehrKonzeption und Implementierung einer Videodigitalisierung und Videoausgabe unter Embedded Linux. Kolloquium von Frank Schwanz
Konzeption und Implementierung einer Videodigitalisierung und Videoausgabe unter Embedded Linux Kolloquium von Frank Schwanz Aufgabenstellung Im Rahmen des Projektes Initiative Intelligente Autonome Systeme
MehrEntwicklung eines Mac OS X Treibers für eine PCI-VME Interface Karte
Entwicklung eines Mac OS X Treibers für eine PCI-VME Interface Karte Matthias Lange Informatikstudent, TU-Dresden 27. September 2005 http://www.matze-lange.de Warum entwickelt jemand einen Treiber für
MehrProgrammentwicklung ohne BlueJ
Objektorientierte Programmierung in - Eine praxisnahe Einführung mit Bluej Programmentwicklung BlueJ 1.0 Ein BlueJ-Projekt Ein BlueJ-Projekt ist der Inhalt eines Verzeichnisses. das Projektname heißt wie
MehrVorlesung Objektorientierte Softwareentwicklung. Kapitel 0. Java-Überblick
Vorlesung Objektorientierte Softwareentwicklung Sommersemester este 2008 Kapitel 0. Java-Überblick Was sind die Ziele? Warum Java? Komplexe Anwendungen e-business verteilt zuverlässig sicher mobil persistent
MehrObjektorientierte Programmierung OOP
Objektorientierte Programmierung OOP Objektorientierte Programmierung OOP Ronja Düffel WS2012/13 08. Oktober 2013 Objektorientierte Programmierung OOP Objektorientierte Programmierung Objektorientierte
MehrPakete dienen dazu, die Software eines Projektes in größere inhaltlich zusammengehörige Bereiche mit eigenem Namen einzuteilen (siehe Java API).
Paketdeklaration Paketdeklaration package Bezeichner ; Pakete dienen dazu, die Software eines Projektes in größere inhaltlich zusammengehörige Bereiche mit eigenem Namen einzuteilen (siehe Java API). Ein
MehrMATLAB-Automatisierung von Dymola- Simulationen und Ergebnisauswertung Holger Dittus. Modelica User Group BaWü, Stuttgart, 13.06.
www.dlr.de Folie 1 MATLAB-Automatisierung von Dymola- Simulationen und Ergebnisauswertung Holger Dittus Modelica User Group BaWü, Stuttgart, 13.06.2013 www.dlr.de Folie 2 Inhalt Motivation Dymola.mos-Skripte
MehrProgrammieren I. Prinzipieller Ablauf. Eigenschaften von JAVA. Source-Code Javac Bytecode. Java Virtual Machine (Java, Browser, Appletviewer)
Programmieren I Grundlagen von JAVA Dr. Klaus Höppner Hello World in JAVA Hochschule Darmstadt WS 2007/2008 Elementare Datentypen 1 / 17 2 / 17 Eigenschaften von JAVA Prinzipieller Ablauf Plattform-und
MehrRobot Karol für Delphi
Robot Karol für Delphi Reinhard Nitzsche, OSZ Handel I Version 0.1 vom 24. Januar 2003 Zusammenfassung Nach der Einführung in die (variablenfreie) Programmierung mit Robot Karol von Freiberger und Krško
MehrVerteidigung Masterarbeit Evaluating the Use of a Web Browser to Unify GUI Development for IDE Plug-ins
Verteidigung Masterarbeit Evaluating the Use of a Web Browser to Unify GUI Development for IDE Plug-ins Christian Cikryt Freie Universität Berlin 13.08.2015 Überblick Motivation und Ziele Evaluation des
Mehr