Aspidites is the reference implementation of the Woma Language
Project description
Aspidites
Aspidites is the reference implementation of the Woma programming language compiler.
Core Dependencies
Aspidites has 7 core dependencies. In general, dependencies are vendored unless they contain Python Extensions.
- Cython
- Pyrsistent
- PyParsing
- MyPy
- PyTest
- NumPy
- future
Paradigms
refinement-type system
pragmatic
declarative
functional
constrained logic
Inspirations
Goals
- Ultra-smooth runtime exception handling with useful warnings.
- Demonic non-determinism, favors non-termination and type-negotiation (constraint satisfaction).
- Terseness that mixes keywords and symbolic operations in order to make code both concise and readable.
- Great for writing high-integrity code that works natively with CPython.
- Usable for general purpose or scientific computing.
Syntax
Working? | Symbol | Verbage | Example |
---|---|---|---|
✅ | -> |
respects | identifier -> constraining clauses |
✅ | <- |
imposes | identifier <- imposed clauses |
❌ | <@> |
loops | identifier <@> iterable container indent ... |
✅ | <*> |
return | <*> statement |
✅ | # |
pragma | # compiler directive |
Examples
(Greeter(name -> str)) procedure
<*>print('Greetings,', name)
Contributing
If you'd like to help with the Aspidites project as a developer check out the Issues page or fork and make a pull request. Now, for early woma adopters that do not wish to write any Python, reporting issues is always appreciated. If you'd like to help out financially, Aspidites' maintainer accepts Liberapay.
Copying
Information for Developers
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
Aspidites-0.4.5.tar.gz
(173.5 kB
view hashes)
Built Distribution
Aspidites-0.4.5-py3-none-any.whl
(218.3 kB
view hashes)
Close
Hashes for Aspidites-0.4.5-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 3671708bfd0f486b86bf707e2aa54a93f285a636e5cffe88d74eee1f9d287da4 |
|
MD5 | c67c96c1809fa48dd283edb27e260f45 |
|
BLAKE2b-256 | d3b6f70ca446efc4c128e487bc3b5bd2c6e08e988d098d89c0111a8e2bf43cf0 |