diff --git a/README.html b/README.html index 14ebfd36f87de38c41f695d905b1dd9f01970424..abfcd956b2ebdcbad1d9b81087916e31b4421d36 100644 --- a/README.html +++ b/README.html @@ -1,4 +1,26 @@ +<!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 "Continuous Model Validation Using Reference Attribute Grammars"</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> <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> @@ -44,17 +66,22 @@ </table> <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>Its usage is: - Running the preprocessor <code>java -jar relast-compiler.jar</code> Run preprocessor on train benchmark (output written to standard output):</p> -<pre><code>- `cat examples/TrainBenchmark.relast` -- `java -jar relast-compiler.jar examples/TrainBenchmark.relast`</code></pre> -<p>Run preprocessor and write output to files:</p> -<pre><code>`java -jar relast-compiler.jar examples/TrainBenchmark.relast --file` -`cat examples/TrainBenchmarkGen.ast` -`cat examples/TrainBenchmarkGen.jadd`</code></pre> -<p>Run preprocessor and write output to files (with a different list class):</p> -<pre><code>`java -jar relast-compiler.jar examples/TrainBenchmark.relast --listClass=MyListClass --file` -`cat examples/TrainBenchmarkGen.ast` -`cat examples/TrainBenchmarkGen.jadd`</code></pre> +<p>Its usage is: - Run preprocessor on train benchmark (output written to standard output):<br /> +- <code>cat examples/TrainBenchmark.relast</code> - <code>java -jar relast-compiler.jar examples/TrainBenchmark.relast</code></p> +<ul> +<li>Run preprocessor and write output to files: +<ul> +<li><code>java -jar relast-compiler.jar examples/TrainBenchmark.relast --file</code></li> +<li><code>cat examples/TrainBenchmarkGen.ast</code></li> +<li><code>cat examples/TrainBenchmarkGen.jadd</code></li> +</ul></li> +<li>Run preprocessor and write output to files (with a different list class): +<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> <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> @@ -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> </ul></li> </ul> +</body> +</html> diff --git a/README.md b/README.md index 835c6bc7012c2164a2d3b4e2fc30a29e7b65c367..950e81ec99add3ec074d22e20163df2e94f73bad 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,18 @@ # 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 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 This preprocessor including its source code is provided in the `preprocessor` subdirectory. 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` - `java -jar relast-compiler.jar examples/TrainBenchmark.relast` - -Run preprocessor and write output to files: - - `java -jar relast-compiler.jar examples/TrainBenchmark.relast --file` - `cat examples/TrainBenchmarkGen.ast` - `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` - `cat examples/TrainBenchmarkGen.ast` - `cat examples/TrainBenchmarkGen.jadd` + +- Run preprocessor and write output to files: + - `java -jar relast-compiler.jar examples/TrainBenchmark.relast --file` + - `cat examples/TrainBenchmarkGen.ast` + - `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` + - `cat examples/TrainBenchmarkGen.ast` + - `cat examples/TrainBenchmarkGen.jadd` ## The Train Benchmark @@ -155,8 +164,7 @@ However, since there are some software requirements imposed by the benchmark, pa ##### Running the Docker Image - `docker run -it trainbenchmark` - 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` + - 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` - A command prompt is opened and some information is displayed - Follow the instructions below @@ -171,7 +179,7 @@ However, since there are some software requirements imposed by the benchmark, pa - run `./gradlew build shadowJar -x test` - run `./gradlew initScripts` - 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 `` - run `./gradlew initScripts` - run `./gradlew generate`