Skip to content
Snippets Groups Projects
Commit 2f95e4bd authored by Johannes Mey's avatar Johannes Mey
Browse files

update readme

parent f7c41bea
No related branches found
No related tags found
No related merge requests found
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta http-equiv="Content-Style-Type" content="text/css" />
<meta name="generator" content="pandoc" />
<title></title>
<style type="text/css">code{white-space: pre;}</style>
</head>
<body>
<h1 id="artifacts-for-continuous-model-validation-using-reference-attribute-grammars">Artifacts for &quot;Continuous Model Validation Using Reference Attribute Grammars&quot;</h1> <h1 id="artifacts-for-continuous-model-validation-using-reference-attribute-grammars">Artifacts for &quot;Continuous Model Validation Using Reference Attribute Grammars&quot;</h1>
<h3 id="authors">Authors</h3>
<ul>
<li>Johannes Mey <a href="mailto:johannes.mey@tu-dresden.de">johannes.mey@tu-dresden.de</a></li>
<li>Carl Mai <a href="mailto:carl.mai@tu-dresden.de">carl.mai@tu-dresden.de</a></li>
<li>René Schöne <a href="mailto:rene.schoene@tu-dresden.de">rene.schoene@tu-dresden.de</a></li>
<li>Görel Hedin <a href="mailto:gorel.hedin@cs.lth.se">gorel.hedin@cs.lth.se</a></li>
<li>Emma Söderberg <a href="mailto:emma.soderberg@cs.lth.se">emma.soderberg@cs.lth.se</a></li>
<li>Thomas Kühn <a href="mailto:thomas.kuehn3@tu-dresden.de">thomas.kuehn3@tu-dresden.de</a></li>
<li>Niklas Fors <a href="mailto:niklas.fors@cs.lth.se">niklas.fors@cs.lth.se</a></li>
<li>Jesper Öqvist <a href="mailto:jesper.oqvist@cs.lth.se">jesper.oqvist@cs.lth.se</a></li>
<li>Uwe Aßmann <a href="mailto:uwe.assmann@tu-dresden.de">uwe.assmann@tu-dresden.de</a></li>
</ul>
<h3 id="introduction">Introduction</h3> <h3 id="introduction">Introduction</h3>
<p>The paper discusses the utilization of reference attribute grammars (RAGs) for model validation and presents two specific contributions. First, the differences between models and trees specified by reference attribute grammars, specifically non-containment references, are discussed and a manual, yet optimised method to efficiently overcome these differences is presented. Secondly, an extension of RAG grammar specifications is proposed to model noncontainment references automatically. The proposed modelling techniques are compared to state-of-the-art modelling tools utilizing a benchmarking framwork for continuous model validation, the <em>Train Benchmark</em>.</p> <p>The paper discusses the utilization of reference attribute grammars (RAGs) for model validation and presents two specific contributions. First, the differences between models and trees specified by reference attribute grammars, specifically non-containment references, are discussed and a manual, yet optimised method to efficiently overcome these differences is presented. Secondly, an extension of RAG grammar specifications is proposed to model noncontainment references automatically. The proposed modelling techniques are compared to state-of-the-art modelling tools utilizing a benchmarking framwork for continuous model validation, the <em>Train Benchmark</em>.</p>
<h3 id="structure-of-the-supplementary-artifacts">Structure of the Supplementary Artifacts</h3> <h3 id="structure-of-the-supplementary-artifacts">Structure of the Supplementary Artifacts</h3>
...@@ -44,17 +66,22 @@ ...@@ -44,17 +66,22 @@
</table> </table>
<h2 id="the-grammar-extension-preprocessor-relast">The Grammar Extension Preprocessor <code>RelAst</code></h2> <h2 id="the-grammar-extension-preprocessor-relast">The Grammar Extension Preprocessor <code>RelAst</code></h2>
<p>To transform the grammar extension we provide a preprocessor for JastAdd This preprocessor including its source code is provided in the <code>preprocessor</code> subdirectory.</p> <p>To transform the grammar extension we provide a preprocessor for JastAdd This preprocessor including its source code is provided in the <code>preprocessor</code> subdirectory.</p>
<p>Its usage is: - Running the preprocessor <code>java -jar relast-compiler.jar</code> Run preprocessor on train benchmark (output written to standard output):</p> <p>Its usage is: - Run preprocessor on train benchmark (output written to standard output):<br />
<pre><code>- `cat examples/TrainBenchmark.relast` - <code>cat examples/TrainBenchmark.relast</code> - <code>java -jar relast-compiler.jar examples/TrainBenchmark.relast</code></p>
- `java -jar relast-compiler.jar examples/TrainBenchmark.relast`</code></pre> <ul>
<p>Run preprocessor and write output to files:</p> <li>Run preprocessor and write output to files:
<pre><code>`java -jar relast-compiler.jar examples/TrainBenchmark.relast --file` <ul>
`cat examples/TrainBenchmarkGen.ast` <li><code>java -jar relast-compiler.jar examples/TrainBenchmark.relast --file</code></li>
`cat examples/TrainBenchmarkGen.jadd`</code></pre> <li><code>cat examples/TrainBenchmarkGen.ast</code></li>
<p>Run preprocessor and write output to files (with a different list class):</p> <li><code>cat examples/TrainBenchmarkGen.jadd</code></li>
<pre><code>`java -jar relast-compiler.jar examples/TrainBenchmark.relast --listClass=MyListClass --file` </ul></li>
`cat examples/TrainBenchmarkGen.ast` <li>Run preprocessor and write output to files (with a different list class):
`cat examples/TrainBenchmarkGen.jadd`</code></pre> <ul>
<li><code>java -jar relast-compiler.jar examples/TrainBenchmark.relast --listClass=MyListClass --file</code></li>
<li><code>cat examples/TrainBenchmarkGen.ast</code></li>
<li><code>cat examples/TrainBenchmarkGen.jadd</code></li>
</ul></li>
</ul>
<h2 id="the-train-benchmark">The Train Benchmark</h2> <h2 id="the-train-benchmark">The Train Benchmark</h2>
<h3 id="structure-of-the-train-benchmark">Structure of the Train Benchmark</h3> <h3 id="structure-of-the-train-benchmark">Structure of the Train Benchmark</h3>
<p>The benchmark is able to measure different scenarios specified by configurations with several kinds of parameters:</p> <p>The benchmark is able to measure different scenarios specified by configurations with several kinds of parameters:</p>
...@@ -166,3 +193,5 @@ ...@@ -166,3 +193,5 @@
<li>When running with docker, the data are also in <code>docker-results</code> and <code>docker-diagrams</code> on the host machine.</li> <li>When running with docker, the data are also in <code>docker-results</code> and <code>docker-diagrams</code> on the host machine.</li>
</ul></li> </ul></li>
</ul> </ul>
</body>
</html>
# Artifacts for "Continuous Model Validation Using Reference Attribute Grammars" # Artifacts for "Continuous Model Validation Using Reference Attribute Grammars"
### Authors
- Johannes Mey <johannes.mey@tu-dresden.de>
- Carl Mai <carl.mai@tu-dresden.de>
- René Schöne <rene.schoene@tu-dresden.de>
- Görel Hedin <gorel.hedin@cs.lth.se>
- Emma Söderberg <emma.soderberg@cs.lth.se>
- Thomas Kühn <thomas.kuehn3@tu-dresden.de>
- Niklas Fors <niklas.fors@cs.lth.se>
- Jesper Öqvist <jesper.oqvist@cs.lth.se>
- Uwe Aßmann <uwe.assmann@tu-dresden.de>
### Introduction ### Introduction
The paper discusses the utilization of reference attribute grammars (RAGs) for model validation and presents two specific contributions. The paper discusses the utilization of reference attribute grammars (RAGs) for model validation and presents two specific contributions.
...@@ -38,23 +51,19 @@ To transform the grammar extension we provide a preprocessor for JastAdd ...@@ -38,23 +51,19 @@ To transform the grammar extension we provide a preprocessor for JastAdd
This preprocessor including its source code is provided in the `preprocessor` subdirectory. This preprocessor including its source code is provided in the `preprocessor` subdirectory.
Its usage is: Its usage is:
- Running the preprocessor `java -jar relast-compiler.jar` - Run preprocessor on train benchmark (output written to standard output):
Run preprocessor on train benchmark (output written to standard output):
- `cat examples/TrainBenchmark.relast` - `cat examples/TrainBenchmark.relast`
- `java -jar relast-compiler.jar examples/TrainBenchmark.relast` - `java -jar relast-compiler.jar examples/TrainBenchmark.relast`
Run preprocessor and write output to files: - Run preprocessor and write output to files:
- `java -jar relast-compiler.jar examples/TrainBenchmark.relast --file`
`java -jar relast-compiler.jar examples/TrainBenchmark.relast --file` - `cat examples/TrainBenchmarkGen.ast`
`cat examples/TrainBenchmarkGen.ast` - `cat examples/TrainBenchmarkGen.jadd`
`cat examples/TrainBenchmarkGen.jadd`
Run preprocessor and write output to files (with a different list class):
`java -jar relast-compiler.jar examples/TrainBenchmark.relast --listClass=MyListClass --file` - Run preprocessor and write output to files (with a different list class):
`cat examples/TrainBenchmarkGen.ast` - `java -jar relast-compiler.jar examples/TrainBenchmark.relast --listClass=MyListClass --file`
`cat examples/TrainBenchmarkGen.jadd` - `cat examples/TrainBenchmarkGen.ast`
- `cat examples/TrainBenchmarkGen.jadd`
## The Train Benchmark ## The Train Benchmark
...@@ -155,8 +164,7 @@ However, since there are some software requirements imposed by the benchmark, pa ...@@ -155,8 +164,7 @@ However, since there are some software requirements imposed by the benchmark, pa
##### Running the Docker Image ##### Running the Docker Image
- `docker run -it trainbenchmark` - `docker run -it trainbenchmark`
To make the results available outside the container, run - To make the results available outside the container, run `docker run -it -v "$PWD"/docker-results:/trainbenchmark/results:Z -v "$PWD"/docker-diagrams:/trainbenchmark/diagrams:Z trainbenchmark`
`docker run -it -v "$PWD"/docker-results:/trainbenchmark/results:Z -v "$PWD"/docker-diagrams:/trainbenchmark/diagrams:Z trainbenchmark`
- A command prompt is opened and some information is displayed - A command prompt is opened and some information is displayed
- Follow the instructions below - Follow the instructions below
...@@ -171,7 +179,7 @@ However, since there are some software requirements imposed by the benchmark, pa ...@@ -171,7 +179,7 @@ However, since there are some software requirements imposed by the benchmark, pa
- run `./gradlew build shadowJar -x test` - run `./gradlew build shadowJar -x test`
- run `./gradlew initScripts` - run `./gradlew initScripts`
- configure the scripts either by running `./scripts/configure.sh 1 <MAXSIZE> <TIMEOUT in s> <REPETITIONS>` - configure the scripts either by running `./scripts/configure.sh 1 <MAXSIZE> <TIMEOUT in s> <REPETITIONS>`
Where MAXSIZE is one of 2,4,8,16,32,64,128,256,512,1024. The larger sizes use **a lot of** disk space! - Where MAXSIZE is one of 2,4,8,16,32,64,128,256,512,1024. The larger sizes use **a lot of** disk space!
- *Alternatively*, run `` - *Alternatively*, run ``
- run `./gradlew initScripts` - run `./gradlew initScripts`
- run `./gradlew generate` - run `./gradlew generate`
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment