语义错误和逻辑错误之间的区别

时间:2015-03-13 16:44:31

标签: php

我在一般编程概念上阅读的一些文章中。我被告知“语法是控制语言中有效语句结构的形式规则”,而“语义是一组赋予语言陈述意义的规则”。从语义的定义来看,我觉得它与逻辑相似,如果没有,那么请问我想知道逻辑错误语义错误之间的区别?

4 个答案:

答案 0 :(得分:1)

谷歌只需简短的数千个答案就可以在你面前。

语义错误与某事物的含义有关。这意味着它违反了自然语言或编程语言的含义规则,假设我们不正确地使用编程语句。语义错误将在编译时被检测到。

并且逻辑错误是指示编写程序时使用的逻辑的错误未能解决问题。逻辑错误不会导致程序停止工作,但我们不希望获得所需的结果。

如果你想看到这个例子去这个网站..... http://newtutorial2012.blogspot.com/2012/07/differentced-between-synataxsemantic.html

答案 1 :(得分:1)

这里的答案取决于您正在阅读的书或您所在的课程。在计算机科学的许多领域,语义错误和逻辑错误之间绝对没有区别。两者都意味着程序编译,但输出错误。与往常一样,它们意味着两种不同的东西。一个简单的例子是打算在程序中使用X + 1,但是你键入了X-1。这是一个逻辑错误。如果输入X + true,如果语言允许它通过解析器,则语法错误,但X +(布尔值为true)的结果与X + 1不同。就个人而言,当涉及到诸如此类的定义不明确的术语时,我让人们定义他们喜欢的方式,并且只是从我的程序中删除错误,无论它们是什么类型的错误。

答案 2 :(得分:1)

围绕这些术语的定义似乎存在很多混淆,但这是我的理解:

语法与拼写和语法有关。

逻辑与程序流程有关。

语义与意义和背景有关。

如果由于拼写错误,名称无效,缺少括号或其他一些语法缺陷而无法执行代码,则会出现语法错误。

如果语法正确但是(无意中)一段代码从未执行过,操作不按正确的顺序进行,操作本身错误或代码操作错误的数据,则会出现逻辑错误。使用错误的条件运算符是一个常见的例子,因此无意中创建了一个无限循环或混合(有效)变量或函数的名称。

如果您的程序逻辑和语法都正确,那么代码按预期运行,但结果仍然是错误的:您可能有语义错误。混淆一个英制值的公制输入值会让你到那里。该程序没有任何问题,除了里程和公里数不相加,因此您的区域计算会丢错。

答案 3 :(得分:0)

基本区分语义错误和逻辑错误是矛盾的,因为首先在编程中产生的结果与程序的预期功能不符,其次,在程序针对预期功能运行时,逻辑错误导致语义错误。