我最近遇到了一种名为Rpoku的东西,它是一种口语计算机语言。我还发现了一些名为Voice Code的研究,它采用了不同的方法。有demo video here ..
这看起来很有前景,还是只是一个玩具?有没有可能在某天创建应用程序而无需键入键盘?
答案 0 :(得分:1)
我一直在考虑这个问题;而且我认为这需要一种范式转换(更不用说在星际迷航的规模上人工智能的进步),以允许程序员在写作时像口头一样高效。
例如,在这个简单的代码示例中,我实际上说的比我输入的要多得多:
List<Employee> ListOfEmployees = new List<Employee>();
foreach (Employee emp in ListOfEmployees) {
Console.WriteLine(emp.Name);
}
在该代码块中,我说的是以下内容:
创建员工的通用列表 对象,初始化员工对象 到它的默认值。在那之后,我想 遍历员工对象 一次一个,写下每一个 命名为控制台。
(为了简单起见,我故意省略了为员工分配名称的代码。)
我输入代码要比说出我想做的更快,即使不是,也必须为计算机定义术语,将我的单词翻译成实际的代码。更不用说这是一种非常高级的语言 - 想象一下如果说出Perl(或C)会是什么样子?
答案 1 :(得分:1)
我认为,这是一个可怕的想法。要使口语变得有意义并且更容易,它实际上必须有点自由形式。最后,它所导致的是试图弄清楚“编译器”在语法上可以接受的实际做我想要的东西,并且它将像今天的语言一样“技术”,除了更多的一只披着羊皮的狼。
如果我想让自己自杀,也许我会试一试:D
答案 2 :(得分:0)
可能不是。或者至少还没有。下一步将是识字编程和DSL。
可能是,但也许不是。我们不想仅仅为了让利益相关者真正理解软件意图而写更多内容。我们呢?无论如何,这是一个关于这一切的有趣视频。
http://www.infoq.com/presentations/domain-specific-languages
答案 3 :(得分:0)
调试最多也会令人讨厌。
我认为您可能会更多地考虑使用口语来推动计划。如果您有一组高级功能和数据,只要已经定义了打印,列表和员工姓名,您就可以轻松地说(窃取一个例子)“打印员工姓名列表”。