业务问题进入程序设计
FLOW-MATIC出自雷明顿兰德的UNIVAC自动编程工作。格蕾丝·霍珀领导的部门希望使商业数据处理人员能用接近业务用语的表达组织程序。它的早期名称是B-0,随后改为FLOW-MATIC。目标用户包括系统与流程分析人员、会计和业务管理人员,也包括已有经验的程序员。
1958年手册由制造商的自动编程开发团队说明:使用者先定义数据处理需求,再把需求写成规定形式的英文指令,由编译系统转成计算机能够执行的代码。这里的“英文”指受规则限制的命令语言,使用者仍须清楚文件内容、处理步骤及预期输出。
设计、宣传与向客户提供
珍·萨米特在1981年的语言史论文中把初步规格记到1955年1月,并将首个向客户提供的实现版本置于1958年初。这个区分说明,语言方案的形成、编译器实现和客户实际取得系统,可以相隔数年。
1957年的UNIVAC宣传册已用FLOW-MATIC名称介绍系统,展示由流程图到程序的办法,并引述未具名试用者的评价。它证明当时已对外宣传产品;单靠宣传册,不能再推出某月某日已向一般客户供货。1958年版权的正式手册则留下了较完整的方法、语句和操作说明。
给库存记录配上价格
手册以虚构的ABC制造公司作教学例子。库存文件保存产品编号和库存数量,却不直接保存价格;另一价格文件记录各产品的现行单价。程序把两份事先按产品编号排序的文件逐项比较,给找到价格的库存记录补上单价,并将它写入“已定价库存”输出文件。
若某产品在价格文件中找不到对应项,程序将其送到另一输出文件,还要打印出来交业务人员检查。这个例子处理的是文件匹配与例外记录,并不需要把商业流程先改写成一大串代数公式。先整理文件与运行次序,才轮到撰写处理语句,语言工具并未代替系统设计。
参考:[1]
可读命令背后的严格格式
程序使用COMPARE比较字段,使用READ-ITEM读取下一条记录,并用编号决定接下来执行哪项操作。字段名称还带有所属文件的字母标记,因此两个文件里的“产品编号”可以分别识别。程序员须处理库存文件先结束或价格文件先结束等分支,才能使整批记录得到正确归类。
数据的形状另有说明。手册用预印表格表示文件、记录与字段的位置,示例分别列出产品编号、数量、单价和其他数据区。业务处理步骤与数据布局由此分开:改动字段安排和改动处理次序,成为可以分别说明的工作。英文指令提高了可读性,但并没有取消字段定义、记录格式和输入输出设计。
参考:[1]
从早期系统到后续语言协作
制造商在宣传册中强调较少的编码与培训时间,这是产品推广时的主张。正式手册同时提醒,熟练的职业程序员仍要查找运行缺陷、处理困难问题和改善系统。FLOW-MATIC允许不同经验的人员参与分析、编码和检查,各自的责任并未消失。
萨米特记述,1959年制定COBOL的短期委员会把已在使用的FLOW-MATIC、其变体AIMACO及IBM的Commercial Translator作为重要输入。这是后来商业语言协作的一段经过,并不使FLOW-MATIC本身成为跨厂商标准。其早期意义首先见于一项具体安排:把业务人员熟悉的文件和步骤,组织成能由UNIVAC编译系统处理的说明。