阿萍的博客

“编译器”

ubuntu 安装 riscv-gnu-toolchain

安装依赖:sudo apt install autoconf automake autotools-dev curl python3 python3-pip libmpc-dev libmpfr...

Scalar Evolution (SCEV)

1 什么是 SCEVScalar Evolution(SCEV)用于分析循环中的标量(scalar)是如何变化的(evolution)。SCEV 是 LLVM 中一个很重要的 analysis ...

计算机系统要素

源码:https://github.com/felicityin/nand2tetris-rs1 计算机布尔逻辑原始门电路:Nand (if a=b=1 then out=0 else out=...

使用 Inkwell 生成 LLVM IR

源码:https://github.com/felicityin/sysy-rs本文中的例子拷贝自:https://pku-minic.github.io/online-doc实现语言的过程大概...

CS143 编译器笔记

视频链接:CS143 编译器1 词法分析识别 token,例如关键字、标识符、数字、操作符等。正则文法有限自动机确定性有限自动机 DFA,每个输入只对应一个状态,转换过程中没有 epsilon。...

使用 LLVM 实现一门简单的语言

本文跟着 LLVM Tutorial 教程完成,加上了一些注释。本文中的代码并非工程最佳实践。1 目标用 LLVM 实现一门简单的语言 Kaleidoscope,实现对如下代码的编译运行:# 斐...

编译器前端

1 理解代码:编译器的前端技术编译器分为前端和后端:前端:编译器对程序代码的分析和理解过程。后端:生成目标代码的过程,跟目标机器有关。前端分为词法分析、语法分析、语义分析三部分,主要涉及形式语言...