Nlp 使用“a”是否更好;“天然的”;用什么语言编写代码?

Nlp 使用“a”是否更好;“天然的”;用什么语言编写代码?,nlp,Nlp,我最近看到一种叫做的编程语言,他们在网页上说: 超新星编程语言是 现代脚本语言及其应用 第一部分介绍了概念 直接虚构的节目 描述使用 纯人类语言的清晰子集 您可以编写如下代码: i want window and the window title is Hello World. i want button and button caption is Close. and button name is btn1. btn1 mouse click. instructions are you

我最近看到一种叫做的编程语言,他们在网页上说:

超新星编程语言是 现代脚本语言及其应用

第一部分介绍了概念 直接虚构的节目 描述使用

纯人类语言的清晰子集

您可以编写如下代码:

i want window and the window title is Hello World.
i want button and button caption is Close.
and button name is btn1.

btn1 mouse click. instructions are
   you close window
end of instructions

我的问题不是关于语言本身,而是我们是否需要这样的语言,它们是否使编写代码变得更容易?

它们是否更好是观点,但这看起来像是COBOL和BASIC的某种变异交叉,这无疑是非常糟糕的

因此,在我看来,不是。我认为在某种程度上,仍然使用可读动词/形容词/名称的语言更好(C++、C#、PHP等是我的首选语言)


有些语言开始变得太高级和/或冗长,使得实际逻辑变得如此抽象,以至于很难知道什么起作用。有些太低级和简短,迫使你明确地陈述你想做的一切。可读性和简洁性、强大性和灵活性之间的平衡是最适合开发的。

您在上面向我们展示的编程语言非常冗长(似乎比COBOL还要冗长)

这带来了几个问题:

  • 做简单的事情需要很长的代码
  • 代码增长得相当快,无法维护
  • 找出代码的作用需要很长时间

由于编程的基本困难在于让你的思想足够有序地告诉计算机该做什么,因此让语言更“自然”是不太可能让非程序员更容易理解的;语言本身从一开始就不是真正的问题。更重要的是,所有这些额外的自然语言都不能帮助任何程序员(名副其实)完成他们正在做的事情,那么为什么还要添加它呢


或者我们可以有一种真正的自然语言编程语言,包括“嗯”、“呃”和“哦,我真的不知道”?:-)

在我看来,使用这种“人类语言”并没有真正有用的优势,因为你仍然需要语法和特殊的词语。你必须同时学习这两种语言,因为这是必要的,所以学习“编程语言”不会比学习“编程语言”困难太多,因为它有很多优势,因为它是面向机器的结构,而不是人类的思维方式

如果你想编写好的程序,你需要思考机器的工作方式,而编程语言肯定比人类语言更能表达这种思维方式

代码可能看起来像自然语言,但实际上只是带有不同关键字的常规计算机代码。在您的示例中,
I-want
可能与
new
同义。这并不是说你可以直接使用自然语言,然后说
让我成为一个窗口
(如果你可以,事情会变得更加丑陋…)

让我们仔细看看您的代码和语言含义:

i want window and the window title is Hello World. 
i-want
表示
new
表示参数列表的开头<代码>is设置正在创建的对象上的实例变量
成员名称
。请注意,您必须将
键入\u name
两次

i want button and button caption is Close.
and button name is btn1.
结束语句。但是,您可以通过使用
启动下一条语句来“链接”对象上的方法调用。另外,如何引用名为
Close
的变量而不是字符串
“Close”
?见鬼,我们甚至在普通英语中也有这样的问题:“说出你的名字”和“说出你的名字”有什么区别

鼠标单击
是包含空格的标识符,应该是
鼠标单击
<代码>指令定义了lambda(请参阅
is
的对比,是否存在导致问题的关键字混淆?)
关闭窗口
调用
window.close()
<代码>指令结尾
是lambda的结尾。所有这些都比需要的要长

还记得吗?这些只是我对语法的猜测,可能是完全错误的。还是那么简单?如果是这样的话,试着编写一个更大的程序,但不要破坏这些规则中的任何一条,以及定义条件逻辑、循环、类、泛型、继承等所需的其他规则。你所做的一切就是将常规编程语言中的符号更改为“自然语言”等价物,这些等价物更难记住,不必要地冗长,而且更加模糊


尝试以下翻译:

var myWindow = new Window( title="Hello World" );
myWindow.addButton( new Button( caption="Close", name="btn1" ) );

btn1.onMouseClick = function() {
    myWindow.close();
}
在前面的示例中,查看每条线如何映射到对应的线,但更直接地说明意图?自然语言可能有助于人类执行,但却极难用于精确的规范


你越是努力让英语轻松清晰地传达这些想法,它就越像我们已经拥有的编程语言。简言之,编程语言尽可能接近自然语言,同时又不失清晰性和简单性D

。我没有什么要补充的。

我会勇敢地在这里提出稍微不同的意见

除了在问题中介绍的内容之外,我还没有看到任何关于这种语言的内容,但是我不得不说,对于非程序员来说,它可能更具可读性。另一方面,对于程序员来说,这不会损害可读性,但也不会有帮助,因为我们已经习惯于阅读代码

在实际的开发方面,我认为必须输入这么多额外的位是可怕的,特别是如果你像我们程序员一样习惯于简洁的关键字和结构

但让我们想象一个遥远的未来,语音识别实际上是准确的。我认为用c语言编写这样的语言要容易得多
var myWindow = new Window( title="Hello World" );
myWindow.addButton( new Button( caption="Close", name="btn1" ) );

btn1.onMouseClick = function() {
    myWindow.close();
}
person.eBusiness[text.this.author].like(language.supernova.idea.reverse);
language.English[ambiguous[very]];
person.eBusiness.suggest(create(language.Codetalk));
language.Codetalk.grammar.inspiration=language.programming.grammar;
language.Codetalk[new,better,ambiguous[not]];
if(person.all.use(language.Codetalk)){
    person.all.understand(person.all.communication);
};
question(language.Codetalk.idea[good]);