【苏联计算机往事】R-技术

译自 R-Techonology。除非特殊声明,下文中「我」指原文作者 Oleg Kiselyov。 「R-技术(R-Technology)」是一种设计和图形化表示程序的方法,由 V.M. Glushkov 领导的基辅控制论研究所开发。该技术是自 20 世纪 50 年代末及 60 年代初,苏联弹道导弹和后来的太空火箭的航空电子软件设计中发展起来的。(有趣的是,大约二十年后,David Harel 在担任以色列飞机工业公司航空电子软件工程顾问时,发明了一种相当类似的技术--Harel 状态图。)Glushkov 研究所大量使用并推广 R-技术 :据说他们在该领域发表了 600 多篇论文(大部份是俄语的),就这一主题举办了三次全联盟会议和一次国际会议。它们甚至把 R-技术 标准化了--R-chart,ISO/IEC 8631。 20 世纪 80 年代初,我从控制论研究所研究人员出版的几本书和发表的几篇文章中了解到了 R-技术。Glushkov 研究所出版的所有东西都给人一种和 R-技术 有关的印象。我还记得当时看到了画在一张大纸上的完整 Pascal 编译器的图表(R-图表)。 R-技术 基于一种描绘程序控制流的图表。节点是程序的状态,有向边(弧)代表状态转换。弧的上下方都有文字或图形的注释,上方代表转移条件/守卫(guard),下方则描述了该弧将要执行的动作(action),弧是水平的线条。当程序处于特定状态时,我们从上到下查找对应转移条件为真的弧,并执行弧表示的操作,然后把程序状态更新为弧的目标节点。R-技术 与流程图密切相关,不过流程图中的一个节点在 R-技术 图表中是一条带有注释的弧(在 Harel 的状态图中也是如此)。我们称 R-技术 图表为 R-图表,它所描述的抽象机器/自动机则称为 R-机器 或者 R-tran(RTRAN)。 上面对 R-机器 的描述可能会令人联想到状态机。这种相似性并非偶然:Glushkov 是著名的自动机理论研究者,他第一个提出了把正则表达式转化为非确定性有限自动机的算法,还撰写了《Synthesis of Digital Automata》(该著作为他带来了列宁奖和苏联科学院院士资格)。与有限状态自动机不同的是,R-机器 转换状态的条件可以不只是对输入的测试,可以是任意复杂的。稍后可以看到一个例子:那 R-机器 名义上只有两个状态,但它还有可变状态,其动作会更新可变状态,因此实际状态的数量是无限制的。在我看来,R-机器 看起来总是像图灵机,但 R-机器「控制」实际事物,其动作不仅是读写和移动磁带。 通常把 R-技术 图表绘制成图像,因此也称该技术为可视化编程技术。不过,用(风格化的)纯文本表示图表也是可行的。我记得在某本书中看到表示 R-程序 的表格,看起来有点像 FORTRAN 或 COBOL 程序输入到打孔机上打孔的样子。表格有四列,分别是当前状态标签、转移条件、动作和目标状态标签。可以按以下方法输入 R-程序:...

February 18, 2024 · 阅卜录 · Public Domain