I don’t think you strictly need any of the stuff about editing code fragments to make this work.
A simpler design, to my mind, would be something like an ai enabled Erlang. Strip everything down to message parsing, if an implementation already exists for a message, use the code that’s already been written, else build it out on the fly.
Instead of editing the program to make a change, your agent would create a new message type and a specification, a downstream agent would then implement a consumer for this message. Instead of searching code fragments, your AI could search message specs.
This should be roughly immutable, but still support self building and editing.
Hi Bryce! I like this point a lot. I think however that there are several semantic features which are possible in my formulation, but not in yours. For example, it would be nice to have some safety features, such as certain kinds of memory safety, laid out, and then require that these features are preserved by any change to the language (so the agent must supply a proof thereof). I can imagine a number of safety criteria which I might want preserved in this fashion. Another, in a cryptographic context, might be “constant time” (more precisely: runtime is independent of secret inputs).
I don’t think you strictly need any of the stuff about editing code fragments to make this work.
A simpler design, to my mind, would be something like an ai enabled Erlang. Strip everything down to message parsing, if an implementation already exists for a message, use the code that’s already been written, else build it out on the fly.
Instead of editing the program to make a change, your agent would create a new message type and a specification, a downstream agent would then implement a consumer for this message. Instead of searching code fragments, your AI could search message specs.
This should be roughly immutable, but still support self building and editing.
Hi Bryce! I like this point a lot. I think however that there are several semantic features which are possible in my formulation, but not in yours. For example, it would be nice to have some safety features, such as certain kinds of memory safety, laid out, and then require that these features are preserved by any change to the language (so the agent must supply a proof thereof). I can imagine a number of safety criteria which I might want preserved in this fashion. Another, in a cryptographic context, might be “constant time” (more precisely: runtime is independent of secret inputs).