让会计设备使用者进入计算机
IBM推出1401数据处理系统时,许多企业仍依靠穿孔卡片和会计机处理账目。会计机使用者熟悉卡片栏位、分类与汇总,却未必会写机器指令。报表程序生成器(Report Program Generator,简称RPG)针对这种转变,把报表要求交给计算机转换为程序。
计算机历史博物馆把一份《IBM 1401 Programming Systems》宣传册编目为1959年,其中已列出RPG。参加培训的比尔·沃辛顿则回忆,1961年1月课程临近结束时,教师带来了新语言的消息。宣传资料中的列名与各地取得、学习软件的时间应分开理解。
设计从接线板的工作方式出发
杰克·帕尔默在2009年的回忆中说,负责人芭芭拉·伍德曾在客户现场安装电动会计设备,能从接线板使用者的经验思考应用。加里·莫科托夫也记述,伍德和伯尼·西尔科维茨因RPG获得IBM奖励。
会计机上的输入、计算和输出区域,在RPG中变成专门的说明表。原先靠接线和选择器表达的条件,改用栏位、字段与指示条件说明;使用者仍须理解业务处理规则,但不必逐项安排所有机器操作。
参考:[2]
先画出报表,再定义数据
1964年版权、收入1965年技术通报的Basic 4K手册,展示了早期卡片版本的具体方法。使用者先在打印布局表上确定标题、金额和明细的位置,再填写输入、数据、计算及格式说明表。输入表识别记录种类和控制字段;其他表指定取哪些数据、作何运算、何时输出。
这种做法要求先想清楚最终报表的模样。若部门号发生变化时要印小计,控制字段和输出条件就必须相互对应;软件生成指令,也依赖人把分组、金额和版面关系说明白。
参考:[3]
费用分配报表中的一次简化
宣传册用费用分配报表的主要合计行作对照:通常须逐条写出的机器操作,在RPG说明表中由两行声明表达,再由1401展开为详细指令。展示的是报表中的一个部分,并非整套账务只需两行。
例如要把两个部门的费用分别列出,再打印总额,可以先指定部门号为分组依据,金额为累计字段,并安排部门合计行与最终合计行。这是依据报表机制编写的说明性例子,并非某家企业的原始账单,也未声称已在历史机器上执行。
卡片怎样成为可重复使用的程序
Basic 4K版本把说明打成卡片,与处理程序卡组一起装入读卡机。它可生成后立即运行,也可把机器语言目标程序打成卡片留存,供下一次同类报表使用。手册规定的1401最低配置包括4000个字符位置的磁芯存储器、1402读卡穿孔机和1403打印机。
参考:[3]
新语言仍需要学习与现场工作
1961年弹道研究实验室的设备调查,把卡片报表程序生成器列入1401可用编程系统,并记载厂商提供编程及实际操作培训。沃辛顿的回忆也显示,控制级别与输出条件最初让学员颇费理解。
哥伦比亚大学保存的使用者回忆补充了机房的一面:早期卡片系统往往没有磁带或磁盘,操作员要搬运卡组、装纸并检查输出。RPG简化了报表程序的表达,数据准备、业务核对与机器操作仍由使用者承担。