圖書編譯器
⑴ 有沒有比龍書通俗易懂的編譯原理書籍
大學課程為什麼要開設編譯原理呢?這門課程關注的是編譯器方面的產生原理和技術問題,似乎和計算機的基礎領域不沾邊,可是編譯原理卻一直作為大學本科的必修課程,同時也成為了研究生入學考試的必考內容。編譯原理及技術從本質上來講就是一個演算法問題而已,當然由於這個問題十分復雜,其解決演算法也相對復雜。我們學的數據結構與演算法分析也是講演算法的,不過講的基礎演算法,換句話說講的是演算法導論,而編譯原理這門課程講的就是比較專註解決一種的演算法了。在20世紀50年代,編譯器的編寫一直被認為是十分困難的事情,第一Fortran的編譯器據說花了18年的時間才完成。在人們嘗試編寫編譯器的同時,誕生了許多跟編譯相關的理論和技術,而這些理論和技術比一個實際的編譯器本身價值更大。就猶如數學家們在解決著名的哥德巴赫猜想一樣,雖然沒有最終解決問題,但是其間誕生不少名著的相關數論。
推薦參考書
雖然編譯理論發展到今天,已經有了比較成熟的部分,但是作為一個大學生來說,要自己寫出一個像TurbocC,Java那樣的編譯器來說還是太難了。不僅寫編譯器困難,學習編譯原理這門課程也比較困難。
第一本書的原名叫《CompilersPrinciples,Techniques,andTools》,另外一個響亮的名字就是龍書。原因是這本書的封面上有條紅色的龍,也因為獗臼樵詒嘁朐?砘?嘴域確實?忻?所以很多國外的學者都直接取名為龍書。最近機械工業出版社已經出版了此書的中文版,名字就叫《編譯原理》。該書出的比較早,大概是在85或86年編寫完成的,作者之一還是著名的貝爾實驗室的科學家。裡面講解的核心編譯原理至今都沒有變過,所以一直到今天,它的價值都非凡。這本書最大的特點就是一開始就通過一個實際的小例子,把編譯原理的大致內容羅列出來,讓很多編譯原理的初學者很快心裡有了個底,也知道為什麼會有這些理論,怎麼運用這些理論。而這一點是我感覺國內的教材缺乏的東西,所以國內的教材都不是寫給願意自學的讀者,總之讓人看了半天,卻不知道裡面的東西有什麼用。
第二本書的原名叫《ModernCompilerDesign》,中文名字叫做《現代編譯程序設計》。該書由人民郵電出版社所出。此書比較關注的是編譯原理的實踐,書中給出了不少的實際程序代碼,還有很多實際的編譯技術問題等等。此書另外一個特點就是其現代而字。在傳統的編譯原理教材中,你是不可能看到如同Java中的垃圾回收等演算法的。因為Java這樣的解釋執行語言是在近幾年才流行起來的東西。如果你想深入學習編譯原理的理論知識,那麼你肯定得看前面那本龍書,如果你想自己動手做一個先進的編譯器,那麼你得看這本《現代編譯程序設計》。
第三本書就是很多國內的編譯原理學者都推薦的那本《編譯原理及實踐》。或許是這本書引入國內比較早吧,我記得我是在高中就買了這本書,不過也是在前段時間才把整本書看完。此書作為入門教程也的確是個不錯的選擇。書中給出的編譯原理講解也相當細致,雖然不如前面的龍書那麼深入,但是很多地方都是點到為止,作為大學本科教學已經是十分深入了。該書的特點就是注重實踐,不過感覺還不如前面那本《現代編譯程序設計》的實踐味道更重。此書的重點還是在原理上的實踐,而非前面那本那樣的技術實踐。《編譯原理及實踐》在講解編譯原理的各個部分的同時,也在逐步實踐一個現代的編譯器TinyC.等你把整本書看完,差不多自己也可以寫一個TinyC了。作者還對Lex和Yacc這兩個常用的編譯相關的工具進行了很詳細的說明,這一點也是很難在國內的教材中看到的。
推薦了這三本教材,都有英文版和中文版的。很多英文好的同學只喜歡看原版的書,不我的感覺是這三本書的翻譯都很不錯,沒有必要特別去買英文版的。理解理論的實質比理解表面的文字更為重要。
編譯原理的實質
幾乎每本編譯原理的教材都是分成詞法分析,語法分析(LL演算法,遞歸下降演算法,LR演算法),語義分析,運行時環境,中間代碼,代碼生成,代碼優化這些部分。其實現在很多編譯原理的教材都是按照85,86出版的那本龍書來安排教學內容的,所以那本龍書的內容格式幾乎成了現在編譯原理教材的定式,包括國內的教材也是如此。一般來說,大學裡面的本科教學是不可能把上面的所有部分都認真講完的,而是比較偏重於前面幾個部分。像代碼優化那部分東西,就像個無底洞一樣,如果要認真講,就是單獨開一個學期的課也不可能講得清楚。所以,一般對於本科生,對詞法分析和語法分析掌握要求就相對要高一點了。
詞法分析相對來說比較簡單。可能是詞法分析程序本身實現起來很簡單吧,很多沒有學過編譯原理的人也同樣可以寫出各種各樣的詞法分析程序。不過編譯原理在講解詞法分析的時候,重點把正則表達式和自動機原理加了進來,然後以一種十分標準的方式來講解詞法分析程序的產生。這樣的做法道理很明顯,就是要讓詞法分析從程序上升到理論的地步。
語法分析部分就比較麻煩一點了。現在一般有兩種語法分析演算法,LL自頂向下演算法和LR自底向上演算法。LL演算法還好說,到了LR演算法的時候,困難就來了。很多自學編譯原理的都是遇到LR演算法的理解成問題後就放棄了自學。其實這些東西都是只要大家理解就可以了,又不是像詞法分析那樣非得自己寫出來才算真正的會。像LR演算法的語法分析器,一般都是用工具Yacc來生成,實踐中完全沒有比較自己來實現。對於LL演算法中特殊的遞歸下降演算法,因為其實踐十分簡單,那麼就應該要求每個學生都能自己寫。當然,現在也有不少好的LL演算法的語法分析器,不過要是換在非C平台,比如Java,Delphi,你不能運用YACC工具了,那麼你就只有自己來寫語法分析器。
等學到詞法分析和語法分析時候,你可能會出現這樣的疑問:詞法分析和語法分析到底有什麼?就從編譯器的角度來講,編譯器需要把程序員寫的源程序轉換成一種方便處理的數據結構(抽象語法樹或語法樹),那麼這個轉換的過程就是通過詞法分析和語法分析的。其實詞法分析並非一開始就被列入編譯器的必備部分,只是我們為了簡化語法分析的過程,就把詞法分析這種繁瑣的工作單獨提取出來,就成了現在的詞法分析部分。除了編譯器部分,在其它地方,詞法分析和語法分析也是有用的。比如我們在DOS,Unix,Linux下輸入命令的時候,程序如何分析你輸入的命令形式,這也是簡單的應用。總之,這兩部分的工作就是把不規則的文本信息轉換成一種比較好分析好處理的數據結構。那麼為什麼編譯原理的教程都最終把要分析的源分析轉換成樹這種數據結構呢?數據結構中有Stack,Line,List這么多數據結構,各自都有各自的特點。但是Tree這種結構有很強的遞歸性,也就是說我們可以把Tree的任何結點Node提取出來後,它依舊是一顆完整的Tree。這一點符合我們現在編譯原理分析的形式語言,比如我們在函數裡面使用函樹,循環中使用循環,條件中使用條件等等,那麼就可以很直觀地表示在Tree這種數據結構上。同樣,我們在執行形式語言的程序的時候也是如此的遞歸性。在編譯原理後面的代碼生成的部分,就會介紹一種堆棧式的中間代碼,我們可以根據分析出來的抽象語法樹,很容易,很機械地運用遞歸遍歷抽象語法樹就可以生成這種指令代碼。而這種代碼其實也被廣泛運用在其它的解釋型語言中。像現在流行的Java,.NET,其底層的位元組碼bytecode,可以說就是這中基於堆棧的指令代碼的。
關於語義分析,語法制導翻譯,類型檢查等等部分,其實都是一種完善前面得到的抽象語法樹的過程。比如說,我們寫C語言程序的時候,都知道,如果把一個浮點數直接賦值給一個整數,就會出現類型不匹配,那麼C語言的編譯器是怎麼知道的呢?就是通過這一步的類型檢查。像C++語言這中支持多態函數的語言,這部分要處理的問題就更多更復雜了。大部編譯原理的教材在這部分都是講解一些比較好的處理策略而已。因為新的問題總是在發生,舊的辦法不見得足夠解決。
本來說,作為一個編譯器,起作用的部分就是用戶輸入的源程序到最終的代碼生成。但是在講解最終代碼生成的時候,又不得不講解機器運行環境等內容。因為如果你不知道機器是怎麼執行最終代碼的,那麼你當然無法知道如何生成合適的最終代碼。這部分內容我自我感覺其意義甚至超過了編譯原理本身。因為它會把一個計算機的程序的運行過程都通通排在你面前,你將來可能不會從事編譯器的開發工作,但是只要是和計算機軟體開發相關的領域,都會涉及到程序的執行過程。運行時環境的講解會讓你更清楚一個計算機程序是怎麼存儲,怎麼裝載,怎麼執行的。關於部分的內容,我強烈建議大家看看龍書上的講解,作者從最基本的存儲組織,存儲分配策略,非局部名字的訪問,參數傳遞,符號表到動態存儲分配(malloc,new)都作了十分詳細的說明。這些東西都是我們編寫平常程序的時候經常要做的事情,但是我們卻少去探求其內部是如何完成。
關於中間代碼生成,代碼生成,代碼優化部分的內容就實在不好說了。國內很多教材到了這部分都會很簡單地走馬觀花講過去,學生聽了也只是作為了解,不知道如何運用。不過這部分內容的東西如果要認真講,單獨開一學期的課程都講不完。在《編譯原理及實踐》的書上,對於這部分的講解就恰到好處。作者主要講解的還是一種以堆棧為基礎的指令代碼,十分通俗易懂,讓人看了後,很容易模仿,自己下來後就可以寫自己的代碼生成。當然,對於其它代碼生成技術,代碼優化技術的講解就十分簡單了。如果要仔細研究代碼生成技術,其實另外還有本叫做《》,那本書現在由機械工業出版社引進的,十分厚重,而且是英文原版。不過這本書我沒有把它列為推薦書給大家,畢竟能把龍書的內容搞清楚,在中國已經就算很不錯的高手了,到那個時候再看這本《》也不遲。代碼優化部分在大學本科教學中還是一個不太重要的部分,就是算是實踐過程中,相信大家也不太運用得到。畢竟,自己做的編譯器能正確生成執行代碼已經很不錯了,還談什麼優化呢?
編譯原理的課程畢竟還只是講解原理的課程,不是專門的編譯技術課程。這兩門課程是有很大的區別的。編譯技術更關注實際的編寫編譯器過程中運用到的技術,而原理的課
⑵ chm電子書問題!
軟體名稱: CHM電子書製作軟體
軟體語言: 簡體中文
界面預覽:
軟體類型: 國產軟體 / 1
運行環境: 2003, XP, 2000, NT, Win9X/ME
授權方式: 免費軟體
軟體大小: 32.7 MB
軟體等級:
整理時間: 2005-2-5 20:27:07
聯 系 人:
開 發 商:
演示地址: 無
下載次數: 本日:11 本 周:33 本月:113 總計:113
軟體簡介: CHM文件簡介
CHM 文件是微軟 1998 年推出的基於 html 文件特性的幫助文件系統,以替代早先的 WinHelp 幫助系統,在 windows98 中把 CHM 類型文件稱作「已編譯的 HTML 幫助文件」。被Internet Explorer 支持的 JavaScript、VBScript、ActiveX、Java Applet、Flash、html 圖像文件(GIF、JPEG、PNG)、音頻視頻文件(AU、MIDI、WAV、AVI)等等,CHM 同樣支持,並可以通過 URL 地址與網際網路聯系在一起。
在 windows98 及以後的 windows 版本中,CHM 文件的運行程序(hh.exe,27K)已是操作系統的一部分,它控制支持ActiveX 組件的網頁瀏覽器(如微軟的 Internet Explorer 3.0 以上版本)來解釋並運行 CHM 文件中的元素,這樣的好處就是能跨平台運行 CHM 文件,只要有不同平台上的運行器和瀏覽器,CHM 文件就不再需要重新進行編譯而直接使用,在不同語言的操作系統下,CHM 文件也會自動顯示堆汲Φ牟說ァ?br />
集錦包內軟體介紹:
「Visual CHM」 是一個非常便利的製作CHM文件的工具,完全的可視化操作。多種編譯屬性,可以使製作出的CHM文件具有非常的專業感。喜歡做電子書,喜歡收集網路文章的朋友,非常值得下載試用。
「QuickCHM」是一個多語版CHM製作軟體,支持大部分CHM的功能設置,而且外置語言包,可以很容易支持更多語言。是真正的所見即所得(WYSIWYG)CHM文件製作軟體,內置簡單易用的所見即所得網頁編輯器,使你可以不必在兩個軟體之間切換,只使用一個軟體就可以完成CHM文件的製作。軟體採用hhp格式保存和讀取,使軟體通用性增強。增強反編譯功能,反編譯後直接可以用QuickCHM讀取,使工作更輕松。
「Easy CHM」是國華軟體推出的一款強大的CHM電子書或CHM幫助文件的快速製作工具。使用EasyCHM只需要三個步驟就可以完成CHM的製作:1、用戶指定一個目錄,EasyCHM會自動導入全部目錄及文件;2、設置CHM編譯選項;3、開始製作。EasyCHM非常適合個人和單位製作高壓縮比的帶有全文檢索及高亮顯示搜索結果的網頁集錦、CHM幫助文件、專業的產品說明、公司介紹、CHM電子書等等。
主要產品功能:
全自動的目錄及文件導入(可以包括子目錄);
支持導入任意的文件類型;
自動生成CHM的目錄列表並自動生成所有目錄項;
為CHM的目錄列表自動添加多級編號;
批量更換CHM目錄各項的圖標;
支持批量查找替換多級目錄各項的標題文字內容;
允許用戶指定從文本文件的第N行自動截取標題;
易用的目錄編輯器;
豐富實用的CHM製作選項幫助用戶製作更加個性化的專業CHM電子書或CHM幫助文件。
內嵌CHM反編譯工具。
自動生成輸出Alias和Map頭文件。
「CHM電子書批量反編譯器」(ChmDecompiler)是一款專門用來反編譯CHM電子書源文件的工具軟體,可以迅速地釋放包括在CHM電子書裡面的全部源文件(包括網頁、文本、圖片、CHM、ZIP、EXE等全部源文件),並且完美地恢復源文件的全部目錄結構及文件名,以便幫助用戶得到源文件進行資料恢復或二次編輯。提供多種反編譯方式供用戶選擇:可以只釋放CHM電子書裡面的任意一個文件、任意一個目錄;也可以釋放CHM裡面的全部文件,另外,「CHM電子書批量反編譯器」(ChmDecompiler)的注冊版本支持批量操作。同時,「CHM電子書批量反編譯器」(ChmDecompiler)也可以作為CHM電子書的閱讀器,這也是本軟體的特色之一:用戶可以在瀏覽閱讀CHM電子書的同時選擇釋放出自己需要的文件。運行「CHM電子書批量反編譯器」(ChmDecompiler)一次後,用戶在資源管理器里右鍵單擊任意一個CHM電子書,並在彈出菜單里選擇「Open with ChmDecompiler」,程序會馬上運行並打開用戶選中的CHM電子書,非常方便快捷。
「ABC Amber CHM Converter」 是一個強大的文檔處理工具,程序可以幫助你批量的將CHM電子文檔轉換為PDF,RTF,HTML,DOC,TXT,MCW等29種電子文檔格式,並內置了對近50種語言的支持,包括對簡體中文/繁體中文的支持,另外程序還支持直接對轉換後的PDF電子文檔進行40/128 bits加密的功能!
「unEbookWorkshop」是專門用來反編譯 ebook Workshop( e書工場 )製作的EXE電子書源文件的工具軟體(E書反編譯工具),可以迅速地反編譯包括在EXE電子書裡面的全部源文件,並且完美地恢復源文件的全部目錄結構及文件名,以便幫助用戶得到源文件進行資料恢復或二次編輯。unEbookWorkshop支持批量操作,您只需指定一個包括EXE電子書的目錄,unEbookWorkshop會自動把指定目錄下符合條件的文件一次性反編譯。
「酷書製造」非常方便的將圖片、HTM文件、TXT文件、MHT文件批量封裝成一個EXE文件,成為一部圖文並茂的電子書籍。生成的電子書籍自動按照目錄生成關鍵字查詢,閱讀時可靈活加入書簽。
為了方便用戶,軟體還特別提供了將圖片、HTM文件、TXT文件、MHT文件進行批量轉換的功能。
「CHM 製作精靈」是一款將Html文檔(網頁文件)轉化為 Html Help文檔(CHM格式文檔)的軟體;是集 HTML Help Workshop工程創建,目錄、索引編寫及工程編譯等多種功能於一身的 CHM電子圖書製作軟體。與HTML Help Workshop配合使用製作出來的 Html Help 文檔會更見出色。歡迎使用 「CHM 製作精靈」來製作更多 CHM電子圖書!!!註:安裝是在VB6運行庫(MSVBVM60.DLL)的支持下才能進行.
「友益文書軟體」是一款操作簡單、功能實用的電子圖書製作利器、資料管理助手、幫助文件製作的好工具、簡易實用的多煤體課件製作軟體...支持批量導入網頁htm、word、excel、幻燈片、pdf、chm、exe、txt、rtf等格式的文件。該軟體是一款綠色軟體,不需安裝可直接使用。用該軟體製作的電子文書可直接生成可執行文件在任何機計算機上閱讀。該軟體採用視窗風格,目錄樹結構管理,所見即所得的設計理念,不需要復雜的轉換、編譯;使用,操作方便,可以自由地添加、刪除目錄樹,可以隨心所欲地編輯文檔內容,改變字體大小和顏色。該軟體不斷吸收了同類軟體的優點,同時在功能及設計上又具有獨特的創新性,採用混合索引演算法,數據存儲採用自帶的壓縮格式,獨特具有多重文本超鏈接功能,對導入的網頁仍可編輯,支持Word文檔、網頁、文本等多種格式文檔之間的轉換。採用了多級分布式加密演算法,界面支持皮膚等個性化的設計。生成可執行文件後文書仍可修改。
「書人之友2005」是一款用於資料收集、文檔管理,電子書及電子書應用程序製作、瀏覽、在線閱讀、語音朗讀、數字版權保護、光碟出版物保護等的綜合工具。是一個從前期資料收集、中期製作到後期發布的一體化電子文檔處理平台。所支持的書人之友多用途資料夾文件製作簡單容易,不僅能生成為電子書文件及電子書應用程序,還可以作為收藏夾、日記簿、筆記本、素材庫甚至影集、畫冊等來使用;所生成的高效便捷章節型電子書文件即含有流媒體特性可以邊下載邊閱讀,又有完善的數字版權保護方面的功能支持。因此軟體能適合於不同用戶的需要。功能簡介如下:
★主要的製作編輯功能★
- 支持多種文本文件、多種圖像文件、HTML/SHTML文件等作為章節內容,並針對不同章節類型都提供了較為完善的、「所見即所得」的內容編輯功能;
- 懸浮拖曳窗:支持多種圖像、文本文件和網頁文件和含有文本或圖像信息的數據的拖曳,一拖即錄入當前文件。此外還可用於打開文件和在線閱讀打開;
- 監視剪貼板:可以偵測剪貼板數據變化,後台獲取文本圖像信息並錄入文件。
- CHM支持:可以直接將不能直接編輯的CHM文件轉換為可以隨心修改的書人之友多用途資料夾文件。
- 文本語音朗讀功能可以用作語音校對。
- 製作的電子書和電子書應用程序可以包含作者的旗幟(Logo)、背景音樂等等個性化信息。
- 提供外接介面可以外掛更多外接程序(增益程式)來完善軟體的功能。
★主要閱讀功能★
- 電子書文件被分段壓縮,因此具有流媒體特性的電子書文件,支持在線閱讀(一邊下載一邊就能打開和查閱已經下載的內容);
- 文件可生成初具個性化的Exe應用程序;
- 插圖頁章節有多種圖像顯示模式,並且支持縮放。
- 文本語音朗讀功能:使您不僅能用眼看書,還能用耳聽書!!!另外還能將文本輸出為音頻文件。
- 提供了智能型、會自動隱藏/顯示目錄的閱讀模式。
★主要保護功能★
- 數字版權保護功能:使您的電子信息可以為您帶來利益,使不同作者製作的不同的電子書,在不同的讀者的計算機中需要一個唯一對應的圖書卡文件才能閱讀,並且同一作者自己製作的一批電子書可以只需一個圖書卡文件就能都被同一讀者閱讀,以便於按季度、年度給讀者發放電子圖書卡。
- 光碟出版物防翻刻保護功能:對小批量生產的電子出版物進行有效的保護,使他人所翻刻的盜版光碟中的文件無法被打開和閱讀。
- 資料夾文件可以添加打開密碼,保護您的隱私。
下載頁面:http://down.zt169.com/SoftView/SoftView_2022.html
***************************************************************************************************
以上為轉載!!
另外
52ebook.com
的論壇里
那裡有好多的牛人
你可以去看看!