自由程序员 我在1965年离开史丹佛大学成为一个在纽约城地区的自由程序员,还好这很平常,而我找了使用Fortran、Algol、Jovial、PL/I及多种汇编语言来写程序的工作,我四处反复的带着我的一堆卡片,并且在必要时重新编写。 迷你计算机那时出现了,并且也有了终端机,解译器用于电传输入很理想,不久又包含处理输出的程序代码,所以我们得到了下列这些字: KEY EXPECT EMIT CR SPACE SPACES DIGIT TYPE EXPECT是个呼叫KEY来读入敲键的循环,TYPE是个呼叫EMIT来显示字符的循环。 随着TTY而来的是纸带和某些最不人性化的软件编辑、打洞、装载、组合、打印、装载、测试及反复等不能想象的时光,我记得一个在曼哈顿摩天楼上最惨的星期天,当时我找不到连结胶带(不能做其它事)而咒骂”一定有更好的方法”。 我为实时系统公司(RSI)的Bob Davis做了相当多的工作,我变成5500大型计算机的指导员来支持他的分时服务(大型主机的远程输入),并且写了一个Fortran到Algol转译器和档案编辑工具,这转译器敎了我字之间空格的价值,而Fortran并不需要。 解译器仍然接受字前面有意义的6个字符(5500有48位字组),下面的字: LIST EDIT BEGIN AGAIN EXIT 出现了,其中BEGIN…AGAIN要拼成START…REPEAT,而且用来包着编辑器命令。 T TYPE I INSERT D DELETE F FIND 稍后用于国家无线天文台的编辑器,字FIELD使用摩哈斯科和Forth公司的数据库管理方法。 Forth独特的特征之一从这里而来,这规则是当解译器完成时,Forth以随后加个OK来响应每个输入行,对于在输入是以换行结尾,必须响应空白和包含换行的OK时可能有困难。在实时系统公司,OK是在下一行,但它仍然在令人感到威胁的通讯在线友善地传递信心给使用者。 56 INSERT ALGOL IS VERY ADAPTABLE OK 这个后置记号提出了数据堆栈,但它必须只能有一层深。 摩哈斯科,1968 1968年我转业成在纽约新阿姆斯特丹的摩哈斯科工业公司的商业程序员,他们是主要的家饰公司---地毯和家俱。我已与在RSI的Geoff Leach一起工作,而他也说服我跟随他去市区,我刚结婚,而新阿姆斯特丹有一可爱的小镇气氛对比于纽约城。 我以COBOL重写我的程序代码,并且学得了商业软件的真意,Bob Rayco是公司数据处理的主事者,他指派了两个相关的项目给我: 他租了有2250图形显示器的IBM 1130迷你计算机,目的是去观察计算机绘图可否帮助图样地毯的设计,答案是”没有彩色”,所以1130搬走了。 在此同时,我有了最新的迷你计算机环境:16位CPU、8K RAM、磁盘驱动器(我的第一部)、键盘、列表机、读/打卡机、Fortran编译器,其中读/打卡用来提供磁盘的备份,我又再度移植了我的解译器(回到Fortran),并且加入了交叉汇编器来产生2250用的程序代码到。 系统十分的成功,它能画出动画式的3-D图样,当时IBM只能画静态的2-D,由于这是我第一个实时的绘图,我编写了太空战争,那是第一个电视游戏,我也转换我的Algol西洋棋程序成Forth,并且深深的惊讶于为何它变得比较简单。 内含这个解译器的档案标注为FORTH,表示是第四(下一)代软件,但操作系统限制文件名只能有五个字符。 这个环境让2250的程序规划比Fortran环境远远快了许多,所以我延伸了2250的交叉汇编器成为1130的编译器,这举动引入了许多的字: DO LOOP UNTIL BLOCK LOAD UPDATE FLUSH BASE CONTEXT STATE INTERPRET DUMP CREATE CODE ;CODE CONSTANT SMUDGE @ OVER AND OR NOT 0= 0< 它们仍然有不同的拼法 LOOP 是 CONTINUE UNTIL END BLOCK GET LOAD READ TYPE SEND INTERPRET QUERY CREATE ENTER CODE the cent symbol 这是迄今我找到美分符号的使用。循环索引和限制放于数据堆栈中,DO和CONTINUE用来回应Fortran。 BLOCK管理了许多缓冲区来减少磁盘的存取。LOAD由1024字节区块中读取原始码,1024的选用是因它是一个好的磁盘模数量,并且证实是个好选择。UPDATE允许区块被标记然后当它的缓冲区需要时(或用FLUSH)再写入磁盘中,它实现了虚拟记忆,并且隐藏于储存(!)字当中。 BASE允许八进位、十六进制和十进制数。CONTEXT是字典使用的第一个暗示,用来隔离编辑器字。STATE由区分编译及解译。在编译当中,字的字数及前三个字符被编入以便用于稍后的解译,奇怪的是,字可以用一个特殊字符来结束,不过畸型用法很快的就被遗弃了。撷取操作子(@)已很多种面貌出现,因为由变量、数组和磁盘而来是要区分的。而为了检视内存,DUMP变的重要。

评论