创建"Europanto"类型通用脚本语言会有什么障碍?

Eri*_*ric 6 scripting language-design

在本周几种脚本语言之间来回切换之后,我发现自己在想它们的相似之处.然而,我总是想要谷歌(或现在的SO)来记住细节,例如"instanceof"和"endswith"的本地等价物,或者声明界面的正确语法,或者其他什么.

这让我想起了(人类)语言Europonto.只需选择一些模糊的英语语法和一些模糊的浪漫/日耳曼/斯拉夫语词汇,这一切都很好!

那么如果我们尝试用脚本语言做同样的事情会发生什么.对于今天的Python风格的缩进块感觉如何?精细!想要使用原型对象?好!只记得如何拼写某些库函数的PHP名称?没问题!

无论如何,这是疯狂而疯狂的想法.既然我们需要一个承认具体答案的问题,那就让我们这样收紧:

在创建允许[Python,Ruby,PHP,Perl,shell和JavaScript]的所有本机语法和库函数的脚本语言中,最重要的冲突是什么,这样您就可以在语言之间自由地混合代码块和函数名称?

让我们说任何特定的结构应该在声明级别上保持一致.所以我们允许:

foreach( $foo as $bar )
{
   if $foo == 2:
      print "hi"
}
Run Code Online (Sandbox Code Playgroud)

但不是,比方说,

foreach( $foo as $bar )
{
   if $foo == 2:
      print "hi"
   endif
end
Run Code Online (Sandbox Code Playgroud)

冲突可能包括:解析器含糊不清; 名字碰撞; 对象或函数或闭包的冲突语义; 我猜这个范围将是一个巨大的问题,但你告诉我.

我将从一开始就将其作为"社区维基"开始,所以如果您认为这是一个有趣的问题但想要使其更加严谨,请随时编辑.

Mar*_*cin 3

我建议主要问题是识别每个语句的语法应该是什么。

无论如何,这有什么意义呢?几乎所有的脚本语言都具有做同样事情的功能,这就是为什么人们倾向于掌握一种他们一直使用的脚本语言,并坚持使用它。