typepal

TypePal is a framework for name analysis, type checking and type inference

https://github.com/usethesource/typepal

Science Score: 44.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
  • Academic email domains
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (8.1%) to scientific vocabulary

Keywords

domain-specific-language rascal type-checking typechecker
Last synced: 6 months ago · JSON representation ·

Repository

TypePal is a framework for name analysis, type checking and type inference

Basic Info
Statistics
  • Stars: 5
  • Watchers: 22
  • Forks: 4
  • Open Issues: 4
  • Releases: 10
Topics
domain-specific-language rascal type-checking typechecker
Created about 8 years ago · Last pushed 6 months ago
Metadata Files
Readme License Citation

README.md

TypePal

An experiment in type checker generation. Warning: work in progress!

From the user perspective the basic idea is as follows:

  1. Start with a Rascal grammar of the language of interest, say, MiniML.
  2. Write functions for specific language constructs
    • define captures all defining occurrences of variables and their scopes;
    • use captures all uses of variables;
    • require captures all static requirements on the use of certain constructs, such formal/actual parameter correspondence and the like;
    • calculate to compute a type for a language fragment using earlier calculated types, think of the result type of an operator based on its argument types.
  3. The above functions will populate a fact/requirement model (or TModel for short) of a source program to be type checked.
  4. Apply the collect function to a parsed program (a parse tree). This will apply define/use/require/calculate to all relevant places in the tree, will create scopes and use/def information and will also build a collection of constraints. They are all part of the TModel.
  5. Apply solve to the TModel resulting from the previous step. solve is happy if all constraints can be solved and generates error messages otherwise. solve also enhances the original TModel with derived facts that can be used for use/def analysis, interactive display of type information, and the like.

Owner

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

Open Source Projects around Meta Programming

Citation (CITATION.md)

Paul Klint, Jurgen J. Vinju, Davy Landman, & Rodin Aarssen. (2023). usethesource/typepal: v0.8.5 (v0.8.5). Zenodo. https://doi.org/10.5281/zenodo.8093927

```bibtex
@software{paul_klint_2023_8093927,
  author       = {Paul Klint and
                  Jurgen J. Vinju and
                  Davy Landman and
                  Rodin Aarssen},
  title        = {usethesource/typepal: v0.8.5},
  month        = jun,
  year         = 2023,
  publisher    = {Zenodo},
  version      = {v0.8.5},
  doi          = {10.5281/zenodo.8093927},
  url          = {https://doi.org/10.5281/zenodo.8093927}
}
```

GitHub Events

Total
  • Create event: 16
  • Issues event: 2
  • Release event: 3
  • Issue comment event: 11
  • Push event: 69
  • Pull request review event: 17
  • Pull request review comment event: 14
  • Pull request event: 10
Last Year
  • Create event: 16
  • Issues event: 2
  • Release event: 3
  • Issue comment event: 11
  • Push event: 69
  • Pull request review event: 17
  • Pull request review comment event: 14
  • Pull request event: 10

Issues and Pull Requests

Last synced: 6 months ago

All Time
  • Total issues: 7
  • Total pull requests: 10
  • Average time to close issues: 3 months
  • Average time to close pull requests: about 1 month
  • Total issue authors: 4
  • Total pull request authors: 5
  • Average comments per issue: 2.14
  • Average comments per pull request: 2.0
  • Merged pull requests: 9
  • Bot issues: 0
  • Bot pull requests: 1
Past Year
  • Issues: 2
  • Pull requests: 5
  • Average time to close issues: N/A
  • Average time to close pull requests: 9 days
  • Issue authors: 2
  • Pull request authors: 3
  • Average comments per issue: 0.0
  • Average comments per pull request: 2.6
  • Merged pull requests: 4
  • Bot issues: 0
  • Bot pull requests: 0
Top Authors
Issue Authors
  • jurgenvinju (3)
  • DavyLandman (2)
  • toinehartman (1)
  • kevinvandervlist (1)
Pull Request Authors
  • jurgenvinju (4)
  • DavyLandman (3)
  • toinehartman (2)
  • PaulKlint (2)
  • dependabot[bot] (1)
Top Labels
Issue Labels
enhancement (2)
Pull Request Labels
dependencies (1) enhancement (1)

Dependencies

pom.xml maven
  • junit:junit 4.13.1
  • org.rascalmpl:rascal 0.23.0
.github/workflows/build.yaml actions
  • SWAT-engineering/maven-full-artifacts-action v1 composite
  • actions/cache v2 composite
  • actions/checkout v2 composite
  • actions/setup-java v1 composite
  • scacap/action-surefire-report v1 composite
  • softprops/action-gh-release v1 composite
  • usethesource/releases-maven-action v1 composite