可视程序设计

科技工作者之家  |   2020-11-17 18:11

可视程序设计是一个广泛使用的术语,但多数人用来专指与程序设计和运行相关的图形技术使用。它涉及任何允许用户以二维或多维风格描述和表现程序的系统。可视程序设计的特征是使用可视表达式,比如图形、绘画、动画和图标。这些可视表达式可以在程序设计环境中用作文本程序设计语言的图形界面;也可以用来构成可视程序设计语言的语法成分,从而导出新的范型,如通过演示进行程序设计;还可以用在程序的行为或结构的图形表示。

简介可视程序设计是指用可视语言编写可视程序的方法与过程。在现实生活中用户所见到的绝大多数对象都是多维的,传统的程序设计要求把这种多维的对象强行变为一维的符号串描述才能被计算机所接受。可视程序设计允许用户以二维或多维方式来描述对象。可视程序设计主要沿着两个方向发展。在一个方向,图形技术和设备被用来提供程序构造和调试、信息检索和表示、软件设计和理解等方面的可视环境。在另一个方向,语言被设计来处理可视(图象)信息、支持可视交互、用可视表达式编程1。

可视环境可视环境的第1类工作是程序及其运行的可视化。美国Brown大学的PECAN是一个程序开发系统,为用户程序提供多个视图。这些视图可以是程序或者对应语义的表示。程序在内部被表示为一个抽象的语法树,用户看到的是它的视图或具体部分。头一个视图是语法制导的编辑器,用多种字体漂亮地显示语法树。另一个视图是Nassi-shneiderman流程图。第三个视图是一个反映程序组成的模块连接图。呈现给用户的语义视图包括表达式树、数据类型图、流程图的符号表。所有视图随着抽象语法树的改变而更新。在程序执行期间,用户能够跟踪程序和进展,每执行一个语句就高亮显示它的Pascal源程序和自动生成对应的流程图。栈数据视图显示执行栈的当前状态,包括每个当前栈帧、核中的变量和值。PECAN为用户并发地显示程序的不同方面信息,使程序员可以直观监视程序的执行,实际上是一个强有力的可视调试器。

可视环境的第2类工作是数据或信息的可视化。空间数据管理系统SDMS是其中一个例子。SDMS的信息存贮在关系数据库中,但用图形方式表达,并且以空间框架式呈现给用户。这种图形数据空间GDS由一组彩色光栅扫描显示器作视口。用户用操纵杆漫游GDS的表面,或者放大图象得到更多的细节。

前两类工作导致了可视环境的第3类工作:系统设计的可视化。在支持软件生命周期的软件环境中,图形技术具有很高的价值。系统的设计、使用和维护人员都可以用图形方式实现对需求、描述、设计决策、完成的产品等的操作要求。例如,把SDMS扩展为程序可视化(PV)系统,可以支持对并发系统的静态和动态图的操作、程序和文档正文的操作、多维信息空间的建立和遍历、以及工具的重用和传递。这些都可以由图形和正文部件库来实现。在PV原型构造的图是按层次关系链接的图集。用户可以用变焦命令指出感兴趣的内容,以更详细的程度观察模块。

以上3类工作对应了三类对象的可视化一个可视环境可以部分或全部实现这3类对象的可视化。可视化本质上是一种典化型概括。这种可视变换可分为5个典型化层次:

直接表示。将程序和数据的某部分直接映射到图画。

结构化表示。隐去控制结构和数据结构的细节,突出它们的结构关系。

合成表示。从程序数据派生可视内容,不是直接从程序和数据抽取。

解析表示。用典型化的视觉形式表现程序和数据的某些特性,比如正确性、复杂性。相关性等。

注释性表示。通过理解性的可视变换,改善外观效果,尤其是对抽象对象提供形象化的表现形式。

实现可视变换需要程序员某种程度的介入,提供可视规格说明一般来说,典型化概括的层次越高,需要程序员提供可视规格说明也越多和越详尽。只有提高可视变换的智能化程度,可视环境才有普及的可能。

可视语言可视语言分为可视信息处理语言和可视程序设计语言。可视信息处理语言主要用来处理那些具有可视表示法的对象一一与某种逻辑解释相联系的形象化对象。这类语言本身可以不具有可视表示法,通常仍旧是传统的线性语言,只是增加了库子例程或软件包来处理可视对象。这类语言主要用于下列应用:图象处理、计算机视觉、机器人学、图象数据库管理、办自动化、多媒体系统等。可视程序设计语言主要处理那些原来不具有可视表示法的对象,包括传统的数据类型,如数组、栈、队列等,以及应用数据类型,如表格、文档、数据库等。可视地表示这些对象和语言本身,对用户是非常有力的帮助。所谓语言本身可视就是可视地表示程序设计的构件和组合这些构件的规则。这类语言可用于计算机图形学、用户界面设计、数据库界面设计、计算机辅助设计、各类复杂软件设计等。

图形技术用计算机生成、显示、绘制图形的技术被称为计算机图形技术。计算机中的图形也是以数据的形式表示的,要把图形显示出来或绘制打印,就必须把数据转换成线条。计算机图形技术不仅能快速、准确、规范地制作大量的机械图、建筑图、电路图和地理图等,成为计算机辅助设计的重要内容,而且可以制作运动图形和三维图形,使原来绘图做不到的事得以实现。

本词条内容贡献者为:

王沛 - 副教授、副研究员 - 中国科学院工程热物理研究所