首先舉個例子。
如果一個不懂英語的中國人和一個不懂中文的英國人交流,可以藉助於翻譯工具(或軟體,比如金山詞霸,金山快譯,南極星等),也可以通過通過英語翻譯(這裡指人)來做英漢互譯。
當英語或中文有語法錯誤或者筆誤時,翻譯工具往往不能準確翻譯,因為它不具備像人一樣的智能,不能自動識別錯誤和準確地糾正錯誤。而英語翻譯(人)就可以做到這一點。
下面是用Google翻譯工具來翻譯一段中文:
“以您的語言輸入一個搜尋字詞組,輕鬆尋找其他語言的網頁。為方便您閱讀,我們會對結果進行翻譯”。
:
翻譯成的英文:
“To your language to enter a search phrase and easily search in other languages page. For the convenience of your reading, we will translate the results.”
其中“To your language to enter a search phrase and easily search in other languages page. ”翻譯的不準確。
再舉一例:
“即使在走投無路時,人也不要放棄生的機會,因為太陽每天都是新的.”翻譯為“Even in desperation, the people should not give up the opportunity for students, because the sun is a new day.”
類似地,我們同電腦打交道,如何讓電腦(機器)理解我們的自然語言呢?
電腦只能識別和執行二進位形式的指令,我們可以建立一套新的語言(比如C語言,Pascal,Basic等),這種語言符合人類的思維習慣,便於學習,理解和使用。通過翻譯工具把這種語言書寫的代碼翻譯為二進位形式機器語言。(Hello.cpp):
編譯後的檔案(HelloC.exe) ,(注意:圖中顯示為十六進位便於查看和編輯)
把C語言代碼翻譯為電腦語言是靠編譯器(compiler)來做的,因此,當出現任何文法或書寫錯誤時,編譯器不能準確翻譯為電腦語言。雖然編譯器在編譯之前會檢查各種錯誤,但是有些錯誤是無法檢查出來的,比如:運行時才能出現的錯誤,程式演算法錯誤,書寫筆誤等。