3 ms·
> focus [...] more on 'implementation' languages Yes! I've been playing with this recently. For context, long term, I'd like a pushout lattice of theories (ty
by mncharity 4y ago
> focus [...] more on 'implementation' languages
Yes! I've been playing with this recently. For context, long term, I'd like a pushout lattice of theories (types, operators, laws) to get math-like locality. But for a more near-term puzzle, what might highly expressive metaprogramming and collaborative compilation look like?
There are lots of papers on say "tweak some language to add a bit more control over memory layout"... but what if you want subsume all such, concisely. To permit much more gracefully moving around implementation design space. So you can flexibly and concisely express and mixin domain "asks" - this range of values, that variant of `mod`, this handling of alu flags, "try it exact, now bounded exact, now floatNN, now run UW's Herbie to optimize float expressions", with what radix and offsets and scaling, with what intermediates, with what bits landing where manged by whom, etc. Etc - that was merely numbers. With sort of Maude-like[1] "in this scope I want imported these operators and semantics", but more composably over a higher-dimensional design space.
Apropos a sibling comment, I'm currently at compile/collaboration-time "hashmap all the things", tied in with scoping. Eg, it's not just a literal "5" ast node, it's a rich set of collaboratively and lexically expressed and inferred constraints and preferences over implementations. (If anyone knows of a rich hashmap/assoc/dict combinator library, I'd appreciate hearing of it.)
[1] err, not a great sample but: https://maude.lcc.uma.es/maude321-manual-html/maude-manualch7.html#x53-1010007.5 https://maude.lcc.uma.es/maude321-manual-html/maude-manualch...