5

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

为在元语言(或与语言无关)级别定义这些特性做了哪些工作?

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

我不是在问“为什么我们没有一种单一的语言来取代当前的过多语言。” 我们需要许多不同的工具(至少在这个 eo​​n 中)。

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

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

4

6 回答 6

4

在这方面有很多尝试,但没有一个非常成功。我知道的最早是50 多年前的UNCOL 。

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

于 2010-04-13T16:56:24.880 回答
3

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

这里有很多工作,很难选择一个具体的参考。但我希望我给了你一些有用的关键词来继续你的搜索。

于 2010-04-13T18:21:16.577 回答
0

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

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

于 2010-04-13T16:50:05.643 回答
0

我认为您可以在不失一般性的情况下最接近这一点的是图灵机,这对于实际目的不是很有用。但是,如果您允许“标记”和重用图灵机器语言,您就可以构建您需要的概念,从低级到高级。

于 2010-04-13T17:02:05.773 回答
0

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

于 2010-04-13T17:44:28.170 回答
0

Pattern Calculus的作者似乎提出了这样一个通用模型。我希望它与之前定义通用模型的尝试一样有用,也就是说,在部分方面很好,但不是最后一句话。

于 2010-04-13T17:59:17.687 回答