Is there any evidence of this? The standard guide to ZIL (written as an in-house document at Infocom for new programmers [1]) presents it very much as if people would be writing it directly. It's also not that low level, only slightly more low level than Inform 6.
[1] https://archive.org/details/Learning_ZIL_Steven_Eric_Meretzk...
Sometimes during game development they'd make use of MDL macros that were not available in ZIL, and they'd then have to either macroexpand manually, or hard-code those macros as language features into their ZIL compiler (because ZIL is not quite a Lisp and does not have support for custom macros).
Again, this is the understanding I've pieced together in my head from various sources. I don't have the full picture! Maybe I should try to get in touch with the people who were there to ask them...
ZILCH (Infocom's compiler) provided all the functions of MDL, _plus_ a bunch of new ones that manipulated data structures which were then used to generate assembly code for the Z-machine.
One of those new functions, ROUTINE, accepted code written in a domain-specific language resembling a stripped-down MDL, which was then translated into Z-machine instructions. But that domain-specific language isn't synonymous with ZIL: other functions that were inarguably part of ZIL, like OBJECT and SYNTAX, are not part of that domain-specific language.
IMO, the only reasonable definition of ZIL is "the language accepted by a ZIL compiler", which (depending on whether you look at ZILCH or ZILF) is either a superset of MDL or an overlapping set.
Dialog is a domain-specific language for creating works of interactive fiction. It is heavily inspired by Inform 7 (Graham Nelson et al. 2006) and Prolog (Alain Colmerauer et al. 1972).
An optimizing compiler, dialogc, translates high-level Dialog code into Z-code, a platform-independent runtime format originally created by Infocom in 1979.
Development seems dormant at the moment, but it feels more like Inform 7 'done right' to me. If my brain was a little bigger and calmer I'd be all over it. It has excellent documentation too. Very portable -- I compiled it locally under Termux on my phone with nothing but Clang.I didn't know about Dialog when I wrote this article (learned of it just yesterday!) but unless life gets in the way I will explore it in a future article.
https://www.linusakesson.net/dialog/craverly/craverly_side_b...
I understand the appeal of Dialog -- Inform 7 can be really awkward for traditional programming constructs -- but I think I'd rather write ZIL if I'm going back to the usual control structures and OOP-style messaging.
[1]: https://davidyat.es/2024/12/23/aoc-2024-part2/#day-6-python-...
(used at Sandia for inertial confinement fusion)
[1] https://youtu.be/lix-vr_AF38?t=3m12s
[2] https://lod.org
meindnoch•2mo ago
ricksunny•2mo ago
https://en.wikipedia.org/wiki/Sandia_Base
https://en.wikipedia.org/wiki/Z-Division