Cicada Language
Welcome *^-^*/
Cicada language is a dependently typed programming language and an interactive theorem prover.
The aim of cicada project is to help people understand that developing software and developing mathematics are increasingly the same kind of activity, and people who practice these developments can learn from each other, and help each other in very good ways.
Development
npm install # Install dependencies
npm run build # Compile `src/` to `lib/`
npm run build:watch # Watch the compilation
npm run format # Format the code
npm run test # Run test
npm run test:watch # Watch the testing
Community
GitHub:
- Organization: github.com/cicada-lang
- Main repo: github.com/cicada-lang/cicada
Telegram:
- English chat group: CicadaLanguage
- Chinese chat group: CicadaLanguageCN
- News group: CicadaRhapsody
Thanks
Thanks PLCT Lab, for sponsoring our community at very early stage of our project.
Thanks Dan Friedman, for we learned most of our knowledge about programming language design from your little books.
Thanks David Christiansen, for coauthoring "The Little Typer" with Dan, and writing up great tutorials (1, 2) about dependent types.
Contributions
Be polite. Do NOT bring negative emotion to others.
To make a contribution, fork this project and create a pull request.
Please read the STYLE-GUIDE.md before you change the code.
Remember to add yourself to AUTHORS. Your line belongs to you, you can write a little introduction to yourself but not too long.
It is assumed that all non draft PRs are ready to be merged. If your PR is not ready to be merged yet, please make it a draft PR:
During the development of your PR, you can make use of the TODO.md file to record ideas temporarily, and this file should be clean again at the end of your development.