I have often wondered if it would be possible to write a programming language that would work as a conversation. I would tell the computer that I want to store coordinates and it would ask what representation I would use. I would then ask to find the shortest path between points and it would ask if I want to use Djkstra's, brute force or use Floyd's? What research has been done towards producing a system like this?
|
|
I think such a language would need an artificial intelligence in place, or at least a system that can learn. The problem is that humans don't know what they want. Also, even writing in classical imperative language we still make logical errors. Imagine trying telling a non-intelligent software what he has to do. |
|||||||||||||
|
|
What you're describing sounds less like programming and more like using an application. Some problems you'd have to address in such a system:
|
|||
|
|
|
Prolog comes close except for two things:
But it does have the behavior to store facts and have rules to verify them or generate a result with it. |
|||
|
|
|
Well, it's possible to write a program as a Shakespearean dialog. The sky's the limit. |
|||
|
|
|
Intellisense/CodeAssist feature in modern IDEs come to mind as the closest thing in current software practice to your requirements... whereby you discover the capabilities of the system as you type in code. It allows you to navigate the feature-space of the development platform in real time. Its not exactly the same as you describe but comes pleasantly close enough. |
|||
|
|
|
The best conversational programming tool would be a SHRDLU-like program that manipulates code (including itself) instead of imaginary blocks, as described here. |
|||
|
|