...so at this point, anybody who also reads stardot is now rolling their eyes, because I've been boring people stiff about this there. But, hey, I feel I'm entitled to at least a few minutes smugness, and it may be of interest here.
I've just released Cowgol, a fully compiled, almost self-hosted strongly typed Ada-inspired modern programming language for the 6502.
http://cowlark.com/cowgolhttps://github.com/davidgiven/cowgolIt's not quite self-hosting (yet) due to not quite having enough RAM but I'm sure could be made so. The generated code quality is pretty naff but it works. It's a multipass compiler with eight separate executables and it makes heavy use of disk storage, making it very very slow to compile --- eight minutes for a 'Hello world'! But it works. Mostly I cross compile from Linux.
It's targeting a BBC Micro with Tube, because that's the machine I'm used to and because it provides about 61kB of RAM plus disk operating system with file streams. It should be fairly easily portable to other platforms. I'm sure there's a C64 DOS which uses mapping tricks to get enough memory, somewhere? I've never worked with a C64; anyone who wants to help, please get in touch...
The language itself is rather boring but has a number of features I really like: multiple return parameters, nested subroutines, and strict typing. It turns out to be surprisingly comfortable to, e.g., write compilers in, which is a good thing, really. It forbids recursion to allow static placement of variables, and it walks the call graph to figure out which variables can safely share storage. This works really well, and even the biggest programs can, e.g., fit every pointer variable into less than half of zero page.
Here's some sample code:
https://github.com/davidgiven/cowgol/bl ... shower.cow...I've been thinking about this since I was 8, so even in its incomplete, buggy state, I'm kinda pleased to actually achieve this!