python解释器实现及其嵌入式应用
1. Python解释器实现,
2. 利用Python来控制ARM平台,并以此为基础构建系统框架。
叶玄青
我是谁
展开
-
python解释器实现及其嵌入式应用:专栏介绍
本专栏目的:从底层构建python based系统,然后基于python实现人工智能,进行训练,期望能替代自己的工作。工作目前主要有两方面: 1. 辅助会议纪要中的音频翻译。 2. 代码编写 3. 金融行情研究原创 2017-01-04 07:59:10 · 1386 阅读 · 0 评论 -
python解释器实现及其嵌入式应用:解释器移植
一 概述1-1 知识储备1-2 成果展示二 移植过程2-1 代码选型2-2 启动代码实现2-3 指令集兼容4 修改内存分布5 交互界面三 总结与展望一 概述micropython:介绍与编译 一文介绍了Micropython的语法特点,当前的应用平台以及在linux下的试用。这篇文章接着介绍如何将Micropython编译器移植到exynos 4412平台下,让他工作起来。1-1原创 2017-01-12 16:01:34 · 6177 阅读 · 1 评论 -
python解释器实现及其嵌入式应用:认识Micro Python
micropython是Damien George发明的运行在MCU之上的python,项目主页为 https://github.com/micropython/micropythonMicro Python的软件特点:Python 3 语法 1. 完整的Python词法分析器, 解析器,编译器,虚拟机和运行时。 2. 包含命令行接口,可离线运行。 3. Python 字节码由内置虚拟机编译原创 2016-12-23 18:53:44 · 8141 阅读 · 1 评论 -
python解释器实现及其嵌入式应用:Let's Build a Simple Interpreter(part12)
英文原文 不要担心走得缓慢;害怕原地不动! - 中国谚语(我表示怀疑!!!)大家好,欢迎回来!今天我们将要走几小步来学习如何识别Pascal过程声明。什么是过程声明?一个过程声明是一个语言结构,它定义了一个标记符,以及一个关联的Pascal代码块。在我们深入讨论之前,说几句关于Pascal过程以及他们的声明:Pascal过程没有返回语句,在到达程序块末尾的时候退出。Pascal过程可以相互翻译 2017-02-20 23:04:07 · 1027 阅读 · 0 评论 -
python解释器实现以及嵌入式应用:符号表以及语法检查
本章实现了独立的符号表,实现了赋值语句语法检查。谈谈first集和follow集几乎任何一本关于编译器设计的书在讲到语法分析的时候都会介绍first集合和follow集合,故名思议,first集合就是通过向前读取一个标识符,判断这个标识符是否且仅是某一产生式右侧符号的第一个标识符,如果是的话,就可以推断要应用该条规则进行推导。follow集指当前标识符是否是某一条规则的后面一个符号,对于LL(1)来原创 2017-02-20 14:54:57 · 1947 阅读 · 0 评论 -
python解释器实现及其嵌入式应用:7到11章总结
从第7章开始引入了抽象语法树,第8章通过扩展抽象语法树引入了单元运算符’+/-‘。第9章扩展pascal语法支持,扩展方法和第8章是一样的,支持begin/end语句,赋值语句,引入全局符号表,存储变量内容。第10章也是语法扩展,支持更多的语法(pragram,var,代码注释)能够识别pascal程序模式,可以算是一个初具功能的解释器了。第11章介绍引入符号表,基于符号表实现语法检查(变量声明,类原创 2017-02-20 15:16:34 · 751 阅读 · 0 评论 -
python解释器实现及其嵌入式应用:实现语法支持
第九部分开始了对语言特性的支持,根据语言定义BNF:program→compound_statement DOT program\to compound\_statement\ DOT compound_statement→BEGIN statement_list END compound\_statement\to BEGIN\ statement\_list\ END statement_原创 2017-02-20 15:14:11 · 1003 阅读 · 0 评论 -
python解释器实现及其嵌入式应用:抽象语法树
英文原文地址第七部分开始引入了抽象语法树,开始考虑到代码的耦合性。剥离了lexer,parser和interpreter。值得一提的是,上一篇随笔提到的右括号匹配问题在这里解决了,也是通过添加额外代码解决的。def parse(self): node = self.expr() if self.current_token.type != EOF: self.error原创 2017-02-15 16:57:33 · 1492 阅读 · 0 评论 -
python解释器实现及其嵌入式应用:1到6章总结
通过1到6部分的学习,实现了一个能进行四则运算,具有优先级,支持括号的计算器。能够满足一般计 算需求的计算器。内容概要巴科斯范式表示grammar。基本知识,以及如何将优先级信息以BNF形式表示。syntax diagram 展示识别流程。等效于BNF,BNF可以理解成文本化的syntax diagram。BNF到python代码的转换体会这六部分内容比较简单,基本上前一部分的练习做完后,原创 2017-02-20 15:06:35 · 1580 阅读 · 0 评论 -
python解释器实现及其嵌入式应用:一个四则运算计算器的实现
这是《Let’s build a simple interpreter》中第四部分的练习原文参考一 BNFexpr→term((PLUS/MINUS)term)∗ expr\to term((PLUS/MINUS)term)* term→factor((MUL/DIV)factor)∗ term\to factor((MUL/DIV)factor)* factor→INTERGER factor\t原创 2017-02-13 12:50:52 · 2703 阅读 · 0 评论 -
python解释器实现及其嵌入式应用:内部模块定义及扩展
本文介绍mp内部模块的实现,如何自定义内部模块,面向读者:对python编译器内部实现有兴趣。要求:只需具有python应用经验即可。 发表于 Micropython开发:内部模块定义及扩展Micropython需要支持导入模块,同时,设备驱动也要能够以python模块的形式工作,那么在python解释中必须实现这种接口。外部模块的定义位于$(tree)/extm原创 2017-01-17 14:33:06 · 2781 阅读 · 2 评论