← Back to context

Comment by zozbot234

3 months ago

> Capabilities ... They're not really compatible with C's flat memory model ... Capabilities mean having multiple types of memory

C is not really dependent on a flat memory model - instead, it models memory allocations as separate "objects" (quite reniniscent of "object orientation in hardware" which is yet another name for capabilities), and a pointer to "object" A cannot be offset to point into some distinct "object" B.

> A Truly Relational Language

This is broadly speaking how PROLOG and other logic-programming languages work. The foundational operation in such languages is a knowledge-base query, and "relations" are the unifying concept as opposed to functions with predefined inputs and outputs.