A Domain Specific Language for Composable Memory ... - Springer Link
Recommend Documents
users can create their queries. ... databases, we are proposing a neuron domain-specific query language .... {dt | dt is the name of a neuron-domain data type.
In this paper, we describe SPOOFAX/IMP, a system that integrates a Java- ... uses compositional editor service descriptors, defined in domain-specific languages .... table. : include/WebDSL.tbl start symbols : Start url. : http://www.webdsl.org/.
models can be described in explicitly defined model transformations. To define a ... transformation sequences by control structures or rule application strategies. Composition .... the adaption of the syntax is performed manually. To our best ...
addition to the technology and knowledge transfer to industry. ...... input of specific testing tools, e.g., HP LoadRunner [Hew15], Microsoft Visual Studio [Mic15b], ...... the standard deviation for each block was, respectively, 14.65, 12.53, 10.11
Javier Luis Cánovas Izquierdo, Jesús Sánchez Cuadrado, Jesús Garcıa Molina ..... of a no terminal symbol in a rule's right hand side. When. BNF is considered ...
Jun 5, 2007 - buttons. The user typically enters information by typing text and choosing amongst .... In the fragment below, the buttons for Next and Quit are displayed next to each other (but below the options): ..... idTable.clear(); handler(env).
GenoCAD [8] is a Web-based visual application guiding users through the design of ..... grammar with different semantic actions and the creation of parsers in ...
Jan 20, 2004 - Shenvi et al. (2007) created a DSML to model an electronic Patient Care Report (ePCRs). The metamodel includes domain-specific modelling.
Apr 23, 2013 - â«Domain Specific Languages. â«Grammar. â«Repository Access. â«Tools. â«Results and Implications. Note : This work was not performed as part of a ...
components as means to achieve finetuned customization of component ... software composition, predictable assembly means to find a set of components.
... Engineering,. Experimental Software Engineering, Usability Engineering, Domain Engineering ... Systematic Literature Review (SLR) is a research method to obtain, evaluate, and interpret ...... User-centric adaptation of Web information for.
Corresponding authors: Campbell, Karen L (karen.campbell@brocku. ca), Tyler ..... 26. Raichle ME, MacLeod AM, Snyder AZ, Powers WJ, Gusnard DA,.
technology architecture like Moodle, for example, they use a Apache Web server, a MySQL data base and PHP programming language. For the purpose of this ...
Aug 28, 2015 - Doctor JoËao Carlos Pascoal de Faria, Assistant Professor at Faculdade de .... a web-based manual, a series of tutorial videos and a collection of simple ..... 6.1.4 Simulation Model D â Game of Life . ... B Ratings . ... 2.1 Three
Domain Specific Language for the Generation of Learning Management Systems ... The next step was constructing a DSL tool based on the modules of .... module.php: is the main module file which gets included whenever a page is loaded.
Antonio García-Domínguez, Ismael Jerez-Ibáñez and. Inmaculada Medina-Bulo. July 8th, 2015. A. García-Domínguez et al. Domain-Specific Language for ...
the development of a Domain Specific Language (DSL) tool to validate the metamodel, .... mod_form.php: a form to set up or update an instance of this module.
allows simplifying Programmable Logic Controller (PLC) programming, by ...... [29] D. James, âBest of the batch [batch processing],â Com- puting Control Eng. J., ...
A Domain Specific Modeling Language Supporting. Specification, Simulation and Execution of. Dynamic Adaptive Systems*. Franck Fleurey and Arnor Solberg.
is usually not the domain of a vehicle test engineer. In a next step we ... meta-information, such as available components, their interfaces and categorization ...
Specific Open Query Language for Building Information Models. ... et al) or by writing custom queries in JAVA. ... this section we provide an overview of these two categories of BIM querying ... existing database applications on the market use the St
Mar 12, 2007 - A primary characteristic of Embedded Real-Time Systems (ERTS) is the fact that ... the need for a Domain-Specific Aspect Language (DSAL) [10] which can help ... software. Section 5 discusses areas of future work, and Section 6 conclude
should be best following relational orientation to small sets and item-specific orientation to large sets; that is, a large number of sentences related to a theme ...
Nov 17, 2014 - validation can be done in the compiler, avoiding generation of invalid programs. ..... call, where calls to the V-cycle function to work on the next.
A Domain Specific Language for Composable Memory ... - Springer Link
Multi-core machines are now available everywhere. The traditional way to pro- ... a transaction finishes, it validates its log to check if it has seen a consistent.
A Domain Specific Language for Composable Memory Transactions in Java Andr´e Rauber Du Bois and Marcos Echevarria PPGInf - Programa de P´ os-Gradua¸ca ˜o em Inform´ atica, Universidade Cat´ olica de Pelotas CEP: 96010-000, Pelotas-RS, Brazil {dubois,marcosge}@ucpel.tche.br
Abstract. In this paper we present CMTJava, a domain specific language for composable memory transactions [7] in Java. CMTJava provides the abstraction of transactional objects. Transactional objects have their fields accessed only by special get and set methods that are automatically generated by the compiler. These methods return transactional actions as a result. A transactional action is an action that, when executed, will produce the desired effect. Transactional actions can only be executed by the atomic method. Transactional actions are first class values in Java and they are composable: transactions can be combined to generate new transactions. The Java type system guarantees that the fields of transactional objects will never be accessed outside a transaction. CMTJava supports the retry and orElse constructs from STM Haskell. To validate our design we implemented a simple transactional system following the description of the original Haskell system. CMTJava is implemented as a state passing monad using BBGA closures, a Java extension that supports closures in Java.
1
Introduction
Multi-core machines are now available everywhere. The traditional way to program these machines using threads, shared memory and locks for synchronization is difficult and has many pitfalls [16,22,24]. A promising approach to program multi-core machines is to use software transactional memory (STM). In this approach, accesses to shared memory are performed inside transactions, and a transaction is guaranteed to be executed atomically with respect to other concurrently executed transactions. Transactions can be implemented using optimistic concurrency: all transactions are executed concurrently with no synchronization, all writes and reads to shared memory are performed in a transaction log. When a transaction finishes, it validates its log to check if it has seen a consistent view of memory, and if so, its changes are committed to memory. If validation fails the log is discarded and the transaction is executed again with a fresh log. With atomic transactions the programmer still has to worry when critical sections should begin and end. But although having to delimit critical sections, the programmer does not need to worry about a locking protocol, that can induce problems like deadlocks. W.M. Taha (Ed.): DSL 2009, LNCS 5658, pp. 170–186, 2009. c IFIP International Federation for Information Processing 2009
A Domain Specific Language for Composable Memory Transactions in Java
171
In this paper, we present CMTJava, a domain specific language to write composable memory transactions in Java. CMTJava brings the idea of composable memory transactions in the functional language Haskell [7] to a object oriented context. The main characteristics of the CMTJava system are: – CMTJava provides the abstraction of Transactional Objects. Transactional objects have their fields accessed only by special get and set methods that are automatically generated by the compiler. These methods return transactional actions as a result. A transactional action is an action that, when executed, will produce the desired effect. Java’s type system guarantees that the fields of transactional objects can only be accessed inside transactions. Transactions can only executed with the atomic method. The atomic method takes a transaction as an argument and executes it atomically with respect to all other memory transactions. As transactions can not be executed outside a call to atomic, properties like atomicity (the effects of a transaction must be visible to all threads all at once) and isolation (during the execution of a transaction, it can not be affected by other transactions) are always manteined. – Transactional actions are first class values in Java, they can be passed as arguments to methods and can be returned as the result of a method call. Transactions are composable: they can be combined to generate new transactions. Transactions are composed using STM blocks (Section 2), and we also support the retry construct, that allows possibly-blocking transactions to be composed sequentially and the orElse construct that allows transactions to be composed as alternatives. – Transactions are implemented as a state passing monad (Section 3.3). Most of the simplicity of the implementation comes from the fact that we use a Java extension for closures to implement CMTJava. Hence, this paper is also a case support for closures in Java 7. We describe translation rules that translate CMTJava to pure Java + closures. Although the system was implemented in Java, the ideas could also be applied to any object oriented language that supports closures, e.g., C#. The paper is organized as follows. First, in Section 2, CMTJava is presented through simple examples. Section 3, describes the implementation of the language primitives using a state passing monad. A simple prototype implementation of transactions is also described. Section 4 discusses related work and finally Section 5 presents conclusions and directions for future work.
2
Examples
In this section we present simple examples with the objective of describing how to program with CMTJava.