静态语义是什么意思?

Static Semantics meaning?

术语 "static semantics" 在编程中是什么意思?

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

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

语义是关于意义的。它包括:

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

  • 动态语义,即程序执行时实际发生的情况。

资料来源:Frank de Remer,编译器构造 课程,加利福尼亚大学桑茨克鲁兹分校,1979 年。

静态语义:这意味着你的编程语句不应该有可能根据语法规则生成一个以上的结果。

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

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

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