文章摘要: 所以不管什麼資訊包括文字,圖片,檢視,聲音等各種資訊在計算機看來是沒有任何區別的,都是電平訊號的高低。
衆所周知,電子計算機是採用二進制進行運算和通訊的。所以不管什麼資訊包括文字,圖片,檢視,聲音等各種資訊在計算機看來是沒有任何區別的,都是電平訊號的高低。所以對於計算機來說最終執行的命令都是以二進制形式存在的。故理論上任何的自然語言都是可以用來編寫程式的,故中文當然可以。但任何自然語言計算機都必須轉換成計算機可以理解的二進制程式碼即電平的高低。
來看一個例子 比如我有如下計算機
其中 i1 i2是兩個接收指令的埠 A B C D 為計算機的四個資料埠。
我有一個數據手冊如下
當i2=0 ,i1=0時讀入A埠的資料,以此類推。當我希望讀取C埠的資料的時候我只想要給i2埠一個高電位同時給i1埠一個低電位,即i2=1,i1=0。這樣計算機就懂得了我們的想法從而將C口資料讀入。
我們發現這樣做是很不方便的。我們必須要記住i2 ,i1埠的電位高低的二進制組合才能控制計算機。特別是要求的功能越複雜,這樣做難度就越大。比如我希望先讀A再讀C再讀B。那這樣我就必須先去查閱指令表、得到00 10 01這麼一串數字。程式設計師來說是極為不清晰的。於是人們就想出給這些命令都取一個名字。比如讀取A埠,取名為inA 讀B口取名inB。那麼在完成上面的先讀A再讀C再讀B的需求時程式就變成了inA inC inB。這樣對於寫程式的人和後面看這個程式的人都一目瞭然。則這時的inA inB這種形式的程式語言就是比二進制更高一級的語言了。
剛纔說了計算機只能識別二進制,故我們的inA inB肯定是不能直接被機器識別的,故我們就需要翻譯,當然可以人工翻譯,更簡單的就是開發一種專門翻譯的工具。這種用來翻譯語言的工具就叫命令直譯器或編譯器。它們被設計來將特定的語言翻譯成機器可識別的二進制程式碼。
因此任何的高階程式語言如java c等都需要編譯器將他們編譯成最原始的二進制機器程式碼,然後將他們存在計算機的儲存介質中,計算機就可以自動去讀取並按指令執行了。