I heard a lot about NIM, V-LANG, ZIG, GO, RUST and other "small, simple and portable - as C" languages, which seems perfect fit for port to some old and resource starved systems.
Most of those languages leverage some GCC or LLVM/Clang heavily - which is "cheating", as they can't provide small, portable, standalone compiler for 32-BIT DOS systems.
Which modern language have some native 16/32bit MS-DOS compiler that can under MS-DOS environment with 2MB of RAM?
Except FreePascal and DJGPP.
An actual MS-DOS running in protected mode would be an interesting thing. Win95/98 might qualify(I don't know enough details, but it did identify as DOS versions 7/8, and they dropped support for pre-386 CPUs).
1. Oberon. It certainly qualifies as a modern language, it was designed for doing systems work, there is an MS-DOS compiler from ETHZ, and the language is single pass and designed by one of the masters to be easily and quickly compiled.
2. Forth. Something like Pygmy Forth can be a great development environment for constrained systems.
I'm unable to find Oberon or Oberon 2 MS-DOS compiler binaries anywhere.
Can you help me locate such compiler? Free Oberon project looks like DOS, but it's Windows version in reality.
Forth is very expressive. You just need to know how to use it. Like Lisp, you build the language you need in it, and then write that.
C is completely unlike the original Modula-2, and even less so when compared with the extended standard from the late 80's.
As for an actual definition, Zig is one of those that come to mind.
Then, you can use any fully modern language you can find a cross compiler toolchain for. C++ is the most widely supported, so offers the most choices.
You see my point is that I'm deep into retro-computing thing.
I would like to learn some new, fresh language instead C, C++, BASIC or PASCAL, but on my real old hardware - so I could test various stuff and FELL the "speed" of my 25Mhz CPU :)
But what is more fun than artifical retro is programming microcontrollers. A project that needs a hundred or a thousand microcontrollers puts an upper bound on their cost and complexity, and so real, practical limits on their individual absolute capacity. At the end you get something you built yourself that you probably couldn't buy at any price.
You can program microcontrollers in C++20, and use all the most powerful features of the language, which mostly happen at compile time on your host/development machine, downloading the resulting binary into your microcontrollers. You can debug on your host with gdb, talking bit-serial to a tiny gdb stub you have included in the code running on your microcontroller.
If you want to use a newer language, Rust or Zig are probably not much harder to get generating code for microcontrollers.
So what you are saying is that some oldish version of DLANG compiler can actually run on MSDOS as it does have Zortech C++ compiler from 1993 as backend?
This is still "cheating" - but VERY promising! Thank you sir.
Any chance for link to actual MSDOS compiler in such old version?
2MB RAM is a lot. Most of my devices are about 16K RAM, some much less. Lua, picoc, micropython and ulisp are common, but there are also much better modern, safer languages.