日韩黑丝制服一区视频播放|日韩欧美人妻丝袜视频在线观看|九九影院一级蜜桃|亚洲中文在线导航|青草草视频在线观看|婷婷五月色伊人网站|日本一区二区在线|国产AV一二三四区毛片|正在播放久草视频|亚洲色图精品一区

分享

軟件是用編程軟件編的,編程軟件又怎么來的?

 大隆龍 2017-10-29

謝邀,我開始學(xué)JAVA的時候也想過這個問題,很遺憾,老師當(dāng)時并沒有解答我。

第一個編程軟件怎么來的?

你能有這種想法就很不錯,有些人活了一輩子,從來沒想過1+1為什么=2

我不太懂,隨手摘抄,稍微編輯下,希望對你有幫助,侵權(quán)聯(lián)系我。

首先,軟件和硬件在邏輯功能上是可以等價實現(xiàn)的,能夠用軟件實現(xiàn)的自然可以固化成為硬件。

那么最初的“夏娃”——原始軟件,它是固化成硬件,我們一般稱之為“固件”,這一固件必須通過“硬布線”,直接在電路板上操作刻錄。

有了這最基本的“軟件”,當(dāng)我們將一組指令電平信號輸入電路時,根據(jù)電平的電壓,電路在這一“軟件”的控制下進行不同的開通閉合電路,整體形成一個有序的操作,宏觀上就表現(xiàn)出我們所見的軟件形式。

值得注意的是這個原始軟件它不一定就包含第一個編譯程序,因為我們可以根據(jù)具體計算機的指令,預(yù)先將這些指令的電平表示先行刻制在光盤、軟盤、硬盤等等,只要計算機的能夠讀取這些指令,那么在原始軟件的控制下我們就能運行上述媒介上的程序。

現(xiàn)在的計算機大部分是在啟動時從硬盤讀取第一條操作系統(tǒng)指令,當(dāng)然這之前還有很多工作要做:必要的自檢等。

所以,第一個軟件準(zhǔn)確的來說應(yīng)該叫“固件”更確切。因為之后的軟件要運行在計算機上必須通過這個“固件”,而除去這個固件來說的第一個軟件,它們都不是真正意義上的第一個。

很久以前,在電子計算機誕生之前,計算機這個角色是由(女)人來扮演的。大多數(shù)計算都是由人類女性手工完成的

在之后是真空管。這些真空管有一個有趣的特性:用三個針腳可以控制真空管兩端節(jié)點的電流。這使得真空管在處理模擬信號方面是可行的,真空管可以控制機器和傳輸模擬信號。

人們使用這種理論構(gòu)建了一些機械式計算機,但是由于機械計算機的速度太慢而且成本高昂,所以沒有真正的應(yīng)用。

在這之后,人們意識到,真空管可以當(dāng)做門,來執(zhí)行布爾運算。電子計算機變得可行,而這樣就開始了電腦的時代。

現(xiàn)在,電子門的工作方式是由開關(guān)驅(qū)動。假設(shè)你在一個電路中連接一堆門,你當(dāng)然也可以添加一些門,于是乎你得到一個加法器。每個加法器有一堆開關(guān)代表著將要添加的第一個數(shù)字,另一對開關(guān)代表著要添加第二個數(shù)字。打開某些開關(guān),并關(guān)閉其他開關(guān)以輸入兩個數(shù)字,輸出將顯示兩個數(shù)字的總和[1]。

原始 CPU 就是許多這樣的電路的集合。

每個電路需要一些二進制的輸入,通過二進制指令代碼來選擇要激活的電路。在早期,人們通過切換開關(guān)來操作。

因此,早期的計算機通過翻轉(zhuǎn)開關(guān)進行編程。

請注意,此時計算機已開始編程,但沒有出現(xiàn)編程語言。

順便說一下,在操作那些開關(guān)的人都是被稱為「computer」的女人。所以,這些女人都是最最最最早的程序員。

接下來是固態(tài)晶體管,其提供與真空管相同的功能,但它們更小,更便宜并且持續(xù)更長時間。所以電腦變得越來越便宜,越來越廣泛。

由于操作員(程序員)不得不坐在終端前,打開閉合開關(guān),非常不方便,所以后來又發(fā)明出了穿孔打卡的方式,能夠更簡單方便地切換開關(guān)。

所以,打孔的卡上面有很多排線,每條線都有可以打的孔。這些線和開關(guān)相互匹配。

現(xiàn)在開始,不在天天操作那些乏味的開關(guān)了,改為程序員們?nèi)ゴ蚩琢恕?/p>

每一條線都代表著不同的指令。有個機器,可以連接到計算機讀取這些指令。

就這樣,我們可以在打孔卡上面寫程序啦。這減少了相當(dāng)多的工作,寫一個卡片能使用相當(dāng)久,也避免了重復(fù)造輪子。

因此,當(dāng)程序員開始在卡片上寫這些程序時,人們開始構(gòu)建程序庫(libraries)。隨著時間的推移,大部分的程序漸漸的有了一些規(guī)則手冊來指導(dǎo)編寫。雖然比之前手動開關(guān)方便了太多,但還是很繁瑣。

這時候,天才格雷斯·霍珀(Grace Hopper)姐姐,想出了一個很棒的點子。

她的想法是革命性的飛躍。

她最大的貢獻是發(fā)明了世界上第一個編譯器 (Compiler),名字叫做 A-0。當(dāng)時是沒有任何組合語言及程序語言存在的,所有的程序設(shè)計人員都要把程序翻譯成機器碼,01101010110 這樣的形式,在紙上打孔,再送到機器里去讀。

Grace 產(chǎn)生了一種想法,她想設(shè)計一種程序,讓人可以用類似英文的語法,把想做的事寫下來,然后用這個程序把英文翻譯成機器的語法,交給機器去執(zhí)行。這個想法就是今日的 Compiler (編譯器)。

A-0 的原理是:編譯程序把穿孔卡加載到計算機中。然后編寫的程序?qū)⒈凰腿胗嬎銠C。計算機會吐出另一組包含機器代碼的卡片。第二組卡片將被裝入計算機,計算機就可以執(zhí)行這段新的程序了。

再說個趣事,知道為什么叫做「編譯」么?正常來說,應(yīng)該叫做翻譯吧?正常來說,compiling 這個詞意味著有序的放置收藏,例如編譯音樂集。但是編譯和二進制代碼有什么關(guān)系呢?

因為啊,Grace 姐姐把它描述為收集子程序的機器代碼[2],邏輯上類似于你編譯音樂收藏。

編程語言因為編譯器而迎來了曙光。雖然只是科技史上的一小步,但是真的是革命性的,改變了人類對于編程的思考方式。它創(chuàng)造了抽象的思維方式。這意味著他們可以在更高的層次上思考。這改變了人們對如何編寫程序的想法。

A-0 編譯器是大量編程語言的開始,大多數(shù)現(xiàn)代編程語言都可以追溯到 A-0。

這是編程語言的始祖。

    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多