RascalMPL
   HOME

TheInfoList



OR:

Rascal is an experimental
domain specific language A domain-specific language (DSL) is a computer language specialized to a particular application domain. This is in contrast to a general-purpose language (GPL), which is broadly applicable across domains. There are a wide variety of DSLs, ranging ...
for
metaprogramming Metaprogramming is a programming technique in which computer programs have the ability to treat other programs as their data. It means that a program can be designed to read, generate, analyze or transform other programs, and even modify itself ...
, such as
static code analysis In computer science, static program analysis (or static analysis) is the analysis of computer programs performed without executing them, in contrast with dynamic program analysis, which is performed on programs during their execution. The term i ...
,
program transformation A program transformation is any operation that takes a computer program and generates another program. In many cases the transformed program is required to be semantically equivalent to the original, relative to a particular formal semantics and ...
, program generation and implementation of domain specific languages. It is a general meta language in the sense that it does not have a bias for any particular software language. It includes primitives from
relational calculus The relational calculus consists of two calculi, the tuple relational calculus and the domain relational calculus, that are part of the relational model for databases and provide a declarative way to specify database queries. The raison d'être ...
and
term rewriting In mathematics, computer science, and logic, rewriting covers a wide range of methods of replacing subterms of a formula with other terms. Such methods may be achieved by rewriting systems (also known as rewrite systems, rewrite engines, or reduc ...
. Its syntax and semantics are based on procedural (imperative) and functional programming.


See also

* ASF+SDF * Stratego/XT *
DMS Software Reengineering Toolkit The DMS Software Reengineering Toolkit is a proprietary set of program transformation tools available for automating custom source program analysis, modification, translation or generation of software systems for arbitrary mixtures of source langu ...
*
ANTLR In computer-based language recognition, ANTLR (pronounced ''antler''), or ANother Tool for Language Recognition, is a parser generator that uses LL(*) for parsing. ANTLR is the successor to the Purdue Compiler Construction Tool Set (PCCTS), firs ...
*
Source-to-source compiler A source-to-source translator, source-to-source compiler (S2S compiler), transcompiler, or transpiler is a type of translator that takes the source code of a program written in a programming language as its input and produces an equivalent sou ...


References

{{reflist, refs= {{Citation , first1=Paul , title=2009 Ninth IEEE International Working Conference on Source Code Analysis and Manipulation , last1=Klint , first2=Tijs , last2=van der Storm , first3=Jurgen , last3=Vinju , chapter=RASCAL: A Domain Specific Language for Source Code Analysis and Manipulation , place=Edmonton, Alberta, Canada , series=2013 IEEE 13th International Working Conference on Source Code Analysis and Manipulation (SCAM) , year=2013 , pages=168–177 , chapter-url=http://homepages.cwi.nl/~jurgenv/papers/SCAM-2009.pdf , access-date=8 December 2015 , doi=10.1109/SCAM.2009.28, isbn=978-0-7695-3793-1 , citeseerx=10.1.1.513.2410 , s2cid=206553849


External links

* http://www.rascal-mpl.org Term-rewriting programming languages Extensible syntax programming languages Programming language implementation Transformation languages Language workbench