LLMs could be, but shouldn't be compilers
17 points by alpaylan
17 points by alpaylan
This gets to my core point. What changes with LLMs isn’t primarily nondeterminism, unpredictability, or hallucination. It’s that the programming interface is functionally underspecified by default. Natural language leaves gaps; many distinct programs can satisfy the same prompt. The LLM must fill those gaps.
Isn’t the nondeterminism the crux of the issue though? I expect a compiler to be deterministic and that’s why I can trust its output without validating it.
I think nondeterminism is basically a red herring (bsky thread). OP gets this very right when when they talk about control and how we know things are correct. The way I would put it is: what people are really talking about when they bring up nondeterminism is control and understanding. There are systems you can control but don't understand, can understand but don't fully control, as well as both and neither. You can describe probabilistic and deterministic systems that fit into all 4 categories.
Systems don't have to be deterministic to be controllable and understandable, we just have to be able to describe the nondeterminism in a useful and practically accurate way. And similarly, deterministic systems can be so complex that they are totally beyond our understanding in everyday use. This just shows determinism is mostly orthogonal to what really matters. Being deterministic might make systems easier to control and to understand, but it's neither necessary nor sufficient.
A pattern I've been using with agent instructions is to specify what to do unspecified situations. An agent is currently either autonomous or user-interactive. If it's user-interactive I want to be asked. If it's autonomous I want it to make a judgement call and log that for specific review along with the completed work.