Userinterfaces for Computer Theorem Provers Feasibility Study in the ISAC-Projekt

Größe: px
Ab Seite anzeigen:

Download "Userinterfaces for Computer Theorem Provers Feasibility Study in the ISAC-Projekt"

Transkript

1 Bachelor s Thesis Userinterfaces for Computer Theorem Provers Feasibility Study in the ISAC-Projekt Marco Steger 1 Institute for Software Technology (IST) Graz University of Technology A-8010 Graz, Austria Advisor: Co-Advisor: Ass.Prof. Dipl.-Ing. Dr.techn. Bernhard Aichernig Dr.techn. Walther Neuper Graz, m.steger@student.tugraz.at Copyright 2011 by the author

2 Bachelorarbeit Userinterfaces für Computer Theorem Prover Machbarkeits-Studie im ISAC-Projekt Marco Steger 1 Institut für Softwaretechnologie (IST) Technische Universität Graz A-8010 Graz Gutachter: Mitbetreuer: Ass.Prof. Dipl.-Ing. Dr.techn. Bernhard Aichernig Dr.techn. Walther Neuper Graz, Diese Arbeit ist in deutscher Sprache verfasst. 1 m.steger@student.tugraz.at Copyright 2011, Marco Steger

3 Abstract The computer theorem prover Isabelle switches from a user interface for expert users to a user interface which is more powerful and which serves integration of Isabelle into other tools for software engineers. This bachelor thesis in Telematik introduces the specific components underlying Isabelle s new user interface, the scala-layer for asyncronous editing of proof documents, the Java-based editor jedit together with the respective plugin mechanisms; and the thesis documents the current organization of these components in Isabelle and sets up the whole system, Isabelle, Scala and jedit in the IDE NetBeans copying the configuration of the Isabelle developer team. This setup is explored in the implementation of a test-plugin, and the experiences are documented in detail. Thus the prerequisites are given for cooperation in the further development of Isabelle s future front-end and respective integration into development tools like test case generators for software engineers. Keywords: computer theorem prover, Isabelle, user-interface, jedit, plugin, Scala, actors, asynconous communication, proof document, structured derivations i

4 Kurzfassung Der Theoremprover Isabelle befindet sich im Übergang von einer Oberfläche für akademische Benutzer zu einem generellen Frontend, das in verschiedenste softwaretechnische Tools eingebunden werden kann. Die vorliegende Bachelorarbeit in Telematik führt in die speziellen, dem Frontend zugrundleliegenden Konzepte und Komponenten (Scala-Layer für asynchrone Bearbeitung von Beweisdokumenten, jedit mit Plugins, Parser) ein, dokumentiert die momentane Organisation dieser Komponenten im Isabelle System und setzt das gesamte System in einer integrierten Entwicklungsungebung auf. Dieses Setup wird in der Implementation eines Test-Plugins erprobt. Die Erfahrungen mit diesem Test werden ausführlich dokumentiert. Hiermit sind die organisatorischen und softwaretechnische Voraussetzungen dafür geschaffen, dass ein Team an der Technischen Universiät Graz an der Entwicklung des kommenden Frontends für den Theoremprover Isabelle und seiner Integration in Entwicklungswerkzeuge teilhaben kann. Schlagworte: Computer Theorem Proving, Isabelle, User-Interface, jedit, Plugin, Scala, Actors, Asyncrone Kommunikation, Beweis-Dokument, Structured Derivations ii

5 Statutory Declaration I declare that I have authored this thesis independently, that I have not used other than the declared sources/resources, and that I have explicitly marked all material which has been quoted either literally or by content from the used sources place, date (signature) Eidesstattliche Erklärung Ich erkläre an Eides statt, dass ich die vorliegende Arbeit selbstständig verfasst, andere als die angegebenen Quellen/Hilfsmittel nicht benutzt, und die den benutzten Quellen wörtlich und inhaltlich entnommenen Stellen als solche kenntlich gemacht habe Ort, Datum (Unterschrift) iii

6 Acknowledgements I would like to thank Professor Berhard Aichernig for having prepared the grounds for this thesis by his work on test case generation and in particular in his interest in the computer theorem prover Isabelle. His general surveys on computer theorem proving, on programming languages in general, on functional programming in particular and on respective advantages in upcoming multi-core computing were inspiring and they motivate the directions for my future studies. Many thanks also to Walther Neuper, who was always available for the many intricacies of Isabelle/Isar and the technicalities involved when doing a bachelor project and writing a thesis. Marco Steger Graz, June 30, 2011 Danksagung Ich möchte mich herzlich bei allen bedanken, die diese Bakkalaureats-Arbeit unterstützt haben. Herr Professor Bernhard Aichernig hat die Voraussetzungen für die Themenstellung der Arbeit durch seine F&E in Test-Case-Generation geschaffen; Isabelle gehört auch zu seinem Tool-Set. Besonder inspirierend waren seine Überblicks-Informationen zu Computer Theorem Proving, zu Programm-Sprachen im Allgemeinen und zu funktionalen Sprachen im Besonderen, die ihre Vorteile bei den kommenden Multi-Core-Prozessoren zum Tragen bringen werden; diese Informationen werden auch meine Entscheidung für Wahlfächer in den kommenden Semestern motivieren. Walther Neuper war immer hilfreich in allen technischen Fragen zu Isabelle/Isar und in organisatorischen Fragen zu Bachelor-Projekt und -Thesis. Marco Steger Graz, am 30 Juni 2011 iv

7 Contents 1 Einführung 1 2 Definition der Aufgabenstellung Detaillierte Beschreibung der Aufgabenstellung Beleuchtung der Projekt-relevanten Technologien Back s Structured Derivations Der Texteditor jedit Das Plugin-System Pluginstruktur Isabelle Isabelle-Pure Isabelle-jEdit Paketstruktur von Isabelle Die Programmiersprache Scala Grundlage der Sprache Scala, Java und jedit Der Isabelle-Scala-Layer Konfiguration und Implementation der Komponenten Konfiguration des Netbeans- (NB-) Projektes Implementation der jedit Komponenten Erstellen des Plugin-Gerüsts Erzeugung des Plugins Verbindung zum Isabelle-Pure Plugin herstellen Run Configurations Umsetzung des SD-Parsers Ausblick: Von SD- zum ISAC-Plugin 14 6 Zusammenfassung und Rückblick Zusammenfassung Rückblick A Milestones und Arbeitsprotokolle 17 A.1 Inhaltliche Voraussetzungen erarbeitet: beendet am A.2 Technische Voraussetzungen hergestellt: beendet am A.3 NetBeans-Projekt aufgesetzt: beendet am A.4 Experimentelle Parser implementiert: beendet am A.5 Verfassen der Dokumentation und abschliesende Arbeiten: beendet am 30.Juni A.6 Präsentation der Arbeit im IST-Seminar: beendet am v

8 B Filestruktur Isabelle 22 B.1 jar-packete B.2 Scala-Files: Isabelle-Pure C Das Skript isac jedit 25 D Filestruktur für die Entwicklung des SD-Plugins 26 Bibliography 27 vi

9 List of Figures 3.1 Der Scala-Layer zwischen Java und SML jedit Plugins und die Verbindung zu Isabelle vii

10 1 Einführung Europa ist bei Computer Theorem Provern (CTP) weltweit führend, die zwei prominenten Prover sind Coq [B + 99] und Isabelle [Pau94]. Im Zuge der Weiterentwicklung der Informatik als Ingenieurs- Disziplin werden auch Anwendungsgebiete zunehmend mathematisiert [Bjø09], was wiederum CTP vermehrt auf den Plan ruft. CTP sind bis dato in Händen eines relativ kleinen Kreises von Experten, von denen der Großteil wiederum im akademischen Bereich arbeitet und nur ein kleiner Teil in der Industrie. Diese Experten bevorzugen Keyboard-Shortcuts (vor Menüs), reine Texte (ohne mathematische Sonderzeichen) und benutzen auch mit großem Aufwand hergestellte CTP-Entwicklungs-Umgebungen nicht, zum Beispiel die CoqIDE. Nachdem CTP nun unaufhaltsam in Entwicklungs-Umgebungen von Software- Ingenieuren vorzudringen beginnen (siehe zum Beispiel [AM03; Aic10]),stellt sich die Herausforderung neu, Frontends für die tägliche Entwicklungsarbeit mit integrierten CTP zu entwerfen. Einer der Vorschläge, wie Theorem Prover mit Front-ends zu verbinden wäre, findet sich in [ALW07]. Isabelle geht einen anderen Weg, indem es sich aktuellen technischen Herausforderungen stellt [Wen10]: Multicore-Maschinen versprechen erhöhten Durchsatz, falls Teile von Beweisen parallel abgearbeitet werden können. Isabelles Entwurf sieht vor, die Programmsprache Scala (insbesonders seine Actor-Library) als Bindeglied zwischen der Mathematik-Sprache SML und der gängisten Plattform für GUIs vor, der Java-Virtual-Maschine. Die Bachelorarbeit läuft im Rahmen des ISAC-Projektes. ISACs experimenteller Mathematik-Assistant baut auf dem SML-Teil von Isabelle auf und es ist geplant, auch sein Frontend in entsprechend geplanten Schritten an die aktuelle Entwicklung von Isabelle anzuschließen. Der erste Schritt geht einen Umweg, um die Technologie kennen zu lernen: Nicht ISACs Rechnungen (mit aufwändigen Interaktionen), sondern Backs structured derivations (SD) [BGvW98] sollen auf jedit und Isabelle aufgesetzt werden. Die Bachelorarbeit liefert die Machbarkeits-Studie für diesen Schritt. 1

11 2 Definition der Aufgabenstellung 2.1 Detaillierte Beschreibung der Aufgabenstellung Zu Beginn des Projekts wurden einige Vorgaben und Ziele des Projektes erarbeitet und im Laufe des Projekts angepasst wo notwendig. Es wurde bewusst auf eine zu einschränkende Aufgabenstellung verzichtet, da Entwicklungen und Erarbeitungen von verschiedenen Umsetzungsstrategien erwünscht war. Hauptaugenmerk war dabei auf die Erstellung eines jedit-plugins gelegt worden, das als Vorarbeit zu Back s Structured Derivations dienen soll. Mit anderen Worten, es sollte so viel Plugin-Code, wie im begrenzten Projektzeitraum möglich, implementiert werden. Weiters sollte eine Projektstruktur aufgebaut werden, die die Initialisierungsarbeiten von weiterführende bzw. nachfolgende Projekten erleichtert und somit verkürzt. Dabei sollte darauf geachtet werden, dass die vom Isabelleteam bereits verwendete Projekthierarchie soweit wie möglich übernommen bzw. erweitert wird. Die nachfolgende Auflistung soll die wichtigsten Tasks nochmals zusammenfassen: 1. Relevante Isabelle Komponenten identifizieren und studieren 2. Installation der Standard-Komponenten 3. Entwicklungsumgebung vom Isabelle-Team kopieren 4. Relevante Komponenten implementieren jedit Plugin für SD zugehörigen Parser nicht vorgesehen: SD-Interpreter in Isar (SML) In Abs.6.1 wird rückblickend zusammengefasst, welche dieser Punkte in welchem Ausmaß in dieser Bachelor-Arbeit erledigt wurden. 2

12 3 Beleuchtung der Projekt-relevanten Technologien Dieses Kapitel soll die vielen unterschiedlichen Technologien, die im Rahmen dieser Arbeit verwendet oder zumindest berührt wurden, beleuchten und dem Leser helfen, nachfolgende Zusammenhänge zu verstehen. Natürlich kann in keines der folgenden Themen sehr tief eingestiegen werden. Viel mehr sollen die nachfolgenden Ausführungen einen groben Überblick über die einzelnen Technologien geben. 3.1 Back s Structured Derivations Wie in der Aufgabenstellung bereits beschrieben, war die Erstellung eines Structured Derivation Plugins das Hauptziel dieser Arbeit. Aus diesem Grund wird in diesem Absatz kurz auf die von Prof. Ralph- Johan Back einführten Structured Derivations eingegangen und dessen Eigenschaften bzw. Zusammenhänge beschrieben. Das nachfolgende Beispiel zeigt ein einfaches Beispiel, wie eine Formel mittels SD dargestellt bzw. umgeformt werden kann: Simplify (1 x) (x 2 + 1) + x 3 x 2 (1 x) (x 2 + 1) + x 3 x 2 {RewriteSet purify} (1 + 1 x) (x 2 + 1) + x x 2 {RewriteSet simplify pure} (1 + 1 x) (x 2 + 1) + x x 2 {RewriteSet expand poly } 1 x ( 1 x x x 1) + x x x + 0 x x 3 {RewriteSet reduce 012 } x x {RewriteSet beautify} 1 x Dieses Beispiel kann wie folgt interpretiert werden: 1. Die erste Zeile ist als Angabe bzw. Ausgangspunkt der Berechnung zu verstehen. 2. Nun folgt der eigentliche Ablauf einer Umformung mittels SD: Mit der Formel in der zweiten Zeile beginnt die Berechnung. 3. Die nächste Zeile gibt nun an, wie die Formel aus der direkt darüberliegenden Zeile umgeformt bzw. aufbereitet wird. Es ist also eine Beschreibung bzw. die passende Rechenregel, um von der Ausgangsformel auf die nachfolgende Formel schließen zu können. 4. Aus dieser Rechenvorschrift ergibt sich die Formel in der nächsten Zeile. 5. Dieser Ablauf wiederholt sich und zieht sich über die weiteren Berechnungen. Back liefert mit SD eine sehr gute Darstellungs- und Verbarbeitungs-Richtlinie, die einerseits dem Leser/Anwender hilft, da durch die Regel- bzw. Beschreibungs-Zeile klar gestellt wird, wie der letzte Berechnungsschritt durchgeführt wurde. Andererseits bringt SD auch für den Programmierer einen klaren Vorteil, da über die vorgestellten Sonderzeichen das Parsen von SD-Code vereinfacht bzw. direkt (ohne extra Schlüsselwörter einführen zu müssen) möglich ist. 3

13 Chapter 3. Beleuchtung der Projekt-relevanten Technologien Der Texteditor jedit jedit ist ein in Java geschriebener und als Open-Source-Projekt erhältlicher Texteditor, der vor allem durch sein sehr gut entwickeltes und ebenso einfaches Plugin-Management-System sehr effektiv eingesetzt werden kann. Solche Plugins können direkt in jedit installiert oder durch manuelles Hinzufügen eines Plugin-Paketes genutzt werden. Dadurch ist dieser Editor sehr flexibel in der Anwendung und kann den eigenen Bedürfnissen perfekt angepasst werden. Diese Umstände sind wohl auch der Grund, warum sich die Entwickler von Isabelle für diesen Editor entschieden haben. Hierbei ist zu erwähnen, dass hier eine etwas modifizierte bzw. an Isabelle angepasste Version verwendet wird. Es empfiehlt sich daher, immer die aktuelle Version des Isabelle-jEdit-Editors (zb. aus dem Bundle erhältlich auf der Isabelle- Homepage) zu verwenden, da hier diverse Voreinstellungen vorgenommen wurden. In weiterer Folge wird mit jedit immer diese modifizierte Version des Editors in Verbindung gebracht, da die Verwendung der Grundversion aus oben genannten Gründen nicht zu empfehlen bzw. sinnvoll ist. Weiters sollte noch erwähnt werden, dass es rund um jedit einen sehr guten Support via Mailinglist gibt und man wirklich rasch Hilfestellung bekommen kann Das Plugin-System Wie im vorigen Abschnitt bereits erwähnt, ist es sehr einfach und bequem möglich, geeignete Plugins zu installieren bzw. zu verwenden. Es stehen bereits sehr viele verschiedenste Plugins auf der jedit- Homepage zur Verfügung. Diese werden ebenfalls als Open-Source-Projekte angeboten und es bietet sich daher an, bereits verfügbare und funktionierende Plugins als Teil eines neuen Plugins zu verwenden und gegebenenfalls kleine Modifikationen oder Erweiterungen an den Plugins durchzuführen. Im Beispiel von Isabelle wurden unter anderem die Plugins Sidekick und Konsole verwendet. Dabei ist es möglich, dass Java-Plugins mit Scala-Plugins kombiniert werden, da diese auch problemlos miteinander kommunizieren können. jedit bietet einen Plugin-Manager an, mit dem sich sehr einfach bereits installierte Plugins verwalten und updaten lassen und es ist auch möglich, neue Plugins direkt zu installieren. Weiters bietet sich die Möglichkeit, selbst implementierte Plugins direkt zu den bereits vorhandenen jedit-plugins hizuzufügen. Dazu muss das erzeugte Plugin.jar Paket ledigich in den jars-ordner verschoben werden. Beim Start von jedit wird das neue Plugin automatisch erkannt und hinzugefügt. Man muss aber darauf achten, dass Änderungen nur nach einem Neustart von jedit übernommen werden Pluginstruktur Ein solches jedit-plugin muss natürlich ein gewisses Design umsetzen, um von jedit korrekt ausgeführt werden zu können. Grundsätzlich besteht ein solches Plugin aus den eigentlichen Sourcefiles und einigen XML- und Property-Datein. Ein möglicher Aufbau kann dem Beispiel-Plugin QuickNotepad 1, das auf der jedit-homepage zu finden ist, entnommen bzw. als Ausgangspunkt für die Entwicklung eines eigenen Plugins herangezogen werden. Weitere Informationen können auch dem Paper Userinterfaces for Computer Theorem Provers entnommen werden. 3.3 Isabelle Isabelle ist einer der führenden CTPs und an dessen Weiterentwicklung wird ständig gearbeitet. Der letzte große Schritt betraf den Umstieg von reinem ML auf die Mischsprache Scala(mit funktionalen sowie imperativen Sprachanteilen). Weiters wurde der in die Jahre gekommene Proof General und der damit in Verbindung stehende Editor Emacs durch den vielseitigen Editor jedit ersetzt. Dadurch ergeben sich auch für das laufende ISAC-Projekt an der TU Graz neue Möglichkeiten. Wichtig im Zusammenhang mit dieser Beschreibung ist zu erwähnen, dass hier in weiterer Folge nur noch für jedit bzw. Scala 1

14 Chapter 3. Beleuchtung der Projekt-relevanten Technologien 5 relevante Teile von Isabelle behandelt und beschrieben werden. Weiters ist wichtig zu wissen, dass für die bereits bestehende Struktur rund um Isablle-jEdit zwei Isabelle-Pakete zum Einsatz kommen. Auf diese Pakete soll in den nächsten Passagen eingegangen werden Isabelle-Pure In diesem Plugin ist der eigentliche CTP-Teil von Isabelle verpackt. Das bedeutet im weiteren Sinn, dass es hier keine grafische Verarbeitung der Daten gibt, sondern der Zugriff von aussen erforderich ist, um den CTP mit Daten zu versorgen und diese nach deren Verabreitung in Isabelle-Pure auszuwerten. Also ist nur hier eine Schnittstelle zum eigentlichen Proofer möglich und deshalb ist dieses Plugin für das ISAC-Projekt von zentraler Bedeutung. Standardmäßig ist bereits ein Pure.jar-Paket für jedit vorhanden. Um SD umsetzten zu können, muss hier eine Schnittstelle zu Isabelle-Pure implementiert werden. Nach diesem Schritt kann das Plugin Pure.jar neu gebaut werden. Eine Auflistung der für das Isabelle-Pure- Packet benötigten Scala-Source-Filles kann Anhang B.2 entnommen werden Isabelle-jEdit Dieser Teil von Isabelle repräsentiert das Frontend in jedit. Hier wird also die grafische Aufbereitung der von Isabelle-Pure berechneten Daten übernommen. Dieses Plugin zeigt sehr schön, wie bereits bestehende Plugins weiter genutzt und erweitert werden können. An diesem Plugin wird von Seiten der Isabelle-Entwickler sehr stark weitergearbeitet. Darum sollten hier wohl nicht zu viele, am besten natürlich keine Änderungen, vorgenommen werden. Der Umstand, dass sich einzelne Plugins ganz einfach in einem anderen mitverwenden lassen, macht es möglich, dass das ISAC-Plugin sehr einfach, im Idealfall von Seiten der Isabelle-Entwickler, in das Isabelle-jEdit-Plugin integriert werden kann Paketstruktur von Isabelle Durch die Komplexität des Isabelle-Entwicklungs-Aufbaus soll hier eine Auflistung aller relevanten jar- Pakete erfolgen. Alle Pakete befinden sich innerhalb der Ordnerstruktur von ISABELLE HOME. Darum wird ab hier immer von diesem Verzeichnis ausgegangen. Die nachfolgende Auflistung zeigt alle Pakete, die für SD bzw. ISAC von Bedeutung sind und und wo diese zu finden sind. contrib/jedit Isabelle-6d736d983d5c/jars: Isabelle-jEdit.jar, Pure.jar, SideKick.jar,... Der Ordner contrib ist in der Repository-Version nicht vorhanden! Dieser kann dem Isabelle-Bundle entnommen werden. Hier befinden sich alle benötigten Zusatztools für Isabelle und darunter eben auch jedit. In dem oben angeführten Ordner liegen alle Plugins bzw. dorthin werden alle Plugins kopiert, die zusammen mit jedit gestartet werden sollen. lib/classes: isabelle-scala.jar, pure.jar; Standardmäßig ist dieser Ordner nicht vorhanden. Erst durch Erzeugen der angeführten jar s werden dieser Ordner und die Pakete erstellt. src/tools/jedit/dist/jars: Isabelle-jEdit.jar, Pure.jar, SideKick.jar, jedit.jar,... src/tools/jeditc/dist/jars: Isabelle-jEdit.jar, Pure.jar, SideKick.jar, jedit.jar,... Diese beiden obigen Verzeichnisse sind, wie man an der sehr ähnlichen Pfadstruktur erkennen kann, äquivalent, wobei der zweite Pfad zum ISAC-Entwicklungsverzeichnis gehört. Hier sind die für das IsabellejEdit- bzw. ISAC-Plugin benötigten Plugins und Pakete plus das erzeugte Plugin zu finden. src/tools/jeditc/contrib/jedit/build/jars: Isabelle-jEdit.jar, Pure.jar, SideKick.jar, jedit.jar,... Diesen Aufbau benötigt man nur, wenn man das jedit-isac-projekt direkt in NetBeans debuggen möchte. Man erkennt, dass in diesem Verzeichnis der vollständige Quellcode von jedit plus allen Plugins, die zusammen mit jedit gestartet werden sollen, hier zu finden sind. Wie aber bereits erwähnt, ist vom direkten Debuggen generell abzuraten bzw. sollte dies nur für schwer nachvollziebare Abläufe ohne Isabelle-Beteiligung angewendet werden.

15 Chapter 3. Beleuchtung der Projekt-relevanten Technologien 6 Siehe dazu auch Anhang B. Dort sind alle relevanten jar-pakete noch einmal aufgelistet und entsprechend gruppiert. 3.4 Die Programmiersprache Scala Ursprünglich wurde Isabelle rein in ML entwickelt. Erst vor ein paar Jahren wurde mit der Übersetzung von einigen Teilen in Scala begonnen. Grund genug, sich hier kurz diese neue und sehr vielseitige Sprache etwas genauer anzusehen Grundlage der Sprache Scala [O + 06] ist eine objektorientierte Sprache, die sehr ähnlich zu Java aufgebaut wurde. Dadurch wird die Einarbeitung in diese Programmiersprache für Java-Programmierer sehr vereinfacht. Neben den Vorteilen einer objektorientierten Sprache deckt Scala aber auch die Bedürfnisse der funktionalen Programmierung [MTHM97] ab. Dies, und vorallem auch das von Erlang [A + 96] übernommene und sehr gut umgesetzte Actorprinzip [HO09; HO06], sind wohl die Hauptgründe, warum sich das Isabelle- Entwicklungsteam für diese Sprache entschieden hat. Wie bereits erwähnt, ist Scala sehr ähnlich aufgebaut wie Java und hat nebenbei noch den großen Vorteil, dass Scala-Executables in der JVM (Java virtual Machine) ausführbar sind. Dadurch ist die Plattformunabhängigkeit garantiert und es besteht ein direkter Zusammenhang zwischen Scala und Java der auch bei der jedit-plugin-entwicklung ausgenutzt bzw. verwendet wird. Dieser direkte Zusammenhang zwischen Java und Scala soll anhand der Grafik-Bibliotheken Swing gezeigt bzw. die Vorteile, die daraus resultieren, beleuchtet werden. Beide Sprachen stellen diese Grafik-Bibliotheken zur Verfügung (und darin auch eigene Shapes und Funktionalität). Es ist jedoch möglich, Java-Bibliotheken, wie eben Java-Swing in Scala zu verwenden. Ein JButton(Java) kann zum Beispiel mittels import javax.swing.jbutton in Scala eingebunden und damit sofort verwendet werden. Auch Scala stellt in seiner Swing-Bibliothek einen Button zur Verfügung: scala.swing.button. Es wird nahezu dieselbe Funktionalität angeboten und teilweise die Erzeugung bzw. Verwendung vereinfacht. Man kann sich nun fragen, warum sich die Scala-Entwickler einerseits die Mühe gemacht haben, die Verwendung Java-Swing, wie in Java selbst, möglich zu machen und andererseits mit Scala-Swing eine nahezu idente Alternative geschaffen haben. Die Antwort darauf zeigt, wie die Objektorientiertheit von Scala in vielen Bereichen ausgenutzt wurde, um die Sprache mit Funktionalität auszurüsten, denn es wurde kein neues Konzept für diese Grafikklassen entworfen, sondern Wrapper-Objekte/ Methoden/Klassen erstellt, die das Arbeiten mit diesen Grafikkomponenten erleichtern soll. Ein Letztes Problem bleibt noch: Es ist zwar sehr einfach ein Java-Swing-Objekt an einen Scala-Swing-Container (zb. Frame) anzubinden, da eine Konvertierung einer Java-Komponente in ein Scala-äquivalent problemlos möglich ist. Jedoch ist oft auch die Konvertierung einer Scala- in eine Java-Komponente nötig. Dies kann ganz einfach mittels (peer)-befehl der Komponente erreicht werden. Das angeführte Beispiel soll zeigen, wie vielseitig Scala sein kann und welch enormes Potenzial in dieser noch sehr jungen Sprache steckt. Natürlich gibt es dazu eine sehr gut aufgebaute Entwickler- Homepage 2, die Tutorials, Plugin für diverse IDEs und weitere nützliche Hilfestellungen für Scala- Neulinge bereitstellt Scala, Java und jedit Wie im letzten Abschnitt bereits beschrieben, kommen bei jedit Java- sowie auch Scala-Komponenten zum Einsatz bzw. werden sogar zu logischen Einheiten kombiniert. So ist zum Beispiel jedit selbst rein 2

16 Chapter 3. Beleuchtung der Projekt-relevanten Technologien 7 Figure 3.1: Der Scala-Layer zwischen Java und SML in Java geschrieben und das Plugin Isabelle-jEdit rein in Scala. Trotzdem gibt es überhaupt kein Problem, diese beiden jar-file miteinander bzw. ineinander in der JVM zu nutzen. Es geht sogar so weit, dass es möglich ist, dass das Plugin Isabelle-jEdit bereits vorhandene und rein in Java geschriebene Plugins erweitert und nutzt. Dieses Zusammenspiel zwischen Objekten aus zwei verschiedenen Sprachen ist doch recht außergewöhnlich und kann bzw. sollte natürlich auch für SD bzw. ISAC ausgenutzt werden! Der Isabelle-Scala-Layer Es sollten nun die Grundlegenden Eigenschaften von Scala bekannt sein. Die Einführung des Scala- Layers ab Isabelle-Version 2009 war ein grosser Schritt für das Isabelle Projekt. Das Scala-Actor- Konzept ermöglicht die asynchrone Verarbeitung von einzelnen Beweisteilen und ist einer der massgeblichen Gründe für die Einführung des Scala-Layer. In diesem Absatz sollen nun die Eigenschaften des Scala-Layers und die damit verbundenen Chancen für das Isac- bzw. SD-Projektes erarbeitet werden. Wie Fig.3.1 zeigt, verbindet der Scala-Layer die Java Virtual Maschine (JVM) und den in Standart- ML (SML) geschriebenen Isabelle-Kern. Dabei wird ein internes Protokoll verwendet, dass den Datenaustausch zwischen jedit und Isabelle/Isar ermöglicht. Dieses Protokoll ist im Moment noch (bewusst) ohne API ausgeführt. Aus diesem Grund musste eine Schnittstelle definiert werden, um den Datenaustausch des SD-Plugins (JVM) mit dem SD-Interpreter möglich zu machen. Siehe dazu den Absatz Verbindung zum Isabelle-Pure Plugin herstellen. Man kann aus diesem Umstand ableiten, dass die Isabelle-Entwickler mit diesem eingezogenen Scala-Layer und dem damit verbundenen internen Protokoll, auf eine konsistente Verwaltung der Theorie-Bibliotheken abzielen. Mit anderen Worten wird dem Anwendungsprogrammierer der direkte Zugriff auf die Isabelle/Isar-Komponente verwehrt. Der Anwender sollte hier also nicht angreifen sonder die Isabelle-Theorien entsprechend erweitern.

17 4 Konfiguration und Implementation der Komponenten Dieses Kapitel soll nun anhand der bereits gewonnen Erkenntnise illustrieren, wie die Entwicklungsumgebung vom Isabelle-Team kopiert wurde und wie wichtigsten Schritte zum SD-Plugin für jedit wahrscheinlich aussehen werden. Wobei einige Schritte parallel und dadurch natürlich sehr gut im Team umgesetzt werden können. Eine genaue Aufstellung aller beteiligten Files können dem Anhang D entnommen werden. 4.1 Konfiguration des Netbeans- (NB-) Projektes Um in künftigen Entwicklungsvorhaben effizient kooperieren zu können, wurde das NB-Projekt genau nach den Vorgaben des Isabelle-Teams konfiguriert. Voraussetzung für die Konfiguration sind die Files aus dem Repository laut Anhang D. Die Konfiguration des NB-Projektes testsd-jedit erfolgt in folgenden Schritten: 1. Softwarekomponenten aus dem Isabelle bundle checken; diese sind alle im Verzeichnis contrib: (a) contrib/scala-... Scala-Compiler und Runtime-System (b) contrib/scala-... jedit (c) src/tools/jeditc der Code für das Test-Plugin 2. Konfigurations-Files von Netbeans im Files -View checken; Achtung: die Files beeinflussen sich gegenseitig, direkte Eingriffe sind problematisch: (a) build.xml wurde direkt aus dem Template in src/tools/jedit/ erzeugt; von hier nimmt NB die Daten um Daten in (Teilen von den) anderen Konfigurations-Files zu ändern; NB nimmt hier keine automatischen Veränderungen vor. (b) nbproject/build-impl.xml z.t. automatisch erzeugt aus build.xml und z.t. untenstehenden Files (c) nbproject/genfiles.properties (d) nbproject/project.properties, z.b. Projekt-Name (e) nbproject/project.xml 3. Sacla-plugin installieren laut (a) insbesonders siehe Install with NetBeans 6.9 (b) nach /usr/local/netbeans.../plugins/scala/ kopieren 4. Scala-plugin in NB installieren (a) Menü > Tools > Plugins > Downloaded > Add Plugins (b) alle Files von /usr/local/netbeans.../plugins/scala/ auswählen (c) Fenster in Add Plugins zeigt alle ausgewälten Files (d) <Install> ruft den Wizzard auf, <Next> erzeugt i.a. ein Warning das zu übergehen ist (e) Funktionstest: Menüe > Files > New Project: zeigt Scala als Categories 5. Neues Projekt testsd-jedit konfigurieren (a) Menü > Open Project (weil schon aus dem Repository die notwendigen Files vorhanden sind) 8

18 Chapter 4. Konfiguration und Implementation der Komponenten 9 (b) /src/tools/jeditc: Reference Problems, weil jedit die Plugins von 5(d)iii braucht (c) Funktionskontrolle: Projects -View zeigt das neue Projekt. Die Konfigurations-Files sind völlig getrennt von denen anderer Projekte! (d) Referenz-Probleme beheben; das zeigt auch eventuell fehlende Files: i. Projects -View > rightmouse > Resolve Reference Problems: Fenster zeigt dieliste der fehlenden Dateien; <Next> ii. Files holen aus Tools > Libraries: über Filebrowser aus dem Isabelle bundle holen contrib/jedit Isabelle-6d736d983d5c/jars iii. New Library A. Cobra-renderer: cobra.jar B. Console: Console.jar C. ErrorList: ErrorList.jar D. Hyperlinks: Hyperlinks.jar E. Isabelle-Pure: Pure.jar F. Rhino-JavaScript: js.jar G. Scala-compiler: scala-compiler.jar H. SideKick: SideKick.jar iv. Funktions-Kontrollen A. das kleine gelbe Warndreieck im Projects -View ist verschwunden B. im Projects -View sind nun 2 Ordner: src und Libraries (e) jedit-paket zum testsd-jedit -Projekt hinzufügen i. Project -View > rightmouse > Add Jar/Folder: Filebrowser ii. /contrib/jedit.../jedit.jar iii. Funktions-Kontrolle: ist in Projects /Libraries/jedit.jar (f) Das neue Projekt testsd-jedit zum Hauptprojekt machen: Project -View > rightmouse > Set as Main Project; Funktions-Kontrolle: der Projektname ist boldface. 6. den neuen Isabelle/Scala-Layer (Pure.jar) erzeugen mit bin/testsd; siehe Pkt.3 unten. Ab nun wird die Konfiguration über trial and error zu Ende geführt; die unten angeführten Fehler entstanden durch Umbenennung des Projektes von isac-jedit auf testsd-jedit während der oben beschriebenen Installation. 1. Build des Plugins schlägt fehl: Menü > Build Main (a) Fehler: Target Isac-impl.jar does not exist in the project testsd-jedit. It is used from target debug i. Versuch build-impl.xml löschen NetBeans neu starten, stellt build-impl.xml automatisch aus build.xml wieder her... hat in diesem Fall nicht geholfen ii. Versuch zur Vermutung: Projekt wurde umbenannt von Isac in testsd-jedit, entsprechende Einträge in den Konfigurations-Dateien wurden automatisch richtig ersetzt, aber nicht in build.xml in build.xml query-replace isac-jedit in testsd-jedit (b) Fehler: Problem: failed to create task or type scalac i. Versuch: Pfad zum Scala bekanntgeben /usr/local/netbeans-6.9.1/etc/netbeans.conf: netbeans default options=... richtigen Scala-Pfad setzen

19 Chapter 4. Konfiguration und Implementation der Komponenten 10 build-impl.xml löschen NetBeans neu starten (siehe 1(a)i). (c) Wenn Fehler: /usr/local/isabisac/src/tools/jeditc/$project.jedit/modes does not exist i. grep -r project.jedit * ii. nbproject/project.properties: project.jedit=contrib/jedit 2. Fehlersuche in den Project Files, nicht in build.xml: src/tools/jeditc/src/testsd.scala:225: error: value Isac is not a member of package isabelle (a) den Link zu testsd.scala:22 folgen (b) als Zwischenschritt eine noch nicht erzeugte Class Isac auskommentieren; siehe Pkt.2g unten val str1: String = isabelle.isac.parse( Testdaten aus dem Parser! ) val str1: String = TEST //isabelle.isac.parse( Testdaten aus dem Parser! ) (c) nochmals Menü > Build (Hammer)... successful (wegen auskommentierter Zeile) (d) in der Konsole beobachten, welche Files kopiert werden und vergleichen mit build.xml, z.b. <target name= -pre-jar > <target name= -post-jar > (e) bin/testsd ausführen... (f) =dots stellt den entscheidender Schritt dar: ein neues Pure.jar wurde erzeugt; dieses ist nun erweitert mit einer class Isac; diese Klasse wurde erzeugt durch Code in scr/pure/isac/isac.scala (g) den Zwischenschritt Pkt.2b oben rückgängig machen: val str1: String = isabelle.isac.parse( Testdaten aus dem Parser! ). Dieser Befehl braucht das neue Pure.jar am richtigen Platz... (h)... das Shellscript bin/testsd jedit erzeugt dieses Pure.jar 3. Fehler beim Exekutieren von bin/testsd (a) einfach auf die error messages schauen, eg. src/pure/: no such file or directory... (b)... heißt, dass das Skript nicht vom richtigen Pfad gestartet wurde dieses Skript sollte also verbessert werden. (c) Funktionstest: ### ### Building Isabelle/Scala layer ### 4. Fehlermeldung beim Starten des Plugins aus NB, die übergehen sind: /home/neuper/.jedit/jars/console.jar: Two copies installed. Please remove one of the two copies. /home/neuper/.jedit/jars/hyperlinks.jar: Two copies installed. Please remove one of the two copies. /home/neuper/.jedit/jars/sidekick.jar: Two copies installed. Please remove one of the two copies. /home/neuper/.jedit/jars/errorlist.jar: Two copies installed. Please remove one of the two copies. Fehler zu beseitigen mit rm -r /jedit/jars 5. Referenzproblem auf Pure.jar: siehe Pkt.5d auf S.9.

20 Chapter 4. Konfiguration und Implementation der Komponenten Implementation der jedit Komponenten Erstellen des Plugin-Gerüsts Hier gilt es, erstmal den Umfang der gewünschten Anforderungen an das Plugin so genau wie möglich zu identifizieren. Hat man eine sehr genaue Vorstellung, wie das GUI des Plugins aussehen wird und welche Zusatz-Features angeboten werden sollen, so kann man gezielt unter den bereits bestehenden Plugins für jedit nach nützlichen Plugins suchen, die in das SD-Plugin (möglicherweise durch kleine Modifikationen) integriert werden können. Dies spart einerseits sehr viel Zeit und ist nebenbei genau die Art von Programmierung, die durch die offnene Plugin-Struktur von jedit gefördert wird. Hat man nun die Planung abgeschlossen und möglicherweise nützliche Plugins gefunden, kann mit der Programmierung des GUIs begonnen werden. Man sollte hier beachten, dass man von Beginn an festlegt, ob mit Scala- oder Java-Swing Komponenten gearbeitet werden soll. Es ist zwar möglich, beide Formen zu mischen, doch aus Klarheitsgründen sollte man sich für eine Art entscheiden. Wobei hier die Empfehlung im Moment eher noch Richtung Java-Swing geht, da man hier eigentlich für jede Art von Problem bzw. Aufgabe bereits HowTo s im Web finden kann. Da bei Scala-Swing nur Wrapper auf die Java-Swing-Libraries gesetzt wurden, entsteht dadurch auch keinerlei Performance-Verlust. Es existiert bereits ein beispielhaftes Plugin am ISAC-Repository. Da der grundsätzliche Aufbau eines jedit-plugins soweit umgesetzt wurde und bereits lauffähig ist, sollte man dieses wohl als Ausgangspunkt verwenden. Die direkte Verwendung eines Isabelle-Klons ist wohl zu Beginn nicht zu empfehlen bzw. sollte meiner Meinung nach die Integration von Isac in Isabelle bzw. die Verwachsung der beiden Plugins das Fernziel sein und dadurch würde der Klon-Vorgang wohl eher Probleme schaffen als sie zu lösen Erzeugung des Plugins Hat man die Planung des Plugin-Gerüsts abgeschlossen und die eigentliche Implementationsphase begonnen, kann dieses Plugin getestet bzw. erzeugt und via jedit ausgeführt werden. Dazu muss zuerst das jar-file erzeugt und danach in den jedit-pluginsordner verschoben werden. Die Erzeugung kann natürlich direkt mittels NetBeans durchgeführt werden. Doch es ist auch möglich dies via Kommandline durchzuführen. Folgende Schritte illustrieren wie die Erzeugung und der Kopiervorgang des Plugins durchgeführt werden können(ausschnitt aus dem Skript isac jedit, Anhang C): 1. Das Plugin kann mittels Kommandline folgendermaßen erstellt werden: cd ISABELLE HOME/src/Tools/isac/jEdit ant jar 2. Nun kann das das neue Plugin ganz einfach kopiert werden cp contrib/jedit/build/ // jars/isac.jar../../../../contrib/jedit Isabelle-6d736d983d5c/jars/ 3. jedit ausführen und testen Verbindung zum Isabelle-Pure Plugin herstellen Der nächste Schritt sieht nun die Versorgung des GUIs mit Daten vor. Da das jedit-plugin selbst nicht rechnen/interpretieren kann, müssen Daten an den Isabelle-Kern, also das Isabelle-Pure-Plugin, Pure.jar, weitergegeben werden. Dort können die Daten verwertet und aufbereitet zurück an das Frontend gereicht werden. Fig.4.1 zeigt die involvierten Komponenten und ihren Zusammenhang. Der Zusammenhang zwischen dem Kern von Isabelle, Isabelle-Pure und dem Plugin wird folgendermaßen hergestellt: Zunächst wird Pure.jar leicht modifiziert, danach neu erstellt und zuletzt zu den restlichen jedit-plugins hinzugefügt. Dies wurde auf der aktuellen Version am Repository bereits erledigt. Folgende Schritte wurden dazu gesetzt und sind wieder nötig, da sicher weitere Modifikationen an der Datei Pure.jar nötig sein werden.

21 Chapter 4. Konfiguration und Implementation der Komponenten 12 Figure 4.1: jedit Plugins und die Verbindung zu Isabelle 1. Um den ISAC-Teil im Isabelle-Pure genau abzugrenzen, wurde ein Ordner Isac angelegt und ein Testfile isac.scala erstellt. 2. Nun muss diese File natürlich dem Make-Skript ISABELLE HOME/src/Pure/build-jars hizugefügt werden, um beim Erzeugen des jar-files mitverpackt zu werden. 3. Nun kann Pure.jar mittels Kommandline erstellt werden: cd /src/pure../../bin/isabelle env./build-jars 4. Nun kann das das neue Plugin ganz einfach kopiert werden cp../../lib/classes/pure.jar../../contrib/jedit Isabelle-6d736d983d5c/jars/ 5. jedit ausführen und testen Alle die oben angeführten Punkte, sowie das Erzeugen und Kopieren des Plugins selbst, werden vom Script isac jedit erledigt. Das Skript kann dem Anhang C entnommen werden. 4.3 Run Configurations Zwischen Isabelle und Isabelle2011 hat sich viel geändert. Jetzt mit Isabelle2011 sieht es folgendermaßen aus: Am Anfang der Plugin-Entwicklung wird man versuchen, ohne eine Verbindung zu Isabelle auszukommen; in späteren Phase wird man genau diese Verbindung brauchen. Starten eines Plugins in NB mit gleichzeitigem Hochfahren von Isabelle ist schwierig. Folgende Möglichkeiten gibt es beim Debuggen: 1. Man macht alles in Netbeans. Mit dem -Disabelle.home=... sollte man die Applikation direkt aus der IDE starten und profilen/debuggen können. Das war der ursprüngliche Plan des ganzen Setups, d.h. der Grund warum er so kompliziert ist. 2. Man startet aus der Shell über isabelle jedit -d und verbindet dann den Netbeans debugger (oder jeden anderen JVM debugger) über den hier ausgegebenen Port. 3. Man startet isabelle jedit, geht dann in das Console Plugin und wählt dort das Scala Sub- Plugin aus. Nach ca. 5s Bedenkzeit steht der interaktive Scala toplevel innerhalb von Isabelle/jEdit zur Verfügung. Nun kann man direkt Dinge auswerten etc. und schauen was passiert.

22 Chapter 4. Konfiguration und Implementation der Komponenten 13 Auf dem Cambridge Workshop 2010, T06 System.thy sind Beispiele zu finden. Siehe subsection Isabelle/Scala. Man aktuviert dazu Isabelle/jEdit mit obigem thy File und kopiert die Scala snippets aus dem Text zeilenweise in das Console/Scala Fenster. 4. Man streut einfach System.err.println in seinen Code ein. Die Möglichkeiten (3) oder (4) sind zu bevorzugen. Ferner gibt es einige externe JVM Diagnose-Tools. Zu nennen sind jvisualvm oder jconsole um threads, heaps, profiles etc. anzuschauen, da sich das alles gerne verheddert. Richtig koordiniertes Hochfahren aller Komponenten braucht ein Shellscript wie isabelle jedit. 4.4 Umsetzung des SD-Parsers Aus diversen Gründen wurde dieser Punkt im Zuge dieser Projektarbeit nicht mehr umgesetzt sonder nach hinten verschoben. Jedoch gibt es bereits eine Version des Parsers in ML und diese kann in einigen Arbeitsstunden in Zusammenarbeit mit Herrn Neuper in Scala übersetzt und eingesetzt werden. Es ist bereits ein Parser in ML im Isabelle-Verzeichnis vorhanden, src/pure/isar/ parse.ml. Hier werden sogannte parse combinators verwendet. Dasselbe wird in nächster Zeit von Seiten des Isabelle- Team auch für den Scala-Parse implementiert. Dadurch lassen sich hieraus auch wichtige Erkenntnisse gewinnen und dies spricht ebenfalls für die Verschiebung dieses Milestones nach hinten.

23 5 Ausblick: Von SD- zum ISAC-Plugin Die obigen Schritte sind nötig, um das vorläufige Plugin SD umzusetzen. Natürlich beginnt danach die spannende Arbeit erst so richtig. Ist erst mal ein funktionierender SD-Parser vorhanden, kann dieser immer weiter verbessert und verfeinert werden, bis man auch damit beginnen kann, ihn für das ISAC- Projekt zu nutzen. Daneben kann an der Weiterentwicklung des GUIs gearbeitet werden und die ersten Schritte zur Annäherung an das Isabelle-Plugin können hier erfolgen. 14

24 6 Zusammenfassung und Rückblick Zusammenfassend wird nun ein Überblick gegeben, welche Milestones erledigt wurden und welche nicht; Details dazu finden sich in Anhang A. Abschließend gebe ich einen Rückblick auf meine persönlichen Erfahrungen aus dieser Bakkalaureats-Arbeit. 6.1 Zusammenfassung Folgende Milestones wurden erfolgreich abgeschlossen: 1. Relevante Isabelle Komponenten dokumentiert 2. Installation der Standard-Komponenten: Mercurial Versioncontrol NetBeans IDE Standard Isabelle Bundle 3. Entwicklungsumgebung vom Isabelle-Team kopieren Isabelle-Sources vom Repository München (Java, Scala, ML) jedit als NetBeans Projekt definiert 4. Relevante Komponenten implementieren jedit Plugin für SD Verbindung des Plugins zu Isabelle zugehörigen Parser: nur ein Test in SML Aus Zeitgründen war nicht möglich, ein komplettes SD-Plugin zu implementieren; dazu wäre auch ein Interpreter für SD auf der ML-Seite nötig gewesen. Voraussetzungen für künftige Entwicklung geschaffen: 1. für die Implementation von structured derivations in Isabelle als Vorarbeit für jedit als künftiges ISAC-Frontend 3. für Mitarbeit an künftiger Integration von Isabelle in Entwicklungswerkzeuge (Testcase-Generation etc). 6.2 Rückblick Isabelle ist ein sehr großes Softwarepacket mit mehreren Millionen LOC. Daher gestaltete sich die Einarbeitungsphase sehr schwierig und kostet sehr viel Zeit. Erschwerend kam hinzu, dass ich von Beginn an mit mehreren, für mich noch ganz neue, Technologien arbeiten musste. Diese Herausforderungen schon zu Beginn machten die Arbeit an ISAC von Beginn an spannend. Hier ist mir vorallem die gemeinsam mit meinem Betreuer Herrn Walther Neuper durchgeführte Installationsarbeit von Isabelle in Erinnerung geblieben. Nie zuvor hatte ich für eine Installation von Software so lange gebraucht - eine ganz neue, wichtige Erfahrung. Einer der bedeutensten Milesteine war rückblickend wohl, die Verzeichnisstruktur von Isabelle grundsätzlich verstanden zu haben. Bei einem Softwarepacket von dieser Größe war es wichtig zu wissen, wo man Files suchen/modifizieren/einfügen muss, um den gewünschten Effekt erreichen zu können. 15

25 Chapter 6. Zusammenfassung und Rückblick 16 Der nächste wichtige Schritt war das bereits teilweise bestehende NetBeansprojekt lauffähig zu machen und mir damit zum ersten mal selbst das jedit-isabelle-plugin erzeugen zu können. Dies war ein sehr bedeutsamer Schritt, da ich hier zum einen NetBeans und dessen Konfiguration besser kennenlernen konnte und zum anderen sehr viel über die Pluginstruktur eines jedit-plugins lernen konnte. Zu Beginn machte mir hier der Mix aus Scala-, Java-, XML- und diversen Config-Files Probleme. Bis jetzt hatte ich eigentlich noch nicht wirklich mit der Programmierung des Plugins begonnen doch es waren schon zig Arbeitsstunden rein für Einarbeitungs- und Vorbereitungsaufgaben verstrichen - wieder eine neue Erfahrung für mich. Nach einigen Test- bzw. Beispielprogrammen um die Sprache Scala etwas kennenzulernen, begann die wohl spannenste Phase im Projektverlauf. Das in Java geschriebene Beispielplugin Quick-Notepad wurde in Scala übersetzt und etwas abgeändert. Der letzte wirklich bedeutende Schritt war Herstellung der Verbindung zwischen Isabelle-Pure und ISAC. Dieser Punkt ist sehr wichtig, da ohne diese Schnittstelle die Planung des SD-Parser nicht möglich gewesen wäre. Der letzte Schritt, also die Implementation des SD-Parsers wurde aufgeschoben, da es derzeit seitens des Isabelle-Teams ebenfalls Bestrebungen gibt, einen neuen Scala-Parser zu designen und wir von diesen Erkenntnissen mit Sicherheit in der Zunkft profitieren können.

26 A Milestones und Arbeitsprotokolle A.1 Inhaltliche Voraussetzungen erarbeitet: beendet am Kenntnis der Grundlagen und Anwendung von CTP: beendet am Charakteristika der Programmsprache Scala: beendet am Scala Actors: beendet am Datum Tätigkeit Einheiten Meeting: erste Besprechung und Erklärungen zu Isabelle, 2 Isac und CTPs Recherche über Isabelle und CTPs Meeting: Besprechen der grundsätzlichen Vorgangsweise 1 und Ziele Isabelle: Ziele, Techniken (ML) und Zusammenhänge 1 mit Isac abklären Ende der Einarbeitungstage: weitere Vorgensweise 3 über Backs structured derivations ; Begriffserklärung Recherche: Buch für Scala Isabelle bestehende Technologie studieren Einarbeiten in Scala: Unterschiede zu Java indentifizieren Einarbeiten in Scala: Unterschiede zu Java indentifizieren, 4 erste Beispielfiles Einarbeiten in Scala: funktionale Seite von Scala Einarbeiten in Scala: Testfiles mit Scala-Swing Studieren von Papers zu Scala Actors Scala: Arbeiten mit Klassen und Schnittstellen Scala: Experimente mit Java in Scala-Source Scala: Testfiles zu Funktional vs Imperativ 4 Anzahl der Einheiten 44 A.2 Technische Voraussetzungen hergestellt: beendet am Isabelle installiert, Filestruktur bekannt: beendet am Scala in NetBeans eingebunden: beendet am Mercurial installiert und einrichten des Repositories: beendet am

27 Appendix A. Milestones und Arbeitsprotokolle 18 Datum Tätigkeit Einheiten Beginn der Installationsarbeiten: Repo klonen und 6 testen Installationsarbeiten, Einarbeiten in Filestruktur Einarbeiten in Filestruktur Vorbereitungen: NetBeans, JDK und Scala installieren. 8 Scala in NetBeans integrieren Isabelle-jEdit-Plugin mittels NetBeans ausführen: 5 testen Isabelle-jEdit-Plugin: änderungen an der Projektstruktur Experimente mit Isabelle-jEdit-Plugin Identifikations der Parse-Einstiegsstelle Experimente mit Isabelle-jEdit-Plugin, Besprechung 4 über Erfahrungen mit Filestruktur Installationen und einrichten des Repos auf meinen Laptop 6 Anzahl der Einheiten 60 A.3 NetBeans-Projekt aufgesetzt: beendet am Grundlegende Projektstruktur für ISAC hergestellt: beendet am jedit-plugin: XML-Files für ISAC vorbereitet: beendet am jedit-plugin: Source files geschrieben: beendet am

28 Appendix A. Milestones und Arbeitsprotokolle 19 Datum Tätigkeit Einheiten Projektstruktur anlegen, build.xml anpassen jedit-plugin-struktur studieren: Howto durcharbeiten bestehende jedit-plugins (Java) durcharbeiten Kopieren des Isabelle-jEdit-Plugins, Umarbeiten für 3 ISAC Umarbeiten des Isabelle-Plugins für ISAC Problem mit Isabelle-Umgebungsvariable: Suche 3 nach Lösungen Recherchen zum Umgebungsvariable-Problem, Arbeiten 2 mit den Isabelle-Shell-Skripts Experimente mit den Path-Varialbe der jvm Isabelle-jEdit-Plugin endlich vollständig lauffähig 4 gebracht Arbeiten an der jedit-isac-projektstruktur Umarbeiten des Isabelle-Plugins für ISAC Einrichten des Laptops für Isabelle-Isac Meeting: Fortschrittsbericht, kurze Einführung für 3 Mitstreiter Neue Vorgehensweise: QuickNotepad-Plugin(QN) 4 wird in Scala übersetzt und für ISAC entsprechend angepasst: Arbeit an den XML-Files QN: Start mit übersetzten der Sourcefiles QN: Übersetzten der Sourcefiles QN: Übersetzten der Sourcefiles: Problem bei Interface QN: QN vollständig in Scala übersetzt, testen 2 Anzahl der Einheiten 71 A.4 Experimentelle Parser implementiert: beendet am Experimente mit dem SideKick-Parser abgeschlossen: beendet am Verbindung zu Isabelle-Pure hergestellt: beendet am Implementierung des Scala-Parsers: aufgeschoben

29 Appendix A. Milestones und Arbeitsprotokolle 20 Datum Tätigkeit Einheiten Testen des SideKick-Parsers im Isabelle-Plugin Leichte Modifikationen des SideKick-Parsers im 1 Isabelle-Plugin Besprechung zum Abschluss der praktischen Arbeiten Erstellen des Isabelle-Pur jar-files Behebung des Problems mit den Umgebungsvariablen Erzeugung des Pure.jar Package möglich Verbindung zwischen Plugin und Isabelle-Pure 3 hergestellt und getestet Besprechung: Implementierung des experimentellen 1 Parsers wird nicht mehr durchgeführt Anzahl der Einheiten 12 A.5 Verfassen der Dokumentation und abschliesende Arbeiten: beendet am 30.Juni 2011 Bacc.-Protokoll fertiggestellt: beendet am Dokumentation: erste Version fertiggestellt: beendet am Dokumentation abgeschlossen: beendet am 30.Juni 2011 Datum Tätigkeit Einheiten Besprechung zum Ablauf der Dokumentationsarbeiten: 1 Protokoll und Dokumentation Erstellen des Protokolls Besprechung zur Doku und zur Schnittstelle zu 1 Isabelle-Pure Dokumentation schreiben Dokumentation schreiben Dokumentation schreiben Dokumentation schreiben Dokumentation schreiben Dokumentation: Fertigstellen der ersten Version 3 Anzahl der Einheiten 20 A.6 Präsentation der Arbeit im IST-Seminar: beendet am Präsentation fertiggestellt: beendet am Präsentation: abgehalten am

GITS Steckbriefe 1.9 - Tutorial

GITS Steckbriefe 1.9 - Tutorial Allgemeines Die Steckbriefkomponente basiert auf der CONTACTS XTD Komponente von Kurt Banfi, welche erheblich modifiziert bzw. angepasst wurde. Zuerst war nur eine kleine Änderung der Komponente für ein

Mehr

L10N-Manager 3. Netzwerktreffen der Hochschulübersetzer/i nnen Mannheim 10. Mai 2016

L10N-Manager 3. Netzwerktreffen der Hochschulübersetzer/i nnen Mannheim 10. Mai 2016 L10N-Manager 3. Netzwerktreffen der Hochschulübersetzer/i nnen Mannheim 10. Mai 2016 Referentin: Dr. Kelly Neudorfer Universität Hohenheim Was wir jetzt besprechen werden ist eine Frage, mit denen viele

Mehr

Windows Server 2012 RC2 konfigurieren

Windows Server 2012 RC2 konfigurieren Windows Server 2012 RC2 konfigurieren Kurzanleitung um einen Windows Server 2012 als Primären Domänencontroller einzurichten. Vorbereitung und Voraussetzungen In NT 4 Zeiten, konnte man bei der Installation

Mehr

Übung: Verwendung von Java-Threads

Übung: Verwendung von Java-Threads Übung: Verwendung von Java-Threads Ziel der Übung: Diese Übung dient dazu, den Umgang mit Threads in der Programmiersprache Java kennenzulernen. Ein einfaches Java-Programm, das Threads nutzt, soll zum

Mehr

Virtueller Campus. Virtueller Campus Horw mit interaktiver Steuerung. HowTo: Externe Bibliotheken

Virtueller Campus. Virtueller Campus Horw mit interaktiver Steuerung. HowTo: Externe Bibliotheken Virtueller Campus Virtueller Campus Horw mit interaktiver Steuerung Bachelor Diplomarbeit FS 2013 Inhaltsverzeichnis 1. EINLEITUNG... 1 2. VORBEDINGUNGEN... 1 3. ORDNERSTRUKTUR ERWEITERN... 1 4. PROJEKT

Mehr

Stundenerfassung Version 1.8 Anleitung Arbeiten mit Replikaten

Stundenerfassung Version 1.8 Anleitung Arbeiten mit Replikaten Stundenerfassung Version 1.8 Anleitung Arbeiten mit Replikaten 2008 netcadservice GmbH netcadservice GmbH Augustinerstraße 3 D-83395 Freilassing Dieses Programm ist urheberrechtlich geschützt. Eine Weitergabe

Mehr

Gruppenrichtlinien und Softwareverteilung

Gruppenrichtlinien und Softwareverteilung Gruppenrichtlinien und Softwareverteilung Ergänzungen zur Musterlösung Bitte lesen Sie zuerst die gesamte Anleitung durch! Vorbemerkung: Die Begriffe OU (Organizational Unit) und Raum werden in der folgenden

Mehr

Lineargleichungssysteme: Additions-/ Subtraktionsverfahren

Lineargleichungssysteme: Additions-/ Subtraktionsverfahren Lineargleichungssysteme: Additions-/ Subtraktionsverfahren W. Kippels 22. Februar 2014 Inhaltsverzeichnis 1 Einleitung 2 2 Lineargleichungssysteme zweiten Grades 2 3 Lineargleichungssysteme höheren als

Mehr

ec@ros2-installer ecaros2 Installer procar informatik AG 1 Stand: FS 09/2012 Eschenweg 7 64331 Weiterstadt

ec@ros2-installer ecaros2 Installer procar informatik AG 1 Stand: FS 09/2012 Eschenweg 7 64331 Weiterstadt ecaros2 Installer procar informatik AG 1 Stand: FS 09/2012 Inhaltsverzeichnis 1 Download des ecaros2-installer...3 2 Aufruf des ecaros2-installer...3 2.1 Konsolen-Fenster (Windows)...3 2.2 Konsolen-Fenster

Mehr

Software-Engineering und Optimierungsanwendungen in der Thermodynamik

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

Mehr

Inhaltserzeichnis. Datenübernahme

Inhaltserzeichnis. Datenübernahme Inhaltserzeichnis 1. Feststellen der Installationsart...2 1.1 Sichern der bereits installierten Version von V-LOG 5.0...2 1.2 Deinstallation der alten Version von V-LOG 5.0...3 1.3 Installation der neuen

Mehr

Userinterfaces für Computer Theorem Prover, Machbarkeits-Studie im ISAC-Projekt

Userinterfaces für Computer Theorem Prover, Machbarkeits-Studie im ISAC-Projekt Userinterfaces für Computer Theorem Prover, Machbarkeits-Studie im ISAC-Projekt Bachelorarbeit Telematik Institut für Software Technologie Technische Universität Graz 21.06.2011 Outline 1 Ausgangssituation:

Mehr

Anleitung über den Umgang mit Schildern

Anleitung über den Umgang mit Schildern Anleitung über den Umgang mit Schildern -Vorwort -Wo bekommt man Schilder? -Wo und wie speichert man die Schilder? -Wie füge ich die Schilder in meinen Track ein? -Welche Bauteile kann man noch für Schilder

Mehr

MORE Profile. Pass- und Lizenzverwaltungssystem. Stand: 19.02.2014 MORE Projects GmbH

MORE Profile. Pass- und Lizenzverwaltungssystem. Stand: 19.02.2014 MORE Projects GmbH MORE Profile Pass- und Lizenzverwaltungssystem erstellt von: Thorsten Schumann erreichbar unter: thorsten.schumann@more-projects.de Stand: MORE Projects GmbH Einführung Die in More Profile integrierte

Mehr

Es sollte die MS-DOS Eingabeaufforderung starten. Geben Sie nun den Befehl javac ein.

Es 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

Mehr

Daten-Synchronisation zwischen dem ZDV-Webmailer und Outlook (2002-2007) Zentrum für Datenverarbeitung der Universität Tübingen

Daten-Synchronisation zwischen dem ZDV-Webmailer und Outlook (2002-2007) Zentrum für Datenverarbeitung der Universität Tübingen Daten-Synchronisation zwischen dem ZDV-Webmailer und Outlook (2002-2007) Zentrum für Datenverarbeitung der Universität Tübingen Inhalt 1. Die Funambol Software... 3 2. Download und Installation... 3 3.

Mehr

Medea3 Print-Client (m3_print)

Medea3 Print-Client (m3_print) Medea3 Print-Client (m3_print) Installationsanleitung Installationsanleitung m3_print.exe...2 1. Installieren von Ghostskript und Ghostview...2 1. Ghostskript...2 2. Ghostview...3 2. Kopieren des Print-Client-Programms...6

Mehr

Projektmanagement in der Spieleentwicklung

Projektmanagement in der Spieleentwicklung Projektmanagement in der Spieleentwicklung Inhalt 1. Warum brauche ich ein Projekt-Management? 2. Die Charaktere des Projektmanagement - Mastermind - Producer - Projektleiter 3. Schnittstellen definieren

Mehr

Hex Datei mit Atmel Studio 6 erstellen

Hex Datei mit Atmel Studio 6 erstellen Hex Datei mit Atmel Studio 6 erstellen Es werden generell keine Atmel Studio Dateien ins Repository geladen, da jeder seine Dateien an anderen Orten liegen hat und weil nicht jeder das Atmel Studio 6 benutzt.

Mehr

Windows. Workshop Internet-Explorer: Arbeiten mit Favoriten, Teil 1

Windows. Workshop Internet-Explorer: Arbeiten mit Favoriten, Teil 1 Workshop Internet-Explorer: Arbeiten mit Favoriten, Teil 1 Wenn der Name nicht gerade www.buch.de oder www.bmw.de heißt, sind Internetadressen oft schwer zu merken Deshalb ist es sinnvoll, die Adressen

Mehr

Innovator 11 classix. Anbindung an Eclipse. Einführung, Installation und Konfiguration. Connect. Michael Kaaden. www.mid.de

Innovator 11 classix. Anbindung an Eclipse. Einführung, Installation und Konfiguration. Connect. Michael Kaaden. www.mid.de Innovator 11 classix Anbindung an Eclipse Einführung, Installation und Konfiguration Michael Kaaden Connect www.mid.de Einführung in die Innovator-Eclipse-Anbindung Die hier beschriebene Anbindung steht

Mehr

WinVetpro im Betriebsmodus Laptop

WinVetpro im Betriebsmodus Laptop WinVetpro im Betriebsmodus Laptop Um Unterwegs Daten auf einem mobilen Gerät mit WinVetpro zu erfassen, ohne den Betrieb in der Praxis während dieser Zeit zu unterbrechen und ohne eine ständige Online

Mehr

Informationen zur Verwendung von Visual Studio und cmake

Informationen zur Verwendung von Visual Studio und cmake Inhaltsverzeichnis Informationen zur Verwendung von Visual Studio und cmake... 2 Erste Schritte mit Visual Studio... 2 Einstellungen für Visual Studio 2013... 2 Nutzung von cmake... 6 Installation von

Mehr

Tipps und Tricks zu den Updates

Tipps und Tricks zu den Updates Tipps und Tricks zu den Updates Grundsätzlich können Sie Updates immer auf 2 Wegen herunterladen, zum einen direkt über unsere Internetseite, zum anderen aus unserer email zu einem aktuellen Update. Wenn

Mehr

1 Mathematische Grundlagen

1 Mathematische Grundlagen Mathematische Grundlagen - 1-1 Mathematische Grundlagen Der Begriff der Menge ist einer der grundlegenden Begriffe in der Mathematik. Mengen dienen dazu, Dinge oder Objekte zu einer Einheit zusammenzufassen.

Mehr

Anleitung zur Webservice Entwicklung unter Eclipse

Anleitung zur Webservice Entwicklung unter Eclipse Entwicklungsumgebung installieren Sofern Sie nicht an einem Praktikumsrechner arbeiten, müssen Sie ihre Eclipse-Umgebung Webservice-fähig machen. Dazu benötigen Sie die Entwicklungsumgebung Eclipse for

Mehr

Installation des GeoShop Redirector für Apache (Stand 14.8.2007) ================================================================

Installation des GeoShop Redirector für Apache (Stand 14.8.2007) ================================================================ Installation des GeoShop Redirector für Apache (Stand 14.8.2007) ================================================================ 0 Überblick ----------- Die Installation des GeoShop Redirector im Apache

Mehr

von: Oktay Arslan Kathrin Steiner Tamara Hänggi Marco Schweizer GIB-Liestal Mühlemattstrasse 34 4410 Liestal ATG

von: Oktay Arslan Kathrin Steiner Tamara Hänggi Marco Schweizer GIB-Liestal Mühlemattstrasse 34 4410 Liestal ATG von: Oktay Arslan Kathrin Steiner Tamara Hänggi Marco Schweizer GIB-Liestal Mühlemattstrasse 34 4410 Liestal ATG 20.03.2009 1 Inhaltsverzeichnis 1. Zusammenfassung S. 3 2. Aufgabestellung S. 3 3. Lösungsansätze

Mehr

Tutorial: Erstellen einer vollwertigen XP Home CD aus der EEE 901 Recover DVD

Tutorial: Erstellen einer vollwertigen XP Home CD aus der EEE 901 Recover DVD Tutorial: Erstellen einer vollwertigen XP Home CD aus der EEE 901 Recover DVD Von SpecialK für www.eee-pc.de Stand:Version 1.0 vom 25.08.2008 Vorwort: Mit Hilfe dieses Tutorials wird aus der beim EEE 901

Mehr

Speicher in der Cloud

Speicher in der Cloud Speicher in der Cloud Kostenbremse, Sicherheitsrisiko oder Basis für die unternehmensweite Kollaboration? von Cornelius Höchel-Winter 2013 ComConsult Research GmbH, Aachen 3 SYNCHRONISATION TEUFELSZEUG

Mehr

CodeSaver. Vorwort. Seite 1 von 6

CodeSaver. Vorwort. Seite 1 von 6 CodeSaver Vorwort Die Flut der Passwörter nimmt immer mehr zu. Kontopasswörter, Passwörter für Homepages, Shellzugriffe, Registrierungscodes für Programme und und und. Da ich aber nicht sonderlich viel

Mehr

Informationsblatt Induktionsbeweis

Informationsblatt Induktionsbeweis Sommer 015 Informationsblatt Induktionsbeweis 31. März 015 Motivation Die vollständige Induktion ist ein wichtiges Beweisverfahren in der Informatik. Sie wird häufig dazu gebraucht, um mathematische Formeln

Mehr

Nicht kopieren. Der neue Report von: Stefan Ploberger. 1. Ausgabe 2003

Nicht kopieren. Der neue Report von: Stefan Ploberger. 1. Ausgabe 2003 Nicht kopieren Der neue Report von: Stefan Ploberger 1. Ausgabe 2003 Herausgeber: Verlag Ploberger & Partner 2003 by: Stefan Ploberger Verlag Ploberger & Partner, Postfach 11 46, D-82065 Baierbrunn Tel.

Mehr

Informatik Kurs Simulation. Hilfe für den Consideo Modeler

Informatik Kurs Simulation. Hilfe für den Consideo Modeler Hilfe für den Consideo Modeler Consideo stellt Schulen den Modeler kostenlos zur Verfügung. Wenden Sie sich an: http://consideo-modeler.de/ Der Modeler ist ein Werkzeug, das nicht für schulische Zwecke

Mehr

Abschluss Version 1.0

Abschluss Version 1.0 Beschreibung Der Abschluss wird normalerweise nur einmal jährlich durchgeführt. Dieses Tech-Note soll helfen, diesen doch seltenen aber periodisch notwendigen Vorgang problemlos durchzuführen. Abschlussvarianten

Mehr

10.3.1.8 Übung - Konfigurieren einer Windows 7-Firewall

10.3.1.8 Übung - Konfigurieren einer Windows 7-Firewall 5.0 10.3.1.8 Übung - Konfigurieren einer Windows 7-Firewall Drucken Sie diese Übung aus und führen Sie sie durch. In dieser Übung werden Sie erfahren, wie man die Windows 7-Firewall konfiguriert und einige

Mehr

Dokumentation Schedulingverfahren

Dokumentation Schedulingverfahren Dokumentation Schedulingverfahren von Norbert Galuschek Gordian Maugg Alexander Hahn Rebekka Weissinger June 23, 2011 1 Contents 1 Aufgabe 3 2 Vorgehensweise 4 2.1 Warum Android.......................

Mehr

Matrix42. Use Case - Sicherung und Rücksicherung persönlicher Einstellungen über Personal Backup. Version 1.0.0. 23. September 2015 - 1 -

Matrix42. Use Case - Sicherung und Rücksicherung persönlicher Einstellungen über Personal Backup. Version 1.0.0. 23. September 2015 - 1 - Matrix42 Use Case - Sicherung und Rücksicherung persönlicher Version 1.0.0 23. September 2015-1 - Inhaltsverzeichnis 1 Einleitung 3 1.1 Beschreibung 3 1.2 Vorbereitung 3 1.3 Ziel 3 2 Use Case 4-2 - 1 Einleitung

Mehr

INSTALLATION VON INSTANTRAILS 1.7

INSTALLATION VON INSTANTRAILS 1.7 INSTALLATION VON INSTANTRAILS 1.7 InstantRails 1.7 ist ein Paket, das Ruby, Rails, Apache, MySQL und andere Tools, z.b. phpmyadmin in vorkonfigurierter Form enthält. Das Paket muss in einem Verzeichnis

Mehr

Einführung in TexMaker

Einführung in TexMaker Einführung in TexMaker 23. November 2007 TexMaker ist ein ist ein freier Texteditor für LA TE X-Dokumente unter Windows. Mit diesem Editor lassen sich ohne große Schwierigkeiten *.tex-dokumente aufrufen,

Mehr

Objektorientierte Programmierung für Anfänger am Beispiel PHP

Objektorientierte 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

Mehr

Primzahlen und RSA-Verschlüsselung

Primzahlen und RSA-Verschlüsselung Primzahlen und RSA-Verschlüsselung Michael Fütterer und Jonathan Zachhuber 1 Einiges zu Primzahlen Ein paar Definitionen: Wir bezeichnen mit Z die Menge der positiven und negativen ganzen Zahlen, also

Mehr

WinCVS Version 1.3. Voraussetzung. Frank Grimm fgr@micenet.de http://www.micenet.de. Mario Rasser mario@rasser-online.de http://www.rasser-online.

WinCVS Version 1.3. Voraussetzung. Frank Grimm fgr@micenet.de http://www.micenet.de. Mario Rasser mario@rasser-online.de http://www.rasser-online. WinCVS Version 1.3 Frank Grimm fgr@micenet.de http://www.micenet.de Mario Rasser mario@rasser-online.de http://www.rasser-online.de Voraussetzung 1. Installation von Python (Version >= 2.1) Download von

Mehr

Die Installation des GeoShop Redirector für IIS (Internet Information Server, Version 4.0, 5.0 und 6.0) umfasst folgende Teilschritte:

Die Installation des GeoShop Redirector für IIS (Internet Information Server, Version 4.0, 5.0 und 6.0) umfasst folgende Teilschritte: Installation des GeoShop Redirector für IIS (Stand 24.8.2007) ============================================================= 0 Überblick ----------- Die Installation des GeoShop Redirector für IIS (Internet

Mehr

Er musste so eingerichtet werden, dass das D-Laufwerk auf das E-Laufwerk gespiegelt

Er musste so eingerichtet werden, dass das D-Laufwerk auf das E-Laufwerk gespiegelt Inhaltsverzeichnis Aufgabe... 1 Allgemein... 1 Active Directory... 1 Konfiguration... 2 Benutzer erstellen... 3 Eigenes Verzeichnis erstellen... 3 Benutzerkonto erstellen... 3 Profil einrichten... 5 Berechtigungen

Mehr

OP-LOG www.op-log.de

OP-LOG www.op-log.de Verwendung von Microsoft SQL Server, Seite 1/18 OP-LOG www.op-log.de Anleitung: Verwendung von Microsoft SQL Server 2005 Stand Mai 2010 1 Ich-lese-keine-Anleitungen 'Verwendung von Microsoft SQL Server

Mehr

Drucken aus der Anwendung

Drucken aus der Anwendung Drucken aus der Anwendung Drucken aus der Anwendung Nicht jeder Großformatdruck benötigt die volle Funktionsvielfalt von PosterJet - häufig sind es Standarddrucke wie Flussdiagramme und Organigramme die

Mehr

Konfiguration von Igel ThinClients fu r den Zugriff via Netscaler Gateway auf eine Storefront/ XenDesktop 7 Umgebung

Konfiguration von Igel ThinClients fu r den Zugriff via Netscaler Gateway auf eine Storefront/ XenDesktop 7 Umgebung Konfiguration von Igel ThinClients fu r den Zugriff via Netscaler Gateway auf eine Storefront/ XenDesktop 7 Umgebung Inhalt 1. Einleitung:... 2 2. Igel ThinClient Linux OS und Zugriff aus dem LAN... 3

Mehr

3 Installation von Exchange

3 Installation von Exchange 3 Installation von Exchange Server 2010 In diesem Kapitel wird nun der erste Exchange Server 2010 in eine neue Umgebung installiert. Ich werde hier erst einmal eine einfache Installation mit der grafischen

Mehr

HANDBUCH PHOENIX II - DOKUMENTENVERWALTUNG

HANDBUCH PHOENIX II - DOKUMENTENVERWALTUNG it4sport GmbH HANDBUCH PHOENIX II - DOKUMENTENVERWALTUNG Stand 10.07.2014 Version 2.0 1. INHALTSVERZEICHNIS 2. Abbildungsverzeichnis... 3 3. Dokumentenumfang... 4 4. Dokumente anzeigen... 5 4.1 Dokumente

Mehr

Step by Step Webserver unter Windows Server 2003. von Christian Bartl

Step by Step Webserver unter Windows Server 2003. von Christian Bartl Step by Step Webserver unter Windows Server 2003 von Webserver unter Windows Server 2003 Um den WWW-Server-Dienst IIS (Internet Information Service) zu nutzen muss dieser zunächst installiert werden (wird

Mehr

Informationen zum neuen Studmail häufige Fragen

Informationen zum neuen Studmail häufige Fragen 1 Stand: 15.01.2013 Informationen zum neuen Studmail häufige Fragen (Dokument wird bei Bedarf laufend erweitert) Problem: Einloggen funktioniert, aber der Browser lädt dann ewig und zeigt nichts an Lösung:

Mehr

Enigmail Konfiguration

Enigmail Konfiguration Enigmail Konfiguration 11.06.2006 Steffen.Teubner@Arcor.de Enigmail ist in der Grundkonfiguration so eingestellt, dass alles funktioniert ohne weitere Einstellungen vornehmen zu müssen. Für alle, die es

Mehr

TTS - TinyTimeSystem. Unterrichtsprojekt BIBI

TTS - TinyTimeSystem. Unterrichtsprojekt BIBI TTS - TinyTimeSystem Unterrichtsprojekt BIBI Mathias Metzler, Philipp Winder, Viktor Sohm 28.01.2008 TinyTimeSystem Inhaltsverzeichnis Problemstellung... 2 Lösungsvorschlag... 2 Punkte die unser Tool erfüllen

Mehr

Arbeiten mit UMLed und Delphi

Arbeiten mit UMLed und Delphi Arbeiten mit UMLed und Delphi Diese Anleitung soll zeigen, wie man Klassen mit dem UML ( Unified Modeling Language ) Editor UMLed erstellt, in Delphi exportiert und dort so einbindet, dass diese (bis auf

Mehr

Whitepaper. Produkt: combit Relationship Manager 7. combit Relationship Manager email-rückläufer Script. combit GmbH Untere Laube 30 78462 Konstanz

Whitepaper. Produkt: combit Relationship Manager 7. combit Relationship Manager email-rückläufer Script. combit GmbH Untere Laube 30 78462 Konstanz combit GmbH Untere Laube 30 78462 Konstanz Whitepaper Produkt: combit Relationship Manager 7 combit Relationship Manager email-rückläufer Script Inhalt Einleitung 3 Notwendige Anpassungen 3 crm Solution

Mehr

Eine Einführung in die Installation und Nutzung von cygwin

Eine Einführung in die Installation und Nutzung von cygwin Eine Einführung in die Installation und Nutzung von cygwin 1 1. Woher bekomme ich cygwin? Cygwin ist im Internet auf http://www.cygwin.com/ zu finden. Dort lädt man sich die setup.exe in ein beliebiges

Mehr

Tutorial - www.root13.de

Tutorial - www.root13.de Tutorial - www.root13.de Netzwerk unter Linux einrichten (SuSE 7.0 oder höher) Inhaltsverzeichnis: - Netzwerk einrichten - Apache einrichten - einfaches FTP einrichten - GRUB einrichten Seite 1 Netzwerk

Mehr

Downloadfehler in DEHSt-VPSMail. Workaround zum Umgang mit einem Downloadfehler

Downloadfehler in DEHSt-VPSMail. Workaround zum Umgang mit einem Downloadfehler Downloadfehler in DEHSt-VPSMail Workaround zum Umgang mit einem Downloadfehler Downloadfehler bremen online services GmbH & Co. KG Seite 2 Inhaltsverzeichnis Vorwort...3 1 Fehlermeldung...4 2 Fehlerbeseitigung...5

Mehr

2.1 Präsentieren wozu eigentlich?

2.1 Präsentieren wozu eigentlich? 2.1 Präsentieren wozu eigentlich? Gute Ideen verkaufen sich in den seltensten Fällen von allein. Es ist heute mehr denn je notwendig, sich und seine Leistungen, Produkte etc. gut zu präsentieren, d. h.

Mehr

Step by Step Softwareverteilung unter Novell. von Christian Bartl

Step by Step Softwareverteilung unter Novell. von Christian Bartl Step by Step Softwareverteilung unter Novell von Softwareverteilung unter Novell 1) Starten von einfachen *.EXE-Dateien: Starten sie ConsoleOne Erstellen sie eine eigene Organisationseinheit für ihre Anwendungen

Mehr

Wo möchten Sie die MIZ-Dokumente (aufbereitete Medikamentenlisten) einsehen?

Wo möchten Sie die MIZ-Dokumente (aufbereitete Medikamentenlisten) einsehen? Anleitung für Evident Seite 1 Anleitung für Evident-Anwender: Einbinden der MIZ-Dokumente in Evident. Wo möchten Sie die MIZ-Dokumente (aufbereitete Medikamentenlisten) einsehen? Zunächst müssen Sie entscheiden,

Mehr

AGROPLUS Buchhaltung. Daten-Server und Sicherheitskopie. Version vom 21.10.2013b

AGROPLUS Buchhaltung. Daten-Server und Sicherheitskopie. Version vom 21.10.2013b AGROPLUS Buchhaltung Daten-Server und Sicherheitskopie Version vom 21.10.2013b 3a) Der Daten-Server Modus und der Tresor Der Daten-Server ist eine Betriebsart welche dem Nutzer eine grosse Flexibilität

Mehr

Windows 98 / Windows NT mit NCP WAN Miniport-Treiber 23. Oktober 1998

Windows 98 / Windows NT mit NCP WAN Miniport-Treiber 23. Oktober 1998 Windows 98 / Windows NT mit NCP WAN Miniport-Treiber 23. Oktober 1998 XBMPD Windows 98 mit NCP WAN Miniport-Treiber 3 Benötigte Hard- und Software: 1. NCP ISDN ARROW Karte oder Box 2. Ihre CD-Rom mit dem

Mehr

Anbindung des Onyx Editors 2.5.1 an das Lernmanagementsystem OLAT Anwendungsdokumentation

Anbindung des Onyx Editors 2.5.1 an das Lernmanagementsystem OLAT Anwendungsdokumentation Anbindung des Onyx Editors 2.5.1 an das Lernmanagementsystem OLAT Anwendungsdokumentation Überblick...2 Konfiguration der OLAT Anbindung...3 Verbindungsaufbau...4 Auschecken von Lernressourcen...5 Einchecken

Mehr

AutoCAD 2007 - Dienstprogramm zur Lizenzübertragung

AutoCAD 2007 - Dienstprogramm zur Lizenzübertragung AutoCAD 2007 - Dienstprogramm zur Lizenzübertragung Problem: Um AutoCAD abwechselnd auf mehreren Rechnern einsetzen zu können konnte man bis AutoCAD 2000 einfach den Dongle umstecken. Seit AutoCAD 2000i

Mehr

Informatik I Tutorial

Informatik I Tutorial ETH Zürich, D-INFK/D-BAUG Herbstsemester 2015 Dr. Martin Hirt Daniel Jost Informatik I Tutorial Dieses Tutorial hat zum Ziel, die notwendigen Tools auf dem eigenen Computer zu installieren, so dass ihr

Mehr

! " # $ " % & Nicki Wruck worldwidewruck 08.02.2006

!  # $  % & Nicki Wruck worldwidewruck 08.02.2006 !"# $ " %& Nicki Wruck worldwidewruck 08.02.2006 Wer kennt die Problematik nicht? Die.pst Datei von Outlook wird unübersichtlich groß, das Starten und Beenden dauert immer länger. Hat man dann noch die.pst

Mehr

Anwender-Dokumentation. Update ATOSS WINDOWS. Versionswechsel innerhalb der V2.5

Anwender-Dokumentation. Update ATOSS WINDOWS. Versionswechsel innerhalb der V2.5 Anwender-Dokumentation Update ATOSS WINDOWS Versionswechsel innerhalb der V2.5 Allgemein Diese Dokumentation beschreibt das Aktualisieren eines Windows-ATOSS-Servers auf die Version 2.5 vom 01.Juli 2011.

Mehr

Installation - Start

Installation - Start Services Department, HQ / Dec. 2009 Installation - Start Installation - Start... 1 TELL ME MORE installieren... 1 Beim Start der Software wurde eine veraltete Version des Internet Explorers wurde festgestellt...

Mehr

Informatik 1 Tutorial

Informatik 1 Tutorial ETH Zürich, D-INFK/D-BAUG Herbstsemester 2014 Dr. Martin Hirt Christian Badertscher Informatik 1 Tutorial Dieses Tutorial hat zum Ziel, die notwendigen Tools auf dem eigenen Computer zu installieren, so

Mehr

How To: Wie entwickle ich mit SharpDevelop Anwendungen für die PocketPC-Platform

How To: Wie entwickle ich mit SharpDevelop Anwendungen für die PocketPC-Platform How To: Wie entwickle ich mit SharpDevelop Anwendungen für die PocketPC-Platform 0. Benötigt werden folgende Softwarepakete:.NET Framework Software Development Kit (http://www.microsoft.com/downloads/details.aspx?familyid=4fe5bdb5-c7a7-4505-9927-2213868a325b&displaylang=en)

Mehr

Barcodedatei importieren

Barcodedatei importieren Barcodedatei importieren Inhaltsverzeichnis 1 Schnittstelle Barcodedatei importieren... 2 1.1 Funktion... 2 1.2 Konfiguration... 2 1.2.1 Lizenz... 2 1.2.2 Einstellungen... 2 1.2.3 Vorarbeiten... 3 1.2.3.1

Mehr

Windows Vista Security

Windows Vista Security Marcel Zehner Windows Vista Security ISBN-10: 3-446-41356-1 ISBN-13: 978-3-446-41356-6 Leseprobe Weitere Informationen oder Bestellungen unter http://www.hanser.de/978-3-446-41356-6 sowie im Buchhandel

Mehr

Zwischenablage (Bilder, Texte,...)

Zwischenablage (Bilder, Texte,...) Zwischenablage was ist das? Informationen über. die Bedeutung der Windows-Zwischenablage Kopieren und Einfügen mit der Zwischenablage Vermeiden von Fehlern beim Arbeiten mit der Zwischenablage Bei diesen

Mehr

Eine eigene Seite auf Facebook-Fanseiten einbinden und mit einem Tab verbinden.

Eine eigene Seite auf Facebook-Fanseiten einbinden und mit einem Tab verbinden. Eine eigene Seite auf Facebook-Fanseiten einbinden und mit einem Tab verbinden. Nach den Änderungen die Facebook vorgenommen hat ist es einfacher und auch schwerer geworden eigene Seiten einzubinden und

Mehr

Ihr Benutzerhandbuch AVIRA ANTIVIR EXCHANGE http://de.yourpdfguides.com/dref/3644312

Ihr Benutzerhandbuch AVIRA ANTIVIR EXCHANGE http://de.yourpdfguides.com/dref/3644312 Lesen Sie die Empfehlungen in der Anleitung, dem technischen Handbuch oder der Installationsanleitung für AVIRA ANTIVIR EXCHANGE. Hier finden Sie die Antworten auf alle Ihre Fragen über die AVIRA ANTIVIR

Mehr

Wie halte ich Ordnung auf meiner Festplatte?

Wie halte ich Ordnung auf meiner Festplatte? Wie halte ich Ordnung auf meiner Festplatte? Was hältst du von folgender Ordnung? Du hast zu Hause einen Schrank. Alles was dir im Wege ist, Zeitungen, Briefe, schmutzige Wäsche, Essensreste, Küchenabfälle,

Mehr

Pädagogik. Melanie Schewtschenko. Eingewöhnung und Übergang in die Kinderkrippe. Warum ist die Beteiligung der Eltern so wichtig?

Pädagogik. Melanie Schewtschenko. Eingewöhnung und Übergang in die Kinderkrippe. Warum ist die Beteiligung der Eltern so wichtig? Pädagogik Melanie Schewtschenko Eingewöhnung und Übergang in die Kinderkrippe Warum ist die Beteiligung der Eltern so wichtig? Studienarbeit Inhaltsverzeichnis 1. Einleitung.2 2. Warum ist Eingewöhnung

Mehr

Reporting Services und SharePoint 2010 Teil 1

Reporting Services und SharePoint 2010 Teil 1 Reporting Services und SharePoint 2010 Teil 1 Abstract Bei der Verwendung der Reporting Services in Zusammenhang mit SharePoint 2010 stellt sich immer wieder die Frage bei der Installation: Wo und Wie?

Mehr

Hinweise zur Installation von MySQL

Hinweise zur Installation von MySQL Hinweise zur Installation von MySQL Im Folgenden werden einige Hinweise gegeben, die die Einrichtung einer MySQL-Lernumgebung am eigenen Windows-Rechner erleichtern sollen. Der Text ist vor allem für diejenigen

Mehr

Update Messerli MySQL auf Linux

Update Messerli MySQL auf Linux Update Messerli MySQL auf Linux Einleitung Grundsätzlich wird beim Update der Messerli Software auf einem Linux-Server wie folgt vorgegangen: 1. Vorhandener RMI-MySQL Server wird auf Linux aktualisiert

Mehr

Einführungskurs MOODLE Themen:

Einführungskurs MOODLE Themen: Einführungskurs MOODLE Themen: Grundlegende Einstellungen Teilnehmer in einen Kurs einschreiben Konfiguration der Arbeitsunterlagen Konfiguration der Lernaktivitäten Die Einstellungen für einen Kurs erreichst

Mehr

Persönliche Zukunftsplanung mit Menschen, denen nicht zugetraut wird, dass sie für sich selbst sprechen können Von Susanne Göbel und Josef Ströbl

Persönliche Zukunftsplanung mit Menschen, denen nicht zugetraut wird, dass sie für sich selbst sprechen können Von Susanne Göbel und Josef Ströbl Persönliche Zukunftsplanung mit Menschen, denen nicht zugetraut Von Susanne Göbel und Josef Ströbl Die Ideen der Persönlichen Zukunftsplanung stammen aus Nordamerika. Dort werden Zukunftsplanungen schon

Mehr

PocketPC.ch Review. SBSH ilauncher 3.1. Erstelldatum: 3. Dezember 2007 Letzte Änderung: 3. Dezember 2007. PocketPC.ch_Review_iLauncher.

PocketPC.ch Review. SBSH ilauncher 3.1. Erstelldatum: 3. Dezember 2007 Letzte Änderung: 3. Dezember 2007. PocketPC.ch_Review_iLauncher. PocketPC.ch Review SBSH ilauncher 3.1 Erstelldatum: 3. Dezember 2007 Letzte Änderung: 3. Dezember 2007 Autor: Dateiname: PocketPC.ch_Review_iLauncher.doc Inhaltsverzeichnis SBSH ilauncher 3.1...3 Übersicht...

Mehr

Installation / Update für die P aketdatenbank 1.x (Version 3-23.06.2012)

Installation / Update für die P aketdatenbank 1.x (Version 3-23.06.2012) Installation / Update für die P aketdatenbank 1.x (Version 3-23.06.2012) Um Auswertungen mit BIRT vornehmen zu können, wird die "BIRT ReportEngine" benötigt. Diese ist in der "Foconis Paketdatenbank 1.0.2"

Mehr

Hinweise zur Datensicherung für die - Prüfmittelverwaltung - Inhalt

Hinweise zur Datensicherung für die - Prüfmittelverwaltung - Inhalt Hinweise zur Datensicherung für die - Prüfmittelverwaltung - Inhalt 1. Vorbetrachtungen... 2 2. Die Installation... 2 3. Einstellungen - Erstellung der Verknüpfung... 3 3.1 Benutzung des Konfigurationsprogramms

Mehr

Datensicherung. Beschreibung der Datensicherung

Datensicherung. Beschreibung der Datensicherung Datensicherung Mit dem Datensicherungsprogramm können Sie Ihre persönlichen Daten problemlos Sichern. Es ist möglich eine komplette Datensicherung durchzuführen, aber auch nur die neuen und geänderten

Mehr

Toolbeschreibung: EVERNOTE

Toolbeschreibung: EVERNOTE Toolbeschreibung: EVERNOTE Evernote ist ein Programm, um Notizen zu sammeln. Man kann es sowohl online nutzen, als auch offline von seinem PC (dafür muss man sich das Programm runterladen). Die ersten

Mehr

Visual Basic Express erstes Projekt anlegen

Visual Basic Express erstes Projekt anlegen Inhalt Dokument Beschreibung... 1 Erstes Projekt anlegen... 1 Verweise hinzufügen... 2 Imports setzen... 5 Public Class vorbereiten... 6 Mehrere Tools programmieren... 7 Dokument Beschreibung Nach der

Mehr

Dokumentation zur Versendung der Statistik Daten

Dokumentation zur Versendung der Statistik Daten Dokumentation zur Versendung der Statistik Daten Achtung: gem. 57a KFG 1967 (i.d.f. der 28. Novelle) ist es seit dem 01. August 2007 verpflichtend, die Statistikdaten zur statistischen Auswertung Quartalsmäßig

Mehr

ShopwareAutoinvoice Installations- und Benutzeranleitung

ShopwareAutoinvoice Installations- und Benutzeranleitung ShopwareAutoinvoice Installations- und Benutzeranleitung 1. Installation Wechseln Sie in das Shop Backend unter /backend. Loggen Sie sich ein und wählen Sie Einstellungen -> Plugin Manager. Klicken Sie

Mehr

Installations Guide für YAJSW und DTLDAP

Installations Guide für YAJSW und DTLDAP YAJSW - DTLDAP Installation Guide Installations Guide für YAJSW und DTLDAP Erstellt für: Helsana AG, Franz Schnyder Erstellt von: Skypro AG, Thomas Bucher 9. Mai 2013 thomas@skypro.ch http://www.skypro.ch

Mehr

KVIrc installieren (win) i. KVIrc installieren (win)

KVIrc installieren (win) i. KVIrc installieren (win) i KVIrc installieren (win) ii REVISION HISTORY NUMBER DATE DESCRIPTION NAME 1.0 May 08 T iii Contents 1 Einleitung 1 1.1 Über KVIrc...................................................... 1 1.2 Vorbereitungen....................................................

Mehr

Handbuch Fischertechnik-Einzelteiltabelle V3.7.3

Handbuch Fischertechnik-Einzelteiltabelle V3.7.3 Handbuch Fischertechnik-Einzelteiltabelle V3.7.3 von Markus Mack Stand: Samstag, 17. April 2004 Inhaltsverzeichnis 1. Systemvorraussetzungen...3 2. Installation und Start...3 3. Anpassen der Tabelle...3

Mehr

Tipp III: Leiten Sie eine immer direkt anwendbare Formel her zur Berechnung der sogenannten "bedingten Wahrscheinlichkeit".

Tipp III: Leiten Sie eine immer direkt anwendbare Formel her zur Berechnung der sogenannten bedingten Wahrscheinlichkeit. Mathematik- Unterrichts- Einheiten- Datei e. V. Klasse 9 12 04/2015 Diabetes-Test Infos: www.mued.de Blutspenden werden auf Diabetes untersucht, das mit 8 % in der Bevölkerung verbreitet ist. Dabei werden

Mehr

Advoware mit VPN Zugriff lokaler Server / PC auf externe Datenbank

Advoware mit VPN Zugriff lokaler Server / PC auf externe Datenbank Advoware mit VPN Zugriff lokaler Server / PC auf externe Datenbank Die Entscheidung Advoware über VPN direkt auf dem lokalen PC / Netzwerk mit Zugriff auf die Datenbank des zentralen Servers am anderen

Mehr

2. ERSTELLEN VON APPS MIT DEM ADT PLUGIN VON ECLIPSE

2. ERSTELLEN VON APPS MIT DEM ADT PLUGIN VON ECLIPSE 2. ERSTELLEN VON APPS MIT DEM ADT PLUGIN VON ECLIPSE 2.1 Die Einrichtung der Benutzeroberfläche Das Einrichten einer Android-Eclipse-Entwicklungsumgebung zur Android-Entwicklung ist grundsätzlich nicht

Mehr

QTTabBar Einrichtung, ein Tutorial

QTTabBar Einrichtung, ein Tutorial QTTabBar Einrichtung, ein Tutorial Von Heiko Schulze Eines der ganz entscheidenden Dinge, das im Explorer fehlt ist das tabunterstützte Navigieren. Dafür gibt es bereits seit Jahren die QTTabBar. Sie wurde

Mehr

Dokumentation. Black- und Whitelists. Absenderadressen auf eine Blacklist oder eine Whitelist setzen. Zugriff per Webbrowser

Dokumentation. Black- und Whitelists. Absenderadressen auf eine Blacklist oder eine Whitelist setzen. Zugriff per Webbrowser Dokumentation Black- und Whitelists Absenderadressen auf eine Blacklist oder eine Whitelist setzen. Zugriff per Webbrowser Inhalt INHALT 1 Kategorie Black- und Whitelists... 2 1.1 Was sind Black- und Whitelists?...

Mehr