① 現在學習c語言都是用什麼編譯器
初學者用的一般是TC編譯器。
名詞解釋
c語言
C語言是一種計算機程序設計語言,屬高級語言范疇。它既具有高級語言的特點,又具有匯編語言的特點。它可以作為工作系統設計語言,編寫系統應用程序,也可以作為應用程序設計語言,編寫不依賴計算機硬體的應用程序,代碼清晰精簡,十分靈活。
C語言,是一種通用的、過程式的編程語言,廣泛用於系統與應用軟體的開發。具有高效、靈活、功能豐富、表達力強和較高的移植性等特點,在程序員中備受青睞。最近25年是使用最為廣泛的編程語言。
C語言是由UNIX的研製者丹尼斯·里奇(Dennis Ritchie)於1970年 由 肯·湯普遜(Ken Thompson)所研製出的B語言的基礎上發展和完善起來的。目前,C語言編譯器普遍存在於各種不同的操作系統中,例如UNIX、MS-DOS、Microsoft Windows及linux等。C語言的設計影響了許多後來的編程語言,例如C++、Objective-C、Java、C#等。
語言是1972年由美國的Dennis Ritchie設計發明的,並首次在UNIX操作系統的 DEC PDP-11 計算機上使用。它由早期的編程語言BCPL(Basic Combined Programming Language)發展演變而來,在1970年,AT&T貝爾實驗室的Ken Thompson根據BCPL語言設計出較先進的並取名為B的語言,最後導致了C語言的問世。 而B語言之前還有A語言,取名自世界上第一位女程序員Ada(艾達)。
隨著微型計算機的日益普及,出現了許多C語言版本。由於沒有統一的標准, 使得這些C語言之間出現了一些不一致的地方。為了改變這種情況,美國國家標准研究所(ANSI)為C語言制定了一套ANSI標准,成為現行的C語言標准。
註:國際標准化組織ISO也制定的C語言的標准,目前被很多編譯器所採用,如:GCC等。
C語言是世界上最流行、使用最廣泛的高級程序設計語言之一。[2]
在操作系統和系統使用程序以及需要對硬體進行操作的場合,用C語言明顯優於其它高級語言,許多大型應用軟體都是用C語言編寫的。
C語言繪圖能力強,具有可移植性,並具備很強的數據處理能力,因此適於編寫系統軟體,三維,二維圖形和動畫。它是數值計算的高級語言。
常用的編譯軟體有Microsoft Visual C++,Borland C++,gcc(linux系統下最常用的編譯器),Watcom C++ ,Borland C++, Borland C++ Builder,Borland C++ 3.1 for DOS,Watcom C++ 11.0 for DOS,GNU DJGPP C++, Lccwin32 C Compiler 3.1,Microsoft C,High C等。
同時也是中國國家計算機等級考試中計算機二級考試下的一個考試科目。
② 手機c語言編程軟體哪個好
C4droid中文版可以說是款Android設備上的最強的 C/C++ IDE,支持多種圖形庫: SDL、SDL2 (需安裝sdl plugin for c4droid)、QT(需安裝CuteLoadear)等,還支持導出APK!
③ 學C語言要下載什麼軟體
學c語言可以用的軟體推薦如下:
1、TurboC是由美國Borland公司開發的一套C語言程序開發工具,Borland公司是一家專門從事軟體開發、研製的大公司。該公司相繼推出了一套Turbo系列軟體,如TurboBASIC、TurboPascal、TurboProlog,這些軟體很受用戶歡迎。TurboC集成了程序編輯、調試、鏈接等多種功能。
2、WIN-TC是一個TC2WINDOWS平台開發工具。該軟體使用TC2為內核,提供WINDOWS平台的開發界面,因此也就支持WINDOWS平台下的功能,例如剪切、復制、粘貼和查找替換等。
④ 急求C語言網路編譯器
C++編譯器是C語言編譯器的超集,所以你去下個Visual Studio就好了,肯定能編譯C程序。
⑤ 現在學習C語言,編譯器都用什麼啊
turbo c是最古老的編譯器,不支持中文輸入,支持C語言圖形編程,不建議使用
win-tc是我個人認為比較方便,比較實用的編譯器,不支持中文輸入,支持C語言圖形編程,若是學C語言,強烈建議使用
C與C++程序設計學習與實驗系統 2009.3 是能夠編譯C語言和c++文件的,能夠支持中文輸入,不支持C語言圖形編程,建議使用
vc++6.0功能強大的編譯器,能夠編譯C語言和c++文件,支持中文輸入不支持C語言圖形編程,建議使用
⑥ 求職簡歷中特長愛好書寫範文
對應聘者來說,簡歷是求職的「敲門磚「。簡歷的 愛好 特長寫得好可以給自己的簡歷添加光彩。以下是我整理的求職簡歷中特長愛好書寫 範文 _個人求職簡歷中的特長愛好怎麼寫,以供大家參考。
求職簡歷中特長愛好怎麼寫
「愛好與特長」在簡歷中的說服力不是很強,如果再不具體只能是浪費筆墨,甚至適得其反,所以在描述你的愛好與特長時一定要注意以下問題。
(1)寫強項。弱項不要寫, 面試 人員說不定對哪個項目感興趣,有時會跟你聊兩句,尤其是接連幾個、十幾個面試之後,有些招聘人員愛聊一些輕松的話題,一旦聊到的是你的弱項,絕大部分人會很尷尬,顯出窘態,喪失自信,這對你很不利。更重要的是,招聘人員會覺得你在撒謊。
(2)強項要寫也只寫兩到三項。
因為極少有人能夠達到「十項全能」水平。如果你覺得自己有很多強項,那麼招聘經理會認為你的標准可能稍低了點兒。當然,確實有人有七八項強項,但一般人不相信個人強項特別多,所以你也沒必要寫那麼多,以免給人輕浮的感覺。
(3)不具體的愛好不寫。
這些都是非常寬泛的詞語,比如你是鋼琴九級,而你在簡歷中只說自己愛好音樂,很可能會被誤解為你就是愛唱唱卡拉OK。不具體的愛好,通常會被大家理解為你根本就沒有真正的愛好,更糟糕的是,人們會認為你的寫作水平很差。而閱讀這樣的愛好最好不寫,哪個學生不是寒窗苦讀才熬到今天?除非你對於某段歷史、某種文學真的很有研究,否則建議不寫為妙,要知道中資企業的人事經理大多都是文科出身,業務上不能把你考倒,文學方面鹿死誰手就不得而知了。
(4)最好能寫上一兩項體育愛好,否則招聘經理會認為你的體質很差不適合運動,或者你缺乏毅力不願運動,因為有些工作需要經常出差或者加班,如此高強度的工作可能你心有餘而力不足,那麼可能就不會聘用
求職簡歷中特長愛好範文範本1 特長愛好和優勢一起寫
我性格開朗,辦事穩重善於思考,自學能力強,專業知識扎實,積極參加校園的各種文體活動,參加 社會實踐 。我喜歡打 羽毛球 , 乒乓球 ,強身健體。我興趣廣泛,愛好體育、繪畫,積極參加各類競賽,獲得各類獎項。假期時間參加英語培訓班。經過高中三年的學習,相信我我一定在德智體各項中得到很好的發展。
範本2 分點寫特長愛好
1.電腦應用熟練,熟練操作word,excel,,outlook,erp等各種辦公軟體; 2.勤奮上進好學,工作細心,條理清晰,踏實肯干,有很強的責任心; 3.性格開朗樂觀,善於人際交流和溝通,具備團隊合作精神; 4.喜好書法並有一定的書寫能力。
範本3特長和愛好分開寫
特長:擅長ps軟體的應用,文字功底好,有獨立排舞的能力。
愛好:聽音樂,追求新鮮事物,閱讀,運動等
下面是一些簡歷中的 興趣愛好 及讓人聯想到的特徵,可以作為借鑒:
籃球 , 足球 , 排球 :團隊精神。適用大多數崗位,如果你有這方面的愛好可以寫進簡歷。
圍棋 , 國際象棋 :戰略意識,應聘市場類或者高端職位比較適宜寫這類愛好。
閱讀,古典音樂:高雅。應聘文職類的職位適合。
旅遊:適應不同環境的能力,快速學習的能力。特別是某些工作職位需要經常出差有這方面愛好的求職者無疑有一定優勢,適用於銷售業務類職位。
跆拳道 :意志。適用於管理類,市場類職位。
演講, 辯論 :溝通能力強,適用於市場類,銷售業務類職位。
舞蹈:外向,易溝通。適用於公關類,市場類的職位。
愛好越具體越好
不具體的愛好,通常會被大家理解為你根本就沒有真正的愛好,更糟糕的是,人們會認為你的寫作水平很差。這些愛好在HR眼中是:
音樂:沒有特長;整天帶著耳機的傢伙;帶2B的文藝青年;可能會唱唱卡拉OK
閱讀/讀書:沒有特長;讀各類弱智小說;此人很悶;不說話的人
閱讀這樣的愛好最好不寫,哪個學生不是寒窗苦讀才熬到今天?除非你對於某段歷史、某種文學真的很有研究,否則建議不寫為妙,要知道中資企業的人事經理大多都是文科出身,業務上不能把你考倒,文學方面鹿死誰手就不得而知了。
你不妨寫上羽毛球等日常生活中經常玩的運動項目,既沒有高抬自己大多數時間都在撿球的水平,又沒有讓招聘經理失望。
求職簡歷中特長
範文1:銷售類
精通美容美發企業的 企業管理 、 市場營銷 ,以及市場運作和組織;精通紋綉美甲產品和市場;精通美容護膚彩妝產品與市場;曾在《銷售與市場》雜志發表多篇論文。擅長:銷售規劃、團隊激勵與培訓、市場拓展。
範文2:技術類
1、熟悉掌握美容、化妝、美發等原理,精通「劉氏」美容手法;
2、4年美容院駐店 經驗 ,精通各種皮膚疑難問題;
3、具有豐富的美容師管理經驗與協調經驗;
4、有「高級美容師」、「托尼英蓋高級美發師」等證書。
範文3:文職類
1、熟練使用多種計算機軟體office、photoshop和辦公設備操作,打字80字/分鍾以上;
2、熟練上internet查尋資料及收發郵件,公司網站的維護與更新;
3、接聽電話、收發傳真、圖書以及人事、行政文件製作、管理;
4、良好的溝通能力及協調能力。
範文4:通用性
1、具有較強的領導能力、業務工作能力、組織與協調能力、溝通能力、計劃與執行能力。
2、具有嫻熟的溝通技巧與團隊建設和管理能力,極強的談判能力及優秀的口頭表達,能承受壓力。
3、有較強的組織、協調、溝通、領導能力及出色的 人際交往 和社會活動能力以及敏銳的洞察力;
4、具有很強的判斷與決策能力,計劃和執行能力;
5、良好的團隊協作精神,為人誠實可靠、品行端正、具有親和力,較強的獨立工作能力和公關能力。
簡歷中特長愛好範文篇1姓名:
性別:男 出生年月:_年_月
聯系地址:北京市東城區__大街10號郵編:100007
Email Address:__
教育 背景
*20__.9---20__.7北京信息工程學院獲通信系學士學位
*20__.1-20__.7在清華大學電子工程系完成 畢業 設計
另:其他培訓情況
*SUN Solaris2.4系統管理及高級用戶培訓
* Cisco Scaling Multi-layer lntranet(Layer 3 Switch)
*IBM網路產品操作培訓:ATM交換機(8265/MSS,8285),區域網路由交換機(8273/8274),路由器
*IBM網路培訓高級班:ATM(8260,8265,MSS.PNNI,MPOA),區域網路由交換機(8273/8274)
*ECI TELECOM網路設計(Frame Relay)
*ECI TELECOM產品(NF_ 7500,7300,7100Frame Relay交換機),(網路接入產品NF_500,400)
*通過國家大學英語四級和六級考試,具有流利的 英語口語 表達能力
工作經歷
*20__年5月---至今__公司 網路系統工程師
●Cisco、IBM網路產品的技術支持
網路系統方案(區域網和廣域網)的設計和規劃,解答用戶的疑問,根據用戶需求提出最佳解決方案;Cisco、IBM網路產品的現場調試和系統維護
●客戶技術培訓,及公司內部的技術交流與培訓
網路基本原理及技術:LAN,WAN,TCP/IP,ATM等,以及Cisco、IBM網路設備調試過程;講解IBM AI_基本系統管理及高級系統管理、Netview、NFS、HACMP等
●曾經參與的項目
設計,安裝,調試「吉林97工程」--吉林省電信綜合管理系統ATM網路及主機系統,長沙卷煙廠,錦州合作銀行,人民教育出版社信息系統;設計雲南省郵電辦公信息集成系統,濟南廣電ATM寬頻綜合業務網、陝西有線電視寬頻網
*20__年9月---20__年3月__公司 系統管理員/工程師
●CHINAGBN Internet網路信息中心的系統管理
熟練掌握UNI_(SUN Solaris) 操作系統 、網路管理並參與組建了CHINAGBN Internet網路中心(包括網路設計,安裝系統,聯調,維護,網路編程)
●CHINAGBN金橋網六城市網路站點的建設
參與各站點Internet網路中心的總體規劃和建設及其與衛星主幹網的連接,對主幹衛星網、_.25分組交換、Frame Relay、ISDN和DDN及其相關設備有所了解
●CHINAGBN Internet網路中心Web系統管理員
個人簡介
具備豐富的工作經驗,認真踏實負責,且具備優秀的表達能力,曾多次主持對用戶和內部的技術講解和培訓,獲得用戶和公司的一致好評。曾在電子工業部「三金工程展風采展示會」上向來賓講解CHINAGBN專線集團用戶解決方案。
本人性格
溫和、謙虛、自律、自信(根據本人情況)
簡歷中特長愛好範文篇2目前所在: 海珠區 年齡: 32
戶口所在: 廣西 國籍: 中國
婚姻狀況: 已婚 民族: 漢族
誠信徽章: 未申請 身高: 162 cm
人才測評: 未測評 體重: 50 kg
我的特長:
◆ 求職意向
人才類型: 普通求職
應聘職位: 成本管理人員,會計,稅務人員
工作年限: 8 職稱: 無職稱
求職類型: 全職 可到職日期: 隨時
月薪要求: 4500~5499元 希望工作地區: 廣州,東莞,韶關
◆ 工作經歷
東莞南福皮件有限公司 起止年月:20__-10 ~ 20__-09
公司性質: 外商獨資所屬行業:服裝/紡織/皮革/鞋業
擔任職位: 成本會計
工作描述: 1.根據工廠的生產工藝流程確定成本核算 方法
2.建立工廠整套成本體系
3.核算原材料成本
4.對製造費用、人工、管理費用、銷售費用、其他支出根據生產工時進行分配
5.成本費用在完工產品與在產品之間進行分配
6.核算出每個訂單成本及產品單位成本
7.核算廢品損失成本
8.對公司每項費用和材料所佔比例進行分析
9.配合上級主管召開成本會議,完善內部控制.
離職 原因:
東莞萊得利皮具有限公司 起止年月:20__-10 ~ 2011-09
公司性質: 外商獨資所屬行業:服裝/紡織/皮革/鞋業
簡歷中特長愛好範文篇3姓 名:
年齡: 21
民族: 漢族
應聘職位: 軟體工程師
工作年限: 2
求職類型: 實習
可到職日期: 隨時
月薪要求: 4000--8000
希望工作地區: 廣州
教育背景
畢業院校: 學院
最高學歷: 本科
畢業日期: 20__-07
專 業 一: 軟體工程
外語: 英語
專長:
1、能夠充分理解面向對象的設計思想。
2、熟練掌握Java、C/C++ 程序設計語言,掌握基本的演算法原理,會利用開發平台編寫高級語言程序。
3、能熟練使用JSP+JavaBean開發模式。
4、能熟練使用Eclipse、MyEclipse、Microsoft Visual Studio。
5、能熟練配置、調試Java應用伺服器Apache Tomcat並進行Java程序的開發部署。
6、熟悉MySql、Oracle、SQLServer2000資料庫,掌握基於SQLServer2000的資料庫編程。
7、熟悉和了解OOA,OOD能操作Power Designer等工具。
8、熟悉JavaScript。
項目經驗:
項目一: 酒店信息管理系統(20__/10—20__/01)
系統平台:Windows _P
開發環境:MyEclipse+TOMCAT6.0+SQLServer20__
項目描述:後台資料庫管理酒店人員、物資;前台界面實現酒店的信息查詢、預定。
開發團隊: 小組開發,共四位成員。
角色定位: 項目組長,負責網站前台界面設計、JSP程序的編寫以及後台資料庫的設計,
協調小組成員的設計、開發工作,參與測試。
項目二:C語言編譯器開發(20__/10—20__/12)
系統平台:Windows _P
開發環境:MyEclipse
項目描述:使用C++語言開發,採用面向對象設計,實現該語言的詞法分析,語法分析及語義分析三個部分。
開發團隊: 小組開發,共四位成員。
角色定位:主要負責詞法分析及語法分析部分面向對象的設計與開發。
個人評價:
學習成績良好,有自主學習與鑽研的精神,對軟體開發有很濃厚的興趣。善於與人合作,有良好的表達能力。
求職簡歷中特長愛好書寫範文相關 文章 :
★ 求職簡歷中特長愛好書寫範文
★ 個人簡歷特長愛好怎麼寫參考範文
★ 個人簡歷中的專業特長範文
★ 畢業生的個人特長簡歷範文模板
★ 個人簡歷中的愛好特長怎麼寫
★ 個人簡歷特長愛好怎麼寫好
★ 簡歷中個人特長及自我評價範文
★ 求職簡歷特長怎麼寫
★ 個人簡歷中的個人特長怎麼寫
★ 個人簡歷特長怎麼寫
⑦ 什麼是c編譯器有什麼用,可以用它來寫C語言嗎
所謂c語言編譯器,就是把編程得到的文件,比如.c,.h的文件,進行讀取,並對內容進行分析,按照c語言的規則,將其轉換成系統可以執行的二進制文件。
其本質在於對文件的讀入,分析,及處理。這些操作,c語言都是可以實現的。
所以用c語言來做c語言的編譯器是完全可行的。
但是,歷史上的第一個c語言編譯器,肯定不是c語言寫的,因為在沒有編譯器時,無法把c語言轉換成可執行文件。
只要有了第一版其它語言的編譯器,就可以用c語言寫編譯器了。
事實上,目前大多數的c語言編譯器,都是用c語言寫的。
⑧ 學C語言現在最好用的編程軟體
GNU編譯器套裝
開發 The GNU Project
最新版本 4.4.2 / 2009-10-15(2個月前)
操作系統 跨平台
類型 編譯器
許可協議 GPL
網站 gcc.gnu.org
GCC(GNU Compiler Collection,GNU編譯器套裝),是一套由GNU開發的編程語言編譯器。它是一套以GPL及LGPL許可證所發行的自由軟體,也是GNU計劃的關鍵部分,亦是自由的類Unix及蘋果計算機Mac OS X 操作系統的標准編譯器。GCC(特別是其中的C語言編譯器)也常被認為是跨平台編譯器的事實標准。
GCC原名為GNU C語言編譯器(GNU C Compiler),因為它原本只能處理C語言。GCC很快地擴展,變得可處理C++。之後也變得可處理Fortran、Pascal、Objective-C、Java,以及Ada與其他語言。
目錄
[隱藏]
* 1 概觀
* 2 目前支持的語言
o 2.1 內嵌OpenMP支持
* 3 支持的處理器架構
* 4 結構
o 4.1 前端介面
o 4.2 中介介面
o 4.3 後端介面
* 5 替GCC程序除錯
* 6 參考書目及注釋
* 7 參閱
* 8 更多閱讀
* 9 外部鏈接
[編輯] 概觀
GCC是由理查德·馬修·斯托曼在1985年開始的。他首先擴增一個舊有的編譯器,使它能編譯C,這個編譯器一開始是以Pastel語言所寫的。Pastel是一個不可移植的Pascal語言特殊版,這個編譯器也只能編譯Pastel語言。為了讓自由軟體有一個編譯器,後來此編譯器由斯托曼和Len Tower在1987年[1]以C語言重寫[2]並成為GNU項目的編譯器。GCC的建立者由自由軟體基金會直接管理[3]。
在1997年,一群不滿GCC緩慢且封閉的創作環境者,組織了一個名為EGCS《Experimental/Enhanced GNU Compiler System》的項目,此項目匯整了數項實驗性的分支進入某個GCC項目的分支中。EGCS比起GCC的建構環境更有活力,且EGCS最終也在1999年四月成為GCC的官方版本。
GCC目前由世界各地不同的數個程序設計師小組維護。它是移植到中央處理器架構以及操作系統最多的編譯器。
由於GCC已成為GNU系統的官方編譯器(包括GNU/Linux家族),它也成為編譯與建立其他操作系統的主要編譯器,包括BSD家族、Mac OS X、NeXTSTEP與BeOS。
GCC通常是跨平台軟體的編譯器首選。有別於一般局限於特定系統與運行環境的編譯器,GCC在所有平台上都使用同一個前端處理程序,產生一樣的中介碼,因此此中介碼在各個其他平台上使用GCC編譯,有很大的機會可得到正確無誤的輸出程序。
[編輯] 目前支持的語言
以2006年5月24日釋出的4.1.1版為准,本編譯器版本可處理下列語言:
* Ada 《GNAT》
* C 《GCC》
* C++(G++)
* Fortran 《Fortran 77: G77,Fortran 90: GFORTRAN》
* Java 《編譯器:GCJ;解釋器:GIJ》
* Objective-C 《GOBJC》
* Objective-C++
先前版本納入的CHILL前端由於缺乏維護而被廢棄。
Fortran前端在4.0版之前是G77,此前端僅支持Fortran 77。在本版本中,G77被廢棄而採用更新的GFortran,因為此前端支持Fortran 95。
下列前端依然存在:
* Mola-2
* Mola-3
* Pascal
* PL/I
* D語言
* Mercury
* VHDL
[編輯] 內嵌OpenMP支持
OpenMP是一種跨語言的對稱多處理器(SMP)多線程並行程序的編程工具,也非常適合當今越來越流行的單CPU多核硬體環境,因此從gcc4.2開始,OpenMP成為其內嵌支持的並行編程規范,可以直接編譯內嵌 OpenMP語句的C/C++/Fortran95的源代碼。gcc4.2之前如果想在C/C++/Fortran中嵌入OpenMP語句的話,需要額外安裝庫和預處理器才能識別和正確處理這些語句。
* gcc 4.2.0開始支持OpenMP v2.5
* gcc 4.4.0開始支持OpenMP v2.5及v3.0
參見GNU的GOMP計劃
[編輯] 支持的處理器架構
GCC目前支持下列處理器架構(以4.1版為准):
* Alpha
* ARM
* Atmel AVR
* Blackfin
* H8/300
* IA-32(x86)與x86-64
* IA-64例如:Itanium
* MorphoSys家族
* Motorola 68000
* Motorola 88000
* MIPS
* PA-RISC
* PDP-11
* PowerPC
* System/370,System/390
* SuperH
* HC12
* SPARC
* VAX
* Renesas R8C/M16C/M32C家族
較不知名的處理器架構也在官方釋出版本中支持:
* A29K
* ARC
* C4x
* CRIS
* D30V
* DSP16xx
* FR-30
* FR-V
* Intel i960
* IP2000
* M32R
* 68HC11
* MCORE
* MMIX
* MN10200
* MN10300
* NS32K
* ROMP
* Stormy16
* V850
* Xtensa
由FSF個別維護的GCC處理器架構:
* D10V
* MicroBlaze
* PDP-10
* MSP430
* Z8000
當GCC需要移植到一個新平台上,通常使用此平台固有的語言來撰寫其初始階段。
[編輯] 結構
GCC的外部介面長得像一個標準的Unix編譯器。用戶在命令行下鍵入gcc之程序名,以及一些命令參數,以便決定每個輸入文件使用的個別語言編譯器,並為輸出代碼使用適合此硬體平台的匯編語言編譯器,並且選擇性地運行連接器以製造可運行的程序。
每個語言編譯器都是獨立程序,此程序可處理輸入的源代碼,並輸出匯編語言碼。全部的語言編譯器都擁有共通的中介架構:一個前端解析符合此語言的源代碼,並產生一抽象語法樹,以及一翻譯此語法樹成為GCC的寄存器轉換語言《RTL》的後端。編譯器優化與靜態代碼解析技術(例如FORTIFY_SOURCE[1],一個試圖發現緩存溢出《buffer overflow》的編譯器)在此階段應用於代碼上。最後,適用於此硬體架構的匯編語言代碼以Jack Davidson與Chris Fraser發明的演算法產出。
幾乎全部的GCC都由C寫成,除了Ada前端大部分以Ada寫成。
[編輯] 前端介面
前端的功能在於產生一個可讓後端處理之語法樹。此語法解析器是手寫之遞回語法解析器。
直到最近,程序的語法樹結構尚無法與欲產出的處理器架構脫鉤。而語法樹的規則有時在不同的語言前端也不一樣,有些前端會提供它們特別的語法樹規則。
在2005年,兩種與語言脫鉤的新型態語法樹納入GCC中。它們稱為GENERIC與GIMPLE。語法解析變成產生與語言相關的暫時語法樹,再將它們轉成GENERIC。之後再使用"gimplifier"技術降低GENERIC的復雜結構,成為一較簡單的靜態唯一形式(Static Single Assignment form,SSA)基礎的GIMPLE形式。此形式是一個與語言和處理器架構脫鉤的全局優化通用語言,適用於大多數的現代編程語言。
[編輯] 中介介面
一般編譯器作者會將語法樹的優化放在前端,但其實此步驟並不看語言的種類而有不同,且不需要用到語法解析器。因此GCC作者們將此步驟歸入通稱為中介階段的部分里。此類的優化包括消解死碼、消解重復計算與全局數值重編碼等。許多優化技巧也正在實現中。
[編輯] 後端介面
GCC後端的行為因不同的前處理器宏和特定架構的功能而不同,例如不同的字元尺寸、調用方式與大小尾序等。後端介面的前半部利用這些消息決定其RTL的生成形式,因此雖然GCC的RTL理論上不受處理器影響,但在此階段其抽象指令已被轉換成目標架構的格式。
GCC的優化技巧依其釋出版本而有很大不同,但都包含了標準的優化演算法,例如循環優化、線程跳躍、共通程序子句消減、指令調度等等。而RTL的優化由於可用的情形較少,且缺乏較高級的信息,因此比較起近來增加的GIMPLE語法樹形式[2],便顯得比較不重要。
後端經由一重讀取步驟後,利用描述目標處理器的指令集時所取得的信息,將抽象寄存器替換成處理器的真實寄存器。此階段非常復雜,因為它必須關照所有GCC可移植平台的處理器指令集的規格與技術細節。
後端的最後步驟相當公式化,僅僅將前一階段得到的匯編語言碼藉由簡單的副函數轉換其寄存器與存儲器位置成相對應的機器碼。
[編輯] 替GCC程序除錯
為GCC除錯的首選工具當然是GNU除錯器。其他特殊用途的除錯工具是Valgrind,用以發現存儲器泄漏 (Memory leak)。而GNU測量器(gprof)可以得知程序中某些函數花費多少時間,以及其調用頻率;此功能需要用戶在編譯時選定測量《profiling》選項。
[編輯] 參考書目及注釋
* Richard M. Stallman:Using and Porting the GNU Compiler Collection, Free Software Foundation,ISBN 0-595-10035-X
* Richard M. Stallman: Using Gcc: The Gnu Compiler Collection Reference, Free Software Foundation, ISBN 1-882114-39-6
* Brian J. Gough:An Introction to GCC, Network Theory Ltd., ISBN 0-9541617-9-3
1. ^ Tower, Leonard (1987) "GNU C編譯器beta測試版釋出" comp.lang.misc USENET新聞組;參閱http://gcc.gnu.org/releases.html#timeline
2. ^ Stallman, Richard M.(1986年2月1日).GNU狀態.GNU的公告版,1(1).自由軟體基金會.
3. ^ Stallman, Richard M. (2001) "GCC貢獻者名單"於使用及移植GCC 2.95版(Cambridge, Mass.: Free Software Foundation)
[編輯] 參閱
[[File:|36x32px|自由軟體主題]] 自由軟體主題首頁
GCC目前包含了Boehm GC,一個為C/C++ 所設計的垃圾回收器。
* distcc - 為分布式編譯所設計的軟體,以GCC為協同軟體。
* LLVM - 低層虛擬機編譯器架構。
* MinGW - 將GNU開發工具移植到Win32平台下的計劃
* Cygwin - 在Windows上運行GNU程序的模擬軟體。
* GCC Summit
* OpenWatcom - 另一個開放原碼的C++/Fortran編譯器。
* Code Sourcery - 一個GCC顧問公司。
* ggcc - 全球化GCC項目。
[編輯] 更多閱讀
* Arthur Griffith, GCC: The Complete Reference. McGrawHill/Osborne. ISBN 0-07-222405-3.
* Kerner, Sean Michael.Open Source GCC 4.0: Older, Faster,internetnews.com,2005年4月22日.
* Kerner, Sean Michael.New GCC Heavy on Optimization,internetnews.com,2006年3月2日.
[編輯] 外部鏈接
* GCC官方網站
* GCC Forum - 由Nabble維持,整理所有gcc通信討論串,並集成入一個可搜索介面中。