3 ms·
I've been working on something centered around extensibility, or metaprogramming, coming from a strictly imperative angle, with the belief that anything else (f
by dkjaudyeqooe 3y ago
I've been working on something centered around extensibility, or metaprogramming, coming from a strictly imperative angle, with the belief that anything else (functional, relational/logic based, whatever) can be built on top of that.
A few guiding principles are:
- simplicity above all, with as few fundamental elements as possible
- the parser is a separate issue, just write your own syntax to avoid the most divisive bikeshed element of PL design, or pick the C like or ALGOL like one out of the box. You very likely want your own syntax anyway as you write extensions.
- every language element, from modules down to function calls, are first class, ie have an (implementing) type, can be stored in variables and used in expressions, be introspected and evaluated/deployed.
- runs at compile time, compiles at run time (code generation/partial evaluation/dynamic code)
- generates C, Java, Python and various bytecodes to maximise interoperability, code availability and deployability
- has no standard runtime or standard library of its own, is entirely parasitic on other environments
Even if it ends up being completely useless, it's a really interesting exercise in design.
- TOGoS 3y agoThat's interesting, because I've been 'working on' something with all those same bullet-points. I'd be interested to hear more about your take on this! Some notes on my lack of progress: http://www.nuke24.net/plog/43.html http://www.nuke24.net/plog/43.html