有语言的通用模型吗?

时间:2010-04-13 16:39:05

标签: language-agnostic programming-languages formal-semantics

许多编程语言共享通用甚至相当普遍的功能。例如,如果您比较Java,VB6,.NET,PHP,Python,那么您会发现常见的功能,如控制结构,数字和字符串操作等。

在元语言(或语言无关)级别定义这些功能已做了哪些工作?

UML在各个方面提供了软件的描述性参考,但现实世界的重点似乎是数据处理。 UML是否相关?

我不是在问“为什么我们没有一种语言可以替代当前的过多。”我们需要许多不同的工具(至少在这个时代)。

我不是要求所有语言都适合模板 - 汇编语言与编译语言的不同使得这种语言不可行(有些人称HTML为语言,但我不愿意)。任何尝试都将以适当狭窄的范围开始。根据这一点,我不希望该模型甚至覆盖一个完整有效的小选择。

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

6 个答案:

答案 0 :(得分:4)

已经有很多尝试,但没有一个非常成功。我所知道的最早的是UNCOL超过50年前。

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

答案 1 :(得分:3)

您所描述的内容听起来像formal semantics of programming languages。有各种各样的方法,每种方法都会给出一种在某种编程语言中正式指定程序含义的方法。在某些情况下,本规范本质上是对另一种语言的翻译,例如lambda演算,或者为正式指定的抽象机器(如SECD)编译。

这里有很多工作,很难选择具体的参考资料。但我希望我已经为您提供了一些有用的关键字来继续搜索。

答案 2 :(得分:0)

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

为了回答我猜测你的问题,已经有了一套已定义的必需语言部分,而for,if,else ......这是否会被设置为标准,或者被制作成基础库所有语言都使用它:不,这是因为不同的语言开发者喜欢自己做。

答案 3 :(得分:0)

我认为在不失一般性的情况下,你能得到的最接近的是图灵机,这对于实际目的来说并不是很有用。但如果您允许图灵机语言被“标记”并重复使用,您可以构建所需的概念,从低级到高级。

答案 4 :(得分:0)

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

答案 5 :(得分:0)

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