![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Compiler
TBAALi
这个作者很懒,什么都没留下…
展开
-
AST解释
AST 是什么 AST (Abstract Syntax Tree (抽象语法树)) 是源代码语法结构的一种抽象表示。它以树状的形式表现编程语言的语法结构。由一堆节点 (Node) p组成,每个节点都表示源代码中的一种结构。不同结构用类型曲风,常见的类型由 : Identifer (标识符),BinaryExpression (二元表达式),VariableSeclaration (变量定义),FunctionDeclaration (函数定义) 等。 AST 是编译器看的,编译器会将源码转化成原创 2021-12-25 21:01:15 · 292 阅读 · 0 评论 -
clang 命令行生成 Token、Ast 与 IR
clang_notes查看编译过程 clang -ccc-print-phases main.m词法分析生成 Token clang -fmodules -E -Xclang -dump-tokens main.m语法分析生成语法树 AST clang -fmodules -fsyntax-only -Xclang -ast-dump main.m生成中间代码 .ll clang -S -emit-llvm main.m .bc clang -c -emit-llvm main.mIR 基本语原创 2021-12-19 08:46:05 · 1839 阅读 · 0 评论 -
llvm源码编译
下载源码git clone https://github.com/llvm/llvm-project.gitcd llvm-project编译 llvmmkdir llvm-buildcd llvm-buildcmake -G "Unix Makefiles" -DCMAKE_INSTALL_PREFIX=/usr/local/clang -DCMAKE_BUILD_TYPE=Debug ../llvm/makemake install编译 clangmkdir clan.原创 2021-05-05 17:37:25 · 157 阅读 · 0 评论 -
C语言编译过程总结
概述C语言的编译链接过程要把我们编写的一个c程序(源代码)转换成可以在硬件上运行的程序(可执行代码),需要进行编译和链接。编译就是把文本形式源代码翻译为机器语言形式的目标文件的过程。链接是把目标文件、操作系统的启动代码和用到的库文件进行组织形成最终生成可执行代码的过程。过程图解如下:从图上可以看到,整个代码的编译过程分为编译和链接两个过程,编译对应图中的大括号括起的部分,其余则为链接过程。编译过程编译过程又可以分成两个阶段:编译和汇编。编译编译是读取源程序(字符流),对之进行词法和语法的分析,原创 2021-01-26 16:45:33 · 198 阅读 · 0 评论 -
一个简单的语法制导翻译器
一个简单的语法制导翻译器翻译非终结符号的过程#include <iostream>using namespace std;int main(){ cout<<"Anycodes, Hello World of C++!"<<endl; return 0;}void expr(){ term(); rest...原创 2019-10-27 17:15:50 · 511 阅读 · 0 评论 -
Compiler
Compilercompiler.h#pragma once/*** @ Name: Simplified C Compiler** @ Auther: TBAALi** @ Time: 2019-07-24** ** @ Introduction:** SC 语言(源程序) -> SCC编译器 -> Intelx86机器语言(目标语言)** ...原创 2019-07-24 21:23:49 · 558 阅读 · 5 评论