Drop node-ptr in node features, macro calls. Drop node-ptr types in rule templates and recover closures, fix BiConsumer params Drop node-ptr// refs where appropriate. Drop pointer operations from macro calls and term ctor's; add resolve to FunctionTypeLookup static table. Drop node pointer operations from constraints, add require statements in SModel types macro table. |
||
|---|---|---|
| .. | ||
| .mps | ||
| languages/samples.lambdacalc | ||
| solutions | ||
| .gitignore | ||
| README.md | ||
| build.gradle | ||
| build.xml | ||
README.md
Type Checking Lambda Calculus
This is a demo of type checking simply typed lambda calculus using constraint rules.
This project is made with JetBrains MPS using coderules experimental extension.
Details of implementation can be found in the article available online.
Installation
The code in this project relies on coderules languages and solutions to be available, either as a project library or as a plugin. There are two possibilities to install coderules:
- Follow the instructions for building the root project, or
- Install the compiled plugin (see the latest release on GitHub).
License
Copyright 2014-2018 JetBrains s.r.o.
Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.