編譯器ccl
C語言編譯器目前主要有VC++、dev-C++、C-Free、win-TC、TC 2.0等等。
其中比較經典的VC++,微軟的產品,編譯器,鏈接器,運行,調試等功能於一體的強大開發工具,特點是功能十分強大,對於新手來說需要一段時間去摸索。
dev-C++是windows下一款開發c/c++的開發環境,使用gcc為編譯器,遵循標准,功能比較強大,語法高量,可以進行單步調試(這對排除錯誤很重要),進行斷點設置等功能,遵循C標准,是一款很強大的開發工具。
C-Free是一款支持多種編譯器的專業化C/C++集成開發環境(IDE)。利用C-Free,使用者可以輕松地編輯、編譯、連接、運行、調試C/C++程序。
TC 2.0:Borland公司的產品,在dos界面下編譯運行,小巧、靈活,但是不能使用滑鼠。
win-TC:在tc2.0的基礎上加上了界面,能夠使用滑鼠,具有語法高量,可以嵌入匯編等特點,對新手一些,拜託了不能用滑鼠的困難。
編譯器,簡單講,就是將「一種語言(通常為高級語言)」翻譯為「另一種語言(通常為低級語言)」的程序。一個現代編譯器的主要工作流程:源代碼 (source code) → 預處理器 (preprocessor) → 編譯器 (compiler) → 目標代碼 (object code) → 鏈接器(Linker) → 可執行程序 (executables)。
⑵ C語言初學者
C語言32個關鍵字
[code]auto :聲明自動變數 一般不使用
double :聲明雙精度變數或函數
int: 聲明整型變數或函數
struct:聲明結構體變數或函數
break:跳出當前循環
else :條件語句否定分支(與 if 連用)
long :聲明長整型變數或函數
switch :用於開關語句
case:開關語句分支
enum :聲明枚舉類型
register:聲明積存器變數
typedef:用以給數據類型取別名(當然還有其他作用)
char :聲明字元型變數或函數
extern:聲明變數是在其他文件正聲明(也可以看做是引用變數)
return :子程序返回語句(可以帶參數,也看不帶參數)
union:聲明聯合數據類型
const :聲明只讀變數
float:聲明浮點型變數或函數
short :聲明短整型變數或函數
unsigned:聲明無符號類型變數或函數
continue:結束當前循環,開始下一輪循環
for:一種循環語句(可意會不可言傳)
signed:生命有符號類型變數或函數
void :聲明函數無返回值或無參數,聲明無類型指針(基本上就這三個作用)
default:開關語句中的「其他」分支
goto:無條件跳轉語句
sizeof:計算數據類型長度
volatile:說明變數在程序執行中可被隱含地改變
do :循環語句的循環體
while :循環語句的循環條件
static :聲明靜態變數
if:條件語句
最後printf是列印輸出語句,例如:printf("%d",a);
意思是將a以整形輸出。
按優先順序排序,空行表示優先順序下降,01為最高,最先算
14~31均為雙目,左結合
() 01.圓括弧
[] 02.下標
-> 03.指針型結構成員
. 04.結構成員
! 05.邏輯非
~ 06.位非
++ 07.自增
-- 08.自減
- 09.取負
(類型) 10.類型轉換
* 11.取內容
& 12.取地址
sizeof 13.求位元組
…………………………………………………
此級(5~13)均為單目運算,且都為右結合
* 14.乘
/ 15.除
% 16.求余
+ 17.加
- 18.減
<< 19.左移
>> 20.右移
< 21.小於
<= 22.小於等於
> 23.大於
>= 24.大於等於
== 25.等於
!= 26.不等於
& 27.位與
^ 28.位異或
| 29.位或
&& 30.與
|| 31.或
?: 32.條件運算
……………………………………
此級(32)為三目運算,右結合
= 33.賦值運算
………………………………………………………………
另有10個擴展符+=,-=,*=,/=,%=,>>=,<<=,&=,^=,|=
, 34.逗號運算
你還滿意嗎?
⑶ C語言源程序到運行程序經過哪幾個步驟
1、預處理
在這一階段,源碼中的所有預處理語句得到處理,例如:#include語句所包含的文件內容替換掉語句本身,所有已定義的宏被展開。
根據#ifdef,#if等語句的條件是否成立取捨相應的部分,預處理之後源碼中不再包含任何預處理語句。
GCC預處理階段可以生成.i的文件,通過選項-E可以使編譯器在預處理結束時就停止編譯。例如:gcc -E -o hello.i hello.c
2、編譯
這一階段,編譯器對源碼進行詞法分析、語法分析、優化等操作,最後生成匯編代碼。這是整個過程中最重要的一步,因此也常把整個過程稱為編譯。
可以通過選項-S使GCC在進行完編譯後停止,生成.s的匯編程序。例如:gcc -S -o hello.s hello.c
3、匯編
這一階段使用匯編器對匯編代碼進行處理,生成機器語言代碼,保存在後綴為.o的目標文件中。
當程序由多個代碼文件構成時,每個文件都要先完成匯編工作,生成.o目標文件後,才能進入下一步的鏈接工作。
目標文件已經是最終程序的某一部分了,只是在鏈接之前還不能執行。可以通過-c選項生成目標文件:gcc -c -o hello.o hello.c
4、鏈接
經過匯編以後的機器代碼還不能直接運行。為了使操作系統能夠正確載入可執行文件,文件中必須包含固定格式的信息頭,還必須與系統提供的啟動代碼鏈接起來才能正常運行,這些工作都是由鏈接器來完成的。gcc -o hello hello.c
5、運行:執行.EXE文件,得到運行結果。
⑷ c語言用什麼編譯器
c語言可以用的編譯器有很多,包括MicrosoftVisualC++、MyEclipse、TurboC和gcc編譯器等。1、MicrosoftVisualC++是微軟公司的免費C語言編程軟體,是用戶在安裝VisualC++庫時必須安裝的運行時組件,可以完美解決在系統運行一些軟體時會遇到缺少DLL的情況,使用戶可正常運行VisualC++開發的應用程序。
2、myeclipse是款優秀的java開發工具,MyEclipse功能強大,運用廣泛,尤其是對各種開源產品的支持十分不錯,能夠大大提高開發人員的工作效率。
3、TurboC是一款功能快捷高效的C語言編輯器,主要是用來編寫C/C++程序,無需獨立地編輯、編譯和連接程序就能建立並運行C語言程序,軟體體積非常的小巧,並且對於電腦方面沒有特別的系統要求,功能上也十分的強大。
4、gcc編譯器是款專業的c語言編輯工具,可用於c語言、c++、java、object-C等語言程序中去,支持交叉編譯器,交叉語言設計,提供交叉編譯環境,通過在命令列下鍵入一些命令參數,讓編程更有效率。
總結
c語言可以用的編譯器有很多,包括MicrosoftVisualC++、MyEclipse、TurboC和gcc編譯器等。
⑸ c語言編譯軟體有哪些
6款好用的C語言編譯器推薦
一些剛開始接觸C語言編譯的網友想下載一款C語言編譯器來使用,不過,網路上有不少C語言編譯器相關的軟體,讓人很難抉擇。那麼,C語言編譯器哪個好?今天的文章里,小編給大家整理了6款好用的C語言編譯器推薦給大家,需要C語言編譯器的網友,不妨了解一下!
一、Dev-C++
Visual Studio(VS) 是一套非常完備的工具和服務,可幫助您為 Microsoft 平台和其他平台創建各種各樣的應用程序。Visual Studio 還可將您所有的項目、團隊和利益干係人聯系在一起。現在您的團隊可以從任何位置以虛擬方式進行更為敏捷的合作,無論他們採用何種開發工具。
功能介紹
可以通過強大的集成開發環境構建面向 Windows、Android、iOS 以及 Web 的出色應用。使用任何 IDE 或編輯器在雲中進行版本控制、敏捷、持續交付、應用程序分析協作。
適用於所有操作系統的編輯器使用可在 Windows、OS X 或 linux 上運行的免費代碼編輯器構建和調試現代 Web 和雲應用程序。
⑹ 編譯器的組成及各部分的功能及作用
1. 詞法分析 詞法分析器根據詞法規則識別出源程序中的各個記號(token),每個記號代表一類單詞(lexeme)。源程序中常見的記號可以歸為幾大類:關鍵字、標識符、字面量和特殊符號。詞法分析器的輸入是源程序,輸出是識別的記號流。詞法分析器的任務是把源文件的字元流轉換成記號流。本質上它查看連續的字元然後把它們識別為「單詞」。 2. 語法分析 語法分析器根據語法規則識別出記號流中的結構(短語、句子),並構造一棵能夠正確反映該結構的語法樹。 3. 語義分析 語義分析器根據語義規則對語法樹中的語法單元進行靜態語義檢查,如果類型檢查和轉換等,其目的在於保證語法正確的結構在語義上也是合法的。 4. 中間代碼生成 中間代碼生成器根據語義分析器的輸出生成中間代碼。中間代碼可以有若干種形式,它們的共同特徵是與具體機器無關。最常用的一種中間代碼是三地址碼,它的一種實現方式是四元式。三地址碼的優點是便於閱讀、便於優化。 5. 中間代碼優化 優化是編譯器的一個重要組成部分,由於編譯器將源程序翻譯成中間代碼的工作是機械的、按固定模式進行的,因此,生成的中間代碼往往在時間和空間上有很大浪費。當需要生成高效目標代碼時,就必須進行優化。 6. 目標代碼生成 目標代碼生成是編譯器的最後一個階段。在生成目標代碼時要考慮以下幾個問題:計算機的系統結構、指令系統、寄存器的分配以及內存的組織等。編譯器生成的目標程序代碼可以有多種形式:匯編語言、可重定位二進制代碼、內存形式。 7 符號表管理 符號表的作用是記錄源程序中符號的必要信息,並加以合理組織,從而在編譯器的各個階段能對它們進行快速、准確的查找和操作。符號表中的某些內容甚至要保留到程序的運行階段。 8 出錯處理用戶編寫的源程序中往往會有一些錯誤,可分為靜態錯誤和動態錯誤兩類。所謂動態錯誤,是指源程序中的邏輯錯誤,它們發生在程序運行的時候,也被稱作動態語義錯誤,如變數取值為零時作為除數,數組元素引用時下標出界等。靜態錯誤又可分為語法錯誤和靜態語義錯誤。語法錯誤是指有關語言結構上的錯誤,如單詞拼寫錯、表達式中缺少操作數、begin和end不匹配等。靜態語義錯誤是指分析源程序時可以發現的語言意義上的錯誤,如加法的兩個操作數中一個是整型變數名,而另一個是數組名等。
⑺ 為什麼我的linux系統找不到ccl這個編譯器
執行gcc -v命令,如果Linux系統沒有安裝gcc編譯器,會提示Command not found(沒有這個命令),如果系統上安裝了gcc編譯器,這條命令就會顯示出當前安裝的gcc編譯器是哪個版本。
⑻ cmd調用gcc編譯c源碼,並傳參
下面將通過對一個程序的編譯來演示整個過程。
1
2
3
4
5
6
7
#include <stdio.h>
int main()
{
printf("happy new year!\n");
return 0;
}
1:預處理:編譯器將C程序的頭文件編譯進來,還有宏的替換,可以用gcc的參數-E來參看。
命令:gcc -E hello.c -o hello.i
作用:將hello.c預處理輸出hello.i
2:編譯:這個階段編譯器主要做詞法分析、語法分析、語義分析等,在檢查無錯誤後後,把代碼翻譯成匯編語言。可用gcc的參數-S來參看。
編譯器(ccl)將文本文件hello.i 翻譯成文本文件hello.s, 它包含一個匯編語言程序。匯編語言程序中的每條語句都以一種標準的文本格式描述了
一條低級機器語言指令。
⑼ lisp有什麼比較好用的編譯器么
因為編譯器只是個命令工具沒什麼叫"好用"的...我假設你問的是"編輯器"而不是"編譯器":
首先, 你問的是哪種lisp, 因為lisp有很多種.
如果你需要對所有lisp都好用的編輯器, 估計只有emacs和vim可以滿足你要求. 如果只要最常見的那些lisp, 除了這兩個一般都有些專門為他優化的插件支持的編輯器, 比如 clojure有lighttable和nightcode, racket 有GRacket 等
如果你真的問的是編譯器的話, 請具體說是哪種lisp,因為不同的lisp編譯器是完全不一樣的, 比如common lisp 我是喜歡 ccl (很多人更喜歡sbcl), 比如scheme的話顯然chez是最好得編譯器
⑽ 常見的C語言編譯器是什麼
目前最流行的C語言編譯器有以下幾種:
1、GNU Compiler Collection 或稱GCC
GCC(GNU Compiler Collection,GNU編譯器套件),是由 GNU 開發的編程語言編譯器。它是以GPL許可證所發行的自由軟體,也是 GNU計劃的關鍵部分。
GCC原本作為GNU操作系統的官方編譯器,現已被大多數類Unix操作系統(如Linux、BSD、Mac OS X等)採納為標準的編譯器,GCC同樣適用於微軟的Windows。GCC是自由軟體過程發展中的著名例子,由自由軟體基金會以GPL協議發布。
2、Microsoft C 或稱 MS C
Microsoft C 是c語言的一種IDE(集成開發環境),常見的還有Microsoft Visual C++,Borland C++,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,High C,Turbo C等等......
3、Borland Turbo C 或稱 Turbo C
Turbo C是美國Borland公司的產品,Borland公司是一家專門從事軟體開發、研製的大公司。該公司相繼推出了一套 Turbo系列軟體, 如Turbo BASIC, Turbo Pascal, Turbo Prolog, 這些軟體很受用戶歡迎。
(10)編譯器ccl擴展閱讀:
C編譯的整個過程很復雜,大致可以分為以下四個階段:
1、預處理階段在該階段主要完成對源代碼的預處理工作,主要包括對宏定義指令,頭文件包含指令,預定義指令和特殊字元的處理,如對宏定義的替換以及文件頭中所包含的文件中預定義代碼的替換等,總之這步主要完成一些替換工作,輸出是同源文件含義相同但內容不同的文件。
2、編譯、優化階段編譯就是將第一階段處理得到的文件通過詞法語法分析等轉換為匯編語言。優化包括對中間代碼的優化,如刪除公共表達式,循環優化等;和對目標代碼的生成進行的優化,如如何充分利用機器的寄存器存放有關變數的值,以減少內存訪問次數。
3、匯編階段將匯編語言翻譯成機器指令。
4、鏈接階段鏈接階段的主要工作是將有關的目標文件連接起來,即將在一個文件中引用的符號同該符號在另外一個文件中的定義連接起來,使得所有的目標文件成為一個能夠被操作系統裝入執行的統一整體。