From: Mart Lubbers Date: Wed, 27 Jan 2016 14:59:18 +0000 (+0100) Subject: final commit X-Git-Url: https://git.martlubbers.net/?a=commitdiff_plain;h=HEAD;p=des2015.git final commit --- diff --git a/marsrover/document/appendix.tex b/marsrover/document/appendix.tex index f41435a..3df4daf 100644 --- a/marsrover/document/appendix.tex +++ b/marsrover/document/appendix.tex @@ -1,7 +1,15 @@ \section{Appendix} \lstinputlisting[label={lst:grammar},caption={Xtext grammar}]% {../../dsl/xtend/src/robots/missions/TaskDSL.xtext} + +\newpage +\lstinputlisting[label={lst:inst},caption={DSL instance}]% + {../../dsl/runtime/specs/wander.tdsl} + +\newpage \lstinputlisting[label={lst:gen},caption={Xtend code generation}] {../../dsl/xtend/src/robots/missions/generator/TaskDSLGenerator.xtend} + +\newpage \lstinputlisting[label={lst:val},caption={Xtend code validation}] {../../dsl/xtend/src/robots/missions/validation/TaskDSLValidator.xtend} diff --git a/marsrover/document/evaluation.tex b/marsrover/document/evaluation.tex index 9da0bdf..9d39240 100644 --- a/marsrover/document/evaluation.tex +++ b/marsrover/document/evaluation.tex @@ -141,9 +141,9 @@ setting everything up and there was quite some overhead since the tools required a lot of computing power. But when everything was set up correctly it worked like a charm. -Creating our solution was a bit difficult at the beginning due to extra works -designing the DSL to accomodate the robot's missions and behaviours. However when -the DSL was created appropriately the generation of different missions and +Creating our solution was a bit difficult at the beginning due to extra works +designing the DSL to accomodate the robot's missions and behaviours. However +when the DSL was created appropriately the generation of different missions and behaviours for the robot became very easy. \paragraph{General lessons learned} @@ -159,4 +159,5 @@ when the bricks can pair. We have experimented with autonomous pairing but we never got it stable but with more time we could make it stable. Another option is to try to get more requirements. For example the mapping and internal representation of the locations of the lakes. This problem is not trivial at -all and because of the lack of time we could unfortunately not spend time on it. +all and because of the lack of time we could unfortunately not spend time on +it. diff --git a/marsrover/document/marsrover.tex b/marsrover/document/marsrover.tex index caf73ec..344b791 100644 --- a/marsrover/document/marsrover.tex +++ b/marsrover/document/marsrover.tex @@ -7,6 +7,7 @@ \input{robot.tex} \input{evaluation.tex} \input{appendix.tex} +\newpage \bibliographystyle{ieeetr} \bibliography{marsrover} \end{document} diff --git a/marsrover/document/robot.tex b/marsrover/document/robot.tex index 052ec82..27efa44 100644 --- a/marsrover/document/robot.tex +++ b/marsrover/document/robot.tex @@ -167,12 +167,12 @@ mapping is described in \autoref{tab:mapping}. A domain-specific language (DSL) is a programming language or executable specification language that offers, through appropriate notations and abstractions, expressive power focused on, and usually restricted to, a -particular problem domain~\cite{van2002domain}. The DSL for the robot is designed so that the -robot is able to perform multiple missions consisting of behaviours. A mission -is basically a set of behaviours operating following the subsumption -architecture assisted by a special purpose behaviour that shuts down the -runtime to make room for a new mission. The complete grammar of the DSL can be -found in \autoref{lst:grammar}. +particular problem domain~\cite{van2002domain}. The DSL for the robot is +designed so that the robot is able to perform multiple missions consisting of +behaviours. A mission is basically a set of behaviours operating following the +subsumption architecture assisted by a special purpose behaviour that shuts +down the runtime to make room for a new mission. The complete grammar of the +DSL can be found in \autoref{lst:grammar}. \autoref{fig:dsl} describes the hierarchy of the grammar. A \emph{Robot} is a set of constants combined with a list of \emph{Behaviour}s and a list of @@ -207,7 +207,8 @@ behaviours both want control at all times. A behaviour that wants control at all times can be a valid design but when there are two with that property, only one will be used. To avoid such situations the IDE will warn the user when this is the case. The full code for the code validation can be found in -\autoref{lst:val}. +\autoref{lst:val}. The full DSL instance used in the demonstration can be found +in \autoref{lst:inst}. \subsection{Code Structure} The complete code generation code can be found in \autoref{lst:gen}. The