Skip to main content

Language with Refinement Types

Project description

Aeon 4

Aeon is a programming languages that features Liquid Types, developed at the University of Lisbon. Unlike LiquidHaskell or LiquidJava, Aeon was designed from the ground up to have support for Liquid Types.

Aeon is in development, so assume all your programs to break. This 4th version is implemented as a Python interpreter, giving you access to any code written in Python.

Installation

Requirements:

Usage

aeon can be executed directly from pypy using uvx:

uvx --from aeonlang aeon [file.ae]

Examples

Hello World

def main (args:Int) : Unit {
    print "Hello World"
}

The documentation is available at https://alcides.github.io/aeon.

Liquid Types

In this example, you can see the refined type {x:Int | x > 0} that represents all integers that are greater than 0. You can also see an example of Python FFI, where a python valid expression can be written as string and passed as the argument to the native function.

def sqrt : (i: {x:Int | x > 0} ) -> Float = native "__import__('math').sqrt";

def main (i:Int) : Unit {
    print (sqrt (-25)) # This is a type-checking error!
}

Authors

Aeon has been developed at LASIGE, University of Lisbon by:

Acknowledgements

This work was supported by Fundação para a Ciência e Tecnologia (FCT) through:

And by Lisboa2020, Compete2020 and FEDER through:

Publications

Let us know if your paper uses Aeon, to list it here.

Please cite as:

Fonseca, Alcides, Paulo Santos, and Sara Silva. "The usability argument for refinement typed genetic programming." International Conference on Parallel Problem Solving from Nature. Cham: Springer International Publishing, 2020.

Bibtex:

@inproceedings{fonseca2020usability,
  title={The usability argument for refinement typed genetic programming},
  author={Fonseca, Alcides and Santos, Paulo and Silva, Sara},
  booktitle={International Conference on Parallel Problem Solving from Nature},
  pages={18--32},
  year={2020},
  organization={Springer}
}

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

aeonlang-4.0.3b0.tar.gz (94.0 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

aeonlang-4.0.3b0-py3-none-any.whl (120.1 kB view details)

Uploaded Python 3

File details

Details for the file aeonlang-4.0.3b0.tar.gz.

File metadata

  • Download URL: aeonlang-4.0.3b0.tar.gz
  • Upload date:
  • Size: 94.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.10.8 {"installer":{"name":"uv","version":"0.10.8","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for aeonlang-4.0.3b0.tar.gz
Algorithm Hash digest
SHA256 c082847c51911b298046af1db6eb8580f4760d877270824624591e26f1f6b73e
MD5 de8e29e69372a8382eed189b2a804fcd
BLAKE2b-256 55a0b88ef232959ba7394b5cdf721ab08c3f1730f2a3396f2cddff8e7bd95176

See more details on using hashes here.

File details

Details for the file aeonlang-4.0.3b0-py3-none-any.whl.

File metadata

  • Download URL: aeonlang-4.0.3b0-py3-none-any.whl
  • Upload date:
  • Size: 120.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.10.8 {"installer":{"name":"uv","version":"0.10.8","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for aeonlang-4.0.3b0-py3-none-any.whl
Algorithm Hash digest
SHA256 e5336a7e302c6378996ae4c7f9593d7f53c679f90d2894cb9dc88d11140730bb
MD5 c317237b11b51a61a5de7e0bc90af3a1
BLAKE2b-256 3091bc895ae56525d0c8aeb9aeaa360d0f1b404634522f6d46f31ab13c90374c

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page