Entish
Jump to navigation
Jump to search
Paradigm(s) | imperative |
---|---|
Designed by | User:Void |
Appeared in | 2019 |
Memory system | stack-based |
Dimensions | tree-based |
Computational class | Turing complete |
Major implementations | Original |
Influenced by | KeyKOS, Ethereum Virtual Machine, E, Stackless Python |
File extension(s) | .et |
Entish is a resource aware recursively sandboxable language built on RarVM. The language aims to allow for:
- fine grained control of process-internal resources (cpu time/cycles, memory usage)
- control of access to process-external resources (filesystem, networking)
- doing the above recursively, to securely sandbox libraries from each other
- the platform-independent suspension, serialization, de-serialization and resumption of process state ("jumping processes")
Language overview
General properties
Entish is single-threaded (control only resides at one place at a time) and deterministic (a copy of the program state with the same input will always create the same results, down to the bit). Functions can recursively sandbox other functions and predetermine the resources that can be used.
Implementations
The language was implemented in Python/RPython.
Computational class
Entish is Turing-complete, meaning that it is in the same computational class as universal Turing machines.
Next steps
Get the language syntactically and semantically closer to Python, so that most programs can easily be translated into this paradigm.