HARTWELL_LABS

πŸ“œ Externum

**Externum v3.0 'Sentient'** β€” a fully functional programming language of our own that fuses Python's readability, binary performance and Bash's

πŸ“œ Externum

πŸ§ͺ View animated test results β€” 120/120 β†’

Externum v3.0 "Sentient" β€” a fully functional programming language of our own that fuses Python's readability, binary performance and Bash's system control into one paradigm.

Externum = Python_readability βŠ• Binary_performance βŠ• Bash_control

One source file (.ext) compiles to three targets at once: Python, Bash and a binary representation β€” and the run mode executes the program directly. There is also a REPL, a module system and its own standard library written in Externum itself.

✨ What it can do

AreaSupport
Data typeslists, dicts, tuples, sets (including multi-line), f-strings, 0b/0x literals
Control flowif/elif/else, while, for ... in (multi-variable), break/continue, try/except/else/finally, with, assert
Functionsdefault parameters, *args/**kwargs, recursion, lambdas, closures, generators (yield)
OOPclasses, inheritance, methods, self
Modulesimport, own .ext modules, standard library
Expressionsfull operator precedence, bitwise & | ^ ~ << >>, ternary, comprehensions
Shellinline bash `cmd` and %% ... %% blocks
ToolingREPL, 3 compile targets, argv

πŸš€ Quick start

git clone https://github.com/BartoszOsiej/externum.git
cd Externum
pip install -e .            # Python 3.10+

externum --version          # Externum 3.0.0

# Run a program
externum run examples/pokedex.ext

# Interactive shell
externum repl

πŸ•ΉοΈ Try it live

The playground below executes Externum entirely in your browser β€” the transpiler (written in Python) runs through WebAssembly (Pyodide), with no server at all. Click β–Ά Run and watch the program execute:

πŸ“š Standard library (in Externum)

ModuleContents
structsStack, Queue, Counter
stringsreverse, is_palindrome, slugify, word_count, capitalize, truncate
mathxclamp, is_even, gcd, fib, factorial, sum_of_digits
fsread_file, write_file, append_file, file_exists, list_dir

πŸ—ΊοΈ Documentation

On this page