首页
AI Coding
NEW
沸点
课程
直播
活动
AI刷题
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
会员
登录
注册
确定删除此收藏集吗
删除后此收藏集将被移除
取消
确定删除
确定删除此文章吗
删除后此文章将被从当前收藏集中移除
取消
确定删除
编辑收藏集
名称:
描述:
0
/100
公开
当其他人关注此收藏集后不可再更改为隐私
隐私
仅自己可见此收藏集
取消
确定
编译原理
订阅
阿尔脖特
更多收藏集
微信扫码分享
微信
新浪微博
QQ
8篇文章 · 0订阅
自研 iOS 热更新机制——OCPack技术方案总结
I. 方案简介 OCPack是一种 iOS 平台上 App 动态化技术方案,用户可以使用 Objective-C 语言编写待动态化的功能逻辑(生成.m文件),然后通过OCPack提供的工具链生成 patch 文件(.bin格式)。客户端则内置了一个基于 Native 环境的的虚…
iOS 热更新框架 OCPack 中 ARC 的处理机制
上一篇 OCPack 技术方案总结发出后,有同学私信问 ARC 的具体实现细节,正好之前也没有好好总结这一块,于是有了这一篇文章。 以下正文开始。 众所周知,ARC 是编译器支持的一套自动在代码中插入 retain/release 等内存管理方法的机制,它能够减轻开发者手动管理…
编译原理实战六:使用编译器前端工具Antlr生成词法、语法分析器(下)
上篇文章,讲解了用 Antlr 生成了词法分析器和语法分析器。今天主要是来补充和完善一下语法规则,看一看怎样用最高效的速度,完善语法功能。 上篇提到 Antlr 能自动处理左递归的问题,所以在写表达式时,我们可以大胆地写成左递归的形式,节省时间。但这样,我们还是要为每个运算写一…
编译原理实战五:使用编译器前端工具Antlr生成词法、语法分析器(上)
前面几篇讲解了词法分析和语法分析,在例子中提到的词法和语法规则也是高度简化的。虽然这些内容便于理解原理,也能实现一个简单的原型,在实际应用中却远远不够。实际应用中,一个完善的编译程序还要在词法方面以及语法方面实现很多工作,如下图可以直观地看一下。 如果让编译程序实现上面这么多工…
编译原理实战四:带你用JS实现一门简单的脚本语言
编译原理实战二:语法分析之 纯手工实现一个公式计算器、 编译原理实战三:语法分析之 怎么消除左递归、怎么确保正确的优先级和结合性? 两篇文章已经介绍了如何实现表达式的解析,并通过一个简单的解释器实现了公式的计算。但这个解释器还是比较简单的,看上去还不大像一门语言。那么如何让它支…
编译原理实战三:语法分析之 怎么消除左递归、怎么确保正确的优先级和结合性JS版?
在编译原理:语法分析实战纯手工实现一个公式计算器中已经讲解了如何初步实现一个简单的公式计算器,并直观地获得了写语法分析程序的体验,对语法分析有了已经的认识。 本篇文章主要是解决上篇文章中关于怎么消除左递归,怎么确保正确的优先级和结合性等问题 不过在课程开始之前,先来简单地温习一…
编译原理实战二:语法分析之 纯手工实现一个公式计算器JS版
通过本篇文章的学习你可以掌握语法分析的原理和递归下降算法(Recursive Descent Parsing),并初步了解上下文无关文法(Context-free Grammar,CFG)。 本篇内容借鉴自极客时间编译原理课程,有兴趣的可以去购买课程啊,本篇主要是希望更多的人可…
编译原理实战一:如何用JS实现一个词法分析器?
词法分析的工作是将一个长长的字符串识别出一个个的单词,这一个个单词就是 Token。而且词法分析的工作是一边读取一边识别字符串的,不是把字符串都读到内存再识别 其实,我们实现词法分析器的过程,就是写出正则表达式,画出有限自动机的图形,然后根据图形直观地写出解析代码的过程。 我们…