1. 語法分析器可以發現語法錯誤
可以。語法分析器通常是作為編譯器或解釋器的組件出現的,它的作用是進行語法檢查、並構建由輸入的單片語成的數據結構。語法分析器可以發現語法錯誤,語法分析器使用一個獨立的詞法分析器從輸入字元流中分離出一個個的「單詞」,並將單詞流作為其輸。語法是語言學的一個分支,研究按確定用法來運用的"詞類"、"詞"的曲折變化或表示相互關系的其他手段以及詞在句中的功能和關系。
2. c編譯器可以找出c源程序中所有的語法錯誤和邏輯錯誤
錯。c編譯器可以找出c源程序中所有的語法錯誤,但並不找邏輯錯誤,也找不出邏輯錯誤。因為編譯器不可能知道編程者想要做什麼事。
3. C++,編譯過程中,編譯和連接時分別檢查的是什麼錯誤(如語法……)
編譯的時候檢查語言錯誤,包括關鍵字對應的語義邏輯,括弧匹配,變數和函數存在定義或聲明等
鏈接的時候,就要真正把需要調用的各種變數和函數的二進制代碼匹配起來,比如你使用了某個變數,你使用之前聲明為外部定義,而實際上你沒有給出過實際定義,這是就會報錯了。這是所有可執行代碼檢測的過程。之前編譯是每個文件單獨變數,生成obj文件。
4. c語言改錯 怎麼通過編譯程序檢查出語法錯誤
編譯器編譯時對你的代碼錯誤自動顯示出來,
告訴你錯在哪裡
你滑鼠雙擊他的錯誤提示
就可以跳轉到代碼有錯誤的那一行了
編譯器VC
Build里點擊ReBuildAll
就保證可以編譯了
5. 編譯程序可發現源程序全部的什麽錯誤和部分的什麽錯誤
編譯程序可發現源程序全部的「語法」錯誤和部分的「語義」錯誤。
特意找了詳細解釋幫你理解:用戶編寫的源程序不可避免的會有一些錯誤,這些錯誤大致可以分為靜態錯誤和動態錯誤。動態錯誤也稱動態語義錯誤,它們發生在程序運行時,例如除數為0、引用數組元素下標錯誤等。靜態錯誤是之編譯階段發現的程序錯誤,可分為語法錯誤和靜態語義錯誤,如單詞拼寫錯誤、標點符號錯誤、表達式缺少操作數、括弧不匹配等有關語言結構上的錯誤稱為語法錯誤,而語義分析時發現的運算符與運算對象不合法等錯誤屬於靜態語義錯誤。語義分析階段主要檢查源程序是否包含靜態語義錯誤,而一般的編譯器很難檢查出動態語義錯誤。
6. 編譯的時候能發現哪些錯誤
詞法分析階段能夠檢測出輸入中不能形成源語言任何記號的錯誤字元串。語法分析階段可以確定記號流中違反源語言結構(語法)規則的錯誤。語義分析階段試圖檢測出具有正確語法結構但對操作無意義的部分。例如,我們試圖將兩個標識符相加,其中一個標識符是數組名,而另一個標識符卻是過程名。(編譯原理-龍書原話)。其他錯誤例如演算法錯誤編譯程序檢測不出。
7. 在java中,源程序能通過編譯,能說明什麼問題
通過編譯只能說明當前沒有語法錯誤,例如String s = null;就是個合乎語法的寫法,但是如果這樣 Sring s = null;就會出現編譯錯誤,因為沒有Sring這個類型。
通過編譯的程序不一定會正確的運行,因為可能存在邏輯錯誤,邏輯錯誤就是諸如數組越界這類的錯誤。
不知道這么說樓主明白了沒~
除數不為0不是語法錯誤,首先來看,1/0這個式子是沒有錯的,錯的是結果,因為0不能作為除數,所以這是邏輯錯誤。