編譯器一般都有什麼創新點
⑴ 編譯器的功能是什麼
1、編譯器就是將「一種語言(通常為高級語言)」翻譯為「另一種語言(通常為低級語言)」的程序。一個現代編譯器的主要工作流程:源代碼 (source code) → 預處理器 (preprocessor) → 編譯器 (compiler) → 目標代碼 (object code) → 鏈接器(Linker) → 可執行程序 (executables)。
2、工作方法:
1)、首先編譯器進行語法分析,也就是要把那些字元串分離出來。
2)、然後進行語義分析,就是把各個由語法分析分析出的語法單元的意義搞清楚。
3)、最後生成的是目標文件,也稱為obj文件。
4)、再經過鏈接器的鏈接就可以生成最後的EXE文件了。
5)、有些時候需要把多個文件產生的目標文件進行鏈接,產生最後的代碼。這一過程稱為交叉鏈接。
⑵ 易語言編譯器與C++的編譯器分別是什麼他們有什麼區別啊
C/C++語言編譯器
編輯
你可以用LCC-Win32開發32位的控制台程序、Windows常規程序、動態連接庫(DLL) 以及靜態連接庫(LIB)。LCC編譯器支持標準的ANSI C,同時支持 C語言的擴展。通過下載相關工具,LCC-Win32還提供對Eiffel、Fortran語言的支持。
1.Borland C++ Compiler 5.5
「Borland C/C++ 5.5.1 for Win32」是Borland公司在2000年免費放出的一個C/C++編譯器,其功能完整、包含多種SDK,且容量極小,安裝版本大小僅8MB。Borland公司的旗艦級產品「C++ Builder 5」內置的就是這一編譯器。
2.Dev-C++ 4.9.9.2
是Bloodshed軟體公司於2005年2月21日推出的一個基於MingW(即GNU C/C++的Win32版)的微型C/C++開發工具。由於使用了GNU C/C+內核,所以在做軟體移植時非常的方便,你可以方便的將一個程序移植到任意一個有GNU C/C++的平台。而且由於基於GNU C/C++的開放源代碼軟體很多,所以使用Dev-C++是一個很好的選擇。但由於它的調試不便,幫助不全等問題,也使得它在推廣上舉步艱難,遠比不上Borland C/C++、OpenWatcom C/C++這兩個同是免費的編譯器。
3.DJGPP
DJGPP是基於32位保護模式的C語言編譯器,是一個GNU軟體,換句話說,你可以得到它整個系統的源代碼,且可以任意修改。它的集成環境RHIDE是仿Borland C++ 3.1的,十分好用,這比Watcom C要強多了。
4.LCC-Win32
運行於Windows9x/Me/NT/2000下的免費的32位C語言編譯系統。它的原始發布文件只有 3M,但卻擁有一個功能強大的集成開發環境(IDE)、速度極快的編譯器與連接器、方便順手的調試器、資源編輯器和版本控制系統。另外還提供圖像編輯器和 C 語言源文件格式化縮進器等附加工具。通過它的應用程序向導,你可以單擊幾次滑鼠輕松得到一個應用程序框架,絲毫不比其它龐大的同類軟體遜色。
5.OpenWatcom C/C++ 1.0
Watcom系統編譯器是加拿大Watcom公司開發的Intel x86體系16/32位編譯器,其最新版是11.0c。
Watcom C/C++的集成開發環境極差,不像Borland C/C++和Visual C/C++那樣有漂亮的界面,編譯連結不過輕輕一點。Watcom C/C++的大部分使用者都在命令行下編譯程序。想想吧!一個需要在命令行下編譯程序的編譯器,怎麼匹敵Borland C/C++和Visual C/C++,甚至是C++ Builder呢?
當然,編譯器的好壞並不能單單從使用方便使用上來比較,專業的程序員最關心的是目標程序的質量。Watcom系列編譯器相比Borland編譯器和Microsoft編譯器有一個最大的優勢,那便是速度:用Watcom C/C++編譯出來的程序在速度上遠遠超越(記住,不是一點兒,是超越了許多)了Borland C/C++和Microsoft Visual C/C++編譯出來的程序。這樣一來,即使是沒有集成開發環境,程序員們也認了。這也是不少游戲程序員親昧於這個編譯器的原因。
現在我們所用到的OpenWatcom C/C++ 1.0便是Watcom C/C++ 11.0c開放後的版本,它是免費、而且開放源碼的。
6.當然還有我們經常看見的TC2.0 TC3.0 Borland C++3.1 等
參考資料:http://antare.bokee.com/3361182.html
需要付費的編譯器(有些允許有評估期的免費下載):
Borland C++
Comeau C++ - 支持多平台
Compaq C++
Digital Mars C++
Edison Design Group C++ Front End - 被許多C++編譯器廠商採用
Green Hills C++ - 支持嵌入式系統平台
HP C++
IBM C++
Intel C++ - 支持Windows, linux, 和其他嵌入式系統
Interstron C++
Metrowerks C++ - 支持多平台,可從Metrowerks主頁上查詢
Mentor Graphics/Microtec Research C++ - 支持嵌入式系統平台
Microsoft C++
Paradigm C++ - 支持x86嵌入式系統
The Portland Group C++ - 針對奔騰CPU優化
SGI C++ - 優化的編譯器
Sun C++
WindRiver's Diab C++ - 用於很多嵌入式系統
來自:http://blog.sina.com.cn/s/blog_3e26cd0b010008d2.html
7. Microsoft Visual C++
Visual C++6.0不僅是一個C++編譯器,而且是一個基於Windows操作系統的可視化集成開發環境(integrated development environment,IDE)。Visual C++6.0由許多組件組成,包括編輯器、調試器以及程序向導AppWizard、類向導Class Wizard等開發工具。 這些組件通過一個名為Developer Studio的組件集成為和諧的開發環境。
版本由visual C++6.0發展到visual C++2008再到現在的visual C++2010(最新版)
Visual Studio 2010發布
2010年4月12日,Microsoft Visual Studio 2010全球發布會將於北京盛大舉行,我們特別邀請千位中國開發菁英與世界五大城市同步迎接跨世代開發工具!屆時,微軟全球資深副總裁張亞勤博士等多位微軟高層,以及來自微軟總部的多位核心研發團隊主管,將親臨發布會現場,共同為您解密微軟新一代開發平台的革新之處,幫助您實現更完美的Coding夢想!
對於易語言 網上沒有足夠的資料表明它用的獨立的編譯器 很多人都說是用的VC
用查殼工具發現易語言生成的PE文件編譯器為VC6.0,有人推斷易語言可能是在VC上架了一層,最終可能仍然是經由VC的編譯器進行編譯,可能是從易語言到C++,到匯編,再到機器碼,以上資料僅供參考
⑶ 在編寫程序時要用到編譯器,什麼是編譯器有什麼用
VC Borland C Eclipse 都是編譯器 就是把你的源代碼 編譯 解釋成機器能讀懂的機器碼 因為機器內部是用二進制的嘛 所以最終也就是一串 1 0 組成的序列
⑷ java常用編譯組件的種類及其特點
1、JDK (Java Development Kit)Java開發工具集
從初學者角度來看,採用JDK開發Java程序能夠很快理解程序中各部分代碼之間的關系,有利於理解Java面向對象的設計思想。JDK的另一個顯著特點是隨著Java (J2EE、J2SE以及J2ME)版本的升級而升級。但它的缺點也是非常明顯的就是從事大規模企業級Java應用開發非常困難,不能進行復雜的Java軟體開發,也不利於團體協同開發。
2、Java Workshop
3、NetBeans 與Sun Java Studio 5
NetBeans是開放源碼的Java集成開發環境(IDE),適用於各種客戶機和Web應用。Sun Java Studio是Sun公司最新發布的商用全功能Java IDE,支持Solaris、Linux和Windows平台,適於創建和部署2層Java Web應用和n層J2EE應用的企業開發人員使用。
NetBeans是業界第一款支持創新型Java開發的開放源碼IDE。開發人員可以利用業界強大的開發工具來構建桌面、Web或移動應用。同時,通過NetBeans和開放的API的模塊化結構,第三方能夠非常輕松地擴展或集成NetBeans平台。
NetBeans3.5.1主要針對一般Java軟體的開發者,而Java One Studio5則主要針對企業做網路服務等應用的開發者。Sun不久還將推出Project Rave,其目標是幫助企業的開發者進行軟體開發。
NetBeans 3.5.1版本與其他開發工具相比,最大區別在於不僅能夠開發各種台式機上的應用,而且可以用來開發網路服務方面的應用,可以開發基於J2ME的移動設備上的應用等。在NetBeans 3.5.1基礎上,Sun開發出了Java One Studio5,為用戶提供了一個更加先進的企業編程環境。在新的Java One Studio5里有一個應用框架,開發者可以利用這些模塊快速開發自己在網路服務方面的各種應用程序。
4、Borland 的JBuilder
Jbuilder進入了Java集成開發環境的王國,它滿足很多方面的應用,尤其是對於伺服器方以及EJB開發者們來說。下面簡單介紹一下Jbuilder的特點:
1)Jbuilder支持最新的Java技術,包括Applets、JSP/Servlets、JavaBean以及EJB(Enterprise JavaBeans)的應用。
2)用戶可以自動地生成基於後端資料庫表的EJB Java類,Jbuilder同時還簡化了EJB的自動部署功能.此外它還支持CORBA,相應的向導程序有助於用戶全面地管理IDL(分布應用程序所必需的介面定義語言Interface Definition Language)和控制遠程對象。
3)Jbuilder支持各種應用伺服器。Jbuilder與Inprise Application Server緊密集成,同時支持WebLogic Server,支持EJB 1.1和EJB 2.0,可以快速開發J2EE的電子商務應用。
4)Jbuilder能用Servlet和JSP開發和調試動態Web 應用。
5)利用Jbuilder可創建(沒有專有代碼和標記)純Java2應用。由於Jbuilder是用純Java語言編寫的,其代碼不含任何專屬代碼和標記,它支持最新的Java標准。
6)Jbuilder擁有專業化的圖形調試介面,支持遠程調試和多線程調試,調試器支持各種JDK版本,包括J2ME/J2SE/J2EE。
JBuilder環境開發程序方便,它是純的Java 開發環境,適合企業的J2EE開發;缺點是往往一開始人們難於把握整個程序各部分之間的關系,對機器的硬體要求較高,比較吃內存,這時運行速度顯得較慢。
5、Oracle 的JDeveloper
Oracle9i JDeveloper(定為9.0版,最新為10g)為構建具有J2EE功能,XML和Web services的復雜的,多層的 Java應用程序提供了一個完全集成的開發環境。它為運用Oracle9i資料庫和應用伺服器的開發人員提供特殊的功能和增強性能,除此以外,它也有資格成為用於多種用途Java開發的一個強大的工具。
Oracle9i JDeveloper的主要特點如下:
① 具有UML(Unified Modeling Language,一體化建模語言)建模功能。可以將業務對象及e-business應用模型化。
② 配備有高速Java調試器(Debuger)、內置Profiling工具、提高代碼質量的工具「CodeCoach」等。
③ 支持SOAP(Simple Object Access Protocol)「簡單對象訪問協議」、UDDI (Universal Description, Discovery and Integration)「統一描述、發現和集成協議」、WSDL (Web Services Description Language)「WEB服務描述語言」等Web服務標准。
JDeveloper 不僅僅是很好的 Java 編程工具,而且是 Oracle Web 服務的延伸,支 Apache SOAP,以及 9iAS ,可擴充的環境和 XML 和 WSDL 語言緊密相關。Oracle9i Jdeveloper完全利用Java編寫,能夠與以前的 Oracle伺服器軟體以及其他廠商支持J2EE的應用伺服器產品相兼容,而且在設計時著重針對Oracle9i,能夠無縫化跨平台之間的應用開發,提供了業界第一個完整的、集成了J2EE和XML的開發環境,允許開發者快速開發可以通過Web、無線設備及語音界面訪問的Web服務和交易應用,以往只能通過將傳統Java編程技巧與最新模塊化方式結合到一個單一集成的開發環境中之後才能完成J2EE應用開發生命周期管理的事實,從根本上得到改變。缺點就是對於初學者來說,較復雜,也比較難。
6、IBM的Visual Age for Java
Visual Age for Java是一個非常成熟的開發工具,它的特性以於IT開發者和業余的Java編程人員來說都是非常用有用的。它提供對可視化編程的廣泛支持,支持利用CICS連接遺傳大型機應用,支持EJB的開發應用,支持與Websphere的集成開發,方便的bean創建和良好的快速應用開發(RAD)支持和無文件式的文件處理。
IBM為建設Web站點所推出的 WebSphere Studio Advanced Edition及其包含的Visua Age for Java Professional Edition軟體已全面轉向以Java為中心,這樣,Java開發人員對WebSphere全套工具的感覺或許會好了許多。Studio所提供的工具有:Web站點管理、快速開發 JDBC頁向導程序、HTML編輯器和HTML語法檢查等。這確實是個不錯的HTML站點頁面編輯環境。Studio和VisualAge集成度很高,菜單中提供了在兩種軟體包之間快速移動代碼的選項。這就讓使用 Studio的Web頁面設計人員和使用VisualAge的Java程序員可以相互交換文件、協同工作。
Visual Age for Java支持團隊開發,內置的代碼庫可以自動地根據用戶做出改動而修改程序代碼,這樣就可以很方便地將目前代碼和早期版本做出比較。與Visual Age緊密結合的Websphere Studio本身並不提供源代碼和版本管理的支持,它只是包含了一個內置文件鎖定系統, 當編輯項目的時候可以防止其他人對這些文件的錯誤修改,軟體還支持諸如Microsoft Visual SourceSafe這樣的第三方源代碼控制系統。Visual Age for Java完全面向對象的程序設計思想使得開發程序非常快速、高效。你可以不編寫任何代碼就可以設計出一個典型的應用程序框架。Visual Age for Java作為IBM電子商務解決方案其中產品之一,可以無縫地與其他IBM產品,如WebSphere、DB2融合, 迅速完成從設計、開發到部署應用的整個過程。
Visual Age for Java獨特的管理文件方式使其集成外部工具非常困難,你無法讓Visual Age for Java與其他工具一起聯合開發應用。
7、BEA 的 WebLogic Workshop
BEA WebLogic Workshop是一個統一、簡化、可擴展的開發環境,使所有的開發人員都能在 BEA WebLogic Enterprise Platform之上構建基於標準的企業級應用,從而提高了開發部門的生產力水平,加快了價值的實現。
WebLogic Workshop除了提供便捷的Web服務之外,它能夠用於創建更多種類的應用。作為整個 BEA WebLogic Platform的開發環境。不管是創建門戶應用、編寫工作流、還是創建Web應用,Workshop 8.1都可以幫助開發人員更快更好地完成。
WebLogic Workshop的主要特點如下:
① 使 J2EE 開發切實可行,提高開發效率
BEA WebLogic Workshop 使開發人員遠離 J2EE 內在的復雜性,集中精力專注業務邏輯,無須操心單調乏味的基礎結構代碼。這種創新意味著,已被企業驗證的 J2EE 的強大功能,最終被大多數不熟悉 Java 和 J2EE 的應用開發人員所掌握,從而使 IT 部門的工作效率提高一個數量級。
可視化設計器以及直觀的概念,如事件、屬性和控制項等,實現了基於事件的開發。Workshop 簡化的程序設計模型,使開發人員不必掌握復雜的 J2EE API 和面向對象的程序設計原理。所有開發人員,包括 J2EE 專家和具有可視化和過程化語言技能的應用開發人員在內,都可以共同工作在 BEA WebLogic Enterprise Platform 之上。Workshop 的可視化開發環境,創建帶有代碼注釋的標准 Java 文件,用來說明由運行時框架實施的企業級需求。J2EE 和其他高級開發人員,藉助功能強大的代碼編輯功能,可以訪問 Java 源代碼,從而彌補了可視化設計器的不足。
② 構建企業級應用
通過在可伸縮、安全可靠的企業級架構上實施各種應用,BEA WebLogic Workshop 大大降低了開發風險。而且,所有應用的創建都使用標準的 J2EE 組件,既保護了您的技術投資,又保持了最大的靈活性。 BEA WebLogic Workshop 運行框架,是統一整個架構的匯聚層,使單一、簡化的程序設
計模型擴展到所有的 BEA WebLogic Enterprise Platform 應用類型。通過解釋設計時創建的注釋代碼,運行時框架可以實現必要的 J2EE 組件,並且提取出與 J2EE 應用開發有關的所有底層細節。
③ 降低 IT 復雜性
BEA WebLogic Workshop 提供各種 Java 控制項,使得與 IT 資源的連接更輕而易舉。另外,在構建任何 BEA WebLogic Platform 的應用中,Java 控制項不僅可擴展而且完全相同。這種強大、有效的方法能夠:降低 IT 技術的復雜性,優化信息的可用性,推動包含"最佳業務方案"的可重用服務的開發,使開發人員能以更低的成本、更短的時間實現更大的產出。
利用 BEA WebLogic Workshop,任何開發人員都能以最大的生產效率,構建各種Web 服務、Web 應用、門戶和集成項目。 BEA WebLogic Workshop是BEA的產品戰略核心,它幫助客戶接觸和利用面向服務架構(SOA)的強大功能。 BEA Weblogic Workshop 8.1極大簡化了當前實際企業集成環境中企業級應用和服務的構建,並成為全面支持關鍵企業級應用(如非同步、真正松耦合和粗粒度消息傳送等)的自然選擇。它的缺點就是過於復雜,對於初學者來說,理解起來較為困難。
8、WebGain 的Visual Cafe for Java
Visual Cafe 是只能在Symantec公司的Java虛擬機、Netscape公司的Java虛擬機和Microsoft虛擬機上工作的調試器。這對於開發者來講是一個重要的特性,因為用戶開發的Java代碼中的許多軟體bug就可能中會在某種特定的虛擬機上起作用。
在修改後進行編譯基繼續進行調試時,Visual Cafe會自動將文件存檔,使用Visual Cafe創建的原生應用具有許多特點。除了明顯的速度提高之外,Symantec使類庫的二進制方式比正常的JDK小Visual Cafe為所指定的關系自動生成或更新必要的Java代碼。利用 Visual Cafe,用戶可以從一個標准對象資料庫中集合完整的Java應用程序和Applet,而不必再編寫源代碼。Visual Cafe還提供了一個擴充的源代碼開發工具集。
Visual Cafe綜合了Java軟體的可視化源程序開發工具,它允許開發人員在可視化視圖和源視圖之間進行有效地轉換。在可視化視圖中進行的修改立即反映在源代碼中。對源代碼的改變自動更新可視化視圖。
Visual Cafe具有許多源文件方面的特性,如全局檢索和替換。絕大多數Java開發工具的文獻的問題在於簡單地挨個介紹開發工具的每部分組件,但用戶在開應用時還需要一個面向任務的手冊,利用這個手冊你可以不必知道工具每一部分的特定功能就可以開始創建自己的應用。Visual Cafe提供了非常全面的用戶指南,它對最開始的安裝到創建第一個Java應用和Applet都提供了全面的幫助,Visual Cafe將自動生成所指明關系的必要 Java代碼。Visual Cafe可以在Windows 95和Windows NT平台下運行,Symantec公司為Java開發工作提供一個在 Macintosh操作系統下可以運行的RAD工具。Visual Cafe編譯器速度很快,在國際化支持方面比較突出;缺點就是對於初學者來說,較復雜,也比較難。
9、Macromedia的JRUN
Macromedia公司的JRun是一個具有最廣闊適用性的Java引擎,用於開發及實施由Java Servlets和JavaServer Pages編寫的伺服器端 Java應用。JRun是第一個完全支持JSP 1.0 規格書的商業化產品,全球有超過80,000名開發人員使用JRun在他們已有的Web伺服器上添加伺服器端Java的功能。其中Web伺服器包括了Microsoft IIS,Netscape Enterprise Server,Apache 等。
JRun是開發實施伺服器端Java的先進引擎。如果我們希望在我們的Web應用中添加伺服器端Java功能,那麼JRun將成為我們的正確選擇。
JRun目前有3個版本,它是第一個支持Java Server Pages(JSP)規格書1.0的商業化產品。JSP是一種強大的伺服器端技術,它是用於創建復雜Web應用的一整套快速應用開發系統。JRun可以使我們開始開發並測試Java應用。它最多接受5個並發的連接並且包括全部 Java Servlet API,支持JavaServer Pages(JSP),支持所有主要的Web servers和計算機平台。 JRun Pro能夠在生產環境下承受大訪問量的負載,幫助我們實施應用、服務或Web站點(包括內聯網)。JRun Pro 支持無限量並發式連接運行多個Jav
a虛擬機,包括多個並發的Java虛擬機(JVM)。提供一個遠程管理applet以及一個遠程可再分布式的管理applet。JRun Pro Unlimited包括了所有JRun Pro的功能,除次以外,還可以運行無限量的,並發的JVM。
JRun依靠其內置的JRun Web Server可以單獨運行。使用伺服器端Java,用戶可以開發出復雜的商業應用系統。最重要的一點是,由於 servlets的平台獨立性,以及更加簡單的開發、更快速的實施、更經濟的維護成本,它是CGI(Common Gateway Interface) 或Perl scripts的極佳的替代產品。缺點就是對於初學者來說,較復雜,也比較難。
10、JCreator
JCreator 是一個Java程序開發工具,也是一個Java集成開發環境(IDE)。無論你是要開發Java應用程序或者網頁上的Applet元件都難不倒它。在功能上與Sun公司所公布的JDK等文字模式開發工具相較之下來得容易,還允許使用者自訂義操作窗口界面及無限Undo/Redo等功能。
JCreator為用戶提供了相當強大的功能,例如項目管理功能,項目模板功能,可個性化設置語法高亮屬性、行數、類瀏覽器、標簽文檔、多功能編繹器,向導功能以及完全可自定義的用戶界面。通過JCreator,我們不用激活主文檔而直接編繹或運行我們的JAVA程序。
JCreator能自動找到包含主函數的文件或包含Applet的Html文件,然後它會運行適當的工具。在JCreator中,我們可以通過一個批處理同時編繹多個項目。JCreator的設計接近Windows界面風格,用戶對它的界面比較熟悉。其最大特點是與我們機器中所裝的JDK完美結合,是其它任何一款IDE所不能比擬的。它是一種初學者很容易上手的java開發工具,缺點是只能進行簡單的程序開發,不能進行企業J2EE的開發應用。
11、Microsoft VJ++
Visual J++ 是Microsoft 公司推出的可視化的Java 語言集成開發環境(IDE),為Java 編程人員提供了一個新的開發環境,是一個相當出色的開發工具。無論集成性、編譯速度、調試功能、還是易學易用性,都體現了Microsoft 的一慣風格。Visual J++ 具有下面的特點:
1)Visual J++ 把Java 虛擬機(JVM)作為獨立的操作系統組件放入Windows,使之從瀏覽器中獨立出來。
2)Microsoft 的應用基本類庫(AFC,Application Foundation Class Library)對SUN 公司的JDK 作了擴展,使應用基本類庫更加適合在Windows 下使用。
3) Visual J++ 的調試器支持動態調試,包括單步執行、設置斷點、觀察變數數值等。
4) Visual J++ 提供了一些程序向導(Wizards)和生成器(Builders),它們可以方便地幫助用戶快速地生成Java 程序,幫助你在自己的工程中創建和修改文件。
5) Visual J++ 界面友好,其代碼編輯器具有智能感知、聯機編譯等功能,使程序編寫十分方便。Visual J++ 中建立了Java 的 WFC,這一新的應用程序框架能夠直接訪問Windows 應用程序介面(API),使你能夠用Java 語言編寫完全意義上的Windows 應用程序。
6)Visual J++ 中表單設計器的快速應用開發特性使用WFC 創建基於表單的應用程序變得輕松、簡單。通過WFC 可以方便地使用ActiveX 數據對象(ADO,ActiveX Data Objects)來檢索數據和執行簡單數據的綁定。通過在表單設計器中使用 ActiveX 數據對象,可以快速地在表單中訪問和顯示數據。
Visual J++能結合微軟的一貫的編程風格,很方便進行Java 的應用開發,但它的移植性較差,不是純的Java 開發環境。
12、Eclipse
Eclipse是一種可擴展的開放源代碼IDE。2001年11月,IBM公司捐出價值4,000萬美元的源代碼組建了Eclipse聯盟,並由該聯盟負責這種工具的後續開發。集成開發環境(IDE)經常將其應用范圍限定在「開發、構建和調試」的周期之中。為了幫助集成開發環境(IDE)克服目前的局限性,業界廠商合作創建了Eclipse平台。Eclipse允許在同一IDE中集成來自不同供應商的工具,並實現了工具之間的互操作性,從而顯著改變了項目工作流程,使開發者可以專注在實際的嵌入式目標上。
Eclipse框架的這種靈活性來源於其擴展點。它們是在XML中定義的已知介面,並充當插件的耦合點。擴展點的范圍包括從用在常規表述過濾器中的簡單字元串,到一個Java類的描述。任何Eclipse插件定義的擴展點都能夠被其它插件使用,反之,任何Eclipse插件也可以遵從其它插件定義的擴展點。除了解由擴展點定義的介面外,插件不知道它們通過擴展點提供的服務將如何被使用。
利用Eclipse,我們可以將高級設計(也許是採用UML)與低級開發工具(如應用調試器等)結合在一起。如果這些互相補充的獨立工具採用Eclipse擴展點彼此連接,那麼當我們用調試器逐一檢查應用時,UML對話框可以突出顯示我們正在關注的器件。事實上,由於 Eclipse並不了解開發語言,所以無論Java語言調試器、C/C++調試器還是匯編調試器都是有效的,並可以在相同的框架內同時瞄準不同的進程或節點。
Eclipse的最大特點是它能接受由Java開發者自己編寫的開放源代碼插件,這類似於微軟公司的 Visual Studio和Sun微系統公司的NetBeans平台。Eclipse為工具開發商提供了更好的靈活性,使他們能更好地控制自己的軟體技術。Eclipse聯盟已經宣布將在2004年中期發布其3.0版軟體。這是一款非常受歡迎的java開發工具,這國內的用戶越來越多,實際上實用它 java開發人員是最多的。缺點就是較復雜,對初學者來說,理解起來比較困難。
13、Ant
Another Neat Tool(Ant)是一種基於Java的build工具。理論上來說,它有些類似於(Unix)C中的make ,但沒有 make的缺陷。因為Ant的原作者在多種(硬體)平台上開發軟體時,無法忍受這些工具的限制和不便。類似於make的工具本質上是基於shell(語言)的:他們計算依賴關系,然後執行命令(這些命令與你在命令行敲的命令沒太大區別)。這就意味著你可以很容易地通過使用OS特有的或編寫新的(命令)程序擴展該工具;然而,這也意味著你將自己限制在了特定的OS,或特定的OS類型上,如Unix。Ant就不同了。與基於shell命令的擴展模式不同, Ant用Java的類來擴展。(用戶)不必編寫shell命令,配置文件是基於XML的,通過調用target樹,就可執行各種task。每個task由實現了一個實現了特定Task介面的對象來運行。
Ant支持一些可選task,一個可選task一般需要額外的庫才能工作。可選 task與Ant的內置task分開,單獨打包。這個可選包可以從你下載Ant的同一個地方下載。ANT本身就是這樣一個流程腳本引擎,用於自動化調用程序完成項目的編譯,打包,測試等。除了基於JAVA是平台無關的外,腳本的格式是基於XML的,比make腳本來說還要好維護一些。Ant是Apache 提供給Java開發人員的構建工具,它可以在Windows OS和Unix OS下運行,它不僅開放源碼並且還是一個非常好用的工具。Ant是 Apache Jakarta中一個很好用的Java開發工具,Ant配置文件採用XML文檔編寫,所以Java程序員對其語法相當熟悉,Ant是專用於 Java項目平台,能夠用純Java來開發,它能夠運行於Java安裝的平台,即體現了它的跨平台功能。它的缺點顯示執行結果只能是DOS字元界面,不能進行復雜的java程序開發。
14、IntelliJ
Intellij IDEA 是一款綜合的Java 編程環境,被許多開發人員和行業專家譽為市場上最好的IDE。它提供了一系列最實用的的工具組合:智能編碼輔助和自動控制,支持 J2EE,Ant,JUnit和CVS集成,非平行的編碼檢查和創新的GUI設計器。IDEA把Java開發人員從一些耗時的常規工作中解放出來,顯著地提高了開發效率。具有運行更快速,生成更好的代碼;持續的重新設計和日常編碼變得更加簡易,與其它工具的完美集成;很高的性價比等特點。在4.0版本中支持Generics,BEA WebLogic集成,改良的CVS集成以及GUI設計器。
IntelliJ IDEA能盡可能地促進程序員的編程速度。它包括了很多輔助的功能,並且與Java結合得相當好。不同的工具窗口圍繞在主編程窗口周圍,當滑鼠點到時即可打開,無用時也可輕松關閉,使用戶得到了最大化的有效屏幕范圍。以技術為導向的IDEA集成了調試器,支持本地和遠程的調試,即使我們需要修改一些設置上的東西使我們的工作順利進展。另外,它還提供了通常的監視,分步調試以及手動設置斷點功能,在這種斷點模式下,我們可以自動地在斷點之外設置現場訪問,甚至可以瀏覽不同的變數的值。IDE支持多重的JVM設置,幾個編譯程序和Ant建造系統,並且,它使得設置多重的自定義的類途徑變得簡單。
IntelliJ Idea是一個相對較新的Java IDE。它是Java開發環境中最為有用的一個。高度優化的IntelleJ Idea使普通任務變得相當容易,Idea支持很多整合功能,更重要的使它們設計的好容易使用。Idea支持XML中的代碼實現,Idea同時還會校正XML,Idea支持 JSP的結構。作用於普通Java代碼的眾多功能同樣適用於JSP(比如整合功能),同時支持JSP調試;支持EJB,盡管它不包括對個別應用伺服器的特殊支持。Idea支持Ant建立工具,不僅是運行目標它還支持編譯與運行程序前後運行目標,另外也支持綁定鍵盤快捷鍵。在編輯一個Ant建立XML文件時,Idea還對組成Ant工程的XML部分提供支持。IntelliJ IDEA 被稱為是最好的JAVA IDE開發平台,這套軟體就是以其聰明的即時分析和方便
的 refactoring 功能深獲大家所喜愛。缺點是較復雜,對初學者來說,理解起來比較困難。
小結
現在常用的Java項目開發環境有:JBuilder、VisualAge for Java、Forte for Java, Visual Cafe、Eclipse、NetBeans IDE、JCreator +J2SDK、jdk+記事本、EditPlus+ J2SDK等等。一般開發J2EE項目時都需要安裝各公司的應用伺服器(中間件)和相應的開發工具,在使用這些開發工具之前,我們最好能熟知這些軟體的優點和缺點,以便根據實際情況選擇應用。編程工具只是工具,為了方便人們工作而開發的,各有特點,因此,選工具主要的依據自己將要從事的領域是什麼,而不是盲目的認為那種工具好,那種工具不好。最後希望大家都能找到自己合適的java 開發工具。
⑸ 英特爾酷睿微體系結構的創新要點
台式機可以在佔用更小空間的同時,為家庭用戶帶來更多全新的娛樂體驗,為企業員工帶來更高的工作效率。筆記本電腦用戶可以獲得更高的移動性能和更耐久的電池使用時間。以下英特爾酷睿微體系結構的幾大創新點:
寬位動態執行
英特爾寬位動態執行(Intel Wide Dynamic Execution)
衡量一款處理器的性能水平,已經不能再單純的以頻率的高低考量,而是更強調「每瓦特性能」,也就是所謂的能效比。「性能=頻率×每個時鍾周期的指令數」是英特爾提出的對性能的創新理解,英特爾寬位動態執行通過提升每個時鍾周期完成的指令數,從而顯著改進執行能力。
英特爾酷睿微架構擁有4組解碼器,相比上代Pentium Pro (P6)/Pentium II/ Pentium III / Pentium M架構擁有3組可多處理一組指令,簡單講,每個內核會變得更加「寬闊」,這樣每個內核就可以同時處理更多的指令。英特爾酷睿微體系結構在提升每個時鍾周期的指令數方面做了很多努力,例如新加入宏融合(Macro-Fusion)技術,它可以讓處理器在解碼的同時,將同類的指令融合為單一的指令,這樣可以減少處理的指令總數,讓處理器在更短的時間內處理更多的指令。為此英特爾酷睿微體系結構也改良了ALU(算術邏輯單元)以支持宏融合技術。
Core擁有3個64-bit整數執行單元(Integer Execution Units),每個單元可以獨立處理一條64-bit整數數據,這樣Core就有了一套64-bit的CIU復雜整數單元(Complex Integer Unit),這和P6構架相同。然後Core另外有2個SIU簡單整數處理單元(Simple Integer Units)來快速運算較簡單的任務,其中一個SIU和分支執行單元BEU來共同完成部分的宏指令融合micro-ops fusion。對於INTEL的X86 CPU來說,這是首次可以在一周期內完成一階64-bit的整數運算,這使Core已經走到了IBM PowerPC 970的前面-PowerPC 970需要有2個周期的延遲。另外,因為3個IEU整數執行核心使用了各自獨立的PORT數據出口,所以整個Core處理器可以在一周期內同時執行3組64-bit的整數運算。
有著如此強大的整數處理單元,Core在性能上會比已有Pentium 4快的多,它在移動平台、伺服器、3D圖形上4倍於Pentium 4的性能表現會使全世界對INTEL CPU眼目一新。Core構架擁有2個浮點執行單元(Floating-Point Execution Units)同時處理向量和標量的浮點數據,位於PORT 1的FPEU-1浮點執行單元負責加減等簡單的處理,而PORT 2的FPEU-2浮點執行單元則負責乘除等運算,這樣在Core中就把FADD/VFADD和FMUL/VFMUL劃分為兩組,使其具備了在一周期中完成兩條浮點指令的能力。
智能功率能力
英特爾智能功率能力(Intel Intelligent Power Capability)
英特爾智能功率能力,可以進一步降低功耗,優化電源使用,從而為伺服器、台式機和筆記本電腦提供個更高的每瓦特性能。新一代處理器在製程技術方面做出優化,採用了先進的65nm應變硅技術、加入低K柵介質及增加金屬層,相比上代90nm製程減少漏電達1000倍。值得注意的是,英特爾加入了超精細的邏輯控制機能獨立開關各運算單元,具體來講,酷睿微體系結構採用先進的功率門控技術。以往功率門控技術實現起來十分困難,因為元件開關過程需要消耗一定的能源,而且由休眠到恢復工作也會出現延遲,但英特爾酷睿微體系結構已經解決這些問題。通過該特性,可以智能地打開當前需要運行的子系統,而其他部分則處於休眠狀態,這樣可能大幅降低處理器的功耗及發熱。
除了在佔用更少ROB和RS的情況下,宏指令融合(Macro-Fusion)還節約了內核前端的帶寬,Core的解碼單元能比過去快的多得清空IQ指令列隊(Instruction Queue),而內核執行帶寬也同樣寬闊了很多,因為單個的ALU能同時執行2個X86指令,這些綜合性能的提高使Core的實際處理效率比P6構架要提高多倍,遠高於其可見的硬體單元增加幅度。
高級智能高速緩存
英特爾智能高速緩存技術(Intel Advanced Smart Cache)
以往的多核心處理器,其每個核心的二級緩存是各自獨立的,這就造成了二級緩存不能夠被充分利用,並且兩個核心之間的數據交換路線也更為冗長,必須要通過共享的前端串列匯流排和北橋來進行數據交換,影響了處理器工作效率。英特爾酷睿微結構體系結構採用了共享二級緩存的做法,有效加強了多核心架構的效率。這樣的好處是,兩個核心可以共享二級緩存,大幅提高了二級高速緩存的命中率,從而可以較少通過前端串列匯流排和北橋進行外圍交換。
英特爾高級智能高速緩存還有其他方面的優勢,每個核心都可以動態支配全部二級高速緩存。當某一個內核當前對緩存的利用較低時,另一個內核就可以動態增加佔用二級緩存的比例。甚至當其中的一個內核關閉時,仍可以保持全部緩存在工作狀態,另外也可以根據需求關閉部分緩存來降低功耗。這樣可以降低二級緩存的命中失誤,減少數據延遲,改進處理器效率,增加絕對性能和每瓦特性能。
Core的向量執行單元:當INTEL最初兼容128-bit向量執行時,情況可能和編程人員及用戶所預想不太一樣,採用在P6和Banias構架上的SSE、SSE2和SSE3有2個重大的弱點,在ISA指令集架構方面,SSE最主要的缺點就是不支持3指令運算(Three-Operand),而支持Three-Operand的AltiVec則成為了當時更好的ISA。這樣折衷的處理方案使P6構架在處理128-bit數據時增加了一倍以上的延遲,而當時PowerPC G4的AltiVec只需要1個周期就能完成。同樣不幸的是,Netburst的Pentium 4和Pentium M構架也都有這個弱點。
全新的Core終於擁有了一個周期完成128-bit向量運算的能力,INTEL終於把浮點和整數運算的內部帶寬擴大到了128-bit,這不僅改進了延遲一周期的缺點,只有過去半數的微指令處理量也同樣提高了解碼、派址和帶寬利用等多方面的速度。這樣全新構架的CPU會可以把128-bit的大量multiply/add/load/store/compare/jump等6套指令集成在一個周期中全部完成,其運用性能的飛躍幅度可想而知。
P6構架的內部浮點處理和MMX都只有64-bit的帶寬,所以進入SSE執行核心的只能是64-bit數據。為了讓64-bit的SSE來處理128-bit指令,P6構架必須把128-bit的數據切割為2個64-bit的連續部分來處理。INTEL還不能透露Core具體的流水線詳情,不過,Core採用14條流水線-這和 PowerPC 970是一樣的,而之前的Pentium 4 Prescott擁有30條,P6構架為12條。短的流水線意味著Core在頻率上的提升只能是緩慢的,而不能夠像Pentium 4那樣急速上升。也可以這樣猜想,其實Core的流水線設計和P6構架中的流水線是一模一樣的,額外多出來的2條流水線完全是為了預留下CPU頻率提升的空間而已。2條新的流水線各自成為Core流水線的入口和出口,成為了宏指令融合(Macro-Fusion)、微指令融合(Micro-Ops Fusion)等整合技術的輸送站。Core的ROB重排序緩沖區(Reorder Buffer)和RS預留緩存(Reservation Station)要比過去的Pentium M大了接近一倍,而事實上還必須考慮到新的宏指令融合(Macro-Fusion)、微指令融合(Micro-ops Fusion)等高效率的融合技術,這樣以來,Core的內部轉接速度至少要比Pentium M提高了3倍以上。它內置2組SD簡單編譯器(Simple/fast Decoders)和1組CD復雜編譯器(Complex/slow Decoder),2組SD簡單編譯器負責將簡單X86指令轉換至Uops微指令(Micro-ops)然後傳送到MB微指令緩沖區(Micro-op Buffer)。復雜編譯器可以編譯4個Uops微指令,而一些類似字元串處理的舊式復雜任務還要通過專門的ME微碼引擎(Microcode Engine)來轉換為更加復雜的微指令,這些微指令再同時輸入到MB微指令緩沖區等待下一步重排序。
智能內存訪問
英特爾智能內存訪問(Intel Smart Memory Access)
英特爾智能內存訪問是另一個能夠提高系統性能的特性,通過縮短內存延遲來優化內存數據訪問。英特爾智能內存訪問能夠預測系統的需要,從而提前載入或預取數據,反映到用戶的直接使用體驗上,就是大幅提高了執行程序的效率。
以前要從內存中讀取數據,就需要等待處理器完成前面的所以指令後才可以進行,這樣的效率顯然是低下的。而英特爾酷睿微體系結構中加入一項名為內存消歧的能力,它可以對內存讀取順序做出分析,智能地預測和裝載下一條指令所需要的數據,這樣能夠減少處理器的等待時間,減少閑置,同時降低內存讀取的延遲,而且它可以偵測出沖突並重新讀取正確的資料及重新執行指令,保證運算結果不會出錯誤,大大提高了執行效率。
MIF微指令融合早先在Pentium M構架上就已經採用過,它和MF宏指令融合有著相似的功效,但是原理完全不一樣。SD簡單編譯器(Simple/fast Decoder)把接收的單條X86指令轉譯為兩條微指令,連接的兩條微指令通過ROB發送到RS後,RS把兩條微指令分開來傳輸到不同的PORT中,平行的雙通道同時傳輸,也可以是單通道的連續傳輸,這則取決於具體的處理情況。相對舊的MIF微指令融合技術,新的MIF支持了PORT的連續傳輸。Core的三重分支預測單元實際上與Pentium M的預測單元是一樣的,在Core的分支預測核心中存在一個雙模態預測器和一個球型預測器,這些預測器記錄下過去的執行歷史並隨時通知內核前端的ROB和RS,ROB和RS從BTB分支目標緩沖器(Branch Target Buffer)中快速取回所需要的數據地址,常規預測如通知一個分支在循環中僅在奇次迭代發生, 而不在偶次迭代中發生等, 這些在動態執行(P6系列)處理器上的靜態預測技術還有有著長遠的發展空間。分支歷史表(Branch History Tables)不能夠記錄下足夠詳細的循環迴路歷史來准確預測下次的運算,所以每次循環迴路的運行都浪費了大量的亢余時間。循環迴路預測(Loop Detector)則可以記錄下每個循環迴路結束前的所有的詳細分支地址,當下一次同樣的循環迴路程序需要運算時,內核前端的ROB和RS就可以以100%的准確度來快速完成任務,Core構架擁有一個專門的運演算法則來進行這種循環迴路預測。
Core前端處理環節新的突出能力是宏指令融合(Macro-Fusion),可以把多個X86指令融合在一起發送到到一個編譯器轉換為一個Uops微指令。多種指令可以被融合,其中特別將compare和test指令融合到了分支指令(Branch Instructions)中。4個編譯器都具有融合能力,但整個單元每周期只能完成一次宏指令融合。間接分支預測(Indirect Branch Predictor)在運用時並不是立即分支,而是從寄存器中裝載需要的預測目標,它實際上是一個首選目標地址的歷史記錄表。在ROB和RS需要間接分支的時候它就可以提供幫助,ROB和RS就可以快速提取到適用的結果,這與P6構架用可預測的條件分支替換間接分支來改善性能是相反的。
高級數字媒體增強
英特爾高級數字媒體增強(Intel Advanced Digital Media Boost)(英特爾清晰視頻技術)
上面提到了「性能=頻率×每個時鍾周期的指令數」這個新概念,而英特爾高級數字媒體增強也同樣是為了提高每個時鍾周期的指令數而誕生,它可以提高SIMD流指令擴展指令(SSE/SSE2/SSE3)的執行效率。之前的處理器需要兩個時鍾周期來處理一條完整指令,而Intel酷睿微體系結構則擁有128位的SIMD執行能力,一個時鍾周期就可以完成一條指令,效率提升明顯。
SSE指令集已經十分普遍地用於主流的軟體中,包括繪圖、影像、音頻、加密、數學運算等用途,單周期128位SIMD處理器能力令處理器擁有高能效表現。
基於以上這些先進的創新特性,英特爾酷睿微體系結構提供了比前代架構更卓越的性能和更高的能效,為伺服器、台式機和移動平台帶來了振奮人心的全新高能效表現。
⑹ GCC/G++,ICC,Clang,MSVC,BCC等C/C++編譯器有什麼特長和不足
clang編譯速度快,但是貌似編譯結果運行相對會慢。功能更新一般也比較快。
g++編譯速度比clang慢,編譯結果運行貌似比clang快。功能更新稍慢。
vc這幾年沒編譯過大工程,感覺上編譯速度在clang和g++之間。以過去的經驗g++和vc編譯結果運行速度差不多。功能更新上就是一坨屎。但是在Windows上寫點正經東西你可能不得不用它,相對的你也只能在Windows上用它。
icc很久沒用過,過去印象編譯速度很慢,運行速度最快但是感覺有點得不償失。最大的問題是這東西要錢,前三個都是免費的。
bcc直接無視就好了。
⑺ 現在學習GCC之類編譯器編程還有什麼好處
IDE很多 Eclipse用的比較普遍 intellijIDEA用起來感覺不錯 還有很多很多 剛開始學習些代碼 可以用記事本寫 加強基本功
⑻ c++編譯器都有什麼,怎麼可以用命令行編譯c++,怎樣學習c++,c++和vc++的區別是什麼
c++的編譯器常見的有 微軟的, GCC(linux下最常用的,也有windows版本,叫mingw) 和 intel的(intel有不少好東西,對性能要求高的話可以考慮)
但是集成開發環境就多了 微軟的 visual studio (VC6 VC2005 VC2008)系列,也可以把intel的編譯器掛到VS下面,取代微軟的編譯器,dev-c++ 和 codeblocks 這兩個用的都是用的GCC的編譯器。
windows下 ,最好不用命令行編譯很麻煩的,大一點的項目還要寫makefile來管理,linux下 g++ -o file file.cc 然後 ./file 就能執行剛才的程序了
學C++ 多練 多寫代碼 找本好的參考書 比如 c++ primer ,教材隨便找本就行了 網上可以下到電子書的
c++是一門語言 而VC++通常指的是微軟為了開發windows下的圖形界面程序,而給出的一些API函數,以及封裝了這些API函數的MFC庫,它們的語法是C++的語法。C++在linux下可以照常使用,但VC++到了linux下就沒法用了,因為linux下沒有MFC庫,當然它也有自己的一些圖形庫
⑼ 編譯器有什麼用
簡單講,編譯器就是將「一種語言(通常為高級語言)」翻譯為「另一種語言(通常為低級語言)」的程序。一個現代編譯器的主要工作流程:源代碼 (source code) → 預處理器 (preprocessor) → 編譯器 (compiler) → 目標代碼 (object code) → 鏈接器(Linker) → 可執行程序 (executables)
高級計算機語言便於人編寫,閱讀交流,維護。機器語言是計算機能直接解讀、運行的。編譯器將匯編或高級計算機語言源程序(Source program)作為輸入,翻譯成目標語言(Target language)機器代碼的等價程序。源代碼一般為高級語言 (High-level language), 如Pascal、C、C++、Java、漢語編程等或匯編語言,而目標則是機器語言的目標代碼(Object code),有時也稱作機器代碼(Machine code)。
對於C#、VB等高級語言而言,此時編譯器完成的功能是把源碼(SourceCode)編譯成通用中間語言(MSIL/CIL)的位元組碼(ByteCode)。最後運行的時候通過通用語言運行庫的轉換,編程最終可以被CPU直接計算的機器碼(NativeCode)。