All software evolves, and programming languages and programming language tools are no exception. And just like in ordinary software construction, modular implementations can help ease the process of changing a language implementation and its dependent tools. However, the syntactic and semantic dependencies between language features make this a challenging problem. In this paper we detail how programming languages can be implemented in a modular fashion using the Rascal meta-programming language.Rascal supports extensible definition of concrete syntax, abstract syntax and operations on concrete and abstract syntax trees like matching, traversal and transformation. As a result, new language features can be added without having to change existing code. As a case study, we detail our solution of the LDTA'11 Tool Challenge: a modular implementation of Oberon-0, a relatively simple imperative programming language. The approach we sketch can be applied equally well to the implementation of domain-specific languages.
Algebraic specification has a long tradition in bridging the gap between
specification and programming by making specifications executable. Building on
extensive experience in designing, implementing and using specification
formalisms that are based on algebraic specification and term rewriting (namely
Asf and Asf+Sdf), we are now focusing on using the best concepts from algebraic
specification and integrating these into a new programming language: Rascal.
This language is easy to learn by non-experts but is also scalable to very
large meta-programming applications.
We explain the algebraic roots of Rascal and its main application areas:
software analysis, software transformation, and design and implementation of
domain-specific languages. Some example applications in the domain of
Model-Driven Engineering (MDE) are described to illustrate this.Comment: In Proceedings AMMSE 2011, arXiv:1106.596
A set of scale-model tests carried out to enlarge the range of wave steepness values analysed in run-up, overtopping and armour layer stability studies, focusing on oblique extreme wave conditions and on their effects on a gentler slope breakwater’s trunk armour and roundhead, is presented in this paper. A stretch of a rubble mound breakwater (head and part of the adjoining trunk, with a slope of 1(V):2(H)) was built in a wave basin at the Leibniz University Hannover to assess, under extreme wave conditions (wave steepness of 0.055) with different incident wave angles (from 40º to 90º), the structure behaviour in what concerns wave run-up, wave overtopping and damage progression of the armour layer. Two types of armour elements (rock and Antifer cubes) were tested. Non-intrusive methodologies including a new application of laser scanning technique for the assessment of both armour layer damage and wave run-up and overtopping were used. It is expected that such work will contribute also with data to improve empirical formulas as well as to validate complex numerical model for wave-structure interaction.
scite is a Brooklyn-based organization that helps researchers better discover and understand research articles through Smart Citations–citations that display the context of the citation and describe whether the article provides supporting or contrasting evidence. scite is used by students and researchers from around the world and is funded in part by the National Science Foundation and the National Institute on Drug Abuse of the National Institutes of Health.