Concatenative topics
Concatenative meta
Other languages
Meta
Many catlangs employ a system of arity checking. Under arity checking, each function declares how many items it will produce and consume. Then, this annotation is checked against the body of the function. If the input height and output height fail to match, the arity checker rejects the program.
In languages such as Factor, this allows it to generate efficient machine code despite being dynamically typed.
Existing catlangs occupy various typing disciplines. The first group is dynamically typed languages. Some notable members include Joy, Factor, and Uiua. These languages utilize runtime type checking, halting execution when a type error occurs.
Additionally, there are many typeless catlangs, such as Tal and the Forth family. For these languages, everything is bytes or cells on a stack. These languages are generally low-level programming languages.
Finally, there are statically typed catlangs. These languages provide an additional layer of correctness by requiring the programmer to specify the types of their program. Some languages, such as Kitten and Mirth, employ types to annotate permissions (Kitten) and manage linear resources (Mirth).
From here, you can create a table classifying the catlangs mentioned here:
Untyped | Dynamic Typing | Static Static Typing | |
Arity-checked | Tal (with uxnbal) | Factor, Uiua | Kitten, Cat, Mirth |
Arity-unchecked | Forth, Tal | Joy | N/A |
This revision created on Wed, 8 May 2024 04:48:09 by CapitalEx