Timely as ever, I have released an MS-DOS shareware game in 2025: https://mhomer.itch.io/cromavor
A turn-based quick territorial acquisition game, it runs under DOSBox and it should also be playable in-browser at https://mwh.nz/dos/cromavor
| Website | https://michael.homer.nz/ |
| GitHub | https://github.com/mwh |
Timely as ever, I have released an MS-DOS shareware game in 2025: https://mhomer.itch.io/cromavor
A turn-based quick territorial acquisition game, it runs under DOSBox and it should also be playable in-browser at https://mwh.nz/dos/cromavor
Self-hosted software language systems need to bootstrap core components such as data structure libraries, parsers, type checkers, or even compilers. Bytecode interpreters can load byte code files, while image-based systems can load in images of entire systems — Emacs, for example, does both. Bootstrapping is more of a problem, however, for traditional AST-based systems, especially when they must be portable across multiple host systems and languages. In this short paper, we demonstrate how abstract syntax trees can quickly and easily be incorporated into the source code of an embedded interpreter. Our key insight is that a carefully engineered format enables textually identical ASTs to be valid across a wide spectrum of contemporary programming languages. This means languages can be self-hosted with very little bootstrapping infrastructure: only the host interpreter or compiler and a minimal default library, while the rest of the system is imported as ASTs. This paper outlines our technique, and analyses the engineering design tradeoffs required to make it work in practice. We validate our design by describing our experience supporting the on-going development of GraceKit, which shares a single Grace parser across host language implementations from Java and JavaScript to Haskell and Swift and to Grace itself, and even more eccentric languages like Excel.
Not sure how to go about it? Questions about how to present what you’ve done, whether it’s in scope, or how to tie in with existing work? We are hosting drop-in LIVE office hours this week
- Thursday, June 19, 2025, 0100 – 0300 UTC
- Thursday, June 19, 2025, 1800 – 2000 UTC
Details at https://liveprog.org/#resources
Not sure how to go about it? Questions about how to present what you’ve done, whether it’s in scope, or how to tie in with existing work? We are hosting drop-in LIVE office hours this week
- Thursday, June 19, 2025, 0100 – 0300 UTC
- Thursday, June 19, 2025, 1800 – 2000 UTC
Details at https://liveprog.org/#resources
Are you working to make programming more direct, tangible, and alive?
Share your work at LIVE, the world's premier gathering on live
programming!
LIVE welcomes submissions from academia, industry, and individuals. Call for submissions and more details on https://liveprog.org/ - submissions due by July 21st.
We (@qualmist and I) invite you to explore our experimental visual programming environment (which takes place in a dungeon)
Features
- dissolve the bounds of decision and explore all possibilities at once
- use sigillic incantations, delve into recursive caverns
There's a new FoC bonus episode where I talk a lot about visual programming. A lot a lot. Jimmy is there too; but the important thing is visual programming, lots.
Oh yeah, a (good) paper by @mwh makes an appearance ^.^
dig dig
Programming languages have been trapped in a world of linear textual representations fundamentally unchanged for half a century. Even systems pushing beyond these forms — visual languages, projectional language workbenches, and end-user programming tools — largely ape the strictures of stream-of-bytes compilers and confine themselves to the popular paradigms of conventional textual systems. Instead of recreating what succeeded in textual paradigms, new programming systems should also be exploring what did not—the confounding, confusing, convoluted approaches that fell by the wayside—with the sorts of direct manipula tion, spatial connection, and change over time that textual languages could never match; and they should use their control of presentation to let the user choose the right representation for a piece of code in the moment—and change it. We argue that these two points unlock new frontiers for programming systems, and present preliminary explorations to highlight how multiple-representation environments can lower the pressure on more speculative visual paradigms, to encourage more investigation of this underexamined space.