| 副标题[/!--empirenews.page--]     下面是一段 BANCStar 语言的程序代码: 2999,,,8600,,,1
 3000,829,6,30089
 10829,2446,22245,22012
 11585,15855,22002,22002
 11586,15865,22002,22002
 11587,15875,22002,22002
 11588,15885,22002,22002
 11596,15965,22002,22002
 11597,15975,22002,22002
 11598,15985,22002,22002
 11599,15995,22002,22002
 11600,16005,22002,22002
 11601,16015,22002,22002
 11602,16025,22002,22002
 11603,16035,22002,22002
 11604,16045,22002,22002
 11605,16055,22002,22002
 11606,16065,22002,22002
 11607,16075,22002,22002
 11608,16085,22002,22002
 11609,16095,22002,22002
 11610,16105,22002,22002
 11611,16115,22002,22002
 11612,16125,22002,22002
 11613,16135,22002,22002
 11614,16145,22002,22002
 11615,16155,22002,22002
 11616,16165,22002,22002
 11617,16175,22002,22002
 11618,16185,22002,22002
 11619,16195,22002,22002
 11620,16205,22002,22002
 11621,16215,22002,22002
 11622,16225,22002,22002
 11623,16235,22002,22002
 11624,16245,22002,22002
 11625,16255,22002,22002
 11626,16265,22002,22002
 11627,16275,22002,22002
 11628,16285,22002,22002
 11629,16295,22002,22002
 11630,16305,22002,22002
 11631,16315,22002,22002
 11632,16325,22002,22002
 11638,16385,22002,22002
 11639,16395,22002,22002
 11677,22002,22002,22002
 11678,22002,22002,22002
 11679,22002,22002,22002
 11680,22002,22002,22002
 11691,22002,22002,22002
 11693,22002,22002,22002
 11707,22002,22002,22002
 11749,22002,22002,22002
 3001,351,2,
 10190,3512,22002,22002
 10191,3522,22002,22002
 10192,3522,22002,22002
 10193,3522,22002,22002
 3000,192,1,
 10193,1902,1912,1922
 10863,3552,22002,22002
 10864,3562,22002,22002
 10865,3572,22002,22002
 10866,3582,22002,22002
 10867,3592,22002,22002
 10505,3662,22002,22002
 10414,3912,22002,22002
 10415,3922,22002,22002
 10416,3932,22002,22002
 10563,4072,22002,22002
 10562,4082,22002,22002
 10566,4102,22002,22002,
 3001,,,
 31597,10001,716,108
 31598,10001,785,108
 31599,10001,717,108
 31600,10001,710,107
 31601,10001,786,108
 31602,10001,715,108
 31603,10001,787,108
 31604,10001,714,108
 31605,10001,713,108
 31606,10001,712,108
 31607,10001,711,108
 31608,10001,765,108
 31609,10001,766,108
 31617,10001,767,108
 31618,10001,768,108
 31619,10001,769,108
 31620,10001,770,108
 31621,10001,771,108
 31622,10001,772,108
 31623,10001,776,108
 31624,10001,777,108
 31625,10001,778,108
 31626,10001,779,108
 31627,10001,780,108
 31628,10001,781,108
 31629,10001,782,108
 31630,10001,797,108
 31631,10001,763,108
 31632,10001,764,108
 8500,,2,
 1254,2301,1,-2301
 
 想象一下,上班第一天就被交给了这样一些程序代码。1990年2月,我就是这样的。一个7人组成的团队维护着一批打印到纸上能有几百页的这样的代码,都是已经发布到生产环境的。并不是我们发明了它们,只是我们不得不要用它们。作为奇闻轶事,我在这里展示一张这些代码残存的文档的图片,这个文档格式是使用我开发的一个工具生成的,它仅可能的模仿了早期我们那些程序员在纸上那笔来研究这些文档的样子。 
 关于这段代码纸上的这些代码是C16LNAPP.SCN里的一段,只是打印出来的第一页,它是1990年代美国一家大商业银行——位于华盛顿的第一洲际银行(First Interstate Bank)在生产环境里使用的一段代码。如今它已经没有用处理,我征得了当时参与人的同意,出于乐趣,公布在这里。 再来一段下面的这段代码也是来自生产系统环境。我并不太担心在这里公布这么多具有版权问题的代码信息,因为这世界上大概只有10个人能看懂它们。 8607,,,111547,15475,22002,22002
 1316,1629,1,1649
 3001,1316,3,30078
 11528,22052,22002,22002
 9301,0,1528,1528
 31568,10001,800,107
 8560,,,1568
 8550,210,,
 3001,,,
 3100,1316,3,30089
 11547,15475,22002,22002
 3001,1316,3,30089
 3001,1317,3,10000
 8400,,,
 8550,700,801,
 3001,,,
 9301,0,522,522
 3000,1284,3,10001
 8500,,3,
 8500,,5,
 1547,,1,-2301
 
 像这样打印出来的代码文件我估计有1350多张,大部分每张上都有几百行,有些甚至上千行。第一洲际银行的银行分部用这些程序来处理业务。 BANCStar语言里一些有趣的特征:
BANCStar程序里仅有的合法字符就是数字0-9,逗号,减号,和回车符。不允许有空行。文件中的任何地方如果有一个“.”出现,编译器就会崩溃。注释是绝对不允许的。有控制结构,包括3000 (“if”), 3001 (“end if”)和3101 (“else if”),还有8500 (“GOTO”) 和 8550 (“组合GOTO”).
有一个硬性规定,在整个系统中变量+常量不能超过2000个。任何需要显示到屏幕上或打印到表单里的东西都要被定义成常量,因此,它们都要占用有限的资源空间。结果,大多数的计算的完成都由使用数十个“临时寄存”变量,而这变量会被系统不断的重复利用。系统中所有的东西都是全局的。开发新模块的程序员的第一要做的是在系统中找一些这些临时寄存的数字,“借”过来使用,完成自己的计算,并且要在这些寄存器真正的主人发现他们存放的数字不见了之前,把最初的值恢复回去。代码里的标签(Label)使用的都是绝对行址,于是,一旦有新代码插入,所以插入行之后的代码涉及到GOTO操作的都要重新定位和链接。 我能记得的一些细节(编辑:宣城站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |