- 时间:2021-02-12 07:04 编辑:韩博 来源:蚂蚁资源 阅读:113
- 扫一扫,手机访问
摘要:大家好,今天给大家介绍关于python解释器源码(python解释器用什么写的)的相关内容,详细讲解如何用python写一个解释器,php,python等等开源的语言的源码是什么的源代码编译器解释器还是什么 谢谢!,python的解释器运行*.py文件等,希望可以帮助到您。
如何用python写一个解释器,大学计算机科学是最有吸引力的编译器。最神奇的事情是编译器如何读取我写的腐烂代码,也可以生成这样的复杂程序。当我终于选择了汇编课程时,我发现这个过程比我想象的更简单。在这一系列文章中,我将通过为基本命令语言写入解释器来展示这种简单性。因为IMP是一种简单的语言,计划用Python写下这个解释器。 Python代码看起来非常像伪代码,所以即使你不知道Python,你也可以理解它。可以通过从头实现的一组解析器来完成分辨率(在该系列的下一篇文章中有解释)。除了SYS(对于I / O),RE(用于解决rEgular表达式)和unittest(以确保正常的正常)库,没有其他额外的库。在您开始写作之前,让我们讨论将解释的语言。 IMP是具有以下结构的最小命令语言:分配语句(所有变量全局,并且只能存储):Python1x:= 1条件语句:Python12345if x = 1 thyy:= 2elsey:= 3ndwhile循环:python123 while x 0 dop := p * n; n:= n - 1endimp不读取输入模式,因此初始状态必须是一系列分配语句,必须开始编写一系列分配。还没有打印结果,因此解释器必须在程序结束时打印所有变量。解释器结构解释器的核心是“中间代表ation,ir)。这就是IMP程序在内存中表示的方式。因为IMP是一种非常简单的语言,中间表示将直接对应语言的语言;每个表达式和语句都有相应的类。以一种更复杂的语言,您不仅需要一个“语法表示”,还需要一个“语义表示”,这更容易分析或运行。解释器将执行三个阶段:将源代码中的字符划分为标记到一个抽象语法树(AST)。摘要语法树是中间代表性。评估该树立振荡语法树,并且在打印这棵树时,通过词汇分析仪将字符串划分为标记的过程称为“词汇分析”。关键字很短,易于缺点eStand,具有该计划中最基本的部分,例如数字,标识符,关键字和运算符。词汇分析仪消除了空格和评论,因为口译员被忽略。将标记组织成抽象语法树(AST)的过程被称为“分析过程”。解析器将程序的结构提取为可以评估的形式。实际执行此解析抽象语法树的过程称为评估。这实际上是这个解析器的最简单部分。本文将专注于词汇分析仪。我们将写一个通用的词汇,然后为IMP创建一个词汇分析仪。下一篇文章将专注于构建语法分析仪和评估计算器。词汇词汇分析仪的操作是相当的简单。它基于正则表达式,因此如果您不熟悉它们,则可能需要阅读一些信息。简单地,正则表达式是一种描述其他字符串的特殊格式化字符串。您可以使用它们来匹配电话号码或电子邮件地址,或者在这种情况下遇到不同类型的标记。词汇分析仪的输入可能只是一个字符串。为简单起见,我们将整个输入文件读到内存。输出是标记列表。每个标签包括值(表示字符串)和标记(表示它是标签的类型)。语法分析仪使用这两个数据来确定如何构建抽象语法树。由于语言的语言,它的操作很小,我们将创建一个普遍的词汇分析仪,包括丁正则表达式列表和相应的标记(标签)。对于每个表达式,它会检查当前位置的输入文本是否匹配。如果匹配,则匹配文本被提取为标签,并将添加到正则表达式的标签。如果未标记正则表达式,则将丢弃文本。这将从垃圾字符干扰中删除,我们在这样的备注和空格中。如果没有匹配的正则表达式,则程序是错误和终止。此过程将不断循环,直到没有字符可以匹配。以下是来自词汇的代码:Python12345671231810111213141618101112131416181011121314151618101112122231244 (R'!=',保留),(r'ORD',保留),(R'R',保留),(R'IF',保留),(R'then',Reserved),(R'Worls',保留,(R'Do',保留) ,(R'Do',保留),最终,一个整数和标识符的表达式。应该指出的是,标识符的正则表达式匹配上面的所有保留字,因此它必须留到末端。Python123(r '[0-9] +',int),(r'[a-za-z] [a-za-z0-9_] *',ID),因为已经定义了正则表达式,我们也需要创建一个实际的Lexer函数。Python12def Imp_lex(字符):返回Lexer.lex(字符,令牌_EXPRS)如果您对此部分感兴趣,则有一些驱动程序代码测试输出:Python1234567891011import系统从Imp_lexer导入*如果__name__ =='__main __ ':filename = sys.argv [1] file =打开(文件名)字符=文件。read()fiLE.CLOSE()令牌= IMP_LEX(字符)在令牌中令牌:打印令牌继续...
php,python等等开源的语言的源码是什么的源代码编译器解释器还是什么 谢谢!,审判答案。 1. PHP,Python等的源代码是什么?开源语言?我不知道你的意思。如果您询问这两种语言,似乎这两个人是用C语言编写的,以及他们的源代码您可以在官方网站上下载它。 2.编译器?翻译?那是什么?看起来像源代码和什么编译器,解释器无关?但是您可以用这两种语言编写脚本,作为一个解释程序,该解释程序是由执行的,通常需要解释器,通常是没有编译器。 3. Java没有开源?如果开源说他打开怎么办?源代码是什么?如果您想询问Java的基本类库(JDK)是开源的,那么答案是:是的,您将在安装JDK后在目录中有SRC.zip,这是源代码;如果你想问java运行环境-JVM是开源的,答案不是开源,是一个受版权保护的业务软件,最常用的JVM是Sun的Sun JVM(现在Oracle)。您在Oracle官方网站下载的JDK是这个Sun JVM。 4. PHP翻译用语言写字?还有Python等。我想知道!它似乎是写的。
python的解释器运行*.py文件,您调用MonkeyRunner模块,提示该模块不存在。邮政编码。
责任编辑(
韩博)
以上就是关于**python解释器源码,python解释器用什么写的**的全部内容,了解更多请关注蚂蚁资源网。
- 893811145
- 如何制作在线的python解释器,python自带的IDE,启动python用idle.bat,默认路径是 C:\Python27\Lib 或者win+r 进入命令行,键入python,进入python编译环境
- 2021-02-12 07:04:40
- hhcw0320
- python是解释型语言,不需要编译,通过python解释器直接运行就行。源代码的后缀是.py,如果代码第一行有#!,则直接输入文件名字即可运行,如果没有,需要用[python filename]语句来运行。如果你的电脑是windows,需要下载安装python解释器,或IDE,具体的可到官网下载。我使用的是Mac,python是直接安装好的,在terminate下跑就行。
- 2021-02-12 07:04:40
- 郭大帅
- python 解释器很多种,最广泛运用的有:1、CPython当我们从Python官方网站下载并安装好Python 2.7后,我们就直接获得了一个官方版本的解释器:CPython。这个解释器是用C语言开发的,所以叫CPython。在命令行下运行python就是启动CPython解释器。CPython是使用最广的Python解释器。教程的所有代码也都在CPython下执行。2、IPythonIPython是基于CPython之上的一个交互式解释器,也就是说,IPython只是在交互方式上有所增强,但是执行Python代码的功能和CPython是完全一样的。好比很多国产浏览器虽然外观不同,但内核其实都是调用了IE。CPython用>>>作为提示符,而IPython用In [序号]:作为提示符。3、PyPyPyPy是另一个Python解释器,它的目标是执行速度。PyPy采用JIT技术,对Python代码进行动态编译(注意不是解释),所以可以显著提高Python代码的执行速度。绝大部分Python代码都可以在PyPy下运行,但是PyPy和CPython有一些是不同的,这就导致相同的Python代码在两种解释器下执行可能会有不同的结果。如果你的代码要放到PyPy下执行,就需要了解PyPy和CPython的不同点。4、JythonJython是运行在Java平台上的Python解释器,可以直接把Python代码编译成Java字节码执行。5、IronPythonIronPython和Jython类似,只不过IronPython是运行在微软.Net平台上的Python解释器,可以直接把Python代码编译成.Net的字节码。6、qpython用于在手机上编程。
- 2021-03-06 17:35:01