| ▲ | paulajohnson 7 hours ago | ||||||||||||||||
A formal specification language is a programming language that we don't know how to compile. If we can use AI to automatically implement a formal spec, then that formal specification language has just become a programming language. | |||||||||||||||||
| ▲ | MaxBarraclough 4 hours ago | parent | next [-] | ||||||||||||||||
> A formal specification language is a programming language that we don't know how to compile. Not really, on both counts. Firstly they're not really programming languages in the usual sense, in that they don't describe the sequence of instructions that the computer must follow. Functional programming languages are considered 'declarative', but they're still explicit about the computational work to be done. A formal spec doesn't do this, it just expresses the intended constraints on the correspondence between input and output (very roughly speaking). Secondly, regarding the we don't know how to compile it aspect: 'constraint programming' and SMT solvers essentially do this, although they're not a practical way to build most software. | |||||||||||||||||
| ▲ | auggierose 6 hours ago | parent | prev | next [-] | ||||||||||||||||
It is more general than that: A programming language is a formal specification language that we know how to compile. There are plenty of formal specifications that cannot be compiled, even not by an AI. If you use AI, how do you make sure that the AI compiler compiles correctly? | |||||||||||||||||
| |||||||||||||||||
| ▲ | pron an hour ago | parent | prev [-] | ||||||||||||||||
Except deciding whether an implementation exists or not is itself not a tractable problem in the general case. | |||||||||||||||||