David Given writes about programming languages like Go and Ada, retro computing projects such as Cowgol and FluxEngine, and the WordGrinder terminal word processor.
HN commenters link his critical Go comparison, his Ada introduction, WordGrinder screenshots, and his video on programming a ZX81.
It looks like you fished the awk file out - I found http://cowlark.com/mercat/com.awk.txt linked directly on that page, which, at 1610 total lines (1518 SLOC counting commented-out code), sounds like exactly what you're referring to.
As for fforth.... your signoff at the end of the comments sums it up much better than anything I could say.
# No evil was harmed in the making of this file. Probably.
This thing is absolutely awesome... a self-modifying tri-language source file, implementing Forth in just 22KB (or 34KB on x64). Very nice.
Now to go read the, um,
panic: unrecognised word: help
...documentation? :P
It actually happens that I've recently become really interested in Forth implementations and systems, so discovering this is especially cool... and on that note, what sources would you recommend I study to get an overview of Forth history and development? I've read enough historical anecdotes to understand there are conflicting opinions (as always), but nothing thus far has shown the evolution of the language itself, how ANS became a thing, and so forth.
PS. clang-3.7 -Os is the winner on i386, gcc-5.3 -Os on x64. tcc-0.9.26, interestingly, comes second on both (26KB and 36KB respectively). (Using Slackware-current.)
PPS. Your site's About section might want to know the Antix website seems to have been taken over by a spam system.
Hello, author here.
Naturally I get my fifteen minutes of internet fame while I'm on holiday on the pilgrimage paths in Japan, so this is going to be pretty short, but yeah, there are some mistakes in the article (`cpx #0xff`... bah); please post comments and I'll fix them. Eventually.
There's also a followup article on doing exactly the same thing on the Z80: http://cowlark.com/2018-03-18-z80-arithmetic/
This was all in aid of writing the 6502 and Z80 backends for my self-hosted Ada-like programming language, Cowgol: http://cowlark.com/cowgol/ (Supports native compilation _on_ CP/M, Fuzix and BBC MOS, _for_ CP/M, Fuzix and BBC MOS!)
...and I put what I'd learned to work and have a program which will render Mandelbrots in under 13 seconds on a 2MHz 6502: http://cowlark.com/2018-05-26-bogomandel/ (Although I do need to point out that the key algorithm isn't mine!)
My grandfather, who's in his 80s and has been using WP for the longest, has switched to WordGrinder about 8 years or so ago. He co-wrote several books with WG as well. He likes it a lot but it'd definitely not as feature-complete as WP. He mentioned to me that he still starts up WordPerfect every now and then to do some task.
When I bought a computer for him, an iMac, he asked me about WP and I setup a DOSBox with it for him. But then I managed to compile Wordgrinder and showed him how to use it and he's been using it since. Wordgrinder used to be a pain in the neck to compile on a Mac but it's much easier now after 0.7.x version was released. I still update it for him when I visit him.
You can see what WordGrinder looks like here: https://cowlark.com/wordgrinder/
There's a lot of hearsay in that articles, and a lot of sentiment rooted in the particulars of that time.
Sure, it was a complex thing in the late 60s/early 70s. Sure, Wirth came up with something simpler. But I'm missing a deeper analysis, especially with a more modern view point where basically any language is at least as complex as Algol 68[0].
> Arguably Wirth’s Algol-W was a better successor to Algol-60
I might not even disagree, but what were the arguments, and how are they holding up?
> and arguably did not have the same connections to industry as the likes of Fortran and Cobol
Sure. But neither did Algol-W or Pascal. And pretty much anything else in the 20th century.
[0]: http://cowlark.com/2009-11-15-go/
> God what's the compilation time of millions of line of Haskell?
It wasn't compiled with GHC, but a proprietary compiler. It could typecheck the entire lot in a few minutes (in parallel) which was usually enough to detect breaking changes.
> There are plenty of industrial languages with algebraic data types and immutability.
A few do, yes, certainly not plenty. But defaults matter and immutability means more than just "const", e.g. persistent collections.
> Not as many as I would like with purity but I doubt it will take 30 years.
Given that big tech is delivering languages that are basically the same as Algol 60, I honestly think it will take at least 30 years.
http://cowlark.com/2009-11-15-go/
Thanks, this is serendipitous timing. I definitely plan to watch the YouTube playlist.
I'm designing a simple CPU at the moment[1] and one of the things that keeps me awake at night is thinking about how to make a compiler for it.
It only supports 64K words of RAM (and I'm not planning to implement bank switching), and I definitely want the compiler to be self-hosting on my CPU, so retargeting LLVM or similar won't be applicable.
I've looked at Small-C[2], Cowgol[3], and PL/0[4] which all target related goals, from different directions.
[1] https://github.com/jes/scamp-cpu
[2] https://en.wikipedia.org/wiki/Small-C
[3] http://cowlark.com/cowgol/
[4] https://en.wikipedia.org/wiki/PL/0