回覆列表
-
1 # IT劉小虎
-
2 # 星炏
C語言是電腦程式設計類語言,是人機互動的一個橋樑,漢語,英語是人類交流的需要,是人與人之間溝通和知識傳播傳承的橋樑和載體
-
3 # 洛必達是個小能手
簡單來說C語音做的使把人類的想法傳遞給機器。機器只能識別“0”或者“1”,C語音能夠把人的想法附著在機器上,讓機器什麼時候該“0”,什麼時候該“1”。
程式設計師程式設計時,C語言的確可以看做一門“外語”——一門我們人類與計算機交流的語言,程式設計就是將人類的意圖透過這門“外語”翻譯給計算機,計算機理解我們的意圖後,就知道該做什麼了。
不過,程式語言這門“外語”與我們人類之間交流的語言(漢語,英語等)還是有一些不同的,這裡將嘗試說說我認為的二者的區別。
自然語言和形式語言在開始看 C 語言程式碼之前,我們先來說說“自然語言”和“形式語言”。“自然語言”就是我們人類說的語言,比如漢語,英語,日語,法語等等,自然語言並不算是人為設計的,更多的是在人類進化過程中逐步形成的。
“形式語言”則是人們為了一些特定的應用人為設計的,一般包括符號和結構的設計,比如數學算式的數字和運算子號,化學家的化學式等等。
當我們閱讀一條語句時,不論它是“自然語言”還是“形式語言”,不僅要理解符號的意義,也要讀懂結構的含義。例如“我想打你”這句話,不僅要知道每個字的意思,還要知道這句話的結構,“我”和“你”的位置不同,表達的意思是截然相反的。
如今,自然語言也有語言學家研究,並且加了一些加強規則,比如主謂賓的語法等。但是自然語言的規則嚴格性,遠遠沒有形式語言那麼苛刻。
相對於“自然語言”,“形式語言”對規則要嚴格的多,我們說病句,例如“我跑得快比你”和“我比你跑得快”這兩句話,一般人也能懂。但是形式語言就不可以了,無論是符號錯誤,還是結構錯誤,都不能正確表示原本期望表達的含義。
構成算術式:1 + 8 = 9
構成水分子化學符號:H2O
存在非法符號:1 + 8@ = 9
腳標不對:HO2
C 語言程式程式語言自然是屬於形式語言,我們來看看 C 語言版本的 hello world:
雖然這只是非常簡單的程式,但是卻能說明 C 語言的很多規則。
使用printf函式之前,要首先包含它的標頭檔案stdio.h。包含標頭檔案要使用#+include符號,而且這條語句要獨自佔一行。
main是C語言預設的入口,程式從入口開始執行,它是int型別的,int 要與 main 用空格,tab或換行符隔開,函式要有括號和大括號,函式內的語句要用分號結尾。另外,上面的程式碼中有很多縮排,不過這是可選的,恰當的縮排只是為了我們人類看著方便而已。
以上都是 C 這門形式語言定義的符號和結構,要嚴格遵守規則,才能寫出正確的 C 語言程式碼。如今,其他程式語言也是類似的,都必須嚴格設計好的規則進行。
總結計算機程式語言和我們人類使用的自然語言有很多共同之處,但是也有很多不一樣的地方。
歧義性自然語言充滿歧義,人們透過上下文的線索和其它一些資訊來解決這個問題。但是程式語言就不能有這樣的歧義,計算機不會自己主動理解人類的意圖。
冗餘性為了消除歧義減少誤解,自然語言引入了相當多的冗餘,比如很多語氣詞感嘆詞。結果是自然語言經常變得囉裡囉嗦,而形式語言則更加緊湊,極少有冗餘。
與字面意思的一致性自然語言充斥著成語和隱喻,我在不同場合說的相同一句話,意義卻可能不同。而程式語言就永遠都是一個意思,語義不會隨著場合,時間變化。
說自然語言長大的人,往往有一個適應程式設計員(形式語言)的困難過程,這也往往是入門程式設計的一個小難點。