博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
编译器之语义分析
阅读量:6903 次
发布时间:2019-06-27

本文共 442 字,大约阅读时间需要 1 分钟。

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

semantic: 语言的意义

 

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

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

 

符号表

符号表将标识符和其类型、位置关联起来,当我们去处理变量,函数的声明时,就是将这些信息组织(绑定)起来,放在表里,当需
要知道这些函数,变量的意义时,就去这个表里查。
 
 每一个局部变量都有其作用域(scope). 举个例子, let D in E end
所有在D里面声明的变量、类型,还有函数只能在E结束之前是可见的,相应的,语义分析到达一个作用末尾时,后续的就直接丢弃处理。
 
 
我们将多个这种绑定叫做环境(environment), 用箭头 |-> 表示,比如, {g |->string, a|-> int|, 其函义为a是一个整型变量,g是一个字符串
型变量。
 
举一个简单的例子:
 
 
你可能感兴趣的文章
UNIX网络编程——getsockname和getpeername函数
查看>>
Bad Request - Request Too Long
查看>>
sqlist
查看>>
全员利润管理实践(3)-生产的利润管理
查看>>
[转帖]c头文件(.h)的作用
查看>>
http请求的request和response
查看>>
eclipse中添加插件
查看>>
[CodeForce455A]Boredom
查看>>
Research
查看>>
vue实现app页面切换效果
查看>>
修改phpMyAdmin 导入MySQL数据库文件大小限制
查看>>
写了一个关于简单的Excel表格导入sqlserver 2013-08-04 15:23 391人阅读 评论(...
查看>>
[ACM - 图论]还是畅通工程(最小生成树+并查集)
查看>>
码农也来关注下经济问题<美元加息>对我们的影响
查看>>
自娱自乐的小题目(1)
查看>>
Pinyin4j的基本用法 获得拼音的声调
查看>>
手动安装Firefox Linux
查看>>
设计一个一百亿的计算器
查看>>
Linux自动执行sh脚本
查看>>
普通rgb转换为16进制
查看>>