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


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

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

  

#include<iostream>

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

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

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM