xkcd.com is best viewed with Netscape Navigator 4.0 or below on a Pentium 3±1 emulated in Javascript on an Apple IIGS
at a screen resolution of 1024x1. Please enable your ad blockers, disable high-heat drying, and remove your device
from Airplane Mode and set it to Boat Mode. For security reasons, please leave caps lock on while browsing.
Also, the font chosen is all caps> Mozilla/4.0 [en] (AppleIIGS; U; P3±1-emu; 1024x1; BoatMode; CapsLk)
https://technicpack.fandom.com/wiki/Forth_language
I built a massive mining platform that repeated a series of about 200 movements to vacuum up blocks, and used that computer block to orchestrate it.
Must admit that I got a bit scared of programming until I tried again in university.
https://github.com/SimHacker/moollm/tree/main/skills/return-...
See Self's "dynamic deoptimization", where it constructs a virtual return stack on demand that you would have had, were it not for the JIT compiler's agressive inlining.
Debugging Optimized Code with Dynamic Deoptimization, by Urs Hölzle, Craig Chambers, and David Ungar:
https://bibliography.selflanguage.org/_static/dynamic-deopti...
And a return-stack rotated 180 degrees around in time is an action-queue:
https://github.com/SimHacker/moollm/tree/main/skills/action-...
From games like The Sims:
https://sims.fandom.com/wiki/Action_queue
Also the ever popular advertisement skill, more like comefrom than goto:
https://github.com/SimHacker/moollm/tree/main/skills/adverti...
Also from The Sims:
https://simstek.fandom.com/wiki/SimAntics
The Sims, Pie Menus, Edith Editing, and SimAntics Visual Programming Demo:
they do some releases, they have a somewhat big project of rewriting vm in zig.
{honk} ps love if.
You never heard a lot of honks, come to think of it.
I am glad that this forum that has mostly been colonized by the ‘normies’ still manages to keep these two languages in the conversation, capturing curious passersby with their exotic allure. In every post you see new prey with the comments like ‘I keep reading about Lisp and I still don’t get why it’s popular. All I see is parentheses. Can anybody explain?’
I fear the day HN closes is the day those languages will die.
USENET, Slashdot, Reddit, HN, Lambda the ultimate,....
There will surely be a spot left for the refugees.
The biggest issue is when natural language programming would make all these paradigms irrelevant, a curiosity for computing history museums.
It's nice.
As for me I'll almost blindly vote up anything that references FORTH because I love implementing it. I don't use it. Few people do these days, but writing toy implementations is satisfying, for sure.
(I do use Lisp, and within the past month posted my own lisp compiler here. A few votes and a brief bit of commentary which is about all it deserved. But I like seeing other people's approaches and I suspect that's why it got the minimal attention it did.)
But it's different. Certainly not for everyone (imho that makes it even more interesting). So yeah, shouldn't hurt the HN audience to pop by now & then.
We should do more with FORTH.
IT DOES NOT NEED TO BR ALL IN ONE LINE
Most commercial forth source code is totally readable and maintainable:
comments, newlines, macros, high level commands etc
It's a total myth that its 'write only'. The same nonsense is spreaded by some nerds who actaully never wrote a single program in it.
ps. same goes to COBOL. 99% of fud by guys who never even wrote a simple program in it.
code stack
I Forth love
Forth love I
love I
Forth
; love presumably pops
; subject, object args
; from stack - and does something
; perhaps prints as side effecthttps://donhopkins.com/home/code/tomt-cam-forth-scr.txt
https://donhopkins.com/home/code/tomt-users-forth-scr.txt
( FMOVE -- functional intersegment move ) HEX
88 CONSTANT *MOV* ( fn = 0 ) 20 CONSTANT *AND* ( fn = 1 )
08 CONSTANT *OR* ( fn = 2 ) 30 CONSTANT *XOR* ( fn = 3 )
CODE FMOVE ( fn s.seg s.off d.seg d.off length --) AX, SI MOV
CX POP DI POP ES POP SI POP DS POP DX POP AX PUSH
AL, # *XOR* MOV DX, # 3 CMP 1$ JE
AL, # *OR* MOV DX, # 2 CMP 1$ JE
AL, # *AND* MOV DX, # 1 CMP 1$ JE
AL, # *MOV* MOV 1$:
CS: HERE 5 + , AL MOV ( modify "[DI], AL MOV" ) 2$:
LODS ES: [DI], AL MOV DI INC 2$ LOOP
AX, CS MOV ES, AX MOV DS, AX MOV SI POP NEXT, END-CODE
--> Forth
I3 4 +
for example, would return 7.
more pedantically, it would push 7 onto the stack
That is, you provide the data first (I and Forth) and the command (heart) last.
But then he would also say: Forth is the path to the Light Side…