{"id":15134955,"url":"https://github.com/jetbrains/mps-coderules","last_synced_at":"2025-10-19T15:30:44.025Z","repository":{"id":37270892,"uuid":"94222533","full_name":"JetBrains/mps-coderules","owner":"JetBrains","description":"Type checking and logical inference for JetBrains MPS","archived":false,"fork":false,"pushed_at":"2024-12-03T07:45:19.000Z","size":103285,"stargazers_count":32,"open_issues_count":0,"forks_count":5,"subscribers_count":14,"default_branch":"master","last_synced_at":"2025-01-30T02:01:38.655Z","etag":null,"topics":["code-analysis","constraint-handling-rules","constraint-rules","control-flow","jetbrains-mps","type-checking"],"latest_commit_sha":null,"homepage":"https://jetbrains.github.io/mps-coderules","language":"JetBrains MPS","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/JetBrains.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2017-06-13T14:32:53.000Z","updated_at":"2025-01-20T06:18:54.000Z","dependencies_parsed_at":"2024-11-14T12:36:14.804Z","dependency_job_id":null,"html_url":"https://github.com/JetBrains/mps-coderules","commit_stats":{"total_commits":3415,"total_committers":6,"mean_commits":569.1666666666666,"dds":"0.19472913616398246","last_synced_commit":"6931d94adbbc202672b69af204a48fb428ee057b"},"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JetBrains%2Fmps-coderules","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JetBrains%2Fmps-coderules/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JetBrains%2Fmps-coderules/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JetBrains%2Fmps-coderules/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/JetBrains","download_url":"https://codeload.github.com/JetBrains/mps-coderules/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":237152909,"owners_count":19263804,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["code-analysis","constraint-handling-rules","constraint-rules","control-flow","jetbrains-mps","type-checking"],"created_at":"2024-09-26T05:41:05.909Z","updated_at":"2025-10-19T15:30:37.145Z","avatar_url":"https://github.com/JetBrains.png","language":"JetBrains MPS","funding_links":[],"categories":[],"sub_categories":[],"readme":"[![JetBrains team project](http://jb.gg/badges/team-flat-square.svg)](https://confluence.jetbrains.com/display/ALL/JetBrains+on+GitHub)\n# MPS CodeRules\n\nAn experimental feature of [JetBrains MPS](https://jetbrains.com/mps), *Coderules* is collection of languages that allow to utilize logical programming approach for solving typechecking and related problems.\n\n[JetBrains MPS](https://www.jetbrains.com/mps/) is a project developed by [JetBrains](http://www.jetbrains.com/?fromFooter).\n\n## Documentation\n\nThe [documentation](http://jetbrains.github.io/mps-coderules/) is available online.  \n\n## Installation\n\n### Install from Marketplace\n\nAdd the the URL providing access to EAP channel to the list of Plugin Repositories:\n\n1. Open Plugins section in the Welcome dialog\n2. Click the \"cog\" button at the top right and select `Manage Plugin Repositories...`\n3. Add the URL `https://plugins.jetbrains.com/plugins/eap/list`\n4. Search for these plugin in the Marketplace tab: \n\n- MPS Coderules Typechecking\n- MPS Coderules Core Types\n\n5. Install both plugins and restart IDE\n\n### Download plugin files directly\n\nFor latest stable MPS release (2021.3):\n\n1. Download the two plugins from [this](https://teamcity.jetbrains.com/viewType.html?buildTypeId=MPS_20213_Distribution_MpsCodeRules\u0026state=successful) build configuration (see \"artifacts\" of the last successful build):\n\n- `jetbrains.mps.coderules-213-*.zip` (Coderules and related languages and accessory solutions)\n- `jetbrains.mps.core-types-213-*.zip` (Type definitions for core MPS languages)\n\n2. Install both plugins by choosing \"Install Plugin from Disk..\" option from \"Manage...\" menu of Plugins page in the preferences.\n3. Restart MPS.\n\n## Status\n| TeamCity Stable | TeamCity EAP |\n|:--|:--|\n| [![](http://teamcity.jetbrains.com/app/rest/builds/buildType(id:MPS_20213_Distribution_MpsCodeRules)/statusIcon)](https://teamcity.jetbrains.com/viewType.html?buildTypeId=MPS_20213_Distribution_MpsCodeRules) | [![](http://teamcity.jetbrains.com/app/rest/builds/buildType(id:MPS_20222_Distribution_MpsCodeRules)/statusIcon)](https://teamcity.jetbrains.com/viewType.html?buildTypeId=MPS_20222_Distribution_MpsCodeRules) |\n\nThe status of this project is **pre-release**. Don’t rely on any of the language features or the API to be stable. The purpose of this project is to show the new technology and collect early feedback.\n\n## Overview\n\nThis project is the result of ongoing research done within MPS team in the area of code analysis using constraints handling, in particular [CHR](http://www.informatik.uni-ulm.de/pm/fileadmin/pm/home/fruehwirth/constraint-handling-rules-book.html).\n                                                                     \nAnalysis of source model with CodeRules can be described as a two-phase process.\n\n1. Collecting rule tables and applying rule templates.\n2. Processing constraint rules collected in the first stage.\n\nIn the first phase, languages used by the model being analysed and surveyed for the appropriate CodeRules aspect model, which is types in case of type checking. *Coderules* allow for extensions to be provided by derived languages. Extensions have higher priority, so it’s easy to override the built-in behaviour.\n\nThe outcome of this phase is a constraint rules program, which is a collection of rule tables, which in turn represent lists of constraint rules. This “program” however, exists in memory only as it does not have any textual representation.\n\nIn the second phase the constraints program that was created in phase one is evaluated. The semantics of constraints processing is compatible with regular Java semantics.\n\n## Samples\n\n- [Type checking](samples/mpscore) for core MPS languages.\n- [Type checking of lambda calculus](samples/lambdacalc) shows the implementation of standard type checking algorithm.\n- [Proof validation](samples/fitch) using Fitch system demonstrates how logical inference can be done.\n\n## Sources \n\nThe source code can be opened with the last release of JetBrains MPS. See INSTALL.txt for information on how to set up the project.\n\nThe author can be reached by email `fedor.isakov`@`jetbrains.com` or by [Twitter](https://twitter.com/fisakov).\n\n## License\n\nCopyright 2014-2022 JetBrains s.r.o.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\nhttp://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjetbrains%2Fmps-coderules","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjetbrains%2Fmps-coderules","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjetbrains%2Fmps-coderules/lists"}