解釋器源碼
Ⅰ 想學習一個優秀解釋器源碼,有推薦的嗎
開源就是公開源代碼的意思...公開源代碼不一定是免費使用的,也不代表能任意修改~~開源和免費沒關系...雖然大多開源的都是免費的...但是就和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函數這幾個指令和語法
Ⅹ 腳本語言程序每次運行時都需要解釋器和源代碼嗎
不需要。其是一次性地翻譯,一旦程序被編譯,不再需要解釋器或者源代碼。