編譯器

在程式的錯誤中,下列何者能在編譯時就被發現?

  1. A因使用者輸入的檔案不存在而造成的錯誤
  2. B執行中可用記憶體不足的錯誤
  3. C括號沒有對應的文法錯誤
查看答案與解析

正確答案:C. 括號沒有對應的文法錯誤

括號的對應與漏寫分號等文法錯誤,一定會在語法分析的階段被發現,並使編譯停止。型別不一致等也會在語意分析中被發現。另一方面,使用者指定的檔案是否存在、執行中記憶體是否足夠,會隨執行時的環境與輸入而改變,所以在編譯時無法得知。對於這類執行期的錯誤,需要在程式中檢查回傳值等對策。

  • A. 檔案是否存在取決於執行時的環境。
  • B. 記憶體是否足夠是在執行時決定的。
  • C. 正確。文法錯誤會由語法分析發現。
練習這個領域 前往領域頁面

編譯器的其他題目

  1. 在具靜態型別的語言中,編譯器進行型別檢查的主要優點為何?
  2. 在詞法分析中,常用來表示辨識token之規則的是下列何者?
  3. 下列何者是用來表示許多程式語言的文法、並成為語法分析之基礎的文法種類?
  4. 運算式 2 + 3 * 4 的抽象語法樹之形狀,下列何者正確?
  5. 關於中介表示之一的三位址碼(three-address code)的特徵,下列何者正確?

這個領域的比較