aktualisierung

This commit is contained in:
StabiLeo 2019-02-07 21:38:06 +01:00
parent 1cbfc6de92
commit 2b287c2091
780 changed files with 160035 additions and 7678 deletions

BIN
Buecher/DesignPatterns.pdf Normal file

Binary file not shown.

File diff suppressed because one or more lines are too long

Binary file not shown.

Binary file not shown.

Binary file not shown.

BIN
Eicb/Uebung/eicb-t3sol.pdf Normal file

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@ -0,0 +1,70 @@
<?xml version="1.0" encoding="UTF-8"?>
<classpath>
<classpathentry kind="src" path="src/main/java"/>
<classpathentry kind="src" path="src/test/java"/>
<classpathentry kind="output" path="bin/default"/>
<classpathentry output="bin/main" kind="src" path="src/main/java">
<attributes>
<attribute name="gradle_scope" value="main"/>
<attribute name="gradle_used_by_scope" value="main,test"/>
</attributes>
</classpathentry>
<classpathentry output="bin/test" kind="src" path="src/test/java">
<attributes>
<attribute name="gradle_scope" value="test"/>
<attribute name="gradle_used_by_scope" value="test"/>
</attributes>
</classpathentry>
<classpathentry output="bin/test" kind="src" path="src/test/testcases">
<attributes>
<attribute name="gradle_scope" value="test"/>
<attribute name="gradle_used_by_scope" value="test"/>
</attributes>
</classpathentry>
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-11/"/>
<classpathentry sourcepath="/home/leo/.gradle/caches/modules-2/files-2.1/commons-cli/commons-cli/1.3.1/12ec02d8cb9fbb33bd05506109a4fc8bcc3578/commons-cli-1.3.1-sources.jar" kind="lib" path="/home/leo/.gradle/caches/modules-2/files-2.1/commons-cli/commons-cli/1.3.1/1303efbc4b181e5a58bf2e967dc156a3132b97c0/commons-cli-1.3.1.jar">
<attributes>
<attribute name="gradle_used_by_scope" value="main,test"/>
</attributes>
</classpathentry>
<classpathentry sourcepath="/home/leo/.gradle/caches/modules-2/files-2.1/com.thoughtworks.xstream/xstream/1.4.9/a9eb7942e1c58d99d53226b13cc21b4b88cb5cab/xstream-1.4.9-sources.jar" kind="lib" path="/home/leo/.gradle/caches/modules-2/files-2.1/com.thoughtworks.xstream/xstream/1.4.9/c43f6e6bfa79b56e04a8898a923c3cf7144dd460/xstream-1.4.9.jar">
<attributes>
<attribute name="gradle_used_by_scope" value="main,test"/>
</attributes>
</classpathentry>
<classpathentry sourcepath="/home/leo/.gradle/caches/modules-2/files-2.1/org.xmlunit/xmlunit-matchers/2.2.1/f8bc0b06eeca5b27712ae28dba6352ccf58a5cde/xmlunit-matchers-2.2.1-sources.jar" kind="lib" path="/home/leo/.gradle/caches/modules-2/files-2.1/org.xmlunit/xmlunit-matchers/2.2.1/26c2afc03381d88ffa32ef2351c69e8ae90c3a8c/xmlunit-matchers-2.2.1.jar">
<attributes>
<attribute name="gradle_used_by_scope" value="main,test"/>
</attributes>
</classpathentry>
<classpathentry sourcepath="/home/leo/.gradle/caches/modules-2/files-2.1/org.xmlunit/xmlunit-core/2.2.1/4d73c98f06aa50d1b1627424ff261de3118b2086/xmlunit-core-2.2.1-sources.jar" kind="lib" path="/home/leo/.gradle/caches/modules-2/files-2.1/org.xmlunit/xmlunit-core/2.2.1/1f3c89bdf2800ab830a0b556c883ecf99083460c/xmlunit-core-2.2.1.jar">
<attributes>
<attribute name="gradle_used_by_scope" value="main,test"/>
</attributes>
</classpathentry>
<classpathentry kind="lib" path="/home/leo/.gradle/caches/modules-2/files-2.1/xmlpull/xmlpull/1.1.3.1/2b8e230d2ab644e4ecaa94db7cdedbc40c805dfa/xmlpull-1.1.3.1.jar">
<attributes>
<attribute name="gradle_used_by_scope" value="main,test"/>
</attributes>
</classpathentry>
<classpathentry sourcepath="/home/leo/.gradle/caches/modules-2/files-2.1/xpp3/xpp3_min/1.1.4c/fffe25ec1f20ec1cfdc0edd41c6e0d55bc0dbaf5/xpp3_min-1.1.4c-sources.jar" kind="lib" path="/home/leo/.gradle/caches/modules-2/files-2.1/xpp3/xpp3_min/1.1.4c/19d4e90b43059058f6e056f794f0ea4030d60b86/xpp3_min-1.1.4c.jar">
<attributes>
<attribute name="gradle_used_by_scope" value="main,test"/>
</attributes>
</classpathentry>
<classpathentry sourcepath="/home/leo/.gradle/caches/modules-2/files-2.1/org.hamcrest/hamcrest-core/1.3/1dc37250fbc78e23a65a67fbbaf71d2e9cbc3c0b/hamcrest-core-1.3-sources.jar" kind="lib" path="/home/leo/.gradle/caches/modules-2/files-2.1/org.hamcrest/hamcrest-core/1.3/42a25dc3219429f0e5d060061f71acb49bf010a0/hamcrest-core-1.3.jar">
<attributes>
<attribute name="gradle_used_by_scope" value="main,test"/>
</attributes>
</classpathentry>
<classpathentry sourcepath="/home/leo/.gradle/caches/modules-2/files-2.1/commons-io/commons-io/2.4/f2d8698c46d1167ff24b06a840a87d91a02db891/commons-io-2.4-sources.jar" kind="lib" path="/home/leo/.gradle/caches/modules-2/files-2.1/commons-io/commons-io/2.4/b1b6ea3b7e4aa4f492509a4952029cd8e48019ad/commons-io-2.4.jar">
<attributes>
<attribute name="gradle_used_by_scope" value="test"/>
</attributes>
</classpathentry>
<classpathentry sourcepath="/home/leo/.gradle/caches/modules-2/files-2.1/junit/junit/4.12/a6c32b40bf3d76eca54e3c601e5d1470c86fcdfa/junit-4.12-sources.jar" kind="lib" path="/home/leo/.gradle/caches/modules-2/files-2.1/junit/junit/4.12/2973d150c0dc1fefe998f834810d68f278ea58ec/junit-4.12.jar">
<attributes>
<attribute name="gradle_used_by_scope" value="test"/>
</attributes>
</classpathentry>
</classpath>

View File

@ -0,0 +1 @@
/bin/

View File

@ -0,0 +1,2 @@
#Wed Feb 06 12:31:16 CET 2019
gradle.version=4.10.2

View File

@ -0,0 +1,17 @@
<?xml version="1.0" encoding="UTF-8"?>
<projectDescription>
<name>eicb-p3-2018.1</name>
<comment></comment>
<projects/>
<natures>
<nature>org.eclipse.jdt.core.javanature</nature>
</natures>
<buildSpec>
<buildCommand>
<name>org.eclipse.jdt.core.javabuilder</name>
<arguments/>
</buildCommand>
</buildSpec>
<linkedResources/>
<filteredResources/>
</projectDescription>

View File

@ -0,0 +1,2 @@
eclipse.preferences.version=1
encoding//src/main/java/mavlc/codegen/CodeGeneration.java=UTF-8

View File

@ -0,0 +1,13 @@
#
#Wed Feb 06 12:38:53 CET 2019
org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
org.eclipse.jdt.core.compiler.codegen.targetPlatform=11
org.eclipse.jdt.core.compiler.source=11
org.eclipse.jdt.core.compiler.debug.localVariable=generate
org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
eclipse.preferences.version=1
org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
org.eclipse.jdt.core.compiler.debug.lineNumber=generate
org.eclipse.jdt.core.compiler.compliance=11
org.eclipse.jdt.core.compiler.debug.sourceFile=generate

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,84 @@
# Anleitung für das dritte Praktikum
**Einführung in den Compilerbau, Wintersemester 2018/19**
## Voraussetzungen
* Eine Java-1.8-kompatible virtuelle Maschine.
## Einrichtung
Für die **Ersteinrichtung** benötigen Sie eine Internetverbindung.
Dieses Projekt verwendet [Gradle 4.10](https://docs.gradle.org/4.10.2/userguide/userguide.html) als Buildwerkzeug. Falls Gradle nicht auf Ihrem System verfügbar ist, können Sie die "Gradle Wrapper" genannten Skripte `gradlew` (Linux und macOS) bzw. `gradlew.bat` (Windows) anstelle des hier in der Anleitung verwendeten `gradle`-Befehls verwenden.
Führen Sie bitte folgendes Kommando aus:
$ gradle mavlc interpreter
Falls Sie den Gradle Wrapper benutzen wollen, würden Sie stattdessen folgende Kommandos verwenden:
$ ./gradlew mavlc interpreter # Linux und macOS
$ gradlew.bat mavlc interpreter
Dies lädt die vom Projekt benötigten Bibliotheken herunter und erstellt im Verzeichnis `build/` die Startskripte `mavlc` (für Linux und macOS) und `mavlc.bat` (für Windows) für den von Ihnen zu entwickelnden MAVL-Compiler, sowie entsprechende Skripte für den MTAM-Interpreter (s.u.).
Wenn Sie Eclipse zur Entwicklung verwenden möchten, können Sie mittels
$ gradle eclipse
ein Eclipse-Projekt erzeugen, welches Sie anschließend in einen beliebigen Eclipse-Workspace importieren können.
## Entwickeln und Testen
Während der Entwicklung können Sie die Übersetzung der Quellen mit
$ gradle classes
starten. Dies übersetzt nur die geänderten Klassen. Wenn Sie einen komplette Neuübersetzung anstoßen möchten, verwenden Sie:
$ gradle clean
Um den Compiler auszuführen, nutzen Sie das zu Ihrem System passende Startskript (hier gezeigt für Linux/macOS, unter Windows verwenden Sie stattdessen `build\mavlc.bat`):
$ build/mavlc helloworld.mavl
Dies erzeugt die Datei Datei `a.tam`, die den erzeugten Binärcode erhält. Die Datei können Sie mithilfe des MTAM-Interpreters ausführen (s.u.). Um eine andere Ausgabedatei anzugeben, verwenden Sie die Option `-o`:
$ build/mavlc -o helloworld.tam helloworld.mavl
Sie können den AST auch in eine graphische Darstellung im [Graphviz DOT-Format](http://graphviz.org) exportieren:
$ build/mavlc -dot context helloworld.mavl
Wenn Sie die Graphviz-Werkzeuge auf Ihrem System installiert haben, können Sie beispielsweise aus der DOT-Datei ein PDF erzeugen:
$ dot -Tpdf -o helloworld.pdf helloworld_decorated_ast.dot
Dieses Projekt enthält die öffentliche Testfälle der Praktikumsaufgaben, die Sie mittels
$ gradle test
ausführen können. Das Kommando gibt nur eine Zusammenfassung auf die Konsole aus; den detaillierten Testreport finden Sie in der Datei `build/reports/tests/test/index.html`.
### Interpreter ###
Um den von Ihrem Compiler erzeugten Binärcode auf der MTAM auszuführen, nutzen Sie das zu Ihrem System passende Startskript (hier gezeigt für Linux/macOS, unter Windows verwenden Sie stattdessen `build\interpreter.bat`):
$ build/interpreter -i helloworld.tam
Zum Debuggen Ihres erzeugten Binärcodes verfügt der Interpreter über zusätzliche Debug-Optionen, deren Verwendung und Bedeutung Sie sich mithilfe der `-h`-Option anzeigen lassen können:
$ build/interpreter -h
## Abgabe
Mit
$ gradle prepareSubmission
erstellen Sie ein Archiv, welches Sie anschließend über den Moodle-Kurs abgeben können.
## Bekannte Probleme
* Unter Windows funktioniert das Startskript `mavlc.bat` nicht, wenn der Projektpfad nicht-ASCII-Zeichen (also insbesondere Umlaute) enthält.

View File

@ -0,0 +1,36 @@
# mavlc
`mavlc` is a compiler for the Matrix And Vector Language.
## Prerequisites, setup and usage
Refer to the instructions in `HOWTO.md`.
## License
Copyright (C) 2016-2018 Embedded Systems and Applications Group
Department of Computer Science, Technische Universitaet Darmstadt,
Hochschulstr. 10, 64289 Darmstadt, Germany.
All rights reserved.
This software is provided free for educational use only.
It may not be used for commercial purposes without the
prior written permission of the authors.
Contains a modified version of Watt & Brown's Triangle Abstract Machine (TAM):
Copyright (C) 1999, 2003 D.A. Watt and D.F. Brown
Dept. of Computing Science, University of Glasgow, Glasgow G12 8QQ Scotland
and School of Computer and Math Sciences, The Robert Gordon University,
St. Andrew Street, Aberdeen AB25 1HG, Scotland.
## Contributors
* Gabriel Eckhardt
* Robin Kruppe
* Sebastian Müller
* Julian Oppermann
* Lukas Sommer
* David Volz
* Lukas Weber

View File

@ -0,0 +1,43 @@
apply plugin: 'java'
apply plugin: 'eclipse'
repositories {
jcenter()
}
compileJava.sourceCompatibility = '1.8'
sourceSets {
// Make the testcases directoy the default resources tree for the 'test' source set.
test.resources.srcDirs = ['src/test/testcases']
}
dependencies {
compile 'commons-cli:commons-cli:1.3.1'
compile 'com.thoughtworks.xstream:xstream:1.4.9'
compile 'org.xmlunit:xmlunit-parent:2.2.1'
compile 'org.xmlunit:xmlunit-core:2.2.1'
compile 'org.xmlunit:xmlunit-matchers:2.2.1'
testCompile 'commons-io:commons-io:2.4'
testCompile 'junit:junit:4.12'
}
task prepareSubmission(type: Zip) {
description = "Prepare your solution for submission via Moodle"
baseName = "eicb-p3-submission"
from(sourceSets.main.java) {
include('mavlc/codegen/CodeGeneration.java')
into('src/main/java')
}
doLast {
80.times({print "#"}) ; println()
println "Please submit " + destinationDir + File.separator + archiveName + " via Moodle"
80.times({print "#"}) ; println()
}
}
apply from: 'generateStartScripts.gradle'

Some files were not shown because too many files have changed in this diff Show More