計算機編程語言發(fā)展史
1 編程語言簡介
編程語言(programming language
)可以簡單的理解為一種計算機和人都能識別的語言。一種計算機語言讓程序員能夠準(zhǔn)確地定義計算機所需要使用的數(shù)據(jù),并精確地定義在不同情況下所應(yīng)當(dāng)采取的行動。一方面,人們要使用計算機語言指揮計算機完成某種特作,就必須對這種工作進(jìn)行特殊描述,所以它能夠被人們讀懂。另一方面,計算機必須按計算機語言描述來行動,從而完成其描述的特定工作,所以能夠被計算機“讀懂”。
2 編程語言發(fā)展
計算機編程語言能夠?qū)崿F(xiàn)人與機器之間的交流和溝通,而計算機編程語言主要包括低級語言、高級語言以及面向?qū)ο笤O(shè)計語言,具體內(nèi)容如下:
2.1 機器語言
機器語言是用二進(jìn)制代碼表示的計算機能直接識別和執(zhí)行的一種機器指令的集合。它是計算機的設(shè)計者通過計算機的硬件結(jié)構(gòu)賦予計算機的操作功能。二進(jìn)制用兩個不同的符號0(代表零)和1(代表一)來表示 ?,F(xiàn)代的計算機和依賴計算機的設(shè)備里都使用二進(jìn)制。早期的程序設(shè)計均使用機器語言,程序員用0、1數(shù)字編程的程序代碼打在紙帶或卡片上,1打孔、0不打孔,再將程序通過紙帶機或卡片機輸入計算機從而進(jìn)行運算。機器語言,也就是第一代編程語言。
2.2 匯編語言
不難看出機器語言作為一種編程語言, 靈活性較差可閱讀性也很差,為了減輕機器語言帶給軟件工程師的不適應(yīng),人們對機器語言進(jìn)行了升級和改進(jìn):用一些容易理解和記憶的字母,單詞來代替一個特定的指令。通過這種方法,人們很容易去閱讀 已經(jīng)完成的程序或者理解程序正在執(zhí)行的功能,對現(xiàn)有程序的bug
修復(fù)以及運營維護(hù)都變得更加簡單方便,這種語言就是我們所說的匯編語言, 即第二代計算機語言。
2.3 高級語言
在編程語言經(jīng)歷了機器語言,匯編語言等更新之后,人們發(fā)現(xiàn)了限制程序推廣的關(guān)鍵因素——程序的可移植性。需要設(shè)計一個能夠不依賴于計算機硬件,能夠在不同機器上運行的程序。這樣可以免去很多編程的重復(fù)過程,提高效率,同時這種語言又要接近于數(shù)學(xué)語言或人的自然語言。同時,因為資源的稀缺,計算機的運行效率也成為了那個年代工程師追尋的目標(biāo)。為了更高效的使用計算機,人們設(shè)計出了高級編程語言,來滿足人們對于高效簡的編程語言的追求。用高級編程語言編寫的程序需要經(jīng)過翻譯,翻譯成機器所能識別的二進(jìn)制數(shù)才能由計算機去執(zhí)行。
2.4 面向?qū)ο笳Z言
隨著計算機硬件的飛速發(fā)展,以及應(yīng)用復(fù)雜度越來越高,軟件規(guī)模越來越大,原有的程序開發(fā)方式已經(jīng)越 來越不能滿足需求。傳統(tǒng)的面向過程(包括 結(jié)構(gòu)化程序設(shè)計)方法已經(jīng)越來越不能適應(yīng)快速多變的業(yè)務(wù)需求了,軟件領(lǐng)域迫切希望找到新的銀彈來解 決軟件危機,在這種背景下,面向?qū)ο蟮乃枷腴_始流行起來。
面向?qū)ο笳Z言(Object-Oriented Language)是一類以對象作為基本程序結(jié)構(gòu)單位的程序設(shè)計語言,指用于描述的設(shè)計是以對象為核心,而對象是程序運行時刻的基本成分。語言中提供了類、繼承等成分,有識認(rèn)性、多態(tài)性、類別性和繼承性四個主要特點。
3 碼農(nóng)洞見
3.1 編程語言Bug的由來
Bug一詞的原意是“臭蟲”或“蟲子”。但是現(xiàn)在,在電腦系統(tǒng)或程序中,如果隱藏著的一些未被發(fā)現(xiàn)的缺陷或問題,人們也叫它“bug”,這是怎么回事呢?
1945年,計算機還是由機械式繼電器和真空管驅(qū)動的,機器有房間那么大。體現(xiàn)當(dāng)時技術(shù)水平的MarkⅡ,是由哈佛大學(xué)制造的一個龐然大物。當(dāng)技術(shù)人員正在進(jìn)行不整機運行時,它突然停止了工作。他們爬上去找原因,發(fā)現(xiàn)這臺巨大的計算機內(nèi)部一組繼電器的觸點之間有一只飛蛾,這顯然是由于飛蛾受光和熱的吸引,飛到了觸點上,然后被高電壓擊死。
原來,第一代的計算機是由許多龐大且昂貴的真空管組成,并利用大量的電力來使真空管發(fā)光??赡苷怯捎谟嬎銠C運行產(chǎn)生的光和熱,引得一只小蟲子(Bug)鉆進(jìn)了一支真空管內(nèi),導(dǎo)致整個計算機無法正常工作。研究人員費了半天時間,總算發(fā)現(xiàn)原因所在,把這只小蟲子從真空管中取出后,計算機又恢復(fù)正常。后來,Bug這個名詞就沿用下來,用來表示電腦系統(tǒng)或程序中隱藏的錯誤、缺陷、漏洞等問題。
到此這篇關(guān)于Java計算機編程語言發(fā)展史的文章就介紹到這了,更多相關(guān)計算機編程語言發(fā)展史內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Java實現(xiàn)限定時間CountDownLatch并行場景
本文將結(jié)合實例代碼,介紹Java實現(xiàn)限定時間CountDownLatch并行場景,文中通過示例代碼介紹的非常詳細(xì),需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2021-07-07Java中使用ForkJoinPool的實現(xiàn)示例
ForkJoinPool是一個功能強大的Java類,用于處理計算密集型任務(wù),本文主要介紹了Java中使用ForkJoinPool的實現(xiàn)示例,具有一定的參考價值,感興趣的可以了解一下2023-09-09Java while(scanner.hasNext())無法跳出的解決方案
這篇文章主要介紹了Java while(scanner.hasNext())無法跳出的解決方案,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2021-10-10spring基礎(chǔ)系列之JavaConfig配置詳解
本篇文章主要介紹了spring基礎(chǔ)系列之JavaConfig配置詳解,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2017-07-07