3 ms·
My first programming languages were x86 assembly and Forth. My Dad was into Forth, and I learned programming from him. I wrote several x86 Forth systems for DOS
by benhoyt 3y ago
My first programming languages were x86 assembly and Forth. My Dad was into Forth, and I learned programming from him. I wrote several x86 Forth systems for DOS as a teenager, culminating in a somewhat-polished ANS compatible one I called "Third": https://github.com/benhoyt/third https://github.com/benhoyt/third -- it's kind of amazing being able to have a fully bootstrapped Forth compiler (including an assembler) in a couple thousand lines of code.
Just the other day I transcribed an old article I had co-written for the Forth Dimensions magazine. I still like the ideas in Forth, but the stack manipulation quickly gets tedious and is very hard to read. Just look at the code examples in https://benhoyt.com/writings/forth-lookup-tables/ https://benhoyt.com/writings/forth-lookup-tables/ -- especially Search-Table. Yikes! Yes, naming things is hard, but apparently not naming them is even harder.
- 5- 3y ago> but the stack manipulation quickly gets tedious it might just be that you (and i) are not chuck moore. his code generally has very little stack shuffling. e.g. http://www.merlintec.com/download/color.html http://www.merlintec.com/download/color.html
- throwaway7868 3y ago> a somewhat-polished ANS compatible one I called "Third" Or should Forth++ == Sixth
- anta40 3y agoI just take a look at third's source code. Looks interesting. When bootstrapping, kernel.com is called. OK, how did you build kernel.com?
- benhoyt 3y agoI'm pretty sure I wrote the first version of kernel.com in assembler. Update: actually, more likely it was built using the meta compiler running on top of one of my previous Forths (I wrote a few). It's been too long to remember exact details, and I didn't use revision control back then. :-)
- anta40 3y agoOK got it :)