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:
- the LASIGE Research Unit (ref. UID/00408/2025)
- the FCT Exploratory project RAP (EXPL/CCI-COM/1306/2021)
- the FCT Advanced Computing projects (CPCA/A1/395424/2021, CPCA/A1/5613/2020, CPCA/A2/6009/2020)
And by Lisboa2020, Compete2020 and FEDER through:
- the CMU|Portugal CAMELOT project (LISBOA-01-0247-FEDER-045915)
Publications
- Comparing the expressive power of Strongly-Typed and Grammar-Guided Genetic Programming at GECCO'23
- The Usability Argument for Refinement Typed Genetic Programming at PPSN'20
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
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file aeonlang-4.0.4b0.tar.gz.
File metadata
- Download URL: aeonlang-4.0.4b0.tar.gz
- Upload date:
- Size: 99.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.11.1 {"installer":{"name":"uv","version":"0.11.1","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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
85ab417a68fd762bc6361b7cfcca300a2ed237f90afcfdb6d32302877e5793c2
|
|
| MD5 |
be7295320f9c3c9b3be800570ce08132
|
|
| BLAKE2b-256 |
e209975e56d97c2bb0af784f67a9aa985cc2bf954937e70c3e3464807f0a48c5
|
File details
Details for the file aeonlang-4.0.4b0-py3-none-any.whl.
File metadata
- Download URL: aeonlang-4.0.4b0-py3-none-any.whl
- Upload date:
- Size: 126.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.11.1 {"installer":{"name":"uv","version":"0.11.1","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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e4c371d820231256c506d2e5818cfa1d90fc8a79654154c7309005dfe1878c92
|
|
| MD5 |
d85a998a35823a4804629204c09f9c68
|
|
| BLAKE2b-256 |
74a9e2675111aec200fbb2bd378c8d5899418ff5529a656f4d3c8135241dd83c
|