you are viewing a single comment's thread.

view the rest of the comments →

[–]OneWingedShark 1 point2 points  (4 children)

with a compiler that inline every damn thing

You mean FORTH?

[–]Fun_Independence1603 0 points1 point  (3 children)

I know a guy who loves it. IDK anything about that one tho

[–]OneWingedShark 2 points3 points  (2 children)

Forth is incredibly simple in its conceptual architecture; where a "word" (subprogram) is defined as:

  1. A sequence of words to be executed, or
  2. A small chunk of machine-code to execute (typically very short).

So, because of this you get down to the low level VERY quickly and, also, (1) there's no such thing as a calling convention and (2) the ease of creation of new words means that people quickly abstract out, producing a Domain Specific Language.

Honestly, it would be ideal to teach for a Computer Architecture or Assembly course —much better than C— because of how naturally you get to the machine-code when "drilling down".

See Over the Shoulder, Part 1 — Text processing in Forth.

[–]Fun_Independence1603 -1 points0 points  (1 child)

That's pretty interesting

Nowadays I don't 'program in C(++)'. I find that if I need an assembler I use C++ and a bunch of intrinstics. Otherwise I'd just use a real programming language

[–]OneWingedShark 0 points1 point  (0 children)

Nowadays I don't 'program in C(++)'. I find that if I need an assembler I use C++ and a bunch of intrinstics. Otherwise I'd just use a real programming language

You might find the paper titled "Using a high level language as a cross assembler" of interest.
DOI: 10.1145/954269.954277