zoukankan      html  css  js  c++  java
  • 编译器之语义分析

    http://blog.csdn.net/robinsongsog/article/details/51970878

    semantic: 语言的意义

    编译器的语义分析阶段将变量与其用法关联起来,检查每个表达式是否有正确的类型,还有, 将抽象的语法翻译成更简单的形式以

    方便生成机器语言(码)。

    符号表

    符号表将标识符和其类型、位置关联起来,当我们去处理变量,函数的声明时,就是将这些信息组织(绑定)起来,放在表里,当需
    要知道这些函数,变量的意义时,就去这个表里查。
     
     每一个局部变量都有其作用域(scope). 举个例子, let D in E end
    所有在D里面声明的变量、类型,还有函数只能在E结束之前是可见的,相应的,语义分析到达一个作用末尾时,后续的就直接丢弃处理。
     
     
    我们将多个这种绑定叫做环境(environment), 用箭头 |-> 表示,比如, {g |->string, a|-> int|, 其函义为a是一个整型变量,g是一个字符串
    型变量。
     
    举一个简单的例子:
     
     
  • 相关阅读:
    预定义规则 取范围数据
    oracle table 数组的赋值方法
    java 缓存读写
    webpack
    vscode setting
    webpack babel
    共享你的vscode配置
    github API很丰富
    tips
    todo
  • 原文地址:https://www.cnblogs.com/feng9exe/p/6420785.html
Copyright © 2011-2022 走看看