# RascalMPL

> Mediated Wiki article. Canonical URL: https://mediated.wiki/source/RascalMPL
> Markdown URL: https://mediated.wiki/source/RascalMPL.md
> Source: https://en.wikipedia.org/wiki/RascalMPL
> Source revision: 1329527614
> License: Creative Commons Attribution-ShareAlike 4.0 International (https://creativecommons.org/licenses/by-sa/4.0/)

'''Rascal''' is a [domain-specific language](/source/domain-specific_language) for [metaprogramming](/source/metaprogramming) and [language oriented programming](/source/language_oriented_programming), such as [static code analysis](/source/static_code_analysis), [program transformation](/source/program_transformation), [program generation](/source/code_generation_(compiler)) and implementation of domain-specific languages.<ref name=scam2009/> It is a general meta language in the sense that it does not have a bias for any particular [software language](/source/software_language). It includes primitives from [relational calculus](/source/relational_calculus) and [term rewriting](/source/term_rewriting). Its syntax and semantics are based on procedural (imperative) and functional programming. 

== Generating [Integrated development environment](/source/Integrated_development_environment)s ==

* Rascal derives [Eclipse](/source/Eclipse_(software)) plugins for any Rascal-implemented software language
* Rascal derives [VScode](/source/VScode) extensions based on the [Language Server Protocol](/source/Language_Server_Protocol) for any Rascal-implemented software language

{{Infobox Software
| name = Rascal
| caption = 
| developer = SWAT [http://www.cwi.nl/htbin/sen1/twiki/bin/view/SEN1/] group at the CWI [http://www.cwi.nl]
| latest release version = 0.30.1
| latest release date =  5 July 2023
| operating system = [Linux](/source/Linux), [Unix](/source/Unix), [Windows](/source/Windows), [Mac OS X](/source/Mac_OS_X) 
| genre = program transformation system, program analysis system, language-oriented programming
| license = BSD, [EPL](/source/Eclipse_Public_License)
| website = http://www.rascal-mpl.org
}}

== See also ==

* [ASF+SDF](/source/Syntax_Definition_Formalism)
* [Stratego/XT](/source/Stratego%2FXT)
* [DMS Software Reengineering Toolkit](/source/DMS_Software_Reengineering_Toolkit)

* [ANTLR](/source/ANTLR)
* [Source-to-source compiler](/source/Source-to-source_compiler)
* [Racket programming language](/source/Racket_programming_language)

== References ==
<references>

<ref name=scam2009>{{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
|publisher=IEEE
}}</ref>

</references>

== External links ==
* http://www.rascal-mpl.org

Category:Term-rewriting programming languages
Category:Extensible syntax programming languages
Category:Programming language implementation
Category:Transformation languages
Category:Language workbench

{{Software-stub}}

---
Adapted from the Wikipedia article [RascalMPL](https://en.wikipedia.org/wiki/RascalMPL) by Wikipedia contributors ([contributor history](https://en.wikipedia.org/wiki/RascalMPL?action=history)). Available under [Creative Commons Attribution-ShareAlike 4.0 International](https://creativecommons.org/licenses/by-sa/4.0/). Changes may have been made.
