4 ms·
There is no existing compiler for all this programming language any more. Maybe someone will give it a try and create an interpreter.
by laurent123456 8y ago
There is no existing compiler for all this programming language any more. Maybe someone will give it a try and create an interpreter.
- jacobush 8y agoThere are plenty: https://en.wikipedia.org/wiki/Z-machine https://en.wikipedia.org/wiki/Z-machine
- jperry 8y agoZ-Machines aren't compilers, they're virtual machines that can execute the compiled output. There's no (known) compiler that still exists that can compile ZIL into Z-code. edit: except for zilf, as mentioned, but it's not functional for even zork 1.
- taradinoc 8y agoNot functional? Warnings aren't errors. Maybe it's just better at catching potential bugs...
- fsiefken 8y agojudging from the blog comment it seems that it's functional
- david-given 8y agoZILF works just fine. There's even a competition for games written in ZIL using it: https://www.facebook.com/groups/ZILcom/permalink/767016233740109/ https://www.facebook.com/groups/ZILcom/permalink/76701623374...
- fsiefken 8y agoyou mean interpreters, but this is about compilers of which there are only two: Zilch en ZILF.
- pm215 8y agoA commenter on Zarf's blog ( https://blog.zarfhome.com/2019/04/all-of-infocoms-game-source-code.html#comment-form https://blog.zarfhome.com/2019/04/all-of-infocoms-game-sourc... ) reports that ZILF is capable of at least building the Zork source to something that will start up, though given the warnings produced during compilation it's not going to work perfectly...
- laurent123456 8y agoLooking at the code, it seems doable to make sense of it, one instruction at a time. For example this: "Would you like to restart the game from the beginning, restore a saved game position, or end this session of the game?| (Type RESTART, RESTORE, or QUIT):| >"> <READ ,P-INBUF ,P-LEXV> <SET WRD <GET ,P-LEXV 1>> <COND (<EQUAL? .WRD ,W?RESTART> <RESTART> <TELL "Failed." CR>) (<EQUAL? .WRD ,W?RESTORE> <COND (<RESTORE> <TELL "Ok." CR>) (T <TELL "Failed." CR>)>) (<EQUAL? .WRD ,W?QUIT ,W?Q> <QUIT>)>>> - Read user input, and put result in WRD - Switch statement on WRD - Case RESTART: Write Failed and restart - Case RESTORE: Write Ok and continue - Case QUIT: Write Failed and exit
- m463 8y agoI looked at the zork code. Does it reference (missing?) external files, like ADVSAVE ?