97 results on '"DOMAIN-specific programming languages"'
Search Results
2. Achieving High Performance the Functional Way: Expressing High-Performance Optimizations as Rewrite Strategies.
- Author
-
Hagedorn, Bastian, Lenfers, Johannes, Koehler, Thomas, Xueying Qin, Gorlatch, Sergei, and Steuwer, Michel
- Subjects
- *
OPL (Computer program language) , *PROGRAMMING languages , *DOMAIN-specific programming languages , *COMPUTER programming , *ELECTRONIC data processing , *COMPUTER software development - Abstract
Optimizing programs to run efficiently on modern parallel hardware is hard but crucial for many applications. The predominantly used imperative languages force the programmer to intertwine the code describing functionality and optimizations. This results in a portability nightmare that is particularly problematic given the accelerating trend toward specialized hardware devices to further increase efficiency. Many emerging domain-specific languages (DSLs) used in performance-demanding domains such as deep learning attempt to simplify or even fully automate the optimization process. Using a high-level--often functional--language, programmers focus on describing functionality in a declarative way. In some systems such as Halide or TVM, a separate schedule specifies how the program should be optimized. Unfortunately, these schedules are not written in well-defined programming languages. Instead, they are implemented as a set of ad hoc predefined APIs that the compiler writers have exposed. In this paper, we show how to employ functional programming techniques to solve this challenge with elegance. We present two functional languages that work together--each addressing a separate concern. RISE is a functional language for expressing computations using well-known data-parallel patterns. ELEVATE is a functional language for describing optimization strategies. A high-level RISE program is transformed into a low-level form using optimization strategies written in ELEVATE. From the rewritten low-level program, high-performance parallel code is automatically generated. In contrast to existing high-performance domain-specific systems with scheduling APIs, in our approach programmers are not restricted to a set of built-in operations and optimizations but freely define their own computational patterns in RISE and optimization strategies in ELEVATE in a composable and reusable way. We show how our holistic functional approach achieves competitive performance with the state-of-the-art imperative systems such as Halide and TVM. [ABSTRACT FROM AUTHOR]
- Published
- 2023
- Full Text
- View/download PDF
3. For a More Transparent Governance of Open Source: Seeking the best governance models for FOSS projects. .
- Author
-
Cánovas Izquierdo, Javier Luis and Cabot, Jordi
- Subjects
- *
OPEN source software , *INTERNET governance , *COMPUTER programming , *DOMAIN-specific programming languages , *OPEN data movement - Abstract
This article reports on how to improve transparent governance of Free and Open Source Software (FOSS). The article presents the current state of FOSS governance using data from Github and builds a roadmap for transparency detailing workflow and decision-making. Topics include the establishment of a governance file located in the root folder of any open source project, the use of a domain-specific language, and the sharing of predefined templates to aid in widespread incorporation of transparency.
- Published
- 2023
- Full Text
- View/download PDF
4. BioScript: Programming Safe Chemistry on Laboratories-on-a-Chip.
- Author
-
Ott, Jason, Loveless, Tyson, Curtis, Chris, Lesani, Mohsen, and Brisk, Philip
- Subjects
- *
COMPUTER programming , *BIOCHIPS , *BIOCHEMISTRY , *MICROFLUIDICS , *DOMAIN-specific programming languages , *SYNTAX (Grammar) - Abstract
This paper introduces BioScript, a domain-specific language (DSL) for programmable biochemistry that executes on emerging microfluidic platforms. The goal of this research is to provide a simple, intuitive, and type-safe DSL that is accessible to life science practitioners. The novel feature of the language is its syntax, which aims to optimize human readability; the technical contribution of the paper is the BioScript type system. The type system ensures that certain types of errors, specific to biochemistry, do not occur, such as the interaction of chemicals that may be unsafe. Results are obtained using a custom-built compiler that implements the BioScript language and type system. [ABSTRACT FROM AUTHOR]
- Published
- 2021
- Full Text
- View/download PDF
5. Domain-Driven Laravel : Learn to Implement Domain-Driven Design Using Laravel
- Author
-
Jesse Griffin and Jesse Griffin
- Subjects
- Domain-specific programming languages, Software frameworks, Computer programming
- Abstract
Map concepts and ideas in domain-driven design (DDD) and transpose them into clean, testable, and quality code that is effective alongside the Laravel framework. This book teaches you how to implement the concepts and patterns present in DDD in the real world as a complete web application. With these tactics and concepts in place, you'll engage in a variety of example applications, built from the ground up, and taken directly from real-world domains. Begin by reviewing foundational stepping stones (with small, manageable examples to show proof of concepts as well as illustrations to conceptualize the more complex topics) of both DDD and Laravel. Specifically, such topics as entities, value objects, developing an ubiquitous language, DTOs, and knowledge discovery. Next, you will dive into some more advanced topics of DDD and use these concepts as a guide to make customizations to the default Laravel installation, giving you an understanding of why these alterations are vital to the DDD and Laravel platform. Finally, you will cover the very powerful Eloquent ORM that comes stock with Laravel and understand how it can be utilized to represent entities, handle repositories, and support domain events. Although there is a basic coverage chapter and a setup tutorial for Laravel (along with a high level intro about the components used within it), Domain-Driven Laravel is best suited to readers who have been at least exposed to the framework and have had the opportunity to tinker around with it.What You'll Learn Utilize a blazing-fast rapid development pipeline built from DDD building blocks and facilitated with LaravelImplement value objects, repositories, entities, anti-corruption layers and others using Laravel as a web frameworkApply enhanced techniques for quick prototyping of complex requirements and quality results using an iterative and focused approach Create a base framework (Laravel) that can serve as a template to start off any projectGain insight on which details are important to a project's success and how to acquire the necessary knowledge Who This Book Is ForIdeal for for frontend/backend web developers, devops engineers, Laravel framework lovers and PHP developers hoping to learn more about either Domain Driven Design or the possibilities with the Laravel framework. Those with a working knowledge of plain PHP can also gain value from reading this book.
- Published
- 2021
6. Systematic mapping study on domain-specific language development tools.
- Author
-
Iung, Aníbal, Carbonell, João, Marchezan, Luciano, Rodrigues, Elder, Bernardino, Maicon, Basso, Fabio Paulo, and Medeiros, Bruno
- Subjects
DOMAIN-specific programming languages ,COMPUTER programming ,PROGRAMMING languages ,META-analysis ,DECISION making - Abstract
Domain-specific languages (DSL) are programming or modeling languages devoted to a given application domain. There are many tools used to support the implementation of a DSL, making hard the decision-making process for one or another. In this sense, identifying and mapping their features is relevant for decision-making by academic and industrial initiative on DSL development. Objective: The goal of this work is to identify and map the tools, Language Workbenches (LW), or frameworks that were proposed to develop DSLs discussed and referenced in publications between 2012 and 2019. Method: A Systematic Mapping Study (SMS) of the literature scoping tools for DSL development. Results: We identified 59 tools, including 9 under a commercial license and 41 with non-commercial licenses, and analyzed their features from 230 papers. Conclusion: There is a substantial amount of tools that cover a large number of features. Furthermore, we observed that usually, the developer adopts one type of notation to implement the DSL: textual or graphical. We also discuss research gaps, such as a lack of tools that allow meta-meta model transformations and that support modeling tools interoperability. [ABSTRACT FROM AUTHOR]
- Published
- 2020
- Full Text
- View/download PDF
7. Design Exploration through Code-Generating DSLs.
- Author
-
SVENSSON, BO JOEL, SHEERAN, MARY, and NEWTON, RYAN R.
- Subjects
- *
SOFTWARE engineering , *COMPUTER software , *DOMAIN-specific programming languages , *COMPUTER programming , *COMPUTER networks , *ARCHITECTURE - Abstract
This article demonstrates how high-level embedded DSLs (EDSLs) really can alleviate low-level programming with no contradiction. Topics discussed also include the need for software engineers not to be hesitant when it comes to writing computer programs that generate programs, an EDSL used to generate code that can provide safety guarantees in the generated code if structured properly, deferred-array data as an example of encapsulating code-generation tactics with a nice application programming interface.
- Published
- 2014
- Full Text
- View/download PDF
8. Spreadsheet Data Manipulation Using Examples.
- Subjects
- *
ELECTRONIC spreadsheets , *COMPUTER programming , *DOMAIN-specific programming languages , *INFORMATION technology , *ELECTRONIC data processing - Abstract
Millions of computer end users need to perform tasks over large spreadsheet data, yet lack the programming knowledge to do such tasks automatically. We present a programming by example methodology that allows end users to automate such repetitive tasks. Our methodology involves designing a domain-specific language and developing a synthesis algorithm that can learn programs in that language from user-provided examples. We present instantiations of this methodology for particular domains of tasks: (a) syntactic transformations of strings using restricted forms of regular expressions, conditionals, and loops, (b) semantic transformations of strings involving lookup in relational tables, and (c) layout transformations on spreadsheet tables. We have implemented this technology as an add-in for the Microsoft Excel Spreadsheet system and have evaluated it successfully over several benchmarks picked from various Excel help forums. [ABSTRACT FROM AUTHOR]
- Published
- 2012
- Full Text
- View/download PDF
9. Automated testing of DSL implementations—experiences from building mbeddr.
- Author
-
Ratiu, Daniel, Voelter, Markus, and Pavletic, Domenik
- Subjects
DOMAIN-specific programming languages ,COMPUTER programming ,COMPUTER software development ,ALGORITHMS ,ARTIFICIAL languages - Abstract
Domain-specific languages promise to improve productivity and quality of software development by providing problem-adequate abstractions to developers. Projectional language workbenches, in turn, allow the definition of modular and extensible domain specific languages, generators, and development environments. While recent advances in language engineering have enabled the definition of DSLs and tooling in a modular and cost-effective way, the quality assurance of their implementation is still challenging. In this paper, we discuss our work on testing different aspects of the implementation of domain specific languages and associated tools, and present several approaches to increase the automation of language testing. We illustrate these approaches with the Jetbrains MPS language workbench and our experience with testing mbeddr, a set of domain specific languages and tools on top of C tailored to embedded software development. Based on the experience gained from the mbeddr project, we extract generic lessons for practitioners as well as challenges which need more research. [ABSTRACT FROM AUTHOR]
- Published
- 2018
- Full Text
- View/download PDF
10. Automating the Development of High-Performance Multigrid Solvers.
- Author
-
Schmitt, Christian, Kronawitter, Stefan, Hannig, Frank, Teich, Jurgen, and Lengauer, Christian
- Subjects
DOMAIN-specific programming languages ,COMPUTER programming ,COMPUTER software development ,GENETIC code ,MULTIGRID methods (Numerical analysis) - Abstract
The purpose of a domain-specific language (DSL) is to enable the application programmer to specify a problem, or an abstract algorithm description, in his/her domain of expertise without being burdened by implementation details. The ideal scenario is that the implementation detail is added in an automatic process of program translation and code generation. The approach of domain-specific program generation has lately received increasing attention in the area of computational science and engineering. In this paper, we introduce the new code generation framework Athariac. Its goal is to support the quick implementation of a language processing and program optimization platform for a given DSL based on stepwise term rewriting. We demonstrate the framework’s use on our DSL ExaSlang for the specification and optimization of multigrid solvers. On this example, we provide evidence of Athariac’s potential for making domain-specific software engineering more productive. [ABSTRACT FROM AUTHOR]
- Published
- 2018
- Full Text
- View/download PDF
11. ALAS: agent-oriented domain-specific language for the development of intelligent distributed non-axiomatic reasoning agents.
- Author
-
Sredojević, Dejan, Vidaković, Milan, and Ivanović, Mirjana
- Subjects
MULTIAGENT systems ,DOMAIN-specific programming languages ,MATHEMATICAL logic ,COMPUTER programming ,JAVA programming language - Abstract
This paper presents an extension of the agent-oriented domain-specific language ALAS to support Distributed Non-Axiomatic Reasoning. ALAS is intended for the development of specific kind of intelligent agents. It is designed to support the Siebog Multi-Agent System (MAS) and implementation of the Siebog intelligent agents. Siebog is a distributed MAS based on the modern web and enterprise standards. Siebog offers support to reasoning based on the Distributed Non-Axiomatic Reasoning System (DNARS). DNARS is a reasoning system based on the Non-Axiomatic Logic (NAL). So far, DNARS-enabled agents could be written only in Java programming language. To solve the problem of interoperability and agent mobility within Siebog platforms, the ALAS language has been developed. The goal of such language is to allow programmers to develop intelligent agents easier by using domain specific constructs. The conversion process of ALAS code to Java code is also described in this paper. [ABSTRACT FROM AUTHOR]
- Published
- 2018
- Full Text
- View/download PDF
12. Development and evaluation of MicroBuilder: a Model-Driven tool for the specification of REST Microservice Software Architectures.
- Author
-
Terzić, Branko, Dimitrieski, Vladimir, Kordić, Slavica, Milosavljević, Gordana, and Luković, Ivan
- Subjects
SOFTWARE architecture ,GENERATORS (Computer programs) ,DOMAIN-specific programming languages ,COMPUTER programming - Abstract
In this paper we present MicroBuilder, the tool used for the specification of a software architecture that follows REST microservice design principles. MicroBuilder comprises MicroDSL and MicroGenerator modules. The MicroDSL module provides the MicroDSL domain-specific language used for the specification of REST microservice software architecture. In this paper we present MicroDSL meta-model, specified in Ecore, together with textual and graphical concrete syntaxes, specified using Xtext and Sirius frameworks respectively. The MicroGenerator module is used to generate executable program code based on MicroDSL specification. In this paper we also present results of the MicroBuilder tool evaluation, alongside the case study which illustrates a usage of MicroBuilder. [ABSTRACT FROM AUTHOR]
- Published
- 2018
- Full Text
- View/download PDF
13. Automatic Data Layout Transformations in the ExaStencils Code Generator.
- Author
-
Kronawitter, Stefan, Kuckuk, Sebastian, Köstler, Harald, and Lengauer, Christian
- Subjects
- *
BIG data , *COMPUTER programming , *DATA analysis , *DOMAIN-specific programming languages , *PROGRAMMING languages - Abstract
Performance optimizations should focus not only on the computations of an application, but also on the internal data layout. A well-known problem is whether a struct of arrays or an array of structs results in a higher performance for a particular application. Even though the switch from the one to the other is fairly simple to implement, testing both transformations can become laborious and error-prone. Additionally, there are more complex data layout transformations, such as a color splitting for multi-color kernels in the domain of stencil codes, that are manually difficult. As a remedy, we propose new flexible layout transformation statements for our domain-specific language ExaSlang that support arbitrary affine transformations. Since our code generator applies them automatically to the generated code, these statements enable the simple adaptation of the data layout without the need for any other modifications of the application code. This constitutes a big advance in the ease of testing and evaluating different memory layout schemes in order to identify the best. [ABSTRACT FROM AUTHOR]
- Published
- 2018
- Full Text
- View/download PDF
14. Program Synthesis using Natural Language.
- Author
-
Desai, Aditya, Gulwani, Sumit, Hingorani, Vineet, Jain, Nidhi, Karkare, Amey, Marron, Mark, R., Sailesh, and Roy, Subhajit
- Subjects
END users (Information technology) ,DOMAIN-specific programming languages ,NATURAL language processing ,SOFTWARE frameworks ,COMPUTER programming - Abstract
Interacting with computers is a ubiquitous activity for millions of people. Repetitive or specialized tasks often require creation of small, often one-off, programs. End-users struggle with learning and using the myriad of domain-specific languages (DSLs) to effectively accomplish these tasks. We present a general framework for constructing program synthesizers that take natural language (NL) inputs and produce expressions in a target DSL. The framework takes as input a DSL definition and training data consisting of NL/DSL pairs. From these it constructs a synthesizer by learning optimal weights and classifiers (using NLP features) that rank the outputs of a keywordprogramming based translation. We applied our framework to three domains: repetitive text editing, an intelligent tutoring system, and flight information queries. On 1200
+ English descriptions, the respective synthesizers rank the desired program as the top-1 and top- 3 for 80% and 90% descriptions respectively. [ABSTRACT FROM AUTHOR]- Published
- 2016
- Full Text
- View/download PDF
15. Customizing host IDE for non-programming users of pure embedded DSLs: A case study.
- Author
-
Nosáľ, Milan, Porubän, Jaroslav, and Sulír, Matúš
- Subjects
- *
COMPUTER programming , *DOMAIN-specific programming languages , *INFORMATION & communication technologies , *NETBEANS (Computing platform) , *COMPUTING platforms - Abstract
Pure embedding as an implementation strategy of domain-specific languages (DSLs) benefits from low implementation costs. On the other hand, it introduces undesired syntactic noise that impedes involvement of non-programming domain experts. Due to this, pure embedded DSLs are generally not intended for, nor used by, non-programmers. In this work, we try to challenge this state by experimenting with inexpensive customizations of the host IDE (Integrated Development Environment) to reduce the negative impact of syntactic noise. We present several techniques and recommendations based on standard IDE features (e.g., file templates, code folding, etc.) that aim to reduce syntactic noise and generally improve the user experience with pure embedded DSLs. The techniques are presented using a NetBeans IDE case study. The goal of the proposed techniques is to improve the user experience with pure embedded DSLs with a focus on the involvement of non-programming domain experts (or non-programmers in general). The proposed techniques were evaluated using a controlled experiment. The experiment compared a group using Ruby and non-modified RubyMine IDE versus a group using Java and NetBeans IDE customized to use the proposed techniques. Experiment results indicate that even inexpensive host IDE customizations can significantly alleviate issues caused by the syntactic noise: Java with its inflexible syntax performed better than Ruby with its concise syntax. [ABSTRACT FROM AUTHOR]
- Published
- 2017
- Full Text
- View/download PDF
16. Domain Specialization Is Generally Unnecessary for Accelerators.
- Author
-
Nowatzki, Tony, Gangadhar, Vinay, Sankaralingam, Karthikeyan, and Wright, Greg
- Subjects
- *
LINEAR accelerators , *DOMAIN-specific programming languages , *COMPUTER programming , *COMPUTER architecture , *SOFTWARE architecture - Abstract
Domain-specific accelerators (DSAs), which sacrifice programmability for efficiency, are a reaction to the waning benefits of device scaling. This article demonstrates that there are commonalities between DSAs that can be exploited with programmable mechanisms. The goals are to create a programmable architecture that can match the benefits of a DSA and to create a platform for future accelerator investigations. [ABSTRACT FROM AUTHOR]
- Published
- 2017
- Full Text
- View/download PDF
17. Programming With Models: Writing Statistical Algorithms for General Model Structures With NIMBLE.
- Author
-
de Valpine, Perry, Turek, Daniel, Paciorek, Christopher J., Anderson-Bergman, Clifford, Lang, Duncan Temple, and Bodik, Rastislav
- Subjects
- *
COMPUTER programming , *ALGORITHMS , *COMPUTER software execution , *MONTE Carlo method , *DOMAIN-specific programming languages - Abstract
We describe NIMBLE, a system for programming statistical algorithms for general model structures within R. NIMBLE is designed to meet three challenges: flexible model specification, a language for programming algorithms that can use different models, and a balance between high-level programmability and execution efficiency. For model specification, NIMBLE extends the BUGS language and creates model objects, which can manipulate variables, calculate log probability values, generate simulations, and query the relationships among variables. For algorithm programming, NIMBLE provides functions that operate with model objects using two stages of evaluation. The first stage allows specialization of a function to a particular model and/or nodes, such as creating a Metropolis-Hastings sampler for a particular block of nodes. The second stage allows repeated execution of computations using the results of the first stage. To achieve efficient second-stage computation, NIMBLE compiles models and functions via C++, using the Eigen library for linear algebra, and provides the user with an interface to compiled objects. The NIMBLE language represents a compilable domain-specific language (DSL) embedded within R. This article provides an overview of the design and rationale for NIMBLE along with illustrative examples including importance sampling, Markov chain Monte Carlo (MCMC) and Monte Carlo expectation maximization (MCEM). Supplementary materials for this article are available online. [ABSTRACT FROM AUTHOR]
- Published
- 2017
- Full Text
- View/download PDF
18. DoS-IL: A Domain Specific Internet of Things Language for Resource Constrained Devices.
- Author
-
Negash, Behailu, Westerlund, Tomi, Rahmani, Amir M., Liljeberg, Pasi, and Tenhunen, Hannu
- Subjects
DENIAL of service attacks ,DOMAIN-specific programming languages ,INTERNET of things ,CONSTRAINT satisfaction ,COMPUTER programming - Abstract
Abstract: The common approach enabling a resource constrained device to get connected to the Internet is through programming instructions and transferring it to an embedded device. This procedure involves various tools and cross-compiling of the code depending on the platform architecture. In practical IoT applications, where a huge number of nodes exist, this process becomes almost impossible due to the heterogeneous platforms and protocols involved and the deployment conditions. This paper introduces a flexible and scalable approach that enhances modifiability and programmability through client-server-server-client architecture. It allows changing the behavior of the system after deployment through a lightweight script written with a domain specific language, DoS-IL, and stored in a gateway at the fog layer. An embedded resource browser is used to request and execute the script. The results of analysis for this model and the tools developed along the way are discussed. [ABSTRACT FROM AUTHOR]
- Published
- 2017
- Full Text
- View/download PDF
19. Language components for modular DSLs using traits.
- Author
-
Cazzola, Walter and Vacchi, Edoardo
- Subjects
- *
DOMAIN-specific programming languages , *PROGRAMMING languages , *COMPUTER software development , *SCALA (Computer program language) , *COMPUTER programming - Abstract
Recent advances in tooling and modern programming languages have progressively brought back the practice of developing domain-specific languages as a means to improve software development. Consequently, the problem of making composition between languages easier by emphasizing code reuse and componentized programming is a topic of increasing interest in research. In fact, it is not uncommon for different languages to share common features, and, because in the same project different DSLs may coexist to model concepts from different problem areas, it is interesting to study ways to develop modular, extensible languages. Earlier work has shown that traits can be used to modularize the semantics of a language implementation; a lot of attention is often spent on embedded DSLs; even when external DSLs are discussed, the main focus is on modularizing the semantics. In this paper we will show a complete trait-based approach to modularize not only the semantics but also the syntax of external DSLs, thereby simplifying extension and therefore evolution of a language implementation. We show the benefits of implementing these techniques using the Scala programming language. [ABSTRACT FROM AUTHOR]
- Published
- 2016
- Full Text
- View/download PDF
20. DSML4CP: A Domain-specific Modeling Language for Concurrent Programming.
- Author
-
Azadi Marand, Elaheh, Azadi Marand, Elham, and Challenger, Moharram
- Subjects
- *
DOMAIN-specific programming languages , *MODELING languages (Computer science) , *COMPUTER multitasking , *COMPUTER programming , *APPLICATION software - Abstract
Nowadays, concurrent programs are an inevitable part of many software applications. They can increase the computation performance of the applications by parallelizing their computations. One of the approaches to realize the concurrency is using multi thread programming. However, these systems are structurally complex considering the control of the parallelism (such as thread synchronization and resource control) and also considering the interaction between their components. So, the design of these systems can be difficult and their implementation can be error-prone especially when the addressed system is big and complex. On the other hand, a Domain-specific Modeling Language (DSML) is one of the Model Driven Development (MDD) approaches which tackles this problem. Since DSMLs provide a higher abstraction level, they can lead to reduce the complexities of the concurrent programs. With increasing the abstraction level and generating the artifacts automatically, the performance of developing the software (both in design and implementation phases) is increased, and the efficiency is raised by reducing the probability of occurring errors. Thus, in this paper, a DSML is proposed for concurrent programs, called DSML4CP, to work in a higher level of abstraction than code level. To this end, the concepts of concurrent programs and their relationships are presented in a metamodel. The proposed metamodel provides a context for defining abstract syntax, and concrete syntax of the DSML4CP. This new language is supported by a graphical modeling tool which can visualize different instance models for domain problems. In order to clarify the expressions of the language; the static semantic controls are realized in the form of constraints. Finally, the architectural code generation is fulfilled via model transformation rules using the templates of the concurrent programs. To increase level of the DSML׳s leverage and to demonstrate the general support of concurrent programming by the DSML, the transformation mechanism of the tool supports two well-known and highly used programming languages for code generation; Java and C#. The performed experiments on two case studies indicate a high performance for proposed language. In this regard, the results show automatic generation of 79% of the final code and 86% of the functions/modules on average. [ABSTRACT FROM AUTHOR]
- Published
- 2015
- Full Text
- View/download PDF
21. A Domain Specific Language for High-level Process Control Programming in Smart Buildings.
- Author
-
Albreshne, Abdaladhem and Pasquier, Jacques
- Subjects
INTELLIGENT buildings ,ACTUATORS ,WEB services ,DOMAIN-specific programming languages ,COMPUTER programming ,PROCESS control systems - Abstract
Web services composition is a recurring idea in the field of smart residential environments (SRE), since it helps to solve complex problems such as energy saving, security control or health care by combining and orchestrating the available basic services. Smart environments are composed of networked devices (sensors and actuators) embedded within web services, which contain well-defined programming interfaces allowing them to share data, capture events and create composed control applications. There is still, however, a lack of domain specific languages (DSL) supporting a high degree of abstraction and transparency and allowing users to define control scenarios in a compact and comprehensible way. To satisfy these needs, the present paper aims to propose a DSL for describing scenarios to control SRE, with considerable gains in transparency, abstraction, expressiveness and simplicity. [ABSTRACT FROM AUTHOR]
- Published
- 2015
- Full Text
- View/download PDF
22. A Generic Model of Execution for Synthesizing Interpreted Domain-Specific Models.
- Author
-
Allison, Mark, Clarke, Peter J., and He, Xudong
- Subjects
DOMAIN-specific programming languages ,COMPUTER systems ,COMPUTER science ,COMPUTER programming ,COMPUTER security - Abstract
The prevalent application of domain-specific modeling languages (DSMLs) requires developers to initially specify the require- ments for a software product as a domain-specific model then transform that model to a high-level language for subsequent ex- ecution. An alternative is to realize behavior directly by executing the models using a specialized interpreter. One category of interpreted domain-specific modeling languages (DSMLs) derives behavior from changes to models at runtime. These are termed interpreted DSMLs or simply i-DSMLs . Existing interpreters for i-DSMLs exhibit tight coupling between the implicit model of execution (MoE) and the semantics of the domain. The interweaving of these two concerns compounds the challenge of developing interpreters for new i-DSMLs without a significant investment in resources. This paper introduces a generalized approach to developing i-DSML interpreters by utilizing a generic framework that is loosely coupled to the domain-specific knowledge as swappable framework extensions. We present a prototype as validation of our ap- proach implemented using a metamodel based architecture to instantiate the interpreter for two distinct cyber-physical domains. [ABSTRACT FROM AUTHOR]
- Published
- 2015
- Full Text
- View/download PDF
23. View to view transformations in domain specific modeling.
- Author
-
Koznov, D., Larchik, E., and Terekhov, A.
- Subjects
- *
DOMAIN-specific programming languages , *COMPUTER simulation , *COMPUTER software development , *WEB browsing , *DATA structures , *COMPUTER programming - Abstract
Model-based software development tools should provide user-friendly navigation services to allow users browsing (show/hide and zoom in/zoom out) various model details in diagrams. This functionality is crucial in development of large-scale models. In this paper, we present an approach for formal definition of navigation services based on transformations. We introduce view-to-view transformations applying ATL, and present formal definition of navigation service. We also present a prototype implementing the approach. The prototype adds facilities of navigation servicers design to GMF and uses KIELLER toolset for layout of transformation results. A graphical editor for UML class diagrams with 12 navigation services, which have been specified using the approach, is presented. [ABSTRACT FROM AUTHOR]
- Published
- 2015
- Full Text
- View/download PDF
24. Implementing an embedded compiler using program transformation rules.
- Author
-
Bissyandé, Tegawendé F., Réveillère, Laurent, Lawall, Julia L., Bromberg, Yérom‐David , and Muller, Gilles
- Subjects
DOMAIN-specific programming languages ,DIGITAL subscriber lines ,PROGRAMMING languages ,DATABASE management ,COMPUTER programming - Abstract
SUMMARY Domain-specific languages (DSLs) are well-recognized to ease programming and improve robustness for a specific domain, by providing high-level domain-specific notations and checks of domain-specific properties. The compiler of a DSL, however, is often difficult to develop and maintain, because of the need to define a specific treatment for a large and potentially increasing number of language constructs. To address this issue, we propose an approach for specifying a DSL compiler using control-flow sensitive concrete-syntax based matching rules. These rules either collect information about the source code to carry out checks or perform transformations to carry out compilation. Because rules only mention the relevant constructs, using their concrete syntax, and hide the complexity of control-flow graph traversal, it is easy to understand the purpose of each rule. Furthermore, new compilation steps can be added using only a small number of lines of code. We explore this approach in the context of the z2z DSL for network gateway development and show that it is beneficial to implement the core of its compiler in this manner.Copyright © 2013 John Wiley & Sons, Ltd. [ABSTRACT FROM AUTHOR]
- Published
- 2015
- Full Text
- View/download PDF
25. POPT: A Problem-Oriented Programming and Testing Approach for Novice Students.
- Author
-
Neto, Vicente Lustosa, Coelho, Roberta, Leite, Larissa, Guerrero, Dalton S., and Mendonça, Andrea P.
- Subjects
COMPUTER science education ,COMPUTER science students ,DOMAIN-specific programming languages ,COMPUTER programming ,INTRODUCTORY courses (Education) ,COMPUTER software ,COLLEGE students - Abstract
There is a growing interest of the Computer Science education community for including testing concepts on introductory programming courses. Aiming at contributing to this issue, we introduce POPT, a Problem-Oriented Programming and Testing approach for Introductory Programming Courses. POPT main goal is to improve the traditional method of teaching introductory programming that concentrates mainly on implementation and neglects testing. According to POPT, students' skills must be developed by dealing with ill-defined problems, from which students are stimulated to develop test cases in a table-like manner in order to enlighten the problems' requirements and also to improve the quality of generated code. This paper presents POPT and a case study performed in an Introductory Programming course of a Computer Science program at the Federal University of Rio Grande do Norte, Brazil. The study results have shown that, when compared to a Blind Testing approach, POPT stimulates the implementation of programs of better external quality - the first program version submitted by POPT students passed in twice the number of test cases (professor-defined ones) when compared to non-POPT students. Moreover, POPT students submitted fewer program versions and spent more time to submit the first version to the automatic evaluation system, which lead us to think that POPT students are stimulated to think better about the solution they are implementing. [ABSTRACT FROM AUTHOR]
- Published
- 2013
26. Simulation of Deutsch-Jozsa Algorithm in Mathematica.
- Author
-
Nyman, Peter
- Subjects
- *
WOLFRAM language (Computer program language) , *ALGORITHMS , *QUANTUM theory , *DOMAIN-specific programming languages , *PROGRAMMING languages , *COMPUTER programming - Abstract
This study examines the simulation of Deutsch-Jozsa algorithm in Mathematica. The program code implemented on a classical computer will be a straight connection between the mathematical formulation of quantum mechanics and computational methods in Mathematica. This program code will be a foundation of a universal simulation language. [ABSTRACT FROM AUTHOR]
- Published
- 2007
- Full Text
- View/download PDF
27. On the Domain-Specificity of Mindsets: The Relationship Between Aptitude Beliefs and Programming Practice.
- Author
-
Scott, Michael J. and Ghinea, Gheorghita
- Subjects
- *
DOMAIN-specific programming languages , *COMPUTER programming , *MACHINE learning , *COMPUTER software , *SOFTWARE engineering - Abstract
Deliberate practice is important in many areas of learning, including that of learning to program computers. However, beliefs about the nature of personal traits, known as mindsets, can have a profound impact on such practice. Previous research has shown that those with a fixed mindset believe their traits cannot change; they tend to reduce their level of practice when they encounter difficulty. In contrast, those with the growth mindset believe their traits are flexible; they tend to maintain regular practice despite the level of difficulty. However, focusing on mindset as a single construct focused on intelligence may not be appropriate in the field of computer programming. Exploring this notion, a self-belief survey was distributed to undergraduate software engineering students. It revealed that beliefs about intelligence and programming aptitude formed two distinct constructs. Furthermore, the mindset for programming aptitude had greater utility in predicting software development practice, and a follow-up survey showed that it became more fixed throughout instruction. Thus, educators should consider the role of programming-specific beliefs in the design and evaluation of introductory courses in software engineering. In particular, they need to situate and contextualize the growth messages that motivate students who experience early setbacks. [ABSTRACT FROM AUTHOR]
- Published
- 2014
- Full Text
- View/download PDF
28. Yield grammar analysis and product optimization in a domain-specific language for dynamic programming.
- Author
-
Sauthoff, Georg and Giegerich, Robert
- Subjects
- *
MATHEMATICAL optimization , *DOMAIN-specific programming languages , *DYNAMIC programming , *ALGORITHMS , *SYSTEMS engineering , *COMPUTER programming - Abstract
Abstract: Dynamic programming algorithms are traditionally expressed by a set of matrix recurrences—a low level of abstraction, which renders the design of novel dynamic programming algorithms difficult and makes debugging cumbersome. Bellman's GAP is a declarative, domain-specific language, which supports dynamic programming over sequence data. It implements the algebraic style of dynamic programming and allows one to specify algorithms by combining so-called yield grammars with evaluation algebras. Products on algebras allow to create novel types of analyses from already given ones, without modifying tested components. Bellman's GAP extends the previous concepts of algebraic dynamic programming in several respects, such as an “interleaved” product operation and the analysis of multi-track input. Extensive analysis of the yield grammar and the evaluation algebras is required for generating efficient imperative code from the algebraic specification. This article gives an overview of the analyses required and presents several of them in detail. Measurements with “real-world” applications demonstrate the quality of the code produced. [Copyright &y& Elsevier]
- Published
- 2014
- Full Text
- View/download PDF
29. Conceptual Development of Custom, Domain-Specific Mashup Platforms.
- Author
-
SOI, STEFANO, DANIEL, FLORIAN, and CASATI, FABIO
- Subjects
MASHUPS (Internet) ,END users (Information technology) ,COMPUTER software development ,ALGORITHMS ,DOMAIN-specific programming languages ,COMPUTER programming ,XML (Extensible Markup Language) - Abstract
Despite the common claim by mashup platforms that they enable end-users to develop their own software, in practice end-users still don't develop their own mashups, as the highly technical or inexistent user bases of today's mashup platforms testify. The key shortcoming of current platforms is their general-purpose nature, that privileges expressive power over intuitiveness. In our prior work, we have demonstrated that a domainspecific mashup approach, which privileges intuitiveness over expressive power, has much more potential to enable end-user development (EUD). The problem is that developing mashup platforms--domain-specific or not--is complex and time consuming. In addition, domain-specific mashup platforms by their very nature target only a small user basis, that is, the experts of the target domain, which makes their development not sustainable if it is not adequately supported and automated. With this article, we aim to make the development of custom, domain-specific mashup platforms costeffective. We describe a mashup tool development kit (MDK) that is able to automatically generate a mashup platform (comprising custom mashup and component description languages and design-time and runtime environments) from a conceptual design and to provision it as a service. We equip the kit with a dedicated development methodology and demonstrate the applicability and viability of the approach with the help of two case studies. [ABSTRACT FROM AUTHOR]
- Published
- 2014
- Full Text
- View/download PDF
30. Composing domain-specific physical models with general-purpose software modules in embedded control software.
- Author
-
Roo, Arjan, Sözer, Hasan, and Akşit, Mehmet
- Subjects
- *
EMBEDDED computer systems , *COMPUTER software usability , *DOMAIN-specific programming languages , *PROGRAMMING languages , *COMPUTER programming , *DOCUMENT markup languages - Abstract
A considerable portion of software systems today are adopted in the embedded control domain. Embedded control software deals with controlling a physical system, and as such models of physical characteristics become part of the embedded control software. In current practices, usually general-purpose languages (GPL), such as C/C++ are used for embedded systems development. Although a GPL is suitable for expressing general-purpose computation, it falls short in expressing the models of physical characteristics as desired. This reduces not only the readability of the code but also hampers reuse due to the lack of dedicated abstractions and composition operators. Moreover, domain-specific static and dynamic checks may not be applied effectively. There exist domain-specific modeling languages (DSML) and tools to specify models of physical characteristics. Although they are commonly used for simulation and documentation of physical systems, they are often not used to implement embedded control software. This is due to the fact that these DSMLs are not suitable to express the general-purpose computation and they cannot be easily composed with other software modules that are implemented in GPL. This paper presents a novel approach to combine a DSML to model physical characteristics and a GPL to implement general-purpose computation. The composition filters model is used to compose models specified in the DSML with modules specified in the GPL at the abstraction level of both languages. As such, this approach combines the benefits of using a DSML to model physical characteristics with the freedom of a GPL to implement general-purpose computation. The approach is illustrated using two industrial case studies from the printing systems domain. [ABSTRACT FROM AUTHOR]
- Published
- 2014
- Full Text
- View/download PDF
31. JGroovy: An alternative approach to implement extensible Java compiler.
- Author
-
Sateanpattanakul, Siwadol, Hamamoto, Kazuhiko, and Walairacht, Aranya
- Subjects
- *
COMPUTER programming , *JAVA programming language , *SQL , *DOMAIN-specific programming languages , *GROOVY (Computer program language) - Abstract
The main reason for the invention of computer programming languages is for these languages to express a command-to-control machine behavior. Some of these programming languages have specific advantages that are used in specific environments such as structured query language (SQL), hypertext markup language (HTML), and spreadsheet. The common definitions of these languages are domain-specific languages (DSLs). Although DSLs are the best way to deal with specific systems, it is hard to use with other environments or platforms. Groovy is a dynamic programming language that runs on the Java virtual machine. Groovy has some features that allow programmers to manage DSLs within its unique style. Groovy has some disadvantages because it does not support all Java features and syntax while also producing unnecessary byte code during compilation. This paper proposes an extended-architecture technique to implement a computer programming language and compiler through extending Java with Groovy language. The extensible language is called 'JGroovy'. And JGroovy is supported both by Java and Groovy language. We implement the compiler for JGroovy and call it the 'JGroovy compiler' (JGC). By its extended architecture, JGC is more compatible for Java source code than Javac can claim to be. And it also produces a better and more compact byte code than the Groovy compiler, with an approximate improvement of 8-12%. © 2013 Institute of Electrical Engineers of Japan. Published by John Wiley & Sons, Inc. [ABSTRACT FROM AUTHOR]
- Published
- 2013
- Full Text
- View/download PDF
32. Selective Flexibility: Creating Domain-Specific Reconfigurable Arrays.
- Author
-
Stojilovic, Mirjana, Novo, David, Saranovac, Lazar, Brisk, Philip, and Ienne, Paolo
- Subjects
- *
DOMAIN-specific programming languages , *ADAPTIVE computing systems , *APPLICATION software , *COMPUTER programming , *SYSTEMS design , *COMPUTER architecture , *APPLICATION-specific integrated circuits - Abstract
Historically, hardware acceleration technologies have either been application-specific, therefore lacking in flexibility, or fully programmable, thereby suffering from notable inefficiencies on an application-by-application basis. To address the growing need for domain-specific acceleration technologies, this paper describes a design methodology (i) to automatically generate a domain-specific coarse-grained array from a set of representative applications and (ii) to introduce limited forms of architectural generality to increase the likelihood that additional applications can be successfully mapped onto it. In particular, coarse-grained arrays generated using our approach are intended to be integrated into customizable processors that use application-specific instruction set extensions to accelerate performance and reduce energy; rather than implementing these extensions using application-specific integrated circuit (ASIC) logic, which lacks flexibility, they can be synthesized onto our reconfigurable array instead, allowing the processor to be used for a variety of applications in related domains. Results show that our array is around 2\times slower and 15\times larger than an ultimately efficient ASIC implementation, and thus far more efficient than field-programmable gate arrays (FPGAs), which are known to be 3–4\times slower and 20–40\times larger. Additionally, we estimate that our array is usually around 2\times larger and 2\times slower than an accelerator synthesized using traditional datapath merging, which has, if any, very limited flexibility beyond the design set of DFGs. [ABSTRACT FROM PUBLISHER]
- Published
- 2013
- Full Text
- View/download PDF
33. Winds of Change: From Vendor Lock-In to the Meta Cloud.
- Author
-
Satzger, Benjamin, Hummer, Waldemar, Inzinger, Christian, Leitner, Philipp, and Dustdar, Schahram
- Subjects
METADATA ,CLOUD computing ,INTERNET service providers ,COMPUTER programming ,DOMAIN-specific programming languages - Abstract
The emergence of yet more cloud offerings from a multitude of service providers calls for a meta cloud to smoothen the edges of the jagged cloud landscape. This meta cloud could solve the vendor lock-in problems that current public and hybrid cloud users face. [ABSTRACT FROM PUBLISHER]
- Published
- 2013
- Full Text
- View/download PDF
34. Modeling Product Line Software Assets Using Domain-Specific Kits.
- Author
-
Altintas, N. Ilker, Cetin, Semih, Dogru, Ali H., and Oguztuzun, Halit
- Subjects
- *
COMPUTER software , *SOFTWARE product line engineering , *DOMAIN-specific programming languages , *SOFTWARE architecture , *SOFTWARE reliability , *COMPUTER programming , *COMPUTATIONAL complexity - Abstract
Software Product Line Engineering (SPLE) is a prominent paradigm for the assembly of a family of products using product line core assets. The modeling of software assets that together form the actual products is critical for achieving the strategic benefits of Software Product Lines (SPLs). We propose a feature-based approach to software asset modeling based on abstractions provided by Domain-Specific Kits (DSKs). This approach involves a software Asset Metamodel (AMM) used to derive Asset Modeling Languages (AMLs) that define reusable software assets in domain-specific terms. The approach also prescribes a roadmap for modeling these software assets in conjunction with the product line reference architecture. Asset capabilities can be modeled using feature diagrams as the external views of the software assets. Internal views can be expressed in terms of Domain-Specific Artifacts (DSAs) with Variability Points (VPs), where the domain-specific artifacts are created using Domain-Specific Kits. This approach produces loosely coupled and highly cohesive software assets that are reusable for multiple product lines. The approach is validated by assessing software asset reuse in two different product lines in the finance domain. We also evaluated the productivity gains in large-scale complex projects, and found that the approach yielded a significant reduction in the total project effort. [ABSTRACT FROM AUTHOR]
- Published
- 2012
- Full Text
- View/download PDF
35. Toward a Tool-Based Development Methodology for Pervasive Computing Applications.
- Author
-
Cassou, Damien, Bruneau, Julien, Consel, Charles, and Balland, Emilie
- Subjects
- *
COMPUTER software development , *UBIQUITOUS computing , *DISTRIBUTED computing , *COMPUTER programming , *COMPUTATIONAL complexity , *DOMAIN-specific programming languages , *GENERATIVE programming (Computer science) , *SOFTWARE architecture - Abstract
Despite much progress, developing a pervasive computing application remains a challenge because of a lack of conceptual frameworks and supporting tools. This challenge involves coping with heterogeneous devices, overcoming the intricacies of distributed systems technologies, working out an architecture for the application, encoding it in a program, writing specific code to test the application, and finally deploying it. This paper presents a design language and a tool suite covering the development life-cycle of a pervasive computing application. The design language allows us to define a taxonomy of area-specific building-blocks, abstracting over their heterogeneity. This language also includes a layer to define the architecture of an application, following an architectural pattern commonly used in the pervasive computing domain. Our underlying methodology assigns roles to the stakeholders, providing separation of concerns. Our tool suite includes a compiler that takes design artifacts written in our language as input and generates a programming framework that supports the subsequent development stages, namely, implementation, testing, and deployment. Our methodology has been applied on a wide spectrum of areas. Based on these experiments, we assess our approach through three criteria: expressiveness, usability, and productivity. [ABSTRACT FROM AUTHOR]
- Published
- 2012
- Full Text
- View/download PDF
36. Simplifying the Development and Deployment of MapReduce Algorithms.
- Author
-
JACOB, FEROSH, WAGNER, AMBER, BAHRI, PRATEEK, VRBSKY, SUSAN, and GRAY, JEFF
- Subjects
CLOUD computing ,DOMAIN-specific programming languages ,COMPUTER programming ,COMPUTER programmers ,SOFTWARE engineering ,COMPUTER science - Abstract
MapReduce algorithms can be difficult to write and test due to the accidental complexities involved with existing MapReduce implementations. Furthermore, the configuration details involved in running MapReduce algorithms within a cloud present a set of new challenges. Our research reveals that many details of cloud configuration can be hidden from programmers in an automated and transparent manner. Using concepts from software engineering, we have increased the ease of use for implementing MapReduce algorithms by creating a lightweight domain-specific language (DSL). Additionally, we created a plug-in for the Eclipse integrated development environment (IDE) based on this DSL to automate and hide many cloud configuration details. The goal of the combination of our IDE and DSL is to improve the efficiency and effectiveness for programmers in developing MapReduce algorithms for cloud computing. This paper describes the existing challenges of creating MapReduce algorithms and how our approach minimizes these challenges. MapRedoop is a framework that can be used to transform a program written in a DSL to a MapReduce implementation, which can be deployed and executed in a cloud platform such as Eucalyptus or Amazon's Elastic Compute Cloud (EC2). Assorted examples selected from various domains have been rewritten in the MapRedoop framework to demonstrate its expressiveness and usefulness. Our performance analysis reveals that the advantages gained using our approach can be attained with comparable execution times to the methodologies currently in practice. [ABSTRACT FROM AUTHOR]
- Published
- 2011
37. Introducing Polymorphic Features into a Scripting Model of Generator.
- Author
-
Radošević, Danijel and Magdalenić, Ivan
- Subjects
GENERATIVE programming (Computer science) ,AUTOMATIC programming (Computer science) ,MATHEMATICAL optimization ,OBJECT-oriented programming ,COMPUTER programming ,DOMAIN-specific programming languages ,INFORMATION technology - Published
- 2011
- Full Text
- View/download PDF
38. Efficient programming methods using metadata.
- Author
-
Homer, Kenneth E.
- Subjects
- *
COMPUTER programming , *METADATA , *COMPUTER programmers , *DOMAIN-specific programming languages , *PHARMACEUTICAL industry , *COMPUTER software - Abstract
Efficient programming methods using metadata will save time, money, and facilitate communication across the study team. The information stored in the metadata files will be used as input into either a SAS® code generator or SAS macros to generate the required outputs. This programming style has been used for generating edit checks, data dumps, patient profiles, data listings, tables, and graphs both successfully and efficiently. [ABSTRACT FROM AUTHOR]
- Published
- 2010
- Full Text
- View/download PDF
39. Mnemonics: type-safe bytecode generation at run time.
- Author
-
Rudolph, Johannes and Thiemann, Peter
- Subjects
MNEMONICS ,DOMAIN-specific programming languages ,JAVA programming language ,PL/I (Computer program language) ,COMPUTER programming - Abstract
Mnemonics is a Scala library for generating method bodies in JVM bytecode at run time. Mnemonics supports a large subset of the JVM instructions, for which the static typing of the generator guarantees the well-formedness of the generated bytecode. The library exploits a number of advanced features of Scala's type system (type inference with bounded polymorphism, implicit parameters, and reflection) to guarantee that the compiler only accepts legal combinations of instructions at compile time. Additional instructions are supported at the price of a check at run time of the generator. In either case, bytecode verification of generated code is guaranteed to succeed. [ABSTRACT FROM AUTHOR]
- Published
- 2010
- Full Text
- View/download PDF
40. Architecture as Language.
- Author
-
Völter, Markus
- Subjects
- *
DOMAIN-specific programming languages , *SOFTWARE architecture , *PROGRAMMING languages , *COMPUTER software development , *COMPUTER engineering , *COMPUTER programming - Abstract
The article presents information on domain-specific languages (DSL) used in describing, managing and validating software architecture. The author says that software architecture is dependent on programming languages and the approach centers around building a DSL to help implement it consistently. He mentions that once the team is familiar with the advantages of today's tools, this approach can be considered more feasible than one had thought.
- Published
- 2010
- Full Text
- View/download PDF
41. Improving Domain-Specific Language Reuse with Software Product Line Techniques.
- Author
-
White, Jules, Hill, James H., Tambe, Sumant, Gokhale, Aniruddha S., Schmidt, Douglas C., and Gray, Jeff
- Subjects
- *
COMPUTER software reusability , *DOMAIN-specific programming languages , *SOFTWARE product line engineering , *COMPUTER software development , *SOFTWARE engineering , *COMPUTER programming - Abstract
The article explores how software product line (SPL) techniques could improve the reusability of domain-specific languages (DSLs), DSL compositions and supporting tools. It is said that DSLs have helped software developers handle complex software systems throughout their lifecycle since DSLs can be designed to capture domain-level information. However, the specificity of the functions of DSLs have made it hard to reuse, say the authors. Information on the four DSLs, which include the Platform-Independent Component Modeling Language (PICML) and the Scatter software component deployment application, is presented.
- Published
- 2009
- Full Text
- View/download PDF
42. ModelTalk: When Everything Is a Domain-Specific Language.
- Author
-
Den-Tov, Atzmon, Pinhasi, Assaf, Schachter, Lior, and Lorenz, David H.
- Subjects
- *
COMPUTER software development , *BUSINESS software , *CUSTOMER services software , *MODEL-driven software architecture , *DOMAIN-specific programming languages , *COMPUTER programming - Abstract
The article provides information on ModelTalk, a model-driven authoring and execution software development framework. According to the authors, software development problems arose from the need for a complex business applications that are tailored for each customer and meet extrafunctional requirements. It is said that model-driven development (MDD) is usually used in developing software product line because domain-specific languages (DSLs) offer variability in the management of MDD while supporting a producer-consumer development process. There are two elements in a ModelTalk system implementation, one of which is declarative DSL code.
- Published
- 2009
- Full Text
- View/download PDF
43. Habitation: A Domain-Specific Language for Home Automation.
- Author
-
Jiménez, Manuel, Rosique, Francisco, Sánchez, Pedro, Álvarez, Bárbara, and Iborra, Andrés
- Subjects
- *
HOME automation software , *COMPUTER software development , *DOMAIN-specific programming languages , *SOFTWARE engineering , *COMPUTER programming , *INTELLIGENT agents , *SYSTEMS design - Abstract
The article discusses how model-driven engineering (MDE) helped improve the development of domain-specific language (DSL)-based home automation systems. MDE eliminates the use of source code since it uses models to create software and reduces the costs associated with the development of DSLs. Home automation, which is developed through MDE, is reactive system management tool that deals with home security, energy, communications and comfort. However, home automation systems do not have specific languages that allow it to capture requirements. Information on Habitation, a home automation system design methodology that combines MDE and DSL.
- Published
- 2009
44. What Kinds of Nails Need a Domain-Specific Hammer?
- Author
-
Sprinkle, Jonathan, Mernik, Marjan, Tolvanen, Juha-Pekka, and Spinellis, Diomidis
- Subjects
- *
DOMAIN-specific programming languages , *PROGRAMMING languages , *COMPUTER programming , *SOFTWARE engineering , *COMPUTER software development , *TECHNOLOGICAL innovations - Abstract
The article offers information on domain-specific languages and modeling (DSL&M) approach. According to the author, domain-specific tools are successful in their respective niches because they streamline development. Due to technological innovations, the newer versions of domain-specific languages (DSLs) are easier to define, which in turn increases abstraction and makes development faster. There are several factors that should be considered before using a DSL&M approach in a problem, among them are the definition of the domain and the elements of the domain.
- Published
- 2009
- Full Text
- View/download PDF
45. Virtual machine framework for constructing domain-specific languages.
- Author
-
Kourie, D. G., Fick, D., and Watson, B. W.
- Subjects
- *
OBJECT-oriented programming , *VIRTUAL machine systems , *DOMAIN-specific programming languages , *SEMANTICS , *PROGRAMMING languages , *COMPUTER programming - Abstract
An object-oriented framework is proposed for constructing a virtual machine (VM) to be used in the context of incrementally and iteratively developing a domain-specific language (DSL). The framework is written in C#. It includes abstract instruction and environment classes. By extending these, a concrete layer of classes is obtained whose instances define the semantics of a set of instructions, as well as one or more execution environment instances that can be manipulated by the instructions. The framework provides a generic mechanism for reading a set of instructions, executing them sequentially by default but branching if necessary, storing or retrieving internal variables, and accessing and manipulating the environment as per the instructions. In general, each instruction can execute an arbitrary C# method as specified by the developer. The syntactic form of instructions is limited to five possibilities. Using the framework, a range of VMs can be generated, each tailored to support a developer-designed target-level DSL. Since each such language is built in terms of these five instruction formats, these target-level languages share a common syntactic structure. The result is a platform to support an incremental iterative language design and implementation approach that involves the following three phases: determine a set of target-level instructions with semantics appropriate to the specific domain; determine source-level language instructions whose syntax appeals to the domain specialist and provide a simple compiler to map the source to target instructions. The first two phases are relatively disjoint and importantly separate syntax concerns from semantics concerns. The final phase is quite straightforward. Comparative performance results support the use of the framework as an alternative to using an interpreter or hardcoded VM for DSL development. [ABSTRACT FROM AUTHOR]
- Published
- 2009
- Full Text
- View/download PDF
46. Developing SAS® standard macros with variable argument techniques.
- Author
-
Zhang, Lei
- Subjects
- *
DOMAIN-specific programming languages , *COMPUTER programming , *COMPUTER science , *PHARMACEUTICAL industry , *COMPUTER software , *CUSTOMIZATION - Abstract
A macro that can take more or fewer arguments when it is called than formally declared is often referred to as a variable argument (or varargs) macro. The SAS® macro facility provides a basic mechanism for constructing a varargs macro. When properly developed, a single varargs macro can be used to solve arrays of problems of the same form all together in an orderly and uniform way, which can be especially valuable to the development of standard macros used in pharmaceutical programming. This article first describes the way to define a typical varargs macro using the option PBUFF in the %Macro statement, as well as two simulated methods. It then explores common calling conventions for varargs macros and various approaches to implementing varargs macros based on how individual arguments can be retrieved from varargs lists passed at runtime. In addition, the advantages and disadvantages of using varargs macros are briefly discussed, and the techniques are illustrated with various examples. [ABSTRACT FROM AUTHOR]
- Published
- 2008
- Full Text
- View/download PDF
47. HM(X) type inference is CLP(X) solving.
- Author
-
MARTIN SULZMANN and PETER J. STUCKEY
- Subjects
- *
ALGORITHMS , *DOMAIN-specific programming languages , *INFERENCE (Logic) , *COMPUTER programming , *SEMANTICS - Abstract
AbstractThe HM(X) system is a generalization of the Hindley/Milner system parameterized in the constraint domain X. Type inference is performed by generating constraints out of the program text, which are then solved by the domain-specific constraint solver X. The solver has to be invoked at the latest when type inference reaches a let node so that we can build a polymorphic type. A typical example of such an inference approach is Milner's algorithm W. We formalize an inference approach where the HM(X) type inference problem is first mapped to a CLP(X) program. The actual type inference is achieved by executing the CLP(X) program. Such an inference approach supports the uniform construction of type inference algorithms and has important practical consequences when it comes to reporting type errors. The CLP(X) style inference system, where X is defined by Constraint Handling Rules, is implemented as part of the Chameleon system. [ABSTRACT FROM AUTHOR]
- Published
- 2008
- Full Text
- View/download PDF
48. Comparative Study of DSL Tools.
- Author
-
Vasudevan, Naveneetha and Tratt, Laurence
- Subjects
PROGRAM transformation ,DOMAIN-specific programming languages ,COMPARATIVE studies ,COMPUTER programming ,CASE studies ,PARSING (Computer grammar) - Abstract
Abstract: An increasingly wide range of tools based on different approaches are being used to implement Domain Specific Languages (DSLs), yet there is little agreement as to which approach is, or approaches are, the most appropriate for any given problem. We believe this can in large part be explained by the lack of understanding within the DSL community. In this paper we aim to increase the understanding of the relative strengths and weaknesses of four approaches by implementing a common DSL case study. In addition, we present a comparative study of the four approaches. [Copyright &y& Elsevier]
- Published
- 2011
- Full Text
- View/download PDF
49. Review a complete row of data in one glance -- no scrolling necessary!
- Author
-
Kavanagh, Sean
- Subjects
DOMAIN-specific programming languages ,COMPUTER programming ,ELECTRONIC spreadsheets ,ELECTRONIC data processing - Abstract
The article focuses on the use of the Visual Basic for Applications (VBA) utility for Excel users to view an entire row's data all at once. The utility allows users to put their row's information in a pop-up vertical list that they can check out in seconds. It manages the label control that is used to display all of the data from the same row as the active cell. Its functions can be tested using any structured list that is set up in a workbook.
- Published
- 2011
50. An Introduction To Domain-Driven Design.
- Author
-
Laribee, Dave
- Subjects
DOMAIN-specific programming languages ,COMPUTER software developers ,COMPUTER software development ,ABSTRACT thought ,BUSINESS logistics ,ELECTRONIC systems ,COMPUTER programming ,INSURANCE policies ,PROGRAMMING languages - Abstract
The article discusses the basic concepts and design patterns relevant to domain-driven design (DDD) by using a complex business domain, insurance policy management. It mentions that DDD is a collection of principles and patterns that help developers make elegant object systems and can lead to software abstractions called domain models that encapsulate complex business logic. Moreover, it extends organizational toolbox and borrows from industry patterns. The author states that developers should learn to use the Ubiquitous Language when using DDD because it reduces the disconnect between business vocabulary and technological jargon. The article also discusses Single Responsibility Principle and the bounded contexts and aggregate roots.
- Published
- 2009
Catalog
Discovery Service for Jio Institute Digital Library
For full access to our library's resources, please sign in.