导航:首页 > 源码编译 > 编译成ast常用方法

编译成ast常用方法

发布时间:2024-12-24 21:52:04

编译原理简单吗

编译原理主要是讲了编译器的实现。
那什么是编译器呢?
编译器就是将 源程序→编译器 →目标机器代码的程序
本文将用一段最简单的代码进行说明

1 + 2 + 3

第一步. 词法分析
当代码从文件中被读入到编辑器时,将会进行词法分析
示例中的代码最终会转换为(下面为伪代码)

1 ADD 2 ADD 3

第二步. 语法分析
这一步编译器将会把词法分析的结果转换成AST(abstract syntax tree, 抽象语法树)
所有的操作数将会作为子节点,所有的操作符将会作为父节点。(不知道的同学可以看一下树的生成)

1 + 2 + 3 对应的树
3. 生成目标代码
对上面的树进行后序遍历,将会得到下面的伪代码

((1 2 +) 3 +)

生成的汇编伪代码为

START:

MOV VALUE, 0//初始化结果为0

ADD VALUE, 1

ADD VALUE, 2//(1 2 +)的汇编伪代码

ADD VALUE, 3

RET VALUE

END

最终汇编代码会被编译成机器代码,在计算机上执行。
下面为一般情况下的编译流程
1. 词法分析(生成代码对应的token序列,使用正则表达式)
2. 语法分析(生成AST)
3. 语义分析(对代码的语法进行检查)
4. 代码生成(生成可执行的代码)

阅读全文

与编译成ast常用方法相关的资料

热点内容
怎样设置自己手机号码加密 浏览:700
服务器怎么设置登录地址 浏览:997
日本监控摄像头用什么APP 浏览:58
株洲歪胡子游戏源码 浏览:140
朔源码燕窝会假吗 浏览:279
php是否支持gd 浏览:925
旅游查攻略下载什么app 浏览:774
ps存储不在原始文件夹 浏览:37
android直播开发CSDN 浏览:750
apacheaddtypephp 浏览:501
女程序员美剧 浏览:639
安卓怎么隐身登录王者荣耀 浏览:854
通达信前五源码编写 浏览:19
gcc怎么编译qt程序 浏览:925
华为文件夹命名大全 浏览:383
php无限分类循环 浏览:41
北漂程序员营养餐 浏览:105
扫描件pdf转换成图片 浏览:58
忍者必须死服务器升级到什么时候 浏览:339
碱基最多配对算法 浏览:829