# aesophia

This is the **sophia** compiler for the æternity system which compiles contracts written in **sophia** to [FATE](https://github.com/aeternity/protocol/blob/master/contracts/fate.md) instructions.

The compiler is currently being used three places

* [The command line compiler](https://github.com/aeternity/aesophia_cli)
* [The HTTP compiler](https://github.com/aeternity/aesophia_http)
* In [æternity node](https://github.com/aeternity/aeternity) tests

## Documentation

* [Introduction](https://docs.aeternity.com/developer-documentation/aesophia/docs/index)
* [Syntax](https://docs.aeternity.com/developer-documentation/aesophia/docs/sophia_syntax)
* [Features](https://docs.aeternity.com/developer-documentation/aesophia/docs/sophia_features)
* [Standard library](https://docs.aeternity.com/developer-documentation/aesophia/docs/sophia_stdlib)
* [Contract examples](https://docs.aeternity.com/developer-documentation/aesophia/docs/sophia_examples)
* [Contributing](https://docs.aeternity.com/developer-documentation/aesophia/contributing)

Additionally you can check out the [contracts section](https://github.com/aeternity/protocol/blob/master/contracts/contracts.md) of the æternity blockchain specification.

## Versioning

Versioning should follow the [semantic versioning](https://semver.org/spec/v2.0.0) guidelines. Id est, given a version number MAJOR.MINOR.PATCH, increment the:

* MAJOR version when you make incompatible API changes
* MINOR version when you add functionality in a backwards compatible manner
* PATCH version when you make backwards compatible bug fixes

## Interface Modules

The basic modules for interfacing the compiler:

* [aeso\_compiler: the Sophia compiler](https://docs.aeternity.com/developer-documentation/aesophia/docs/aeso_compiler)
* [aeso\_aci: the ACI interface](https://docs.aeternity.com/developer-documentation/aesophia/docs/aeso_aci)
