在我职业生涯的早期,我很荣幸地复习了 统一语言 规范,其中涉及与我这个行业的一位英雄举行的非常超现实的电话会议, 吉姆·朗博。该区域位于UML的动作语义学上。当时它是一个单独的规范,但现在已作为UML的“动作”行为与“上层结构”文档交织在一起。

Jim的想法是提供一种所有软件行为都可以映射的汇编语言。但是我认为它提供了行动本身更强大的概念。动作是具有输入,进行一些处理并产生输出的行为单位。一个动作的输出将馈入其他动作的输入。 “啊哈”是所有输入都得到满足的动作在理论上是并行进行的。

这个概念并不新鲜。硬件设计师一直在这样思考。我相信 陪替氏网 用数学术语提出一个类似的想法。但是令我惊讶的是,这是一个非常强大的范例,可以使程序员更轻松地编写高度并行的程序。但是,所需要的是一种好的二维编程语言,它使程序员可以创建动作并快速地连接输入和输出,当然也需要最少的键入。但是,对于UML而言,确实不是这样的目标。

这可能是我一直在关注的原因之一 Eclipse的建模 项目。除了用于创建特定于域的语言的出色框架之外,它还具有构建此“动作”语言所需的功能。有了一个可以为当今的多核集群生成代码的良好后端,我真的认为这可能是帮助程序员满足要求的好方法 英特尔的挑战 “软件必须每两年就可以支持的并行度增加一倍”,以赶上硬件人员的工作。