<?xml version="1.0" encoding="UTF-8"?>
<TEI xml:space="preserve" xmlns="http://www.tei-c.org/ns/1.0" 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
xsi:schemaLocation="http://www.tei-c.org/ns/1.0 https://raw.githubusercontent.com/kermitt2/grobid/master/grobid-home/schemas/xsd/Grobid.xsd"
 xmlns:xlink="http://www.w3.org/1999/xlink">
	<teiHeader xml:lang="en">
		<fileDesc>
			<titleStmt>
				<title level="a" type="main">Create and Play your Pac-Man Game with the GEMOC Studio</title>
			</titleStmt>
			<publicationStmt>
				<publisher/>
				<availability status="unknown"><licence/></availability>
			</publicationStmt>
			<sourceDesc>
				<biblStruct>
					<analytic>
						<author>
							<persName><forename type="first">Dorian</forename><surname>Leroy</surname></persName>
							<email>dorian.leroy@cis.jku.at</email>
							<affiliation key="aff0">
								<orgName type="institution">Université de Rennes 1</orgName>
								<address>
									<country key="FR">France</country>
								</address>
							</affiliation>
						</author>
						<author>
							<persName><forename type="first">Erwan</forename><surname>Bousse</surname></persName>
							<email>erwan.bousse@tuwien.ac.at</email>
							<affiliation key="aff0">
								<orgName type="institution">Université de Rennes 1</orgName>
								<address>
									<country key="FR">France</country>
								</address>
							</affiliation>
						</author>
						<author>
							<persName><forename type="first">Manuel</forename><surname>Wimmer</surname></persName>
							<email>wimmer@big.tuwien.ac.at</email>
							<affiliation key="aff0">
								<orgName type="institution">Université de Rennes 1</orgName>
								<address>
									<country key="FR">France</country>
								</address>
							</affiliation>
						</author>
						<author>
							<persName><forename type="first">Benoit</forename><surname>Combemale</surname></persName>
							<email>benoit.combemale@irisa.fr</email>
							<affiliation key="aff0">
								<orgName type="institution">Université de Rennes 1</orgName>
								<address>
									<country key="FR">France</country>
								</address>
							</affiliation>
						</author>
						<author>
							<persName><forename type="first">Wieland</forename><surname>Schwinger</surname></persName>
							<email>wieland.schwinger@jku.ac.at</email>
							<affiliation key="aff0">
								<orgName type="institution">Université de Rennes 1</orgName>
								<address>
									<country key="FR">France</country>
								</address>
							</affiliation>
						</author>
						<author>
							<persName><forename type="first">Jku</forename><surname>Linz</surname></persName>
							<affiliation key="aff0">
								<orgName type="institution">Université de Rennes 1</orgName>
								<address>
									<country key="FR">France</country>
								</address>
							</affiliation>
						</author>
						<author>
							<persName><surname>Austria</surname></persName>
							<affiliation key="aff0">
								<orgName type="institution">Université de Rennes 1</orgName>
								<address>
									<country key="FR">France</country>
								</address>
							</affiliation>
						</author>
						<author>
							<persName><forename type="first">‡</forename><surname>Tu</surname></persName>
							<affiliation key="aff0">
								<orgName type="institution">Université de Rennes 1</orgName>
								<address>
									<country key="FR">France</country>
								</address>
							</affiliation>
						</author>
						<author>
							<persName><forename type="first">Wien</forename><forename type="middle">(</forename><surname>Austria</surname></persName>
							<affiliation key="aff0">
								<orgName type="institution">Université de Rennes 1</orgName>
								<address>
									<country key="FR">France</country>
								</address>
							</affiliation>
						</author>
						<title level="a" type="main">Create and Play your Pac-Man Game with the GEMOC Studio</title>
					</analytic>
					<monogr>
						<imprint>
							<date/>
						</imprint>
					</monogr>
					<idno type="MD5">88EE222BC55138F2C321EEA28FA6E171</idno>
				</biblStruct>
			</sourceDesc>
		</fileDesc>
		<encodingDesc>
			<appInfo>
				<application version="0.7.2" ident="GROBID" when="2023-03-24T01:14+0000">
					<desc>GROBID - A machine learning software for extracting information from scholarly documents</desc>
					<ref target="https://github.com/kermitt2/grobid"/>
				</application>
			</appInfo>
		</encodingDesc>
		<profileDesc>
			<textClass>
				<keywords>
					<term>Model Execution</term>
					<term>Reactive DSLs</term>
					<term>Code Generation</term>
				</keywords>
			</textClass>
			<abstract>
<div xmlns="http://www.tei-c.org/ns/1.0"><p>Executable Domain-Specific Languages (DSLs) are used for defining the behaviors of systems. The operational semantics of such DSLs may define how conforming models react to stimuli from their environment. This commonly requires adapting the semantics to define both the possible domainlevel stimuli, and their handling during the execution. However, manually adapting the semantics for such cross-cutting concern is a complex and error-prone task. In this paper, we present an approach and a tool addressing this problem by augmenting the operational semantics for handling stimuli, and by automatically generating a complete behavioral language interface from this augmentation. At runtime, this interface can receive stimuli sent to models, and can safely handle them by interrupting the execution flow. This tool has been developed for the GEMOC Studio, a language and modeling workbench for executable DSLs. We demonstrate how it can be used to implement a Pac-Man DSL enabling the creation and execution of Pac-Man games.</p></div>
			</abstract>
		</profileDesc>
	</teiHeader>
	<text xml:lang="en">
		<body>
<div xmlns="http://www.tei-c.org/ns/1.0"><head>I. INTRODUCTION</head><p>A large number of Domain-Specific Languages (DSLs) geared toward the description of the behavior of systems (e.g., <ref type="bibr" target="#b0">[1]</ref>, <ref type="bibr" target="#b1">[2]</ref>, <ref type="bibr" target="#b2">[3]</ref>, <ref type="bibr" target="#b3">[4]</ref>, <ref type="bibr" target="#b4">[5]</ref>). Enabling the execution of their conforming models allows to make the most out of those models. This requires the definition of the execution semantics of these languages, including how conforming models react to stimuli from their environment <ref type="bibr" target="#b5">[6]</ref>. This includes the definition both of possible domain-specific events-i.e., the different types of stimuli in the considered domain-and of how occurrences of said events are to be handled.</p><p>But incorporating events handling logic within operational semantics is a difficult task, as it impacts both the content (e.g., adding event-processing code in existing execution rules) and the scheduling of execution rules (e.g., defining instants in the execution when stimuli should be handled). In addition, at runtime, it is necessary to provide an interface to allow external actors (e.g., a simulator, a test engine, other models, etc.) to send event occurrences to models being executed. Depending on how a semantics is structured, this may require a mechanism to temporarily interrupt the execution of the model (similarly to interruptable models in the DEVS formalism <ref type="bibr" target="#b5">[6]</ref>), in order to react to event occurrences by triggering their handling. Overall, manually defining such interface and its integration with the semantics can be a tedious and error-prone task, which must be repeated for each executable DSL.</p><p>The demonstrated tool aims to solve this problem. It is developed as an extension to the GEMOC Studio <ref type="bibr" target="#b6">[7]</ref>, an Eclipsebased language and modeling workbench for executable DSLs. It provides a non-intrusive and modular way to define both the possible domain-specific events and their handling logic within the operational semantics of a DSL. It then generates an interface to safely send event occurrences to a model being executed, i.e., only when the model is in a consistent state. An extension to the execution environment has been developed to use this interface. The use of this tool is illustrated with a Pac-Man DSL ( <ref type="bibr" target="#b7">[8]</ref>, <ref type="bibr" target="#b8">[9]</ref>) allowing to define customized versions of the world-famous Pac-Man video game, which can then be played. The tooling as well as the example presented in this paper are available on Github 12 .</p><p>The remainder of this paper is structured as follows. In Section II, we provide an overview of the architecture of the tool. Section III details the Pac-Man use case. Finally, future research directions are given in Section IV.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head>II. ARCHITECTURE</head><p>In this section we present the architecture of the tool, which is developed as a reactive extension to the GEMOC Studio and is written in Java and Xtend.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head>A. Executable DSLs and Event Handlers Annotation</head><p>The tool presented in this paper supports DSLs whose abstract syntax is provided as a metamodel and whose execution semantics is provided as an operational semantics. The considered operational semantics can be decomposed in i) a data structure representing the model state and ii) a set of execution rules. The model state is defined in an execution metamodel extending the abstract syntax metamodel. Before the execution, models are initialized through a transformation from the abstract syntax to the execution metamodel. Model execution is performed by an endogenous, in-place transformation on this model state, using the set of execution rules constituting the operational semantics of the DSL. The approach relies on providing an annotation mechanism to tag execution rules as event handlers. This allows the identification of both events and their corresponding handler. In the GEMOC Studio, Ecore <ref type="bibr" target="#b9">[10]</ref> is used as a metamodeling language to define the abstract syntax and the execution metamodel of DSLs.</p><p>One goal of the underlying approach is to support multiple metaprogramming languages to define the operational semantics of DSLs. We support the Kermeta language <ref type="bibr" target="#b10">[11]</ref> and the xMOF language <ref type="bibr" target="#b11">[12]</ref>. For example, in Kermeta, an @Step annotation allows to tag methods as execution steps. This annotation has been extended with the eventHandler boolean parameter. This parameter fulfills the role required to tag execution rules as event handlers.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head>B. Execution Engine</head><p>Within the GEMOC Studio, model execution is orchestrated by a component called the execution engine. Among other things, this component is responsible for starting and stopping the execution. It is notified whenever the execution of a rule is about to begin or comes to an end. During such notifications, the engine guarantees that there is no ongoing atomic execution step, which means that the executed model is in a consistent state. A component can be notified each time the model reaches such a state by registering as a listener to the execution engine. Figure <ref type="figure" target="#fig_0">1</ref> shows how we leverage the notifications sent to the execution engine to introduce event processing in the execution loop. The DSL (Pac-Man in Figure <ref type="figure" target="#fig_0">1</ref>) interpreter executes the rules of the operational semantics, and notifies the execution engine when such a rule is executed (here the update rule). The execution engine then delegates the handling of events to the event manager, through the processEvent service. In turn, the event manager iterates over its event queue and delegates for each event the call of the corresponding execution rule to the (generated) DSL event interpreter, through the dispatchEvent service. These two components are detailed below.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head>C. Behavioral Language Interface</head><p>The behavioral language interface of an executable DSL allows external actors to send stimuli to executed models. It can be decomposed as a domain-specific event metamodel and a domain-specific event interpreter. These artifacts are both generated from the annotated execution semantics of the DSL by a generator implemented in Xtend taking the definition of the DSL as input. This generator uses the annotation mechanism provided by the approach to detect execution rules that are event handlers. The outputs of the generator are an Ecore event metamodel and a Java class providing the dispatchEvent service. As shown on Figure <ref type="figure" target="#fig_0">1</ref>, this service retrieves the parameters stored within the provided event model and calls the corresponding execution rule with these parameters.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head>D. Event manager</head><p>The event manager is the component linking the execution engine to the generated event interpreter. It has a dynamic state composed of the event queue which is a list of models conforming to the domain-specific event metamodel (i.e., domainspecific stimuli) part of the behavioral language interface. The event manager provides the queueEvent service, which is used by external components to push event occurrences to the event queue. The processEvents service of the event interpreter is called by the execution engine each time the execution reaches a new consistent state. It leads to the temporary interruption of the planned scheduling of execution rules in order to call the handling rule corresponding to each event occurrence in the event queue.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head>E. External Components</head><p>External components use the behavioral language interface to interact with executed models, through the event manager. These components can listen to the execution by registering as listeners to the execution engine. This way they are notified when the execution starts, stops or reaches a consistent state, which allows them to perform their intended task with reliable data (i.e., the model's dynamic state). These components also have access to the services provided by the event interpreter to check if particular stimuli can be processed in the current execution state and to push stimuli to the queue. The Pac-Man GUI (presented below) is such an external component, refreshing the view when receiving notifications from the engine, and forwarding the user's inputs to the behavioral interface of the Pac-Man DSL under the form of instances from its event metamodel.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head>III. THE PAC-MAN EXAMPLE</head><p>In this section we detail the Pac-Man DSL used in this tool demonstration. The domain targeted by this DSL is thus the definition of Pac-Man games, including the topology of the level (walls, ghost house and pellets), the number of ghosts, their behavior and the starting positions and number of ghosts and pacmen.</p><p>Operational Semantics: The real-time aspect of the execution semantics is obtained by using a classic game loop, illustrated by Algorithm 1. Thread sleeps are used in order to reach a target frame rate. The lower part of Figure <ref type="figure">2</ref> shows a subset of the execution rules of the Pac-Man DSL. Entities have an update rule used to check whether they reached a new Tile according to their speed and the time they already spent in their current Tile. Entities also have an enterNextTile rule that takes care of the actual move and deals with the consequences of this move (e.g., killing the Pacman if a Ghost reaches the same Tile, eating the Pellet present on the Tile, etc.). The Pacman entity has a set of rules (up, down, left and right) allowing it to change its direction. These rules are annotated as an event handlers, which means that events can be sent to the model to change the direction of the pacman. The event metamodel generated from these annotations is shown in Figure <ref type="figure">3</ref>.</p><p>User Interface: The user interface has been specifically developed for the Pac-Man DSL. It is implemented in JavaFX and consists of two parts: an editor presenting useful tools to build a Pac-Man game, and the actual game interface, which receives events from the keyboards and delegates them to the behavioral interface through the event manager. The game interface is implemented as an execution engine listener and updates its view when notified by the engine that a call to the update execution rule of the Board has been completed.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head>IV. FUTURE WORK</head><p>The direct perspectives of this work include the three following research topics. First, defining and the handling of output events occurrences sent by an executed model to its environment. This would be a first step toward enabling co-simulation in a generic way. Second, the combined use of behavioral language interfaces and temporal property languages would allow to investigate activities such as testing or runtime monitoring for executable DSLs. Third, the implementation of the underlying approach with another meta-programming language such as xMOF.</p></div><figure xmlns="http://www.tei-c.org/ns/1.0" xml:id="fig_0"><head>Fig. 1 :</head><label>1</label><figDesc>Fig. 1: Sequence diagram of a call to manageEvents.</figDesc></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0" xml:id="fig_1"><head>Fig. 2 : 1 Fig. 3 :</head><label>213</label><figDesc>Fig. 2: Overview of the Pac-Man DSL.</figDesc></figure>
			<note xmlns="http://www.tei-c.org/ns/1.0" place="foot" n="1" xml:id="foot_0">https://github.com/eclipse/gemoc-studio</note>
			<note xmlns="http://www.tei-c.org/ns/1.0" place="foot" n="2" xml:id="foot_1">https://github.com/tetrabox/pacman-example.git</note>
		</body>
		<back>

			<div type="acknowledgement">
<div xmlns="http://www.tei-c.org/ns/1.0"><p>Acknowledgements-This work has been funded by: the Austrian Science Fund (FWF): P 28519-N31; the Austrian Agency for International Mobility and Cooperation in Education, Science and Research (OeAD) on behalf of the Federal Ministry for Science, Research and Economy (BMWFW) under the grand number FR 08/2017, by the French Ministries of Foreign Affairs and International Development (MAEDI), and the French Ministry of Education, Higher Education and Research (MENESR); Austrian Federal Ministry of Science, Research and Economy and the National Foundation for Research, Technology and Development.</p></div>
			</div>

			<div type="references">

				<listBibl>

<biblStruct xml:id="b0">
	<monogr>
		<title level="m" type="main">Semantics of a Foundational Subset for Executable UML Models</title>
		<imprint>
			<date type="published" when="2013-08">August 2013</date>
			<biblScope unit="volume">1</biblScope>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b1">
	<analytic>
		<title level="a" type="main">Definition of an executable SPEM 2.0</title>
		<author>
			<persName><forename type="first">R</forename><surname>Bendraou</surname></persName>
		</author>
		<author>
			<persName><forename type="first">B</forename><surname>Combemale</surname></persName>
		</author>
		<author>
			<persName><forename type="first">X</forename><surname>Crégut</surname></persName>
		</author>
		<author>
			<persName><forename type="first">M</forename><forename type="middle">P</forename><surname>Gervais</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">Proceedings of the 14th Asia-Pacific Software Engineering Conference (APSEC&apos;07)</title>
				<meeting>the 14th Asia-Pacific Software Engineering Conference (APSEC&apos;07)</meeting>
		<imprint>
			<publisher>IEEE</publisher>
			<date type="published" when="2007">2007</date>
			<biblScope unit="page" from="390" to="397" />
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b2">
	<analytic>
		<title level="a" type="main">Story Diagrams: A New Graph Rewrite Language Based on the Unified Modeling Language and Java</title>
		<author>
			<persName><forename type="first">T</forename><surname>Fischer</surname></persName>
		</author>
		<author>
			<persName><forename type="first">J</forename><surname>Niere</surname></persName>
		</author>
		<author>
			<persName><forename type="first">L</forename><surname>Torunski</surname></persName>
		</author>
		<author>
			<persName><forename type="first">A</forename><surname>Zündorf</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">Proceedings of the 6th International Workshop Theory and Application of Graph Transformations (TAGT&apos;98)</title>
				<meeting>the 6th International Workshop Theory and Application of Graph Transformations (TAGT&apos;98)</meeting>
		<imprint>
			<date type="published" when="2000">2000</date>
			<biblScope unit="volume">1764</biblScope>
			<biblScope unit="page" from="157" to="167" />
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b3">
	<analytic>
		<title level="a" type="main">STATEMATE: a working environment for the development of complex reactive systems</title>
		<author>
			<persName><forename type="first">D</forename><surname>Harel</surname></persName>
		</author>
		<author>
			<persName><forename type="first">H</forename><surname>Lachover</surname></persName>
		</author>
		<author>
			<persName><forename type="first">A</forename><surname>Naamad</surname></persName>
		</author>
		<author>
			<persName><forename type="first">A</forename><surname>Pnuelli</surname></persName>
		</author>
		<author>
			<persName><forename type="first">M</forename><surname>Politi</surname></persName>
		</author>
		<author>
			<persName><forename type="first">R</forename><surname>Sherman</surname></persName>
		</author>
		<author>
			<persName><forename type="first">A</forename><surname>Shtull-Trauring</surname></persName>
		</author>
		<author>
			<persName><forename type="first">M</forename><surname>Trakhtenbrot</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="j">IEEE Transactions on software engineering</title>
		<imprint>
			<biblScope unit="volume">16</biblScope>
			<biblScope unit="issue">4</biblScope>
			<biblScope unit="page" from="403" to="414" />
			<date type="published" when="1990">1990</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b4">
	<monogr>
		<title level="m" type="main">Web Services Business Process Execution Language Version 2</title>
		<imprint>
			<date type="published" when="2007">2007</date>
			<biblScope unit="volume">0</biblScope>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b5">
	<analytic>
		<title level="a" type="main">An introduction to classic DEVS</title>
		<author>
			<persName><forename type="first">Y</forename><forename type="middle">V</forename><surname>Tendeloo</surname></persName>
		</author>
		<author>
			<persName><forename type="first">H</forename><surname>Vangheluwe</surname></persName>
		</author>
		<idno>. abs/1701.07697</idno>
	</analytic>
	<monogr>
		<title level="j">CoRR</title>
		<imprint>
			<date type="published" when="2017">2017</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b6">
	<analytic>
		<title level="a" type="main">Execution Framework of the GEMOC Studio (Tool Demo)</title>
		<author>
			<persName><forename type="first">E</forename><surname>Bousse</surname></persName>
		</author>
		<author>
			<persName><forename type="first">T</forename><surname>Degueule</surname></persName>
		</author>
		<author>
			<persName><forename type="first">D</forename><surname>Vojtisek</surname></persName>
		</author>
		<author>
			<persName><forename type="first">T</forename><surname>Mayerhofer</surname></persName>
		</author>
		<author>
			<persName><forename type="first">J</forename><surname>Deantoni</surname></persName>
		</author>
		<author>
			<persName><forename type="first">B</forename><surname>Combemale</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">Proceedings of the 9th International Conference on Software Language Engineering (SLE&apos;16)</title>
				<meeting>the 9th International Conference on Software Language Engineering (SLE&apos;16)</meeting>
		<imprint>
			<date type="published" when="2016">2016. 2016</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b7">
	<analytic>
		<title level="a" type="main">Graph transformation in a nutshell</title>
		<author>
			<persName><forename type="first">R</forename><surname>Heckel</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="j">Electr. Notes Theor. Comput. Sci</title>
		<imprint>
			<biblScope unit="volume">148</biblScope>
			<biblScope unit="issue">1</biblScope>
			<biblScope unit="page" from="187" to="198" />
			<date type="published" when="2006">2006</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b8">
	<analytic>
		<title level="a" type="main">A modular timed graph transformation language for simulation-based design</title>
		<author>
			<persName><forename type="first">E</forename><surname>Syriani</surname></persName>
		</author>
		<author>
			<persName><forename type="first">H</forename><surname>Vangheluwe</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="j">Software and System Modeling</title>
		<imprint>
			<biblScope unit="volume">12</biblScope>
			<biblScope unit="issue">2</biblScope>
			<biblScope unit="page" from="387" to="414" />
			<date type="published" when="2013">2013</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b9">
	<monogr>
		<author>
			<persName><forename type="first">D</forename><surname>Steinberg</surname></persName>
		</author>
		<author>
			<persName><forename type="first">F</forename><surname>Budinsky</surname></persName>
		</author>
		<author>
			<persName><forename type="first">M</forename><surname>Paternostro</surname></persName>
		</author>
		<author>
			<persName><forename type="first">E</forename><surname>Merks</surname></persName>
		</author>
		<title level="m">EMF: Eclipse Modeling Framework</title>
				<imprint>
			<publisher>Addison-Wesley Professional</publisher>
			<date type="published" when="2008">2008</date>
		</imprint>
	</monogr>
	<note>2nd Edition. Eclipse Series</note>
</biblStruct>

<biblStruct xml:id="b10">
	<analytic>
		<title level="a" type="main">Mashup of metalanguages and its implementation in the Kermeta language workbench</title>
		<author>
			<persName><forename type="first">J.-M</forename><surname>Jézéquel</surname></persName>
		</author>
		<author>
			<persName><forename type="first">B</forename><surname>Combemale</surname></persName>
		</author>
		<author>
			<persName><forename type="first">O</forename><surname>Barais</surname></persName>
		</author>
		<author>
			<persName><forename type="first">M</forename><surname>Monperrus</surname></persName>
		</author>
		<author>
			<persName><forename type="first">F</forename><surname>Fouquet</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="j">Software and Systems Modeling</title>
		<imprint>
			<biblScope unit="volume">14</biblScope>
			<biblScope unit="issue">2</biblScope>
			<date type="published" when="2013">2013</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b11">
	<analytic>
		<title level="a" type="main">xMOF: Executable DSMLs based on fUML</title>
		<author>
			<persName><forename type="first">T</forename><surname>Mayerhofer</surname></persName>
		</author>
		<author>
			<persName><forename type="first">P</forename><surname>Langer</surname></persName>
		</author>
		<author>
			<persName><forename type="first">M</forename><surname>Wimmer</surname></persName>
		</author>
		<author>
			<persName><forename type="first">G</forename><surname>Kappel</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">Proceedings of the 6th International Conference on Software Language Engineering (SLE&apos;13)</title>
				<meeting>the 6th International Conference on Software Language Engineering (SLE&apos;13)</meeting>
		<imprint>
			<publisher>Springer</publisher>
			<date type="published" when="2013">2013</date>
			<biblScope unit="volume">8225</biblScope>
		</imprint>
	</monogr>
</biblStruct>

				</listBibl>
			</div>
		</back>
	</text>
</TEI>
