c語言的翻譯叫什么_什么是編譯器?什么是集成開發環境?

a185771b6be952b0c17edebde8345d6c.png

我們平時所說的程序,是指雙擊后就可以直接運行的程序,這樣的程序被稱為可執行程序(Executable Program)。在 Windows 下,可執行程序的后綴有 .exe 和 .com(其中 .exe 比較常見);在類 UNIX 系統(Linux、Mac OS 等)下,可執行程序沒有特定的后綴,系統根據文件的頭部信息來判斷是否是可執行程序。

可執行程序的內部是一系列計算機指令和數據的集合,它們都是二進制形式的,CPU 可以直接識別,毫無障礙;但是對于程序員,它們非常晦澀,難以記憶和使用。

例如,在屏幕上輸出“VIP會員”,C語言的寫法為:

puts("VIP會員");

二進制的寫法為:

461f58cd641e857e651f4303a277f984.png

你感受一下,直接使用二進制是不是想撞墻,是不是受到一噸重的傷害?

在計算機發展的初期,程序員就是使用這樣的二進制指令來編寫程序的,那個拓荒的年代還沒有編程語言。

直接使用二進制指令編程對程序員來說簡直是噩夢,尤其是當程序比較大的時候,不但編寫麻煩,需要頻繁查詢指令手冊,而且除錯會異常苦惱,要直接面對一堆二進制數據,讓人眼花繚亂。另外,用二進制指令編程步驟繁瑣,要考慮各種邊界情況和底層問題,開發效率十分低下。

這就倒逼程序員開發出了編程語言,提高自己的生產力,例如匯編、C語言、C++、Java、Python、Go語言等,都是在逐步提高開發效率。至此,編程終于不再是只有極客能做的事情了,不了解計算機的讀者經過一定的訓練也可以編寫出有模有樣的程序。

什么是編譯器

C語言代碼由固定的詞匯按照固定的格式組織起來,簡單直觀,程序員容易識別和理解,但是對于CPU,C語言代碼就是天書,根本不認識,CPU只認識幾百個二進制形式的指令。這就需要一個工具,將C語言代碼轉換成CPU能夠識別的二進制指令,也就是將代碼加工成 .exe 程序;這個工具是一個特殊的軟件,叫做編譯器(Compiler)。

編譯器能夠識別代碼中的詞匯、句子以及各種特定的格式,并將他們轉換成計算機能夠識別的二進制形式,這個過程稱為編譯(Compile)。

編譯也可以理解為“翻譯”,類似于將中文翻譯成英文、將英文翻譯成象形文字,它是一個復雜的過程,大致包括詞法分析、語法分析、語義分析、性能優化、生成可執行文件五個步驟,期間涉及到復雜的算法和硬件架構。對于學計算機或者軟件的大學生,“編譯原理”是一門專業課程,有興趣的讀者請自行閱讀《編譯原理》一書,這里我們不再展開講解。

注意:不了解編譯原理并不影響我們學習C語言,我也不建議初學者去鉆研編譯原理,貪多嚼不爛,不要把自己繞進去。

C語言的編譯器有很多種,不同的平臺下有不同的編譯器,例如:

Windows 下常用的是微軟編譯器(cl.exr),它被集成在 Visual Studio 或 Visual C++ 中,一般不單獨使用;

Linux 下常用的是 GUN 組織開發的 GCC,很多 Linux 發行版都自帶 GCC;

Mac 下常用的是 LLVM/Clang,它被集成在 Xcode 中(Xcode 以前集成的是 GCC,后來由于 GCC 的不配合才改為 LLVM/Clang,LLVM/Clang 的性能比 GCC 更加強大)。

你的代碼語法正確與否,編譯器說了才算,我們學習C語言,從某種意義上說就是學習如何使用編譯器,讓編譯器生成可執行程序(例如 Windows 下的 .exe 程序)。

編譯器可以 100% 保證你的代碼從語法上講是正確的,因為哪怕有一點小小的錯誤,編譯也不能通過,編譯器會告訴你哪里錯了,便于你的更改。

什么是集成開發環境

實際開發中,除了編譯器是必須的工具,我們往往還需要很多其他輔助軟件,例如:

編輯器:用來編寫代碼,并且給代碼著色,以方便閱讀;

代碼提示器:輸入部分代碼,即可提示全部代碼,加速代碼的編寫過程;

調試器:觀察程序的每一個運行步驟,發現程序的邏輯錯誤;

項目管理工具:對程序涉及到的所有資源進行管理,包括源文件、圖片、視頻、第三方庫等;

漂亮的界面:各種按鈕、面板、菜單、窗口等控件整齊排布,操作更方便。

這些工具通常被打包在一起,統一發布和安裝,例如 Visual Studio、Dev C++、Xcode、Visual C++ 6.0、C-Free、Code::Blocks 等,它們統稱為集成開發環境(IDE,Integrated Development Environment)。

集成開發環境就是一系列開發工具的組合套裝。這就好比臺式機,一個臺式機的核心部件是主機,有了主機就能獨立工作了,但是我們在購買臺式機時,往往還要附帶上顯示器、鍵盤、鼠標、U盤、攝像頭等外圍設備,因為只有主機太不方便了,必須有外設才能玩的爽。

集成開發環境也是這個道理,只有編譯器不方便,所以還要增加其他的輔助工具。

選擇哪種集成開發環境

C語言的集成開發環境有很多種,尤其是 Windows 下,多如牛毛,初學者往往不知道該如何選擇。

當然,你不用全部都了解,如果你使用 Windows,那么請忽略 Mac OS 和 Linux;如果你使用 Mac OS,那么請忽略 Windows 和 Linux。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/453093.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/453093.shtml
英文地址,請注明出處:http://en.pswp.cn/news/453093.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

平板電腦硬件如何測試軟件,先鋒(Pioneer)G71平板電腦軟件測試評測-ZOL中關村在線...

谷歌對旗下的智能操作系統Android采取了開源的做法,所以說也就造成了它相較于蘋果iOS以及微軟Windows系統嚴重的碎片化現象,當然我們也看到了像三星 TouchWiz UX,HTC Sense UI以及小米 MIUI這些非常成熟且易用的第三方固件,只是它…

WPF 中設置Combox下拉框Text 顯示值

最近在寫一個WPF客戶端的一個小程序,其中有個小需求如下: 展示下拉列表里面有樹形結構點擊下拉子項時同時顯示父級和子級文本也就是說在DisplayMember 中有兩種顯示方式 下拉列表顯示時,顯示的是DisplayMember 的值點擊選中子項時&#xff0c…

簡單的文件上傳功能實現(java)

現在很多做后臺系統的項目大部分都會用到文件上傳這個功能,網上有很多例子,這邊是自己用SSM框架技術做的一個簡單的文件上傳功能。 在寫文件上傳功能前首先要導入相應的jar包: commons-fileupload-1.3.1-jar ;commons-io-2.2-jar …

多讀讀書,對自己有好處

首先,打破一切常規 我一直以來養成了一個習慣,就是睡覺之前看半個小時或更長時間的書,這些書都是雜七雜八的,沒有特定的類型,這種習慣有好有壞,好的書好的句子能讓我回味無窮,在甜美中慢慢地進…

增量導出_[華為]一種實用的增量式深度CTR模型訓練方法

今天給大家介紹一篇有關深度CTR模型增量訓練的文章,來自華為諾亞方舟實驗室。1、背景深度CTR模型需要大量的數據進行訓練,同時需要不斷的更新以適應最新的數據分布。如果模型沒有及時更新,則有可能帶來線上效果的衰減,如下圖&…

win7如何添加終端服務器,Windows7系統超級終端的添加方法 win7如何添加超級終端...

有用戶在剛升級到Windows7系統以后反映,在XP 操作系統里,超級終端是很好用的,但是卻不知道為什么,升級為Windows7系統后卻找不到超級終端在哪,出現這樣的情況讓用戶非常的煩惱,其實找不到超級終端&#xff…

騰訊這家公司的核心競爭力是什么?為什么?

Andy Pan ,騰訊無線國際業務產品總監, 騰訊國際業務部... 我決定在國外出差的最后一晚晚點休息,在酒店靜靜的認真的回答這個問題。我盡量客觀的負責的回答,不憤青,不炫耀,不攻擊,用樸實的語言。只代表我個人的思考&…

h.323 服務器 作用,Cisco CallManager服務器冗余的H.323 網關撥號對端配置

語音、視頻和集成數據 (AVVID) 設計的體系結構一般建議您具有主 Cisco CallManager 服務器和輔助 Cisco CallManager 服務器以實現冗余。如果主 Cisco CallManager 服務器發生故障,則輔助 Cisco CallManager 服務器將接管,并且 IP 電話將重定向到此服務器…

靜態優先權和動態優先權

靜態優先級:在創建進程時確定的,且在進程的整個運行期間保持不變動態優先級:在創建進程時所賦予的優先權,是可以隨進程的推進或隨其等待時間的增加而改變的,以便獲得更好的調度性能。確定靜態優先權的依據有如下三個方…

xmind可以畫流程圖嗎_新娘妝可以自己畫嗎?臨夏化妝學校告訴你答案!

對于很多女性來說,一生中最重要的時候無疑是新婚的那一天,古時候的閨閣女子,鳳披霞冠,八臺大轎,攜手自己的如意郎君相伴一生,現代女子,潔白的婚紗,手握鮮花,一枚戒指&…

2.如何對待加班

感覺深圳尤其是IT行業,加班確實很普遍。我覺得主要看是為什么加班吧,是公司強制要求,還是員工開發效率低,還是加班有額外的收入,還是想在這個期間學習,自我提升。公司為什么會形成這個氛圍,是自…

計算機一級發郵件發送多個抄送,計算機一級考試IE題和收發郵件模擬題.docx

文檔介紹:某模擬網站的主頁地址是:HTTP://LOCALHOST:65531/ExamWeb/INDEX.HTM,打開此主頁,瀏覽"航空知識"頁面,查找"運十運輸機"的頁面內容,并將它以文本文件的格式保存到考生目錄下,命名為"y10ysj.txt"。IE題①通過"答題"…

git merge與rebase

參考這篇文章 Git 之 merge 與 rebase 的區別 文章2 另外,使 rebase出現沖突后,先修改沖突,然后git add 某文件(我使用add .經常有問題),然后git rebase --continue,持續到rebase結束&#xf…

wget 地址 連接超時_HttoPool連接池 和Hystrix 服務容錯機制

學習主題:httpPool&Hystrix學習目標:對應視頻: http://www.itbaizhan.cn/course/id/85.html對應文檔:無對應作業1. 編寫支持Gzip壓縮案例(1) 修改Consumer的全局配置文件,添加Gzip相關配置。spring.application.nameeureka-consumer-http…

JQuery 加載 CSS、JS 文件

JS 方式加載 CSS、JS 文件: //加載 css 文件 function includeCss(filename) {var head document.getElementsByTagName(head)[0];var link document.createElement(link);link.href filename;link.rel stylesheet;link.type text/css;head.appendChild(link) …

關閉網頁如何接收服務器消息,WebSocket服務端發消息給客戶端,瀏覽器收到消息就關閉了...

引用 2 樓 fly_dragon_fly 的回復:收到的消息是什么0000 00 0b ab 7a 86 83 18 f4 6a 36 60 a2 08 00 45 00 ...z....j6...E.0010 00 b9 49 d3 40 00 40 06 6b aa c0 a8 01 79 c0 a8 ..I...k....y..0020 01 f8 08 03 71 88 a4 d5 52 dc ce c1 f6 89 50 18 ....q...R..…