eXtensible eXperimenal Language version Zero (XXL/0) intended jokes
A self-hosting extensible language, VM/type system in Python3.
WARNING the code and language are HIGHLY fluid!
Please consider this a toy, not suitable for serious projects, until further notice!!!
-
Based on Douglas Crockford's TDOP JavaScript parser based on Vaughan Pratt's Top Down Operator Precedence Parsing (PDF) technique.
-
JavaScript-like syntax, Python3-like types, new statements, operators and classes can be added at runtime.
-
A sandbox for testing out ideas for "little languages"
-
The base language contains enough to write the compiler; (the compiler gives itself good coverage), plus a regression test suite.
-
Syntax -- core language syntax
-
Classes -- built in classes (machine generated HTML, delivered by external CDN)
-
Adding operators
-
Adding statements
-
Priorities -- a loose ordering of design priorities
-
Influences -- language influences
-
Python -- interfacing with Python code
-
Style -- language style guide
-
Virtual Machine -- the ASAP Virtual Machine
-
Contributing -- please read this before creating a bug report, or a pull request
-
Bootstrapping -- reminder on bootstrapping features
-
Prehistory -- early influences and pre-github history
- CPython 3.7.9 (FreeBSD) and 3.8.10 (Linux).
- PyPy3 7.3.1 (set
PYTHONIOENCODING
toutf8
to pass regression tests).
-
PL/1 was IBM's "One Language to Rule Them All" for System/360 (the one computer architecture anyone would ever need). PL/1 was meant to replace both FORTRAN for scientific code and COBOL for business applications; it was a large language which had no reserved words, and all numeric variables were declared with their precision.
XXL is intended to be the smallest possible core language, one that no one "needs" to use.
-
The first extensible language I heard of was Harvard's PPL Polymorphic Programming Language.
-
XXL is the U.S. clothing size two sizes larger than "large".