首页
学习
活动
专区
工具
TVP
发布

编译器开发

专栏成员
34
文章
41346
阅读量
13
订阅数
TransformerModel-基于miniGPT理解
minGPT项目中实现了多种GPT模型(包括GPT2的多个版本),其中结构最简单的是nanoGPT。
hunterzju
2024-05-16
1540
正则引擎设计与实现——基于子集构造法
在自然语言中, 以英语为例, 构成句子的最小单元,可以是单词、短语, 这些最小单元称作 词素(lexeme) . 词素具有属性, 比如动词、名词、副词、形容词等, 这些属性决定了语法层面, 其在句子里可充当的成分.
hunterzju
2023-05-09
3160
C++设计模式--Visitor模式
设计模式中,Visitor模式可以实现数据结构和数据操作的分离,主要适用以下场景:
hunterzju
2023-04-06
3520
MLIR中Dialects分类及关联
(可以跳过的废话) Dialect可以算是MLIR设计的灵魂所在,但是在学习MLIR过程中,众多Dialect也会带来很多困惑:某个Dialect具体作用和含义是什么?为什么要lowering到某个Dialect?虽然官方文档中有Dialect相关的文档,但是一方面文档给出的信息有限,有的文档并没有对Dialect做整体介绍(比如SCF Dialect,甚至都没介绍其全称);另一方面缺少对各个Dialect之间关系的介绍。这给深入理解Dialect带来一些困难。在翻阅MLIR讨论区的时候意外发现了一篇对Dialect的介绍:codegen-dialect-overview,觉得受益匪浅,整理分享给大家。
hunterzju
2022-04-28
1.6K0
MLIR-Toy-实践-4-转换到LLVM IR运行
之前的文章基于MLIR中的Toy教程添加了操作OrOp,并从Toy Dialect降级到了Standard Op。本文主要记录了最终降级到LLVM Dialect并调用LLVM JIT执行的过程。
hunterzju
2022-04-28
9790
MLIR-Toy-实践-3-Dialect转换
上篇文章为Toy添加了一个新Op(toy.or)表示逻辑或。本文介绍如何将OrOp降低到其他方言对应的Op,主要用到了RewritePattern和ConversionPattern相关的内容。
hunterzju
2022-04-28
2.4K0
MLIR入门教程7-添加struct类型
https://github.com/hunterzju/llvm-tutorial
hunterzju
2022-04-28
1K0
MLIR入门教程6-降低到LLVM并生成代码
https://github.com/hunterzju/llvm-tutorial
hunterzju
2022-04-28
1.4K0
CS143-PA4: 抽象语法树语义分析
Class检查 在class符号表中添加了5种基本类(Object, IO, Int, Bool, Str); 检查主类Main和主函数main是否定义,按照规范应该被定义; 检查SELF_TYPE类是否被定义,按照规范不应该被定义; 检查类(class)或者函数(method)是否被重复定义,按照规范不应该被定义; 检查是否存在自定义类继承了Int,Str,Bool,SELF_TYPE或者未定义的类,按照规范不应该存在; 检查类的父类(parent class)(默认父类为Object)是否存在,按照规范
hunterzju
2021-12-09
7410
CS143-PA3: 语法解析得到抽象语法树
%token: 终结符(terminal) %type: 非终结符(non-terminal) 如果采用了union定义,可以通过<>指定token或type的类型。 %left, %right, %nonassoc和%precedence用于定义token的优先级和结合性。
hunterzju
2021-12-09
1.3K0
CS143:编译原理|PA2:正则表达式和词法分析
本文涉及的代码已经全部嵌入文章,如果你想要的完整代码,请看这个GitHub仓库。在链接指向的目录下可以直接运行测试用例。
hunterzju
2021-12-09
1.8K0
CS143:编译原理|PA1:熟悉Cool语言
这个PA的要求在handouts/PA1.pdf中。我们需要实现一个栈机器Stack Machine,这个机器以栈为存储和执行的基础。这里简单翻译一下PDF里面的描述。
hunterzju
2021-12-09
1.3K0
CS143:编译原理 | 环境搭建HelloWorld
你可能需要两种材料,课程视频和课件作业。前者在B站可以找到,后者的大部分在课程网站。然而,斯坦福把这个课从Cousera和自家的MOOC上撤掉了,我花了些时间才找到编程作业,在edx.org,不知道将来会不会把这个也撤了。
hunterzju
2021-12-09
8330
llvm初探——源码编译
源码编译llvm时遇到编译中断问题,查了一下时内存不足,swap分区也不够用的问题,解决方法是手动创建swap分区文件,扩展swap分区。
hunterzju
2021-12-09
9660
llvm入门教程-Kaleidoscope前端-2-解析器和AST
llvm是当前编译器领域非常火热的项目,其设计优雅,官方文档也很全面,可惜目前官方中文翻译。笔者在学习过程中也尝试进行一些翻译记录,希望能对自己或者他人的学习有所帮助。
hunterzju
2021-12-09
1.8K0
llvm入门教程-Kaleidoscope前端-3-代码生成
llvm是当前编译器领域非常火热的项目,其设计优雅,官方文档也很全面,可惜目前官方中文翻译。笔者在学习过程中也尝试进行一些翻译记录,希望能对自己或者他人的学习有所帮助。
hunterzju
2021-12-09
1.3K0
llvm入门教程-Kaleidoscope前端-4-JIT和优化器支持
llvm是当前编译器领域非常火热的项目,其设计优雅,官方文档也很全面,可惜目前缺乏官方中文翻译。笔者在学习过程中也尝试进行一些翻译记录,希望能对自己或者他人的学习有所帮助。
hunterzju
2021-12-09
8740
llvm入门教程-Kaleidoscope前端-5-控制流
llvm是当前编译器领域非常火热的项目,其设计优雅,官方文档也很全面,可惜目前缺乏官方中文翻译。笔者在学习过程中也尝试进行一些翻译记录,希望能对自己或者他人的学习有所帮助。
hunterzju
2021-12-09
1K0
llvm入门教程-Kaleidoscope前端-6-用户定义运算符
llvm是当前编译器领域非常火热的项目,其设计优雅,官方文档也很全面,可惜目前缺乏官方中文翻译。笔者在学习过程中也尝试进行一些翻译记录,希望能对自己或者他人的学习有所帮助。
hunterzju
2021-12-09
1.4K0
llvm入门教程-Kaleidoscope前端-7-可变变量
llvm是当前编译器领域非常火热的项目,其设计优雅,官方文档也很全面,可惜目前缺乏官方中文翻译。笔者在学习过程中也尝试进行一些翻译记录,希望能对自己或者他人的学习有所帮助。(PS:初步翻译文档放在github上了,需要可自取,也欢迎提PR共同完善)
hunterzju
2021-12-09
1.6K0
点击加载更多
社区活动
【纪录片】中国数据库前世今生
穿越半个世纪,探寻中国数据库50年的发展历程
Python精品学习库
代码在线跑,知识轻松学
博客搬家 | 分享价值百万资源包
自行/邀约他人一键搬运博客,速成社区影响力并领取好礼
技术创作特训营·精选知识专栏
往期视频·千货材料·成员作品 最新动态
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档