- Sponsor:
- sigplan
No abstract available.
Proceeding Downloads
Redex: a language for lightweight semantics engineering (keynote)
Redex is a programming language designed to support semantics engineers as they experiment with programming language models. To explore a model, an engineer writes down grammars, type systems, and operational semantics in a notation inspired by the ...
Parsing and reflective printing, bidirectionally
Language designers usually need to implement parsers and printers. Despite being two intimately related programs, in practice they are often designed separately, and then need to be revised and kept consistent as the language evolves. It will be more ...
Taming context-sensitive languages with principled stateful parsing
Historically, true context-sensitive parsing has seldom been applied to programming languages, due to its inherent complexity. However, many mainstream programming and markup languages (C, Haskell, Python, XML, and more) possess context-sensitive ...
Efficient development of consistent projectional editors using grammar cells
The definition of a projectional editor does not just specify the notation of a language, but also how users interact with the notation. Because of that it is easy to end up with different interaction styles within one and between multiple languages. ...
MetaEdit+ for collaborative language engineering and language use (tool demo)
Almost all software development activities require collaboration and language engineering is no exception. First, there is a need for collaboration among language engineers as it is not realistic to expect one man to master all. Second, there is a ...
Experiences of models@run-time with EMF and CDO
- Daniel Seybold,
- Jörg Domaschka,
- Alessandro Rossini,
- Christopher B. Hauser,
- Frank Griesinger,
- Athanasios Tsitsipas
Model-drivenengineering promotes models and modeltrans-
formations as the primary assets in software development.
The models@run-time approach provides an abstract rep-
resentation of a system at run-time, whereby changes in
the model and the ...
Runtime support for rule-based access-control evaluation through model-transformation
Access-control policies, often the mechanism of choice to implement the security requirements of confidentiality and integrity, can be found in a wide range of application scenarios. Although there are standard languages for access-control and a ...
Object-oriented design pattern for DSL program monitoring
To ease domain-specific language (DSL) development, a range of language workbenches have been created, which provide language design facilities and programming tools, like editors and validators. In spite of these developments, there is a perceived ...
Execution framework of the GEMOC studio (tool demo)
The development and evolution of an advanced modeling environment for a Domain-Specific Modeling Language (DSML) is a tedious task, which becomes recurrent with the increasing number of DSMLs involved in the development and management of complex ...
Language design and implementation for the domain of coding conventions
Coding conventions are lexical, syntactic or semantic restrictions enforced on top of a software language for the sake of consistency within the source base. Specifying coding conventions is currently an open problem in software language engineering, ...
BSML-mbeddr: integrating semantically configurable state-machine models in a C programming environment
In model-driven engineering, developers express their solutions in domain-specific modelling languages (DSLs) that support domain-specific abstractions. Big-Step Modelling Languages (BSML) is a family of extended state-machine DSLs for creating ...
Adding uncertainty and units to quantity types in software models
Although several software modeling languages permit the representation of key aspects of physical entities, such as units, precision or measurement uncertainty, these aspects are not typically incorporated into their type systems. Therefore, operating ...
FRaMED: full-fledge role modeling editor (tool demo)
Since the year 1977, role modeling has been continuously investigated as promising paradigm to model complex, dynamic systems. However, this research had almost no influence on the design of todays increasingly complex and context-sensitive software ...
Towards a universal code formatter through machine learning
There are many declarative frameworks that allow us to implement code formatters relatively easily for any specific language, but constructing them is cumbersome. The first problem is that “everybody” wants to format their code differently, leading to ...
The IDE portability problem and its solution in Monto
Modern IDEs support multiple programming languages via plug-ins, but developing a high-quality language plug-in is a huge development effort and individual plug-ins are not reusable in other IDEs. We call this the IDE portability problem.
In this ...
Principled syntactic code completion using placeholders
Principled syntactic code completion enables developers to change source code by inserting code templates, thus increasing developer efficiency and supporting language exploration. However, existing code completion systems are ad-hoc and neither ...
DrAST: an inspection tool for attributed syntax trees (tool demo)
When implementing a language by means of attribute grammars, it is often useful to study example programs and their attributed trees, to understand the compiler structure, or for debugging. DrAST is a tool that allows interactive inspection of ...
Automated testing support for reactive domain-specific modelling languages
Domain-specific modelling languages (DSML) enable domain users
to model systems in their problem domain, using concepts and
notations they are familiar with. The process of domain-specific
modelling (DSM) consists of two stages: a language ...
Side effects take the blame
We introduce several blame strategies for gradual effect systems. Blame strategies are the part of a language semantics that aims to identify the cause of a runtime check failure. Gradual effect systems are a framework that combines static and dynamic ...
Symbolic execution of high-level transformations
Transformations form an important part of developing domain specific languages, where they are used to provide semantics for typing and evaluation. Yet, few solutions exist for verifying transformations written in expressive high-level transformation ...
Raincode assembler compiler (tool demo)
IBM's High Level Assembler (HLASM) is a low level programming language for z/Architecture mainframe computers. Many legacy codebases contain large subsets written in HLASM for various reasons, and such components usually had to be manually rewritten in ...
Efficient model partitioning for distributed model transformations
As the models that need to be handled in model-driven engineering grow in scale, scalable algorithms for model transformation (MT) are becoming necessary. Programming models such as MapReduce or Pregel may simplify the development of distributed model ...
Coupled software transformations revisited
We revisit the notion of coupled software transformations (CX) which is concerned with keeping collections of software artifacts consistent in response to changes of individual artifacts. We model scenarios of CX while we abstract from technological ...
Xdiagram: a declarative textual DSL for describing diagram editors (tool demo)
When compared to the realm of textual syntax, developing graphical syntax for a domain-specific modeling language (DSML) is still challenging. Xdiagram is a research prototype that consists of a textual domain-specific language (DSL) for specifying ...
Index Terms
- Proceedings of the 2016 ACM SIGPLAN International Conference on Software Language Engineering