解释器源码
Ⅰ 想学习一个优秀解释器源码,有推荐的吗
开源就是公开源代码的意思...公开源代码不一定是免费使用的,也不代表能任意修改~~开源和免费没关系...虽然大多开源的都是免费的...但是就和3楼说得一样..要看协议的~~协议里有限制你只能学不能改,也不能用,事实上你就不能随意用...虽然大多协议只限制商业目的!
Ⅱ 跪求python 解释器源代码!!据说在www.python.org上有,但进不去。
下载activePython就可以了。如果是windows的话。如果是linux的话,一般都可以自动从源上更新到的。
Ⅲ python windows系统 源代码
一、python如何运行程序
首先说一下python解释器,它是一种让其他程序运行起来的程序。当你编写了一段python程序,python解释器将读取程序,并按照其中的命令执行,得出结果,实际上,解释器是代码与机器的计算机硬件之间的软件逻辑层。
通俗来说,我们的计算机是基于二进制进行运算的,无论你用什么语言来写程序,无论你的程序写的多么简单或多么复杂,最终交给计算机运行的一定是0或1,因为计算机只能识别0和1。
我们目前使用的大多数编程语言都是高级程序语言,也就是利于我们人类阅读的语言,要使我们编写的程序能够在计算机上跑起来,要经过一定的转换才可以,python程序大致的过程应该是这样:
源代码-->字节码-->pvm(虚拟机)-->机器码
可以到Python的官方网站下载python(http://www.python.org),通常包括解释器、库文件及简单的编码环境(IDLE)。把源代码编译成字节码其实是为了程序更节省时间,如果源代码没有变动,那么运行程序时会直接从字节码读取,加快速度,把字节码放到虚拟机去解释,可以更好的跨平台运行,最后转换成机器码。
二、Windows系统下搭建python编程环境。
1、进入Python官网http://www.python.org,在“Downloads”下拉菜单中选择相应的操作系统,我们选择windows。
最后选择菜单中的Run下的run mole即可运行,快捷键为F5。
Ⅳ 谁有python解释器源码....求.....!!!!好的加分
去python主页下载。
或者搜索 Python-2.7.3.tgz
Ⅳ 源码文件被python解释器运行时是如何标记当前运行代码在源文件中的位置的
肯定解释器记录了读取到第几行了呀
Ⅵ php,python等等开源的语言的源码是什么的源代码编译器解释器还是什么 谢谢!
试解答一下。
1. php,python等等开源的语言的源码是什么的源代码?
不知道你说的是什么意思,如果你上问这两种语言是用什么编写的,貌似这两种都是用C语言编写的,其源码你可以到官方网站上下载。
2. 编译器?解释器?还是什么?
貌似源代码跟什么 编译器、解释器 这个没什么关系的吧?但你可以将用这两种语言编写脚本,当作解释性程序,其执行通常需要解释器,通常不需要编译器。
3. java到底开不开源?如果开源怎么说他开源呢?开放了什么的源代码?
如果你想问的是java的基本类库(JDK)是否开源,那答案是:是的,你安装完jdk后目录下会有src.zip,里面就是源代码;
如果你想问的是java运行时环境-jvm是否是开源的,那答案是不开源,是有版权的商业软件,最常用的jvm就是sun公司(现在是oracle公司)的Sun JVM。你在oracle官网下载的jdk里包含的就是这个Sun JVM。
4. php的解释器用啥语言写的?还有python等等都想知道!
貌似都是C写的。
Ⅶ shell命令解释器源代码
要求实现一个简单的命令解释器,也就是linux中的shell程序,在本程序中我们将其起名为ysh,要求:
1、 能够执行外部程序命令,命令可以带参数;
2、 能够执行fg、bg、cd、history、exit等内部命令;
3、 使用管道和输入输出重定向;
4、 支持前后台作业,提供作业控制功能,包括打印作业的清单,改变当前运行作业的前/后台状态,以及控制作业的挂起、中止与继续运行;
5、 使用Make工具建立工程;
6、 使用调试器gdb来调试程序;
二、 实验现象:
本程序的ysh程序设计不包括对配置文件和命令行参数的支持。要求ysh提供一个命令提示符,如ysh>,表示接受用户输入,每次执行完成后,再打印下一个命令提示符ysh>,当用户没有输入时,ysh需要一直处于等待输入状态,同时在屏幕上显示一些必要的信息。
三、 Ysh解释程序的具体要求:
1、 外部命令和内部命令:
在大多数情况下,用户输入的命令是执行存储在文件系统下中的可执行程序,我们称之为外部命令或外部程序。Ysh应当支持在执行这些程序时可以将输入/输出重新定向到一个文件,并允许若干个程序使用管道串联起来。我们把由管道连接起来的符合命令以及单独使用的命令成为作业。
外部命令的形式是一系列分隔的字符串。第一个字符串可以是可执行程序的名字,其它的是传递给这个外部程序的参数。如果第一个字符串所声名的可执行文件并不存在或者不可执行,则认为这个命令是错误的。
解释器还必须支持一些内部命令,这些命令在ysh内部实现了特定的动作,下面是一些内部命令,如果用户提交了一个内部命令,ysh应按照下面的描述执行相应动作。
�8�5 exit:退出ysh。
�8�5 jobs:打印当前正在后台执行的作业和挂起的作业信息。输出信息应采用便于用户理解的格式。
�8�5 fg %<int>:把<int>所标识的作业放到前台运行,如果这个作业原来已经停止,那么他继续运行。Shell应当在打印新的命令提示行之前等待前台运行的子进程结束。
�8�5 Bg %<int>:在后台执行<int>标识的已挂起的进程。
2、 命令行:
当用户在提示符后面输入命令时,输入的整行内容叫做“命令行字符串”,ysh应当保存每一条命令行字符串,直到它表示的作业执行结束,其中包括后台作业和被挂起的作业。
3、 前台和后台作业
ysh应当能够执行前台和后台作业。Shell在前台执行结束之前要一直等待。而在开始执行后台作业时要立刻打印出提示符ysh>,让用户输入下一条命令。
前台作业的执行总是优先于一个后台作业,ysh不需要在打印下一个提示符前等待后台作业的完成,无论是否有后台作业的执行,只要完成一个前台作业,便立即输出提示符ysh>;一个后台作业结束时,ysh应当在作业结束后立刻打印出一条提示信息。
4、 特殊键:
又称组合键。通过终端驱动程序,特殊的组合键可以产生信号给ysh,程序应当对这些信号做出适当的响应。
�8�5 Ctrl + Z:产生SIGTSTP信号,这个信号不是挂起ysh,而是让shell挂起在前台运行的作业,如果没有任何前台作业,则该特殊键无效。
�8�5 Ctrl+C:产生SIGINT信号,这个信号不是中止ysh,而是通过ysh发出信号杀死前台作业中的进程。如果没有任何前台作业,则该特殊键无效。
5、 分析用户输入:
a) 分隔符和特殊字符
分析用户输入的语法分析器应具有下面介绍的功能,它能够检查用户的输入错误。如果用户输入的某些地方出错了,ysh应当给出合理的出错信息。
ysh每次接受用户输入的一行命令,在用户按下回车键(Enter)后开始执行分析动作。空名令不产生任何操作,而只是打印一个新的提示符。
定义空格符为分隔符,ysh应能处理命令行中间和前后出现的重复空格符。
某些字符被称做“元字符”,它们在用户输入的上下文中具有特殊的定义。这些字符包括”&、|、<、>”。Shell假设这些字符不会出现在程序名、参数名、文件名中,他们是ysh的保留字符。
b) 内部命令:
如果命令行字符串符合前面介绍的内部命令的格式,它就当作一个内部命令被解释。如果不是,就要考虑可能是外部程序的执行,或者是错误的。
c) I/O重定向:
一个程序命令后面可能还跟有元字符“<”或“>”,他们是重定向符号,而在重定向符号后面还跟着一个文件名,在”<”的情况下,程序的输入被重定向到一个指定的文件中去。在”>”的情况下,程序的输出被重定向到一个指定的文件中。如果输出文件不存在,需要创建一个输出文件。如果输入文件不存在,则认为出现了错误。
d) 管道和协同程序
在一条命令行中当若干个命令被元字符“|”分开时,这个元字符代表管道符号。在这种情况下,ysh为每一个子命令都创建一个进程,并把它们的输入、输出用管道连接起来。
例如下面这条命令行:
progA argA1 argA2 < infine | progB1 > outfile
应生成progA 和progB 两个进程,ProgA的输入来自文件infile,porgA的输出是progB的输入,并且progB的输出文件是outfile。这种命令行可以通过进程间通信中的管道来实现。
含有一个和多个管道的命令会在如下几种情况下产生错误:
�8�5 当其任何一个子程序执行出错时。
�8�5 除了第一个子程序以外其它子程序的输入被重定向。
�8�5 除了最后一个子程序以外的其它子程序的输出被重定向。
由管道连接的多个进程所组成的作业只有当其所有子进程都执行完毕后才算结束。
e) 后台作业
当用户需要在后台执行一个作业时,可以在作业命令的后面加上元字符“&”。用户以该种方式输入的作业命令都必须放在后台执行,同时并不影响用户与终端的交互
Ⅷ python代码解释
Python是一种代表简单主义思想的语言。阅读一个良好的Python程序就感觉像是在读英语一样。它使你能够专注于解决问题而不是去搞明白语言本身。易学
Python极其容易上手,因为Python有极其简单的语法。免费、开源
Python是FLOSS(自由/开放源码软件)之一。使用者可以自由地发布这个软件的拷贝、阅读它的源代码、对它做改动、把它的一部分用于新的自由软件中。FLOSS是基于一个团体分享知识的概念。高层语言
用Python语言编写程序的时候无需考虑诸如如何管理你的程序使用的内存一类的底层细节。可移植性
由于它的开源本质,Python已经被移植在许多平台上(经过改动使它能够工作在不同平台上)。这些平台包括Linux、Windows、FreeBSD、Macintosh、Solaris、OS/2、Amiga、AROS、AS/400、BeOS、OS/390、z/OS、Palm OS、QNX、VMS、Psion、Acom RISC OS、VxWorks、PlayStation、Sharp Zaurus、Windows CE、PocketPC、Symbian以及Google基于linux开发的android平台。解释性
一个用编译性语言比如C或C++写的程序可以从源文件(即C或C++语言)转换到一个你的计算机使用的语言(二进制代码,即0和1)。这个过程通过编译器和不同的标记、选项完成。运行程序的时候,连接/转载器软件把你的程序从硬盘复制到内存中并且运行。而Python语言写的程序不需要编译成二进制代码。你可以直接从源代码运行程序。在计算机内部,Python解释器把源代码转换成称为字节码的中间形式,然后再把它翻译成计算机使用的机器语言并运行。这使得使用Python更加简单。也使得Python程序更加易于移植。面向对象
Python既支持面向过程的编程也支持面向对象的编程。在“面向过程”的语言中,程序是由过程或仅仅是可重用代码的函数构建起来的。在“面向对象”的语言中,程序是由数据和功能组合而成的对象构建起来的。可扩展性
如果需要一段关键代码运行得更快或者希望某些算法不公开,可以部分程序用C或C++编写,然后在Python程序中使用它们。可嵌入性
可以把Python嵌入C/C++程序,从而向程序用户提供脚本功能。丰富的库
Python标准库确实很庞大。它可以帮助处理各种工作,包括正则表达式、文档生成、单元测试、线程、数据库、网页浏览器、CGI、FTP、电子邮件、XML、XML-RPC、HTML、WAV文件、密码系统、GUI(图形用户界面)、Tk和其他与系统有关的操作。这被称作Python的“功能齐全”理念。除了标准库以外,还有许多其他高质量的库,如wxPython、Twisted和Python图像库等等。规范的代码
Python采用强制缩进的方式使得代码具有较好可读性。而Python语言写的程序不需要编译成二进制代码。
Ⅸ 求VB6.0编写的Basic解释器源代码 能执行Dim、Let、If、Select、For、Do,Mid、Len函数这几个指令和语法
Ⅹ 脚本语言程序每次运行时都需要解释器和源代码吗
不需要。其是一次性地翻译,一旦程序被编译,不再需要解释器或者源代码。