编译器---语义分析(java)

语义分析的任务:

  • 负责检查抽象语法树的上下文相关属性:
  1. 变量使用前,需要事先定义
  2. 变量运算时,类型需要匹配
  3. 变量的作用域问题
  4. ......
  • 做一些相关的优化

上下文相关属性的检查方法:

  • 关键在于构建一个变量的符号表用于存储每个被定义的变量的相关属性(类型,作用域,引用数,等等....),每次做必要的语义分析的时候,直接访问符号表,如果没有找到变量的定义,则直接报错。

代码等价优化:

  1. 优化时不能改变源程序代码语义
  2. 优化可以多种多样,总是可以更好。
  3. 优化代码原则上可以出现在编译器分析的各个阶段。

语义分析代码-github

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,896评论 18 139
  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 173,179评论 25 708
  • 转眼间,2016年已经过去了四分之一多,2015的总结还是空无一字,去年过得十分匆忙,充满了各种变化,心态也经历了...
    禅悟修人心阅读 98评论 0 0
  • 七个习惯签到20170425 【一、上周行动】 上周公司组织封闭式培训,每天从早上7点开始到晚上10点多才能结束,...
    白洲笔记阅读 222评论 0 0
  • 今天看到一个新闻,说武汉市出台政策,打算设置“大学生最低工资”,并且要让大学生能够以低于市场价20%的价格买到房(...
    龚振江阅读 360评论 0 0