編譯器被刪除了嗎
㈠ 編譯器的歷史
20世紀50年代,IBM的John Backus帶領一個研究小組對FORTRAN語言及其編譯器進行開發。但由於當時人們對編譯理論了解不多,開發工作變得既復雜又艱苦。與此同時,Noam Chomsky開始了他對自然語言結構的研究。他的發現最終使得編譯器的結構異常簡單,甚至還帶有了一些自動化。Chomsky的研究導致了根據語言文法的難易程度以及識別它們所需要的演算法來對語言分類。正如Chomsky架構(Chomsky Hierarchy),它包括了文法的四個層次:0型文法、1型文法、2型文法和3型文法,且其中的每一個都是其前者的特殊情況。2型文法(或上下文無關文法)被證明是程序設計語言中最有用的,而且今天它已代表著程序設計語言結構的標准方式。分析問題(parsing problem,用於上下文無關文法識別的有效演算法)的研究是在60年代和70年代,它相當完善的解決了這個問題。它已是編譯原理中的一個標准部分。
有限狀態自動機(Finite Automation)和正則表達式(Regular Expression)同上下文無關文法緊密相關,它們與Chomsky的3型文法相對應。對它們的研究與Chomsky的研究幾乎同時開始,並且引出了表示程序設計語言的單詞的符號方式。
人們接著又深化了生成有效目標代碼的方法,這就是最初的編譯器,它們被一直使用至今。人們通常將其稱為優化技術(Optimization Technique),但因其從未真正地得到過被優化了的目標代碼而僅僅改進了它的有效性,因此實際上應稱作代碼改進技術(Code Improvement Technique)。
當分析問題變得好懂起來時,人們就在開發程序上花費了很大的功夫來研究這一部分的編譯器自動構造。這些程序最初被稱為編譯器的編譯器(Compiler-compiler),但更確切地應稱為分析程序生成器(Parser Generator),這是因為它們僅僅能夠自動處理編譯的一部分。這些程序中最著名的是Yacc(Yet Another Compiler-compiler),它是由Steve Johnson在1975年為Unix系統編寫的。類似的,有限狀態自動機的研究也發展了一種稱為掃描程序生成器(Scanner Generator)的工具,Lex(與Yacc同時,由Mike Lesk為Unix系統開發)是這其中的佼佼者。
在20世紀70年代後期和80年代早期,大量的項目都貫注於編譯器其它部分的生成自動化,這其中就包括了代碼生成。這些嘗試並未取得多少成功,這大概是因為操作太復雜而人們又對其不甚了解。
編譯器設計最近的發展包括:首先,編譯器包括了更加復雜演算法的應用程序它用於推斷或簡化程序中的信息;這又與更為復雜的程序設計語言的發展結合在一起。其中典型的有用於函數語言編譯的Hindley-Milner類型檢查的統一演算法。其次,編譯器已越來越成為基於窗口的交互開發環境(Interactive Development Environment,IDE)的一部分,它包括了編輯器、連接程序、調試程序以及項目管理程序。這樣的IDE標准並沒有多少,但是對標準的窗口環境進行開發已成為方向。另一方面,盡管在編譯原理領域進行了大量的研究,但是基本的編譯器設計原理在近20年中都沒有多大的改變,它正迅速地成為計算機科學課程中的中心環節。
在20世紀90年代,作為GNU項目或其它開放源代碼項目標一部分,許多免費編譯器和編譯器開發工具被開發出來。這些工具可用來編譯所有的計算機程序語言。它們中的一些項目被認為是高質量的,而且對現代編譯理論感興趣的人可以很容易的得到它們的免費源代碼。
大約在1999年,SGI公布了他們的一個工業化的並行化優化編譯器Pro64的源代碼,後被全世界多個編譯器研究小組用來做研究平台,並命名為Open64。Open64的設計結構好,分析優化全面,是編譯器高級研究的理想平台。
編譯器相關專業術語: 1. compiler編譯器;編譯程序 2. on-line compiler 連線編譯器 3. precompiler 預編譯器 4. serial compiler 串列編譯器 5. system-specific compiler 特殊系統編譯器 6. Information Presentation Facility Compiler 信息展示設施編譯器 7. Compiler Monitor System 編譯器監視系統
㈡ 誤刪了C盤Windows下的SDK文件夾,vs2013可以使用,matlab找不到vs編譯器
現在用的電腦多數是WIN64位機,但是在安裝MATLAB2011a時並不能順利安裝編譯器這是應為在64位機上安裝MATLAB時並沒有安裝編譯器。因此就帶來不能使用m文件等一系列問題。那麼就需要手動安裝,但是網上的手動安裝教程都是殘缺不全的。介紹的最詳細的是國外的mathworks網站。下邊具體詳述其操作步驟。步驟一:對於MATLAB7.12,對於64位機來說,VisualC++2010Express和SDK7.1都需要安裝。如果不知道Windows中是否安裝了上述軟體,就假設你已經安裝,並進行一下步驟。步驟二:為了避免錯誤,如果你既沒有安裝VisualC++2010也沒有安裝SDK7.1,那麼可以進行如下步驟:1.安裝SDK7.1,如果安裝失敗按照步驟三進行,然後再回到本步驟二的3.2.到參考資料的1網站下載文件包,SDK7.1.3.安裝VisualC++2010orSDK7.1。步驟三:如果你已經安裝了VisualC++2010ExpressSP1而沒有安裝SDK7.1,按照如下步驟進行:1.卸載VisualC++2010Redistributable,x64和x86版都要卸載。這個可以從控制面板卸載程序卸載。2.安裝SDK7.1,在安裝SDK7.1是確保取消VisualC++Compilers和MicrosoftVisualC++2010選框。3.至參考資料網站1下載SDK7.1安裝包。4.重新安裝VisualC++2010Redistributablepackages。步驟四:如果連個文件包都安裝後,在編譯期間仍然出現錯誤,那麼就需要安裝SDK7.11.至相關網站下載Windows7和.NETFramework4.下載完成後安裝。注意事項:如果有外語知識按照參考資料中的網站1完成不成問題,但是有寫不同。1.在安裝時可以將SDK「winsdk_web.exe」安裝時路徑改為「MicrosoftVisualStudio10.0」文件夾下。2.重新啟動MATLAB。