回覆列表
  • 1 # IT劉小虎

    程式設計師程式設計時,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 語言程式碼。如今,其他程式語言也是類似的,都必須嚴格設計好的規則進行。

    總結

    計算機程式語言和我們人類使用的自然語言有很多共同之處,但是也有很多不一樣的地方。

    歧義性

    自然語言充滿歧義,人們透過上下文的線索和其它一些資訊來解決這個問題。但是程式語言就不能有這樣的歧義,計算機不會自己主動理解人類的意圖。

    冗餘性

    為了消除歧義減少誤解,自然語言引入了相當多的冗餘,比如很多語氣詞感嘆詞。結果是自然語言經常變得囉裡囉嗦,而形式語言則更加緊湊,極少有冗餘。

    與字面意思的一致性

    自然語言充斥著成語和隱喻,我在不同場合說的相同一句話,意義卻可能不同。而程式語言就永遠都是一個意思,語義不會隨著場合,時間變化。

    說自然語言長大的人,往往有一個適應程式設計員(形式語言)的困難過程,這也往往是入門程式設計的一個小難點。

  • 2 # 星炏

    C語言是電腦程式設計類語言,是人機互動的一個橋樑,漢語,英語是人類交流的需要,是人與人之間溝通和知識傳播傳承的橋樑和載體

  • 3 # 洛必達是個小能手

    簡單來說C語音做的使把人類的想法傳遞給機器。機器只能識別“0”或者“1”,C語音能夠把人的想法附著在機器上,讓機器什麼時候該“0”,什麼時候該“1”。

  • 中秋節和大豐收的關聯?
  • 求一些可以用來留言的經典歌詞,不要太長了,有的多發點?