# Cicada Language

[ [HOMEPAGE](https://cicada-lang.org)
| [PLAY](https://cicada-lang.org/playground) ]

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

```sh
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
```

## Thanks

Thanks, [PLCT Lab](https://github.com/plctlab), for sponsoring our community at very early stage of our project.

Thank you, [Daniel P. Friedman](https://www.cs.indiana.edu/~dfried), for we learned most of our knowledge about programming language design from your little books.

Thank you, [David Christiansen](https://davidchristiansen.dk), for coauthoring ["The Little Typer"](https://mitpress.mit.edu/9780262536431/the-little-typer) with Dan, and writing up great tutorials ([1](https://davidchristiansen.dk/tutorials/nbe), [2](https://davidchristiansen.dk/tutorials/implementing-types-hs.pdf)) about dependent types.

## Contributions

To make a contribution,
[fork this project](https://github.com/cicada-lang/cicada/fork)
and create a pull request.

Please read the [STYLE-GUIDE.md](STYLE-GUIDE.md) before you change the code.

Remember to add yourself to [AUTHORS](AUTHORS).
Your line belongs to you, you can write a little
introduction to yourself but not too long.

## License

[GPLv3](LICENSE)
