1996年的完成阶段

按照开发者弗拉基米尔·帕龙贾诺夫的回忆,DRAKON语言的开发于1996年完成,配套的GRAFIT-FLOKS算法与程序设计系统随后投入使用。这是长期研发转入应用的阶段。语言的技术说明此前已经公开:1995年的《程序设计与计算机软件》刊登了他的图形语法论文,稿件收讫日期为1993年4月22日。

DRAKON的主要目标是让算法更容易阅读、讨论和维护。它把流程图中的图形、连线、分支和排列方式加以约束,使图既能供人理解,又能参与程序开发。研发来自航天工程的经验,面向的却不只是飞船控制程序。

参考:[1] [2] [3]

从三种专用语言出发

帕龙贾诺夫记述,1986年,尤里·特鲁诺夫向他提出统一语言的任务。当时他负责暴风雪号航天飞机计算系统综合开发实验室。机载程序、地面试验和模拟计算分别使用PROL2、DIPOL和LAKS等语言,专业分工清晰,也增加了不同环节交换算法时的负担。

DRAKON由莫斯科自动化与仪器制造科研生产联合体同克尔德什应用数学研究所合作开发。设计者希望让熟悉设备和工艺的工程师更直接地表达操作过程,减少需求转交时的误解。这种目标延续了早期专用语言的做法,又试图用共同的图形规则跨越具体应用领域。

参考:[1] [3]

把乘车过程画成可读的结构

1995年的论文用一次乘公共汽车的过程说明图形组织法。整个活动分为找车、等车、上车和乘车四个部分,名称排列在图的上方。上车后先判断有没有座位;没有座位时,再判断是否愿意站着乘车。不愿站立便离车,转回等待下一辆车的部分。

这样,读者既能先看活动的整体阶段,也能沿线追踪一次具体选择。分支末端的地址指向另一部分的开头,避免任意跳进半途。较大的算法使用这种称为“轮廓”的组织形式,小算法则可以采用更紧凑的“原始式”。

参考:[1]

图形与文字共同工作

DRAKON并未把程序中的文字全部消除。1995年的方案包含一组语言:共同的图形语法可以配合C、Pascal等不同文本语法,图框里面仍可写表达式和操作。控制关系更多由图形位置和连线承担,图内文字则交代具体计算内容。

因此,画出一张容易看的图还不够。正式的语法规则要规定哪些组合有效,编辑和转换工具再把算法表达接入软件开发。它处理的是程序如何被人阅读和组织的问题,而不是用图形免除对程序含义的检查。

参考:[1] [4]

走入1996年的教学大纲

同年,俄罗斯联邦高等教育国家委员会的《信息学》示范教学大纲把DRAKON列入算法与算法可视化部分。课程内容包括顺序、分支、循环、嵌套和并行算法,还要求讨论传统流程图的不足、图形表达的形式化以及如何改善算法的可理解性。

大纲随后把算法与程序性知识联系起来:学生不仅要学习机器执行的代码,也应尝试自行整理专业工作中的步骤。附录强调跨专业交流,希望工程师、研究人员和程序员能借助共同表达减少理解障碍。它记录了DRAKON进入正式课程设计的事实;这种教学设想与各校实际开课、学生掌握程度仍是不同的问题。

参考:[4]

完成之后的应用

1996年的完成并不是全部历史的终点。帕龙贾诺夫在2009年的署名文章中说,团队随后用DRAKON和GRAFIT-FLOKS开发海上发射项目相关模块的算法与程序,经过后续开发和试验,到1999年进入发射应用。1996年开发完成与1999年飞行应用因此应分别理解。

他在2016年的书中又列举了“弗雷加特”上面级、“质子-M”等后续项目。这些回顾显示,源于暴风雪号研发环境的方法在原项目停止后仍继续发展。DRAKON留下的鲜明选择,是把算法的可理解性作为语言设计的一项中心要求,并让专业人员围绕同一张受规则约束的图讨论工作过程。

参考:[2] [3]