之前演示的,默認(rèn)程序在內(nèi)存了,但事實(shí)上 程序需要加載進(jìn)內(nèi)存。
表示魔法 是計(jì)算機(jī)科學(xué)。
早期的機(jī)器編程
給機(jī)器編程需求,早在計(jì)算機(jī)出現(xiàn)之前就有了。
最著名的例子來自紡織業(yè),如果只想織一塊紅色大桌布,可以直接放紅線進(jìn)織布機(jī), 如果想要圖案怎么辦?比如條紋或者方格。
工人要每隔一會(huì),調(diào)整一次織布機(jī)。
因?yàn)橄膭趧?dòng)力,所以圖案紡織品很貴。
因此 約瑟夫瑪麗 雅卡爾 發(fā)明了可編程紡織機(jī),1801年 首次亮相
每一行的圖案 由可穿孔紙卡 決定。
特定位置有沒有穿孔,決定了線是高是低。
橫線是從上從下穿過。
image.png
為了每行圖案不同,紙卡 連成條,形成連續(xù)指令。
事實(shí)證明,穿孔卡便宜 可靠 也易懂
穿孔紙卡用于 1890 年 美國(guó)人口普查。
穿孔紙卡存的是數(shù)據(jù),不是程序。
之后60年,這些機(jī)器被加強(qiáng),可以做加減乘除。
甚至可以做小決定,決定何時(shí)執(zhí)行某指令。
為了正確執(zhí)行不同計(jì)算,程序員需要某種控制面板,面板有很多小插孔,程序員可以插電線。讓機(jī)器不同部分互相傳數(shù)據(jù)和信號(hào)。
叫插線板。
不幸的是,意味著運(yùn)行不同程序需要重新連接線。1920年 控制面板變成了可拔插。讓編程更簡(jiǎn)單。
給機(jī)器插入不同的程序。
一個(gè)算銷售稅,一個(gè)算工資單。
但給插線板編程很復(fù)雜。
image.png
第一臺(tái)計(jì)算機(jī)
ENIAC 完成于1946年 用了一堆插線板,程序在紙上設(shè)計(jì)好,給eniac 連線,最多可能花三個(gè)星期。
早期計(jì)算機(jī)非常昂貴,停機(jī)幾個(gè)星期為了換程序,完全無(wú)法接受。
1950年 內(nèi)存變得可行。價(jià)格下降,容量上升,與其把程序存在插線板, 存在內(nèi)存變得可行。
這樣易于修改,方便CPU 讀取 -叫 存儲(chǔ)程序計(jì)算機(jī)。
如果內(nèi)存足夠,不僅可以存儲(chǔ)運(yùn)行的程序。
還可以存程序需要的數(shù)據(jù),包括運(yùn)行產(chǎn)生的數(shù)據(jù),程序數(shù)據(jù)都在一個(gè)地方,叫馮諾依曼結(jié)構(gòu)。
第一天馮諾依曼計(jì)算機(jī)
1948年 建造完成,綽號(hào) 寶寶
雖然有內(nèi)存,但是程序和數(shù)據(jù)依然需要某種方式輸入計(jì)算機(jī)。
到1980 年代,幾乎多有的計(jì)算機(jī)都有穿孔紙卡讀取器。
可以吸入,以這個(gè)卡片,把卡片內(nèi)容寫內(nèi)存。
放了一疊,讀取器會(huì)一個(gè)一個(gè)寫進(jìn)內(nèi)存。
數(shù)據(jù)和程序?qū)懭胪瓿桑娔X會(huì)開始執(zhí)行
簡(jiǎn)單的程序也有幾百條指令,要用一疊紙卡來存
程序運(yùn)行到最后,結(jié)果可以輸紙卡,方式當(dāng)然是打孔。
然后分析結(jié)果,或者再放入計(jì)算。
穿孔卡 的親戚是紙帶。

