I think the final piece of the array puzzle finally fell into place. The issue resolved when I last wrote about arrays — whether all data Models have array capability versus arrays being a distinct data model — still stands.
The final piece involves a slight syntax change and — much more importantly — the full rationale for the array syntax. Not really having one was a bother; it made arrays seem arbitrary and patched on. The rationale brings them more fully into the BOOL fold.
Picking up from the previous post, I want to get into the Python binding for Actions in more detail. I’ve got several examples to help demonstrate various aspects of what the parts of the Action object mean. The design appears solid enough to make it official and move on to the next stage.
Speaking of which: huge milestone in the last few days! The bottom line is that, for the first time, I can generate BOOL objects from a higher-level language. Essentially, I wrote a kind of “macro-assembler” that reads a fairly simplistic language and emits (Python) BOOL objects. It’s a major step in bootstrapping the run-time environment objects necessary as well as providing examples for working on the run-time engine!
It rates its own article soon. For now, Actions ala Python:
This is a highly esoteric blog — really just a personal pet project — but I see that I have gathered some followers. That’s okay, there’s plenty of good seating, but I’m really curious why you’re here! I’m guessing it’s not that you have an interest in a weird programming language I’ve dabbled with for decades. (If I’m wrong about that, speak up; I’d love to hear from you.)
I’m going to stick this post up top. Perhaps I can encourage you to treat it as a “Guestbook” and leave a comment to sign in and say, “Howdy!” Common courtesy, really (although I realize the interweb tries to operate by different standards). Maybe later, I’ll create a Guestbook page — that’s kind of a neat idea, actually — and edit this to point you there. (Or maybe I should do that on a blog that expects visitors.)
Honestly, this is just an excuse to try the “sticky post” thing. 😀
BOOL has an
#inline option for Action definitions that allows (but does not require) treating an Action as if it was inserted into the code flow. There is also the idea of native Actions, defined as such by the standard, which are also allowed to be inline.
But a design goal is the ability to implement basic language constructs (such as
if statements and
while loops) in the language itself.
So here are some of those native Actions: