{"title":"Industrial Application of Domain Specific Languages Combined with Formal Techniques","authors":"Mathijs Schuts, J. Hooman","doi":"10.1145/2889420.2889421","DOIUrl":"https://doi.org/10.1145/2889420.2889421","url":null,"abstract":"Two Domain Specific Languages (DSLs) have been developed to improve the development of a power control component of interventional X-ray systems of Philips. Configuration files and test cases are generated from instances of these DSLs. To increase the confidence in these instances and the generators, formal models have been generated to analyse DSL instances and to crosscheck the results of the generators. A DSL instance serves as a single source from which the implementation and the formal analysis models are generated. In this way, it is easy to maintain the formal support in case of changes and for new product releases. We report about our experiences with this approach in a real development project at Philips.","PeriodicalId":321825,"journal":{"name":"Proceedings of the 1st International Workshop on Real World Domain Specific Languages","volume":"104 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2016-03-12","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"116549544","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
Christakis Lezos, G. Dimitroulakos, I. Latifis, K. Masselos
{"title":"Automatic Generation of Code Analysis Tools: The CastQL Approach","authors":"Christakis Lezos, G. Dimitroulakos, I. Latifis, K. Masselos","doi":"10.1145/2889420.2889422","DOIUrl":"https://doi.org/10.1145/2889420.2889422","url":null,"abstract":"Source code analysis and manipulation tools have become an essential part of software development processes. Automating the development of such tools can heavily reduce development time, effort and cost. This paper proposes a framework for the efficient development of code analysis software. A tool for automatically generating the front end of analysis tools for a given language grammar is proposed. The proposed approach can be applied to any language that can be described using the BNF notation. The proposed framework also provides a domain specific language to concisely express queries on the internal representation generated by the front end. This language tackles the problem of writing complex code in a general purpose programming language in order to retrieve information from the internal representation. The approach has been evaluated through two different realistic usage scenarios applied to a number of different benchmark applications. The front end generator has also been tested for twenty input grammars. In all cases the software generated by the proposed framework functions according to the input grammar while the development time has been reduced on average down to 12% compared to equivalent handwritten implementations. The experimental results give evidence that the use of the proposed framework can heavily reduce the relevant design effort and cost.","PeriodicalId":321825,"journal":{"name":"Proceedings of the 1st International Workshop on Real World Domain Specific Languages","volume":"404 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2016-03-12","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"122864852","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
{"title":"Why So Many?: A Brief Tour of Haskell DSLs for Parallel Programming","authors":"Patrick Maier","doi":"10.1145/2889420.2893172","DOIUrl":"https://doi.org/10.1145/2889420.2893172","url":null,"abstract":"The proliferation of inexpensive parallel compute devices, from multicore CPUs and GPUs to manycore co-processors and FPGAs, has increased the demand for parallel programming languages. Yet, unlike in the 1970s and 80s, this has not spawned a flurry of entirely new programming languages. Rather, it has driven the development of parallel extensions and libraries for existing languages. Functional programming has been hailed as an answer to the parallel software crisis, even before that crisis erupted. Absence of side effects and mutable state, the argument goes, eliminates many of the thorny issues (like locking and data races) that plague developers in mainstream imperative programming languages, while also enabling automated scheduling of parallelism. This leaves the functional programmer to concentrate solely on introducing parallelism into their application. Voilà, the dream of declarative parallel programming come true. The popular functional language Haskell should have been wellplaced to deliver on these promises. In fact, the GUM system [17, 16] did just that in the 1990s, providing an elegant declarative task parallel programming model and a runtime system for transparently scheduling tasks across the network. Proper compiler support for this programming model on multicores, however, did not arrive until 2009 [12, 2, 10], half a decade after multicore CPUs became ubiquitous. And when multicore support went mainstream with GHC release 6.12, it became apparent that the programming model, while elegant, is intricately interwoven with Haskell’s non-strict evaluation order. This makes predicting the behaviour of a parallel Haskell program more difficult than it would be in a strict language, and constitutes a major hurdle for parallel programmers, particularly for Haskell novices. Moreover, by 2009 multicores weren’t the only parallel game anymore; GPUs had the buzz. Yet, the task parallel programming model that works well on multicore CPUs is not suited for offloading computations to data parallel devices like GPUs.","PeriodicalId":321825,"journal":{"name":"Proceedings of the 1st International Workshop on Real World Domain Specific Languages","volume":"512 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2016-03-12","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"116332456","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
{"title":"Proceedings of the 1st International Workshop on Real World Domain Specific Languages","authors":"Robert J. Stewart, G. Michaelson","doi":"10.1145/2889420","DOIUrl":"https://doi.org/10.1145/2889420","url":null,"abstract":"","PeriodicalId":321825,"journal":{"name":"Proceedings of the 1st International Workshop on Real World Domain Specific Languages","volume":"56 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2016-03-12","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"124912758","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
{"title":"Are there Domain Specific Languages?","authors":"G. Michaelson","doi":"10.1145/2889420.2892271","DOIUrl":"https://doi.org/10.1145/2889420.2892271","url":null,"abstract":"Turing complete languages can express unbounded computations over unbounded structures, either directly or by a suitable encoding. In contrast, Domain Specific Languages (DSLs) are intended to simplify the expression of computations over structures in restricted contexts. However, such simplification often proves irksome, especially for constructing more elaborate programs where the domain, though central, is one of many considerations. Thus, it is often tempting to extend a DSL with more general abstractions, typically to encompass common programming tropes, typically from favourite languages. The question then arises: once a DSL becomes Turing complete, then in what sense is it still domain specific?","PeriodicalId":321825,"journal":{"name":"Proceedings of the 1st International Workshop on Real World Domain Specific Languages","volume":"48 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2016-03-12","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"130611729","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
{"title":"Visual Instance Inlining and Specialization: Building Domain-Specific Diagrams from Reusable Types","authors":"Niklas Fors, G. Hedin","doi":"10.1145/2889420.2889423","DOIUrl":"https://doi.org/10.1145/2889420.2889423","url":null,"abstract":"Block diagram languages are often used for physical modeling and automation, where end users are domain engineers that instantiate block types and wire them together. Abstraction mechanisms in these languages allow specialists to build advanced reusable domain-specific libraries. However, this brings a tension between supporting reusability and making the language simple to comprehend for domain engineers. We propose a technique for relieving this tension by supporting visual instance inlining and smart editing mechanisms based on instance specialization. The new technique allows end users to visually edit and comprehend diagrams in terms of domain blocks only, while the underlying program makes use of reusable library types.","PeriodicalId":321825,"journal":{"name":"Proceedings of the 1st International Workshop on Real World Domain Specific Languages","volume":"20 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2016-03-12","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"114590773","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
{"title":"An Image Processing Language: External and Shallow/Deep Embeddings","authors":"Robert J. Stewart","doi":"10.1145/2889420.2892270","DOIUrl":"https://doi.org/10.1145/2889420.2892270","url":null,"abstract":"Programming language users demand high performance, easy to understand syntax, and tooling such as profilers, debuggers and integrated development environments. Historically they were standalone, each with its own lexer and parser to implement a syntax, and an interpreter or compiler to implement a semantics. This approach incurs substantial engineering costs, both for the initial construction and also for ongoing maintenance as a language and its standard library grows. Modern language technology enables a more cost effective approach, namely to embed new languages inside existing languages, inheriting a host language's tooling, and its community as potential users. This paper uses a small image processing language to compare shallow and deep language embeddings with the external language approach. It focuses on optimisation opportunities, performance, ease of use and engineering costs.","PeriodicalId":321825,"journal":{"name":"Proceedings of the 1st International Workshop on Real World Domain Specific Languages","volume":"65 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2016-03-12","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"116542651","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}