码迷,mamicode.com
首页 > 其他好文 > 详细

编译原理——动态语义错误与静态语义错误

时间:2018-10-10 23:47:05      阅读:388      评论:0      收藏:0      [点我收藏+]

标签:ace   using   就会   语法   作用域   pre   ++   c++   存在   

  动态语义错误:    逻辑上的错误,比如死循环等,编译器在编译的时候并未发现,但逻辑上这是个错误;

  静态语义错误: 可被编译器发现的语法错误,比如 (5+6(); 这种在编译器编译的时候就会被发现的语法错误;

  

#include<iostream>

using namespace std;

int main() {
    
    int k = 0;
    for(; k<=100; );
    {
            k++;
    }
}

  如上述代码中,for 循环后面有个;号, 所以这个for循环是死循环,存在语义错误,在编译的时候是不会报错的,所以是动态语义错误。在C/C++中,直接写{ }用于产生独立的作用域,编译可以通过,符合词法、语法、静态语义。

 

编译原理——动态语义错误与静态语义错误

标签:ace   using   就会   语法   作用域   pre   ++   c++   存在   

原文地址:https://www.cnblogs.com/Lunix-touch/p/9769341.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!