2015-03-13 44 views
1

來自一些文章我讀過一般編程概念。我被告知,「語法是控制語言中有效語句構造的正式規則」,而「語義是一組爲語言語句賦予意義的規則」。從語義的定義來看,我覺得它類似於邏輯,如果不是,那麼請我想知道邏輯錯誤之間的區別語義錯誤語義錯誤與邏輯錯誤之間的區別

+0

https://msdn.microsoft.com/zh-cn/library/aa290881%28v=vs.71%29.aspx – j08691 2015-03-13 16:47:18

回答

0

只要Google它數以千計的答案將在你面前簡短介紹。

語義錯誤與某些事物的含義有關。這意味着它違反了自然語言或編程語言的含義規則,假設我們正在使用編程語句不當,語義錯誤將在編譯時被檢測到。

並且邏輯錯誤是指示編碼程序時使用的邏輯錯誤無法解決問題。邏輯錯誤不會導致程序停止工作,但我們所需的結果將不會得到。

如果你想看到的例子去這個網站

..... http://newtutorial2012.blogspot.com/2012/07/differentced-between-synataxsemantic.html

+0

感謝您的指導。我會檢查你提供的鏈接。 – wildav 2015-03-13 17:24:45

0

這裏的答案取決於你正在閱讀的書或者你是在課堂上,在計算機科學的許多領域,語義錯誤和邏輯錯誤之間絕對沒有區別。這兩個意思是程序編譯,但輸出是錯誤的。就像往常一樣,它們意味着兩件不同的事情。一個簡單的例子是打算在你的程序中使用X + 1,但是你鍵入了X-1。這是一個邏輯錯誤。如果您輸入X + true,如果語言允許它通過解析器,但是X +(布爾值爲true)的結果與X + 1不相同,那麼它將是語法錯誤。就個人而言,當涉及到這樣的定義不明確的術語時,我讓人們定義他們的喜好,並從我的程序中刪除錯誤,無論他們是哪種錯誤。

+0

謝謝,我想我現在得到它。 – wildav 2015-03-13 17:23:58

0

似乎有很多圍繞這些術語的定義混亂的,但這裏是我的理解:

語法涉及到的拼寫和語法。

邏輯涉及程序流程。

語義與意義和上下文有關。

如果由於錯別字,無效名稱,缺少括號或其他語法缺陷而導致代碼執行失敗,則會出現語法錯誤。

如果語法正確但一段代碼從未執行過,操作沒有按照正確的順序進行,操作本身是錯誤的或者代碼對錯誤的數據進行操作,則會出現邏輯錯誤。使用錯誤的條件運算符是一個常見的例子,所以無意中創建了一個無限循環或混合(有效)變量或函數的名稱。

如果您的程序邏輯和語法都正確,所以代碼按預期運行,但結果仍然錯誤:您可能有語義錯誤。混淆一個英制值的度量輸入值會讓你在那裏。該計劃沒有什麼問題,只是里程和公里不相加,所以您的面積計算會拋出錯誤的數字。