Language agnostic 有一个通用的语言模型吗?

Language agnostic 有一个通用的语言模型吗?,language-agnostic,programming-languages,formal-semantics,Language Agnostic,Programming Languages,Formal Semantics,许多编程语言都具有通用甚至相当通用的特性。例如,如果您比较Java、VB6、.NET、PHP、Python,那么您会发现常见的函数,如控制结构、数值和字符串操作等 在元语言(或语言不可知论)级别上定义这些特性做了什么 UML在各个方面提供了软件的描述性参考,但现实世界的焦点似乎是数据过程。UML相关吗 我不是在问“为什么我们没有一种语言来取代目前的过剩。”我们需要许多不同的工具(至少在这个领域是如此) 我并不是要求所有的语言都适合一个模板——汇编语言和编译语言的差异足以使之不可行(有些人把HTM

许多编程语言都具有通用甚至相当通用的特性。例如,如果您比较Java、VB6、.NET、PHP、Python,那么您会发现常见的函数,如控制结构、数值和字符串操作等

在元语言(或语言不可知论)级别上定义这些特性做了什么

UML在各个方面提供了软件的描述性参考,但现实世界的焦点似乎是数据过程。UML相关吗

我不是在问“为什么我们没有一种语言来取代目前的过剩。”我们需要许多不同的工具(至少在这个领域是如此)

我并不是要求所有的语言都适合一个模板——汇编语言和编译语言的差异足以使之不可行(有些人把HTML称为一种语言,尽管我不这么认为)。任何尝试都将从适当狭窄的范围开始。与此相一致,我不希望模型能够涵盖哪怕是一个小的选择,并且具有完全的有效性


然而,我希望这样的模型可以用于从一种语言转换到另一种语言(目标有限——想想jist翻译)。

UML通常用于在转换到实际代码之前以更简单的术语定义算法/代码


为了回答我猜是你的问题,已经有了一套定义的语言所需部分,而,for,if,else。。。这是否会被设定为一个标准,或者成为一个供所有语言使用的基本库:不,这是因为不同语言的开发人员喜欢自己做这件事。

对此进行了很多尝试,但没有一个是非常成功的。我所知道的最早的是50多年前


您已经给出了一个有很多共同点的语言列表,因为它们非常相似——它们都是过程语言,有共同的根和一些OO扩展,所以这并不令人惊讶。如果你开始研究不同的语言,如LISP、haskell、erlang、prolog,甚至SQL,你会看到非常不同的东西。

我认为,在不丧失通用性的情况下,最接近这一点的是图灵机,它在实际应用中不是很有用。但是如果你允许图灵机语言被“标记”和重用,你可以建立你需要的概念,从低级到高级工作。

我认为MOF是通用语言。
例如,您可以通过UML元模型从MOF创建UML图。如果您将这个元模型信息保存到xmi中,那么您可以保存您需要的任何信息,甚至比任何语言都要多。XMI语义非常丰富,其使用没有限制。如果您将UML映射到与MOF实时同步的元模型顶部的xmi,那么这对我来说就是通用语言。

的作者似乎提出了这样一个通用模型。我希望它会像以前定义通用模型的尝试一样有用,也就是说,部分好,但不是最后一句话。

你所描述的听起来像。有各种各样的方法,每种方法都提供了一种用某种编程语言正式指定程序含义的方法。在某些情况下,该规范本质上是对另一种语言(如lambda演算)的翻译,或者是对正式指定的抽象机器(如SECD)的编译


这里的工作太多,很难找到具体的参考资料。但我希望我已经给了你一些有用的关键字,让你继续搜索。

UML不是“通用语言模型”,而是“通用建模语言”。开发人员仍然需要将模型转化为一个程序(或者如果UML工具生成代码,则将其充实起来)。我希望有这样一个大的视角。我很高兴更多地了解到我的房子有多小。至于SQL,这是另一个“语言”这个术语不充分或不明确的例子(至少在我使用的时候)。我需要更丰富的词汇。谢谢你的UNCOL参考。虽然这是对通用解决方案的尝试,而不是模型。。维基百科:“UNCOL在20世纪60年代初是一项雄心勃勃的努力。它试图解决编译器编写问题,但最终失败了,因为语言和编译器技术还不成熟。”所以。。。什么改变了,真的?如果有更多的成熟,它不会导致更少的多样性。那一定是某人的毕业论文,不是吗?@Smandoli,可能是很多人的毕业论文!好吧,只要结果是可以玩一场像样的围棋。这看起来是迄今为止7个答案中最好的一个。和大多数其他人一样令人畏惧——在我浏览这篇链接文章时,会产生可怕的影响。它很旧,有点过时,但它似乎没有外面的报纸那么可怕。它详细介绍了语言的具体示例。例如,将Prolog的一个子集完整地翻译成Algol-68,说明了Algol-68如何作为一种通用语言来表示任何其他语言。“已经有一组定义的必需部分”--我想我正在寻找关于这一点的更多信息。从罗曼·希波关于图灵完整性的回答中可以看出,它看起来最原始,我们需要if、goto和内存分配。函数、循环和数据类型等更高级的特性是基于这三个非常基本的思想构建的。