静态语义是什么意思?

luk*_*032 6 compiler-construction syntax static semantics

术语"静态语义"在编程中意味着什么?

静态语义,语义和动态语义之间的关系是什么?

我知道语义代表检查编写的代码(没有语法错误)是否有任何意义.

use*_*421 17

语义是关于意义的.这包括:

  • 静态语义,这是可以在编译时确定的部分,包括数据类型,是否声明所有变量,哪个声明适用于作用域中的哪个变量,它们的类型是什么,是否调用函数和方法正确的呼叫序列,分配是否类型兼容等,以及

  • 动态语义,这是程序执行时实际发生的事情.


lon*_*bap 5

程序的静态属性是编译器在编译时可以检测到的属性。

编译器在编译时只能检测到静态语义错误。

动态语义错误只能在执行时检测到,而不能由编译器在执行前检测到。