首页
AI Coding
数据标注
NEW
沸点
课程
直播
活动
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
登录
注册
QYizhong
掘友等级
客户端研发工程师
|
字节跳动
获得徽章 0
动态
文章
专栏
沸点
收藏集
关注
作品
赞
110
文章 110
沸点 0
赞
110
返回
|
搜索文章
最新
热门
教你使用swift写编译器玩具(6)
本章对应官方教程第6章。在之前的教程中我们为Kaleidoscope实现了一些基本的功能,但现在它有个大问题,那就是没有更多的操作符。所以本章内容展示了如何为让Kaleidoscope支持自定义操作符。 既然我们要支持自定义运算符,那么肯定是需要在函数的处理上提供支持。因为我们…
教你使用swift写编译器玩具(5)
本章对应官方教程第5章,本章介绍如何扩展Kaleidoscope以使用if / then / else表达式和一个简单的for循环。 if / then / else也是一种表达式,我们需要把它计算为int1类型,0是假,1是真。如果if表达式计算为真返回then表达式,否则返…
教你使用swift写编译器玩具(4)
本章对应官方教程第4章,本章介绍如何为中间代码(LLVM IR)添加优化以及添加JIT编译器支持。 我们都知道在编译的过程中有着中间代码优化这一步。我们想要中间代码能够去除无用以及重复计算的内容,所以这个时候我们需要使用中间代码优化器。 举一个例子,在没有优化之前,我们输入de…
教你使用swift写编译器玩具(3)
本章对应官方教程第3章,本章介绍如何将抽象语法树(AST)转换为中间代码(LLVM IR)。 在生成IR开始之前我们需要为为ExprAST协议定一个codeGen方法,并返回LLVM的IRValue对象。这个方法表示该AST所表示的IR。 接着我们创建Module对象theMo…
教你使用swift写编译器玩具(2)
本章对应官方教程第2章,介绍实现解析器(Parser)和抽象语法树(AST)。 AST用来解释代码的行为,我们希望语言中的每个构造都有一个AST,所以我们首先需要一个AST的基类,在swift中我们可以使用protocol。 注意,在Kaleidoscope中我们只支持Doub…
教你使用swift写编译器玩具(1)
本项目参考官方文档编写,为了图方便与官方文档一样写了不少全局变量,这在实际工程中不是一个好的处理方式。 注意:教程中使用extern调用标准库本文并未实现,仅实现了extern的解析。 我们在实现语言时,首先需要能识别代码内容。通常情况下我们使用词法分析器(Lexer),将输入…
教你使用swift写编译器玩具(0)
在上学期学完编译原理之后总想搞个大事情,于是就萌生了写编译器的想法。在多方查找之下我发现了LLVM的官方教程。这个教程实现了一门玩具语言叫做Kaleidoscope。在官方教程中提供了即时编译执行以及生成目标文件被C++调用的两种执行方法,我在工程中也有一一对应实现。 官方教程…
TensorFlow Lite实战——在iOS上部署中文文本分类模型
本文所使用的分类模型来自于CNN-RNN中文文本分类,基于TensorFlow,感谢开源。 最近一段时间需要用到中文文本分类这样一个功能,于是我马上想到了Create ML,但是经过自己的尝试以后发现Create ML并不支持中文的文本分类(不信可以自己试试)。 最近发现有道词…
iOS如何本地储存PHAsset
最近公司有个需求,需要缓存信息中要发送的照片,下次打开viewController的时候直接显示照片。思路是在退出viewcontroller的时候储存PHAsset,下一次打开那个viewController的时候通过PHAsset去加载这个图片。 百度上搜索出的只有说需要储…
iOS使用pod创建本地库
随着项目变得越来越大,我们的工程需要进行拆分和解耦。组件化的形式是目前一种解耦的方式。在iOS中,模块之间完全解耦不互相依赖的情况下,完全可以做成pod管理的本地库。下面将通过一个demo详细讲解一下如何创建一个pod本地库。 创建一个需要放在pod本地库管理的类。我随便写了一…
下一页
个人成就
文章被点赞
209
文章被阅读
73,717
掘力值
1,710
关注了
8
关注者
176
收藏集
3
关注标签
10
加入于
2019-05-11