計(jì)算機(jī)語言的本質(zhì)對應(yīng)的是電子電路?
作為一個軟件從業(yè)者,我并不認(rèn)同計(jì)算機(jī)語言的本質(zhì)對應(yīng)的是電子電路。
為了說清這個問題,我們先來看看什么是計(jì)算機(jī)?狹義上講的計(jì)算機(jī)就是我們?nèi)粘R姷降碾娔X——即電子計(jì)算機(jī)。而廣義上的計(jì)算機(jī)是基于有窮狀態(tài)機(jī)和可計(jì)算理論的一種計(jì)算裝置,圖靈機(jī)就是其中最為出名的一個,我們現(xiàn)在所用的電子計(jì)算機(jī)就是該模型的一種實(shí)現(xiàn)。實(shí)際上除了電子計(jì)算機(jī)之外、還有光子計(jì)算機(jī)、量子計(jì)算機(jī)等,只是還處于研究階段,沒有廣泛應(yīng)用罷了。所以說計(jì)算機(jī)語言的本質(zhì)對應(yīng)的是電子電路這樣的說法并不正確。
那么什么是計(jì)算機(jī)語言?在每種計(jì)算機(jī)中都有一套指令系統(tǒng),這些指令就是人們控制計(jì)算機(jī)的命令,也就是我們常說的機(jī)器語言,這種指令由0、1組成,普通人無法理解,即使對專業(yè)人員也有一定的難度。為了解決這種困難,人們發(fā)明了一種人類容易理解的編程方式,即將0、1表示的機(jī)器指令用一些單詞來表示,這就是我們常說的匯編語言,后來又發(fā)明了比匯編語言更高級的編程語言,如Basic、C語言、Pascal、C++、Java、C#以及Python等,越是高級的語言人類就越容易理解和使用。
這些不同的語言又是如何轉(zhuǎn)換為機(jī)器指令的呢?這就涉及到編譯器,所謂編譯器就是一個程序,它可以將計(jì)算機(jī)編程語言寫的文件轉(zhuǎn)換為計(jì)算機(jī)可以執(zhí)行的指令文件。至于怎么轉(zhuǎn)換,不同的語言會有不同的機(jī)制。在這里可以看出,高級計(jì)算機(jī)語言實(shí)際上是不依賴于具體的計(jì)算機(jī)的,即用一種語言編寫的程序,既可以運(yùn)行于電子計(jì)算機(jī),也可以運(yùn)行于光子計(jì)算機(jī)或者量子計(jì)算機(jī),所不同的只是編譯器不同罷了。
那么語言的本質(zhì)又是什么?我認(rèn)為計(jì)算機(jī)語言實(shí)際上是建立在集合基礎(chǔ)上的一套規(guī)則,通過這套規(guī)則可以將需要執(zhí)行的任務(wù)轉(zhuǎn)換為計(jì)算機(jī)可執(zhí)行的指令,通俗點(diǎn)說就是人與計(jì)算機(jī)交流的方式。
所以,題主的陳述改為這樣會更合適,即電子計(jì)算機(jī)的物質(zhì)載體是電子電路,語言的本質(zhì)是一種交流方式。