美文网首页
GO/ast编程-编译原理剩余部分

GO/ast编程-编译原理剩余部分

作者: 温岭夹糕 | 来源:发表于2024-01-13 10:57 被阅读0次

目录

链接地址

1.语义分析

又叫类型检查或上下文相关分析,负责检查抽象语法树的上下文相关属性(语法分析是利用上下文无关文法),包括:

  • 变量在使用前先进行声明
  • 每个表达式都有合适的类型
  • 函数的调用和定义一致
    。。。。

再通俗点解释:
语法分析阶段,我们只能判断一个句子是不是合法,即是否符合文法,不能给出句子的含义,句子的含义是通过语义分析体现出来的,如下,我们就能知道该句子是要进行求和运算

3+4
语义分析就会去检测加号两边的子树结构是否合法,即相同类型,所以又叫类型检查 image.png

1.1符号表

符号表数据结构用来存储程序中的变量相关信息,如类型、作用域和访问控制信息等,符号表用来帮助语义分析进行上下文相关分析

2.编译器后端

image.png

2.1代码生成

image.png
image.png

3.代码优化

又叫编译优化,为什么需要进行代码优化?

  1. 源语言和目标语言有差异
  2. 程序员编写的代码不是最优的,编译器帮忙纠正
  3. 让程序比以前更小,更快等
优化的时机: image.png

4.编译过程总结

image.png

相关文章

  • JavaScript的工作原理:解析、抽象语法树(AST)+ 提

    摘要: JS的"编译原理"。 原文:JavaScript的工作原理:解析、抽象语法树(AST)+ 提升编译速度5个...

  • Golang标准库——go(1)

    ast ast ast包声明用于表示Go包语法树的类型。 func FileExports FileExports...

  • 2 Go安装和常用工具

    一、Go安装 Go定位为系统级别的编程语言,类似C的gcc编译器,Go提供编译器的安装,Go编码完成后通过编译器生...

  • JS编译——AST

    JS编译——AST AST 抽象语法树(Abstract Syntax Tree,AST),或简称语法树(Synt...

  • Go ast

    AST是抽象语法树(Abstract Syntax Tree)的简称,AST以树状形式表现编程语言的语法结构,树上...

  • 编译原理(部分)

    第1章 引论 1.1 什么是编译程序 功能:高级语言程序(源程序)→【编译程序】→低级语言程序(目标程序) 过程:...

  • Golang聚合

    教程 Go Web 编程Go语言圣经(中文版) Tips Golang 学习笔记——交叉编译 & 部署Golang...

  • babel 与 AST

    babel原理 parse把代码code 变成 ast traverse 遍历ast 进行修改 generate ...

  • Hello World

    Go简介 Go是Google开发的一种静态强类型、编译型、并发型,并具有垃圾回收功能的编程语言。因其天生并发、编译...

  • 深入webpack之babel 与 AST

    babel的原理 parse:把代码code变成AST traverse:遍历AST进行修改 generate:把...

网友评论

      本文标题:GO/ast编程-编译原理剩余部分

      本文链接:https://www.haomeiwen.com/subject/usitndtx.html