rascal

The implementation of the Rascal meta-programming language (including interpreter, type checker, parser generator, compiler and JVM based run-time system)

https://github.com/usethesource/rascal

Science Score: 54.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
    Found CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
  • Academic publication links
  • Committers with academic emails
    4 of 77 committers (5.2%) from academic institutions
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (7.2%) to scientific vocabulary

Keywords

checker code-generation compiler domain-specific-language interpreter language metaprogramming parser-generator pattern-matching query-language refactoring-tools relational-algebra repl reverse-engineering source-to-source standard-library static-analysis template-language term-rewriting

Keywords from Contributors

interactive mesh sequences generic projection optim genomics hacking network-simulation
Last synced: 4 months ago · JSON representation ·

Repository

The implementation of the Rascal meta-programming language (including interpreter, type checker, parser generator, compiler and JVM based run-time system)

Basic Info
  • Host: GitHub
  • Owner: usethesource
  • License: other
  • Language: Java
  • Default Branch: main
  • Homepage: http://www.rascal-mpl.org
  • Size: 1.03 GB
Statistics
  • Stars: 430
  • Watchers: 25
  • Forks: 80
  • Open Issues: 488
  • Releases: 46
Topics
checker code-generation compiler domain-specific-language interpreter language metaprogramming parser-generator pattern-matching query-language refactoring-tools relational-algebra repl reverse-engineering source-to-source standard-library static-analysis template-language term-rewriting
Created over 13 years ago · Last pushed 4 months ago
Metadata Files
Readme Contributing License Code of conduct Citation Authors

README.md

Rascal - Metaprogramming Language

Build and Deploy

This is the core implementation of the Rascal meta-programming language. It contains the interpreter, the parser generator, the parser run-time, the (documented) standard library, the type checker, the compiler, and the documentation compiler ("tutor").

Other relevant repositories:

  • https://github.com/usethesource/rascal-language-servers - for the Rascal's IDE features
  • https://github.com/usethesource/rascal-maven-plugin - for Rascal via Maven commands
  • https://github.com/usethesource/rascal-website - for the online documentation
  • https://github.com/usethesource/vallang - for the core of the Rascal runtime values, types and IO.

Please visit http://www.rascal-mpl.org for all information regarding Rascal.

For questions use the rascal tag on StackOverflow.

Owner

  • Name: Use The Source
  • Login: usethesource
  • Kind: organization
  • Email: jurgen.vinju@cwi.nl

Open Source Projects around Meta Programming

Citation (CITATION.md)


# General Language Reference

You {c,sh,w}ould cite this if:
  * you extended Rascal itself and publish about this
  * you used Rascal as a component of your research method
  * you used Rascal to implement an industrial software project and you wish to credit it


```
@inproceedings{RascalGTTSE,
    title = {EASY Meta-Programming with Rascal. Leveraging the Extract-Analyze-SYnthesize Paradigm for Meta-Programming},
    author = {Paul  Klint and Tijs van der Storm and Jurgen J.  Vinju},
    year = {2010},
    booktitle = {Proceedings of the 3rd International Summer School on Generative and Transformational Techniques in Software Engineering (GTTSE'09)},
    location = {Braga, Portugal},
    series = {LNCS},
    publisher = {Springer},
}
```

# Software Analysis and Transformation (Refactoring)

You {c,sh,w}ould cite this if:
  * you are working on related work want to position w.r.t. Rascal's features
  * you used Rascal as a component of your own tool 

```
@inproceedings{rascal,
	  Author = {Paul Klint and Tijs van der Storm and Jurgen J. Vinju},
	  Title = {RASCAL: A Domain Specific Language for Source Code Analysis and Manipulation},
	  Booktitle = {Ninth IEEE International Working Conference on Source Code Analysis and Manipulation (SCAM)},
	  Doi = {http://doi.ieeecomputersociety.org/10.1109/SCAM.2009.28},
	  Pages = {168-177},
	  Publisher = {IEEE Computer Society},
	  Year = {2009},
}
```

# Specific Releases

Here some citable zenodo snapshots, which you could cite instead of the above papers. The difference is you credit more the implementation of
the work than the conceptual contribution of Rascal. It's up to you. The author lists are different necessarily. So if you depend on a particular
piece of work inside Rascal authored by somebody who is not an author of the above papers, then this might have your preference.

* https://zenodo.org/record/7595297


		

Committers

Last synced: 9 months ago

All Time
  • Total Commits: 21,403
  • Total Committers: 77
  • Avg Commits per committer: 277.961
  • Development Distribution Score (DDS): 0.637
Past Year
  • Commits: 1,908
  • Committers: 8
  • Avg Commits per committer: 238.5
  • Development Distribution Score (DDS): 0.604
Top Committers
Name Email Commits
paulklint P****t@c****l 7,776
Jurgen J. Vinju J****u@c****l 6,973
Davy Landman d****n@g****m 1,811
Arnold Lankamp a****p@g****m 1,328
Anastassija A****a@c****l 749
Mark Hills m****s@a****g 438
Tijs van der Storm T****m@c****l 370
Pieter Olivier p****r@s****g 266
Atze van der Ploeg A****g@c****l 242
Bert Lisser B****r@c****l 199
Ashim Shahi a****i@g****m 170
Michael Steindorfer M****r@c****l 148
BertLisser b****l@c****l 127
Emilie Balland e****d@g****m 123
Anya Helene Bagge a****a@i****o 94
Mauricio Verano Merino m****9@g****m 65
Rodin Aarssen r****n@s****g 58
Lina Ochoa l****a@g****m 58
Jouke Stoel j****l@g****m 57
Arnold Lankamp a****p@A****l 45
Jasper Timmer j****r@g****m 30
Ferry Rietveld F****d@g****m 28
Vadim Zaytsev v****m@g****t 25
Wietse Venema w****a@g****m 24
Sung-Shik Jongmans s****s@s****g 23
Jeroen van den Bos j****n@i****g 17
Bas Basten b****n@c****l 15
Bas Basten b****n@g****m 15
Linus Wagner l****r@m****e 11
Atze van der Ploeg p****g@c****l 11
and 47 more...

Issues and Pull Requests

Last synced: 4 months ago

All Time
  • Total issues: 429
  • Total pull requests: 302
  • Average time to close issues: about 3 years
  • Average time to close pull requests: 21 days
  • Total issue authors: 61
  • Total pull request authors: 15
  • Average comments per issue: 2.17
  • Average comments per pull request: 1.98
  • Merged pull requests: 189
  • Bot issues: 0
  • Bot pull requests: 0
Past Year
  • Issues: 155
  • Pull requests: 240
  • Average time to close issues: 18 days
  • Average time to close pull requests: 9 days
  • Issue authors: 12
  • Pull request authors: 9
  • Average comments per issue: 0.66
  • Average comments per pull request: 1.81
  • Merged pull requests: 150
  • Bot issues: 0
  • Bot pull requests: 0
Top Authors
Issue Authors
  • jurgenvinju (166)
  • DavyLandman (37)
  • toinehartman (37)
  • PaulKlint (33)
  • rodinaarssen (18)
  • PieterOlivier (16)
  • sungshik (12)
  • tvdstorm (10)
  • anyahelene (6)
  • arnoldlankamp (6)
  • msteindorfer (5)
  • joukestoel (5)
  • sven-m (4)
  • jimivdw (4)
  • kevinvandervlist (4)
Pull Request Authors
  • jurgenvinju (97)
  • PieterOlivier (77)
  • DavyLandman (48)
  • rodinaarssen (26)
  • toinehartman (14)
  • sungshik (12)
  • JJWTimmer (9)
  • PaulKlint (5)
  • arnoldlankamp (5)
  • meersdavy (2)
  • linuswagner (2)
  • urbanfly (2)
  • leegbestand (1)
  • mbierlee (1)
  • mahills (1)
Top Labels
Issue Labels
bug (274) typechecker (67) ambiguity (36) enhancement (34) future-enhancement (21) interpreter (20) figure-library (18) compiler (7) library (7) rascal-shell (6) language design (6) question (6) unclear message (5) rascal-eclipse (4) Java m3 (3) project (2) docs (2) requires-documentation (2) tutor compiler (2) invalid (2) wontfix (2) release testing (2) parser (1) IDE (1) tutor (1)
Pull Request Labels
bug (17) enhancement (10) library (3) requires-documentation (2) rascal-shell (2) typechecker (2) parser (1) show stopper (1) interpreter (1)

Dependencies

pom.xml maven
  • com.beust:jcommander 1.72 provided
  • org.asciidoctor:asciidoctorj 1.6.0-alpha.6 provided
  • org.jruby:jruby-complete 9.1.15.0 provided
  • com.google.code.gson:gson 2.8.9
  • com.ibm.icu:icu4j 69.1
  • commons-lang:commons-lang 2.6
  • io.usethesource:vallang 0.14.4
  • jline:jline 2.14.6
  • junit:junit 4.13.1
  • org.apache.commons:commons-math 2.2
  • org.apache.lucene:lucene-analyzers-common 7.5.0
  • org.apache.lucene:lucene-core 7.5.0
  • org.apache.lucene:lucene-highlighter 7.5.0
  • org.apache.lucene:lucene-queryparser 7.5.0
  • org.jdom:jdom2 2.0.6
  • org.nanohttpd:nanohttpd 2.3.1
  • org.ow2.asm:asm 9.2
  • org.ow2.asm:asm-tree 9.2
  • org.rascalmpl:rascal-p2-dependencies-repackaged 0.6.0
  • org.yaml:snakeyaml 1.26
.github/workflows/build.yaml actions
  • SWAT-engineering/maven-full-artifacts-action v1 composite
  • act10ns/slack v1 composite
  • actions/checkout v3 composite
  • actions/setup-java v3 composite
  • browser-actions/setup-chrome latest composite
  • codecov/codecov-action v3 composite
  • nanasess/setup-chromedriver v1 composite
  • scacap/action-surefire-report v1 composite
  • softprops/action-gh-release v1 composite
  • usethesource/releases-maven-action v1 composite