Not in full generality, of course, because you can formulate an LLM as a program, so LLM behavior is a subset of program behavior. But we generally strive for writing programs such that we can reliably reason about their behavior. We don’t always succeed (it’s the topic of software engineering how we can succeed), but it’s close enough, and enabling that is what programming languages with precise semantics are designed for. With LLMs, on the other hand, there is no path to such reliable reasoning on their behavior.
reply