gpt4 book ai didi

nlp - 使用 "natural"语言编写代码是否更好?

转载 作者:行者123 更新时间:2023-12-04 13:00:30 26 4
gpt4 key购买 nike

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

The Supernova Programming language is a modern scripting language and the

First one presents the concept of programming with direct Fiction Description using

Clear subset of pure Human Language.



你可以编写如下代码:
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

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

最佳答案

代码可能看起来像自然语言,但实际上只是具有不同关键字的常规计算机代码。在您的示例中,I want可能是 new 的同义词.这不像你可以直接使用自然语言说make me a window相反(如果可以的话,事情会变得更加丑陋......)。

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

i want window and the window title is Hello World. 
i want意味着 new , and表示参数列表的开始。 the <type_name> <member_name> is设置实例变量 member_name在正在创建的对象上。请注意,您必须编写 type_name两次。
i want button and button caption is Close.
and button name is btn1.
.结束声明。但是,您可以通过以 and 开始下一条语句来“链接”对象上的方法调用。 .另外,您如何引用名为 Close 的变量?而不是字符串 "Close" ?哎呀,我们甚至在普通英语中也有这个问题:“说出你的名字”和“说出你的名字”之间有什么区别?
btn1 mouse click. instructions are
you close window
end of instructions
mouse click是一个包含空格的标识符,应该是 mouseClick . instructions are定义了一个 lambda(参见 isare 关键字混淆导致麻烦了吗?)。 you close window电话 window.close() . end of instructions是 lambda 的结尾。所有这些都比他们需要的要长。

还记得这一切吗?这些只是我对语法的猜测,这可能是完全错误的。看起来还是很简单?如果是这样,请尝试编写更大的程序而不破坏任何这些规则,以及定义条件逻辑、循环、类、泛型、继承或其他任何您需要的内容所需的附加规则。您所做的只是将常规编程语言中的符号更改为“自然语言”等价物,它们更难记住、不必要的冗长且更模棱两可。

试试这个翻译:
var myWindow = new Window( title="Hello World" );
myWindow.addButton( new Button( caption="Close", name="btn1" ) );

btn1.onMouseClick = function() {
myWindow.close();
}

看看前面例子中的每一行如何映射到它的对应行,但更直接地说明了意图?自然语言可能适合人类执行,但很难用于精确的规范。

你越试图让英语轻松清晰地传达这些想法,它就越像我们已经拥有的编程语言。简而言之,编程语言在不失清晰和简单的情况下,尽可能接近自然语言。 :D

关于nlp - 使用 "natural"语言编写代码是否更好?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2750931/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com