Skip to content
  • Facebook
  • LinkedIn
  • Twitter
  • Instagram
Sincere Flattery

Sincere Flattery

  • Sincere Flattery
  • About
  • Contact
  • Blog

Search

Category: forth

The Forth Protocol

November 7, 2020 by jeremy pereira, posted in forth, refactoring

In which I accidentally discover a performance enhancement I'm really not a fan of the massive switch statement at the heart of the execution loop, so I have decided to see if I can do something with virtual functions or closures on a WordList. The execute function would be reduced to running a particular function … Continue reading The Forth Protocol

Tagged forth, optimisation, performanceLeave a comment

RE-Evaluating Forth

October 31, 2020 by jeremy pereira, posted in forth

In which I take another crack at the evaluation cherry Just a short post to note that I have finally cracked evaluate. After the refactoring exercise, I still had a number of issues mostly caused by the design decision to put the currently interpreting word in the word list at position 0 and to use … Continue reading RE-Evaluating Forth

Tagged evaluate, forthLeave a comment

Forth Refactored

October 24, 2020October 25, 2020 by jeremy pereira, posted in forth

In which my head exploded so I had to simplify things Because my Forth interpreter is effectively event driven i.e. the input parser parses and then calls the interpreter to interpret one word, it gets very complicated when an executing word needs to pull something off the input parser. It has to exit the interpreter … Continue reading Forth Refactored

Tagged forth, refactoringLeave a comment

Evaluating Forth

October 24, 2020October 24, 2020 by jeremy pereira, posted in forth

In which I evaluate some strings The evaluate word is next on the list of core tests. This allows a Forth program to evaluate a string as if it were another Forth program. The simplest way to implement this would seem to be to implement a stack of sequences of input characters. evaluate then simply … Continue reading Evaluating Forth

Tagged evaluate, forthLeave a comment

Defining Forth

September 14, 2020September 14, 2020 by jeremy pereira, posted in forth

In which I try to unify the defining expressions. There are a number of ways to add words to the dictionary. These include: :, create, constant, and variable. It seems to me that the "primitive" should really be to just add the word to the dictionary and then each of the above words can be … Continue reading Defining Forth

Tagged create, definition, forthLeave a comment

Forth does create

September 12, 2020 by jeremy pereira, posted in forth

In which we have to reimplement create and does>. Having implemented create and does> as described previously, there are two problems. Consider the following extract from my core tests: t(": DOES1 DOES> @ 1 + ;", expected: "") t(": DOES2 DOES> @ 2 + ;", expected: "") t("CREATE CR1", expected: "") t("CR1 here =", expected: … Continue reading Forth does create

Tagged create, does>, forthLeave a comment

Does Forth create

September 11, 2020September 11, 2020 by jeremy pereira, posted in forth

In which my head explodes. create and does> are what is currently causing the unit tests of my Forth interpreter to fail. So what do these things do? Well, if you read the Forth specification, it becomes obvious that the main thing they do is make a nice smoothy out of your brain. Fortunately, I … Continue reading Does Forth create

Tagged create, does>, forth1 Comment

Go Forth and Leave

July 18, 2020 by jeremy pereira, posted in forth

In which I prematurely exit loops The basic DO loop is done. Now we need to implement LEAVE. This is effectively a "go to the end of the loop". It seems simple enough but there is a problem in that LEAVE can occur - in fact, almost certainly will occur - inside other control structures, … Continue reading Go Forth and Leave

Tagged do, forth, leave, loopLeave a comment

Stacking Forth Returns

July 12, 2020 by jeremy pereira, posted in forth

In which I create a real return stack So far, the return stack has been a hybrid of the Swift stack for returning from code and a stack implemented within the code for temporary values and loop control. It's time to implement the whole stack in the code. I'm not sure if this will be … Continue reading Stacking Forth Returns

Tagged forth, stackLeave a comment

I Do Forth

July 8, 2020July 8, 2020 by jeremy pereira, posted in forth

In which I go loopy trying to implement do loops Do loops are control structures that require a bit more thought than the ones implemented s far. The main problem is the existence of a loop variable, or, in the case of nested do loops, multiple loop variables. We'll deal with that in a minute. … Continue reading I Do Forth

Tagged do, forth, loopLeave a comment

Posts navigation

Older posts

Categories

  • 6502 (3)
  • Armchair Universe (1)
  • C64 (1)
  • Code Snippets (2)
  • decoding (2)
  • Emulation (12)
  • Evolution (2)
  • forth (25)
  • machine learning (2)
  • Metal (3)
  • pandemic (2)
  • progress (3)
  • refactoring (5)
  • Simulation (3)
  • Spectrum (1)
  • Swift (2)
  • Uncategorized (1)
  • Z80 (7)
Blog at WordPress.com.
Sincere Flattery
Blog at WordPress.com.
Cancel