【问题标题】:Static Semantics meaning?静态语义是什么意思?
【发布时间】:2017-03-18 18:05:56
【问题描述】:

“静态语义”在编程中是什么意思?

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

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

【问题讨论】:

    标签: syntax static compiler-construction semantics


    【解决方案1】:

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

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

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

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

    【讨论】:

    • 很好的回应!谢谢。
    【解决方案2】:

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

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

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

    【讨论】:

      【解决方案3】:

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

      【讨论】:

      • 它没有任何意义。语法规则是关于语法,而不是语义。不要在这里发布猜测。
      猜你喜欢
      • 2023-03-29
      • 2018-04-11
      • 2011-07-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-01-19
      • 2017-08-13
      • 1970-01-01
      相关资源
      最近更新 更多