Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/Cypher1/tako
An experimental programming language for ergonomic software verification
https://github.com/Cypher1/tako
experimental-programming-language hoare-triples interpreter language programming-language-theory solver verification
Last synced: 3 months ago
JSON representation
An experimental programming language for ergonomic software verification
- Host: GitHub
- URL: https://github.com/Cypher1/tako
- Owner: Cypher1
- License: mit
- Created: 2018-07-16T23:17:52.000Z (over 6 years ago)
- Default Branch: main
- Last Pushed: 2024-05-20T07:05:56.000Z (6 months ago)
- Last Synced: 2024-05-22T22:31:08.703Z (6 months ago)
- Topics: experimental-programming-language, hoare-triples, interpreter, language, programming-language-theory, solver, verification
- Language: Rust
- Homepage: https://takolang.dev
- Size: 2.66 MB
- Stars: 15
- Watchers: 4
- Forks: 1
- Open Issues: 8
-
Metadata Files:
- Readme: README.md
- Contributing: CONTRIBUTING.md
- Funding: .github/FUNDING.yml
- License: LICENSE.md
- Code of conduct: CODE_OF_CONDUCT.md
Awesome Lists containing this project
- awesome-rust-formalized-reasoning - tako - experimental programming language for ergonomic software verification. (Programming Language / Libraries)
README
# Tako
[![All Contributors](https://img.shields.io/badge/all_contributors-1-orange.svg?style=flat-square)](#contributors-)
[![Cherry](./takoweb/static/tako.png)](https://takolang.dev)
[![Build Status](https://github.com/Cypher1/tako/workflows/Rust/badge.svg)](https://github.com/Cypher1/tako/actions)
[![GitHub issues](https://img.shields.io/github/issues/Cypher1/tako.svg)](https://github.com/Cypher1/tako/issues)An experimental programming language for ergonomic software verification using [Hoare Logic](https://en.wikipedia.org/wiki/Hoare_logic).
## Getting Started
These instructions will get you a copy of the project up and running on your local machine for development and testing purposes. See deployment for notes on how to deploy the project on a live system.
### Prerequisites
Tako currently uses `cargo` for builds and running tests and git submodules for dependency management.
Installation instructions can be found at
### Building
Building is a single step,
```bash
cargo build --release
```You can also install tako, though I don't recommend this.
```
cargo install --path=./tako
```This allows us to run the compiler.
```bash
tako examples/hello_name.tk
./build/examples_hello_name 'world'
```And interactive interpreter:
```bash
tako -i
```And use the interpreter to run a tako file:
```bash
tako -r examples/hello_name.tk -- 'world'
```## Running the tests
Running the tests is also a single step.
```bash
cargo test
```Note: Currently this tests using an optimised build as some of the tests rely on rust optimisations that decrease stack usage. Tracking bug:
## Installation
> **Warning:** Don't use tako. Use some other language & compiler.
>
> I recommend rust, haskell or idris.
>
> tako is not stable, reliable, or efficient.
>
> You have been warned.tako is a standalone single file. It can be installed simply by building and copy/moving ./tako into your /usr/bin directory.
## Contributing
Please read the [CODE_OF_CONDUCT.md](CODE_OF_CONDUCT.md) and [CONTRIBUTING.md](CONTRIBUTING.md) guides for details on our code of conduct, and the process for submitting pull requests.
## Versioning
We will use [SemVer](http://semver.org/) for versioning. There are no versions currently available, but see the [tags on this repository](https://github.com/Cypher1/tako/tags).
## License
This project is licensed under the MIT License - see the [LICENSE.md](LICENSE.md) file for details
## Acknowledgments
* **Billie Thompson** - *Readme Templates* - [PurpleBooth](https://github.com/PurpleBooth)
* **Chris Hall** - *Design advice and instruction in programming language theory* - [Chrisosaurus](https://github.com/chrisosaurus)## Contributors