Programming languages BASIC中求值函数的实用性探讨
我目前正在重新处理我创建的一个基本程序(字节码解释器),无法决定是否将Programming languages BASIC中求值函数的实用性探讨,programming-languages,eval,language-design,basic,language-concepts,Programming Languages,Eval,Language Design,Basic,Language Concepts,我目前正在重新处理我创建的一个基本程序(字节码解释器),无法决定是否将eval函数包含在其中。我怀疑它是否有用 我可以想到eval功能的两种用途: 它似乎是为计算器应用程序量身定做的。但我真诚地认为一个真正的开发人员更愿意自己编写代码 当要求用户提供一些数字时,它将允许输入公式。可能很方便。虽然这听起来不错,但我不记得曾经见过任何提供这种功能的InputBox 我的问题是: 作为通用编程语言(如BASIC)的一部分,eval的实际用途是什么 搜索这个论坛时,我发现了eval函数(虽然是用Py
eval
函数包含在其中。我怀疑它是否有用
我可以想到eval
功能的两种用途:
- 它似乎是为计算器应用程序量身定做的。但我真诚地认为一个真正的开发人员更愿意自己编写代码
- 当要求用户提供一些数字时,它将允许输入公式。可能很方便。虽然这听起来不错,但我不记得曾经见过任何提供这种功能的InputBox
eval
的实际用途是什么
搜索这个论坛时,我发现了eval
函数(虽然是用Python编写的)。我是否应该调查一下
eval
的有用性
使用eval是很弱的,不是一个明显的坏习惯
1.违反了“软件基本原则”。您的源代码不是可执行文件的总和。除了你的消息来源,
必须清楚地理解eval的一些论点。对于
因此,它是最后的手段
2.这通常是一种粗心设计的表现。动态源代码是动态构建的,很少有好的理由。几乎任何东西都可以
可以使用委托和其他OO设计技术来完成
3.这导致小代码块的即时编译相对较慢。通过使用更好的设计可以避免的开销
模式
使用
eval
可以在您的语言中为您的语言实现REPL,而无需引导整个语言。对于使用您的语言运行代码的类似工具也是如此。另一个用例是插件:允许应用程序的用户用您的语言编写代码,然后简单地将其放入“plugins”文件夹中进行读取和eval
ed。使用eval
您可以用您的语言为您的语言实现REPL,而无需启动整个语言。对于使用您的语言运行代码的类似工具也是如此。另一个用例是插件:允许应用程序的用户用您的语言编写代码,然后简单地将其放入“plugins”文件夹中,在那里它将被读取并eval
ed。