我看到了这一点:学习如何在打孔卡上编程
而且我已经看到了:http : //en.wikipedia.org/wiki/Computer_programming_in_the_punched_card_era
但是他们还有很多不足之处。
谁能向我解释程序员使用打孔卡时如何编程?具体地说,输入计算机系统用于从打孔卡本身获取指令。
我对逆向计算机不太了解,因此您熟悉的任何一种输入系统都可以。也应理解更一般的答案。
我看到了这一点:学习如何在打孔卡上编程
而且我已经看到了:http : //en.wikipedia.org/wiki/Computer_programming_in_the_punched_card_era
但是他们还有很多不足之处。
谁能向我解释程序员使用打孔卡时如何编程?具体地说,输入计算机系统用于从打孔卡本身获取指令。
我对逆向计算机不太了解,因此您熟悉的任何一种输入系统都可以。也应理解更一般的答案。
Answers:
一句话,很差。
至少在任何机器上我曾经使用过或听说过,你也不能喂卡一次一个虽然。有自动读卡器,每分钟送入和读取数百张卡(大约为1000 /分钟,但我不确定确切的规格)。
在典型情况下,您是手工编写代码,然后将其打孔到卡上。每张卡包含一行代码(最多80列)。您已经拿走了卡片组来执行。根据积压,从一个小时左右到一天左右不等的任何时间,您都可以收回笔录,并打印出结果。
我可能应该补充一点:由于您的卡片组是作为一项工作而运行的,因此您不仅要提交程序本身的代码,还必须编写类似于批处理文件/ shell脚本的代码,并说明如何编译和执行您的程序。码。例如,IBM JCL仍然受到其Hollerith卡起源的严重影响。
另一个小问题:在大多数系统上,我记得您通常在每个打孔卡上都包含一个行号。显然,如果可能的话,您最好避免丢下一个套牌,但是当(不是)一个套牌掉落时,这实际上并不是很多人想象的悲剧。有趣的一点:至少我看到的卡片分类器使用了基数排序-他们根据行号的一位将卡片分成10个纸箱,然后将它们“合并”在一起(将所有卡片放到一个纸箱中)顺序排列),然后重复您在行号中包含数字的次数。
Hollerith卡极具影响力-80列的极限仍然可以承受到几乎令人不安的程度。至少在Control Data大型机上,文件系统之类的东西也受到了很大的影响。在Hollerith卡大部分都消失了之后,它们的残余物在OS中就可见了-例如,文本文件通常存储为一系列80个字符的记录,而不管一行实际包含多少个字符。我仍然记得我对Unix之类的系统的“落后性”感到惊讶,在该系统中,您必须阅读所有前几行才能找到文本文件的N行,而不仅仅是能够直接查找它。
非常缓慢地。
我母亲是一位程序员,所以我长大后在家有很多这样的卡。他们要做的是对卡上的程序进行编码,然后将卡一张一张地送入读卡器(类似于现在的投票机工作方式)。如果您丢下了卡片,将会遇到很多麻烦,因为您只分配了X台机器时间,因此必须按正确的顺序安排它们,然后重新开始重新喂入机器,然后尝试重新制作在下一个程序员将您踢出之前按时完成。一个琐碎的程序(按照我们当前的标准)可能需要数百(如果不是数千)张这样的卡,以及数小时的机器时间来加载和运行它。
非常乏味。
在某些方面“不太不同”,在某些方面“非常不同”。
他们通常在纸上写源代码。然后将其重新键入打孔卡(每张卡的一行源代码,通常带有行号,因此当源代码以错误的顺序结束时,您可以轻松地修复源代码)。
然后在程序的前面加上卡片,其中包含有关如何编译程序的说明,并在其后缀有有关如何运行程序以及要使用哪些数据文件(或装入磁带等)的说明。
然后将其提交给操作员,操作员将这些卡加载到速度读取器中,运行作业并在打印输出上返回结果。
由于典型的编辑/编译/结果周期为“明天”,因此人们倾向于更加偏执地对代码进行语法检查。
不可能进行交互式调试,唯一跟踪执行的方法是在执行过程中打印调试行。
在某些地方,代码将在打孔带上而不是在打孔卡上。