陳凱
在計算機發(fā)展歷史上,有一些著名的發(fā)明物或者模型的名字,被人們反復提及,如帕斯卡的機械加法機、巴貝奇的差分機、圖靈的圖靈機以及被譽為第一臺通用電子計算機的ENIAC等。
教材或科普讀物上,照片最多顯示這些物品的一個側面,圖像往往還不怎么清晰,在博物館里,人們也只能隔著玻璃觀看復制品。其實,我們可以通過網絡搜索到許多模擬器,并依靠軟件的力量使這些經典計算機重新“活”過來。
在地址為http://zuse-z1.zib.de/simulations/eniac的網頁上可找到一個比較完整的ENIAC模擬器(如圖1),既可以在線運行,也可以將程序下載到本地運行,程序需要Java運行環(huán)境。如果在國外的搜索引擎上搜索“ENIAC simulation”,還可以找到其他類似的模擬器。
這臺虛擬的ENIAC不僅可以用來觀賞,還可以像實物一樣運行,模擬器內置了三個可運行的程序:①簡單的四則運算,②生成斐波那契數列,③求兩個數字的最大公因子。大家可以試一下運行求最大公因子的程序,如圖2中兩排旋鈕輸入的分別是24和16。
輸入數據后,點擊運行開關“go”,就能看到一個累加器模塊面板上的指示燈在不停地跳動,這些燈從0跳到9,然后又跳回0,同時發(fā)送一個信號給另一個累加器模塊,可以看出,ENIAC的運算方式是逢十進一。當燈不再跳動的時候,指示燈所在位置就是計算結果(如圖3)。
當然,如果遇到大量的數據需要輸入輸出,就需要用穿孔卡片。ENIAC使用的是IBM生產的穿孔卡片機,有興趣的朋友還可以用國外的搜索引擎搜索“IBM Cardpunch simulation”,來試試怎么將信息存儲在穿孔卡片上。
如果要改變運算程序,就必須重新連接面板上的電線,大家可以從簡單的四則運算程序著手,學著重新布線,圖4是5×X+Y的運算結果,圖5是X+5×Y的運算結果,大家可以仔細找找兩者的區(qū)別,是不是有點像“大家來找茬”的游戲?所以說,給ENIAC“編程序”是一項十分傷腦筋的任務。