Skip to main content


This entry was edited (6 days ago)
in reply to Devine Lu Linvega

What I like about catlangs is that they naturally have the concept of resource use, without extra thinking unlike Rust for an example. Any word just consumes something from the stack exclusively and produces something new which goes into the stack (usually). In Rust you always have to have in mind which resource goes where, which can become easily too complicated.
in reply to nLupo :anarchist_flag: :antrans_flag:

@nlupo I was inspired to scratch down some thoughts on catlangs after reading this paper on linear memory safeties in Rust, you might enjoy it too.
hal.science/hal-04360462
in reply to Kirtai

I've been struggling which word to pick here, I think assumption is the correct word for bound variables within logic correlation. In the first draft I used variables but that didn't feel quite right.

I figured since you can assume that a variable IS present, it would be called an assumption. I might be wrong X)

This entry was edited (6 days ago)
in reply to Devine Lu Linvega

Hmm, I get the strong feeling there is an appropriate word but I can't quite bring it to mind either.
Maybe "inputs"?
in reply to Kirtai

@kirtai I'll use bindings when I mean variables that can be referenced, I rephrased it a bit. "Assumptions" all over the place feel clumsy as you pointed out.
in reply to Devine Lu Linvega

On thing for catlangs I find interesting, is also how much emphasis they put on the idea of "task in a context". I think this is why lexical variables can flop badly. They are a highly restrictive, low-reusability context. You often end up doing something like
>a >b >c ( bind c b a )<br><br>a c f ( call f which needs a and c)<br>b c g ( call g which needs b and c)<br>

It ends up C-but-worse. I think that style of OOP you do with uxn where you select an active target kinda reflect this idea of "task in a context".
in reply to Devine Lu Linvega

good writeup, I never thought of the relationship between linear logic and catlangs before you raised it up. Good food for thought!
in reply to Devine Lu Linvega

If you haven't read it already, you should definitely take a look at Henry Baker's 1994 paper "Linear Logic and Permutation Stacks—The Forth Shall Be First": plover.com/~mjd/misc/hbaker-ar…
This entry was edited (6 days ago)
in reply to Winnie Quinn

one of my fav papers 😀 I'll add thermo of GC for good measure for anyone reading the thread.
wiki.xxiivv.com/docs/baker_the…
This entry was edited (6 days ago)
in reply to Devine Lu Linvega

Can you delete existing Forth functions to save resources though, or do you have to reset the whole machine and just not load them next time?
in reply to DHeadshot's Alt

yeah, because forth uses blocks of fixed sizes, although it depends on the implementation and where the word is stored(dict, heap, block, etc..). If forth storage was spaghetti stacks or cons cells, it would need something like a garbage collector.
This entry was edited (6 days ago)
in reply to Devine Lu Linvega

Up until reading this post I've thought "Software is this wonderful material unlike any other, that can be created cheaply and distributed freely to others for immeasurable impact"

And I still do, but it has a very different and more wholesome meaning when bound to a finite and physical world, rather than one that is abstract and infinite.

Lo, thar be cookies on this site to keep track of your login. By clicking 'okay', you are CONSENTING to this.