導航:首頁 > 源碼編譯 > 關於編譯器的說法中

關於編譯器的說法中

發布時間:2022-05-30 11:47:18

❶ c++各種編譯器有什麼不同,應該不存在哪種編譯器最好的說法吧是不是只要學會用一種編譯器就可以了

gcc過去是指gnu組織的c語言編譯器,
現在gcc包括gcc命令在內都是gnu的各種語言的編譯器集。
在類linux環境輸入gcc可以指定編譯各種語言。c/c++,objc,ada,pascal,d,fortran等等
g++是專指gnu c++的編譯器,屬於gcc的一個編譯器。
而且要指出g++, dev c++, codeblocks, mingw,等等其實都是在用gcc編譯器中c/c++的部分。

各適合做什麼?
vc++在win下優勢最強,在x86指令下性能優化、標准支持是最好的之一,性能僅次於intel cc,但綜合性能最強。
borland c++,現在已經被c++ builder 2012取代了。這個版本的優勢也是同vc++類似,在win加x86的cpu下。特別之處是豐富的組件和快捷向導方案,自動生成代碼很多。做常用的網路、資料庫,桌面應用,很多時候都不用敲什麼代碼,直接滑鼠一陣拖拉就出來了,適合做又快又臟的應用。性能優化不如vc++

gcc是開源軟體的核心組件,linux/unix,全靠它編譯,支持幾乎世上所有的32位以上晶元,什麼手機、龍芯、pc,power pc, arms,大設備小設備都靠它。最樸素,但性能強大。適用於任何需要計算的場合。經過多個巨頭砸巨資優化過的編譯器,性能是一流的。移植性一流。標准化程度也是一流。就是開發工具—打字碼字的工具IDE,沒有像前2個那樣商業化,。

❷ 下面是關於解釋程序和編譯程序的敘述,正確的是()

C、D

解釋程序是一種語言處理程序,在詞法、語法和語義分析方面與編譯程序的工作原理基本相同,但在運行用戶程序時,它直接執行源程序或源程序的內部形式(中間代碼)。因此,解釋程序並不產生目標程序,這是它和編譯程序的主要區別。

解釋程序它逐條地取出源程序中的語句,邊解釋,邊執行。編譯的話就是只要編譯一次,下次再執行就不用再解釋了。

(2)關於編譯器的說法中擴展閱讀:

解釋程序的工作方式非常適於人通過終端設備與計算機會話,如在終端上打一條命令或語句,解釋程序就立即將此語句解釋成一條或幾條指令並提交硬體立即執行且將執行結果反映到終端,從終端把命令打入後,就能立即得到計算結果。

這的確是很方便的,很適合於一些小型機的計算問題。但解釋程序執行速度很慢,例如源程序中出現循環,則解釋程序也重復地解釋並提交執行這一組語句,這就造成很大浪費。

對源程序邊解釋翻譯成機器代碼邊執行的高級語言程序。所以,解釋程序的功能是:解釋執行高級語言程序。由於它的方便性和交互性較好,早期一些高級語言採用這種方式,如BASIC、dBASE。但它的弱點是運行效率低,程序的運行依賴於開發環境,不能直接在操作系統下運行。

網路-解釋程序

❸ 12. 編譯程序和解釋程序同屬於語言處理程序,下列關於它們的敘述中正確的是____________ A. 只有解釋程序

b唄 給你詳細解釋一下
A、解釋程序所謂解釋程序是高級語言翻譯程序的一種,它將源語言(如BASIC)書寫的源程序作為輸入,解釋一句後就提交計算機執行一句,並不形成目標程序。就像外語翻譯中的「口譯」一樣,說一句翻一句,不產生全文的翻譯文本。這種工作方式非常適合於人通過終端設備與計算機會話,如在終端上打一條命令或語句,解釋程序就立即將此語句解釋成一條或幾條指令並提交硬體立即執行且將執行結果反映到終端,從終端把命令打入後,就能立即得到計算結果。這的確是很方便的,很適合於一些小型機的計算問題。但解釋程序執行速度很慢,例如源程序中出現循環,則解釋程序也重復地解釋並提交執行這一組語句,這就造成很大浪費。B、編譯程序這是一類很重要的語言處理程序,它把高級語言(如FORTRAN、COBOL、Pascal、C等)源程序作為輸入,進行翻譯轉換,產生出機器語言的目標程序,然後再讓計算機去執行這個目標程序,得到計算結果。編譯程序工作時,先分析,後綜合,從而得到目標程序。所謂分析,是指詞法分析和語法分析;所謂綜合是指代碼優化,存儲分配和代碼生成。為了完成這些分析綜合任務,編譯程序採用對源程序進行多次掃描的辦法,每次掃描集中完成一項或幾項任務,也有一項任務分散到幾次掃描去完成的。下面舉一個四遍掃描的例子:第一遍掃描做詞法分析;第二遍掃描做語法分析;第三遍掃描做代碼優化和存儲分配;第四遍掃描做代碼生成。值得一提的是,大多數的編譯程序直接產生機器語言的目標代碼,形成可執行的目標文件,但也有的編譯程序則先產生匯編語言一級的符號代碼文件,然後再調用匯編程序進行翻譯加工處理,最後產生可執行的機器語言目標文件。在實際應用中,對於需要經常使用的有大量計算的大型題目,採用招待速度較快的編譯型的高級語言較好,雖然編譯過程本身較為復雜,但一旦形成目標文件,以後可多次使用。相反,對於小型題目或計算簡單不太費機時的題目,則多選用解釋型的會話式高級語言,如BASIC,這樣可以大大縮短編程及調試的時間。

❹ 下列是關於解釋程序和編譯程序的敘述,正確的是( )

B編譯程序能產生目標程序,而解釋程序不能

❺ 關於編譯器的產生

編譯器本身也是程序,通常也是C語言寫的,世界上第一個編譯器的部分內容肯定只能用機器碼寫。。。但機器碼建立的一些文本處理功後,自然就用這個功能處理宏文本來代替機器碼。。。當然第一台計算機能用一種文本語言來代替機器碼,自然可以用這個簡單的編譯器去編譯復雜的編譯器,一個復雜的去編譯更復雜的。。。。
當然最終結果就是C語言編譯器本身也會是C語言寫的,區別只是PC機的C語言編譯器,去編譯一個非PC機上運行的程序的
程序的編譯器。。。。即使編譯器編譯編譯器。。。 比如java編譯器是C/C++寫的。。。還有現在的某款晶元的匯編編譯器,本身會是C/c++語言寫的,因為編譯器也是程序,當然可以用C語言編譯器去編譯一個匯編編譯器。。。 只就是錘子可以做機器,當然機器也可以生產錘子。。。

❻ 有以下代碼,關於代碼的編譯,正確的說法是( )

選A唄~

❼ 關於編譯器

看來你還沒入門哦,就想寫一個操作系統了
嗯!有志不錯,相信有一天你會成功的。

一般地說寫一個OS你要會一門高級語言(如C++)一門低級語言(如匯編asm)高級語言用來做界面這方面比較容易一點。而低級用來做低層驅動這方面是高級語言所不能相比的。
當然C語言介於兩者之間,也能對硬體編程,但C是16位的程序對於圖形處理不是很好,我個人建議你低級語言用匯編,對硬體編程時沒有那麼抽象,想傳送的數據很清楚知道來去的方面,但要對硬體這方面的知道要了解。還有就是像要懂操作系統原理還要知道怎麼去實踐這些原理這些才是重要的,選擇語言不是難事,給你一個組合吧(C和asm)雖然不能做出XP這種效果來,但這個圖形操作系統還是很的,就看你自己的功夫了。
對於你補充的問題吶,程序的位數好像指CPU的寄存器的位數吧,在386以前的CPU好像一條指令大是16位的(當然有的指令沒這么大,有8位的)在386後的新加的指令中才有32位的,為了使386以後的CPU能使用以前的指令,規定在16位指令加上不同的指令前綴,形成32位指令形式,這里的32指令就是32位程序的指令,而你說的64位程序。。在我所學的指令里沒有64位的指令,但以以前的指令在在64位上運行,也要兼容的問題吧!之所以有64位的CPU所來是指CPU一次處理數據的位數,比如說32的CPU一次能處理32位的數據,而要處理64位的就要分兩次從內存中取數據而佔用匯流排,這樣會使CPU有空閑,而64位的CPU只要一次就行了,所以你理解錯了,
最後一個問題是人家生在那個年代,和人家有遠見,成績不好並不代表實踐不好,理論和實踐是兩回事,理論在好不會實踐也是廢話,所以人家敢做,在實踐中學習,在加上機遇。這個事不是你我能說清的,只能說說個人見解罷了。。

對於計算機硬體的知道只能告訴你這么之了,,大家相互學習,共同進步吧!!
如果你想找資料的話!你把你的郵箱留下,我這有硬體,操作系統,指令這些用於寫操作的資料!!

❽ 敘述編譯器和解釋器的相同點和不同點

編譯器是把源程序的每一條語句都編譯成機器語言,並保存成二進制文件,這樣運行時計算機可以直接以機器語言來運行此程序,速度很快;
而解釋器則是只在執行程序時,才一條一條的解釋成機器語言給計算機來執行,所以運行速度是不如編譯後的程序運行的快的.
這是因為計算機不能直接認識並執行我們寫的語句,它只能認識機器語言(是二進制的形式)

❾ delphi編譯器效率高到底是指什麼

所謂delphi編譯器效率高,一般指的是以下三方面:

1、編譯連接時間短,這一點是其他任何編譯器都無法相比的(一般來說,VC, VB編譯過程所用的時間是Delphi的幾倍),原因很簡單:Pascal語法限制嚴格,用戶必須規范地編碼,省去了編譯器的很多麻煩。

2、編譯出的程序執行速度快,產生的代碼長度短。這一點比VB強,但和VC基本一樣,誰也沒有優勢。不過很多人有誤解,以為Delphi類庫龐大復雜,加一個控制項就要把整個一個源文件全部加進來,代碼長度太大,效率太差。其實真實情況是,擁有眾多VCL控制項類庫,是Delphi的一個獨特之處,VC的MFC庫無法與之相比——MFC有的底層簡單封裝的類,VCL庫都有,但VCL有的上層組件,MFC卻根本沒有。使用VCL上層應用控制項後,代碼長度的確比VC大,不過VC卻沒有這方面的選擇,而VC所用的從底層一磚一瓦地編碼的方式,Delphi完全支持,而且絕對沒任何劣勢,代碼長度也不長(VC的語法復雜,按C程序員一般習慣做的話,代碼長的反而會是VC)。產生誤解的原因,是多數Delphi程序員是應用級的,而VC程序員是底層些的,應用程序員大多不太懂得底層代碼的編寫,只會搬控制項、響應事件,以為底層的東西Delphi做不來。

3、對應用級的程序開發周期短——這也就是Borland一貫吹捧的「快速開發工具」的含義。正因為VCL的存在(封裝了很多界面組件以及通訊、資料庫、internet應用等很多後台功能),對高層應用不再需要一磚一瓦地受累,使開發周期縮短了很多倍。

單純從技術角度說,編譯器效率應該指編譯出的代碼是否短小/運行速度是否快,以及是否能用較少的源代碼高效地實現復雜功能。前一方面Delphi並不比VC差,而比VB強,但並非一騎絕塵;後一方面則的確有一騎絕塵之象。

Delphi的致命缺點,其實不是技術——技術它是領先的,毫無疑問,問題是市場策略和公司實力(Borland只是家小公司),微軟「攜操作系統以令諸侯」,誤導了眾多軟體開發公司,讓它們以為微軟的才正宗和好用,造成了事實上的VB,VC用戶群遠比Borland的龐大,源代碼數量也一樣是C/C++遠遠占優,而Borland的C++ Builder卻開發得太晚難以形成市場優勢。

概括來說,如果你要開發上層應用為主的程序,特別是資料庫方面的程序,那麼Delphi能讓你省不少時間;而若開發底層些的軟體,為能有更多相關代碼可以參考利用,為能容易地招聘到更合適的程序員,以及為了代碼維護方便,都適合用C/C++去做,當然,C++ Builder從技術上說是個不錯的選擇,只是用戶群還太小。

❿ 我們經常看到書上面說的 某某變數的內存單元是編譯器在編譯時候分配的 是什麼意思

所謂在編譯期間分配空間指的是靜態分配空間(相對於用new動態申請空間),如全局變數或靜態變數(包括一些復雜類型的常量),它們所需要的空間大小可以

明確計算出來,並且不會再改變,因此它們可以直接存放在可執行文件的特定的節里(而且包含初始化的值),程序運行時也是直接將這個節載入到特定的段中,不
必在程序運行期間用額外的代碼來產生這些變數。
其實在運行期間再看「變數」這個概念就不再具備編譯期間那麼多的屬性了(諸如名稱,類型,作用
域,生存期等等),對應的只是一塊內存(只有首址和大小),
所以在運行期間動態申請的空間,是需要額外的代碼維護,以確保不同變數不會混用內存。比如寫new表示有一塊內存已經被佔用了,其它變數就不能再用它了;
寫delete表示這塊內存自由了,可以被其它變數使用了。(通常我們都是通過變數來使用內存的,就編碼而言變數是給內存塊起了個名字,用以區分彼此)
內存申請和釋放時機很重要,過早會丟失數據,過遲會耗費內存。特定情況下編譯器可以幫我們完成這項復雜的工作(增加額外的代碼維護內存空間,實
現申請和釋 放)。從這個意義上講,局部自動變數也是由編譯器負責分配空間的。進一步講,內存管理用到了我們常常掛在嘴邊的堆和棧這兩種數據結構。
最後對於「編譯器分配空間」這種不嚴謹的說法,你可以理解成編譯期間它為你規劃好了這些變數的內存使用方案,這個方案寫到可執行文件裡面了(該文件中包含若干並非出自你大腦衍生的代碼),直到程序運行時才真正拿出來執行。

閱讀全文

與關於編譯器的說法中相關的資料

熱點內容
一級抗震樓層框架梁加密區 瀏覽:208
pdf開發庫 瀏覽:281
chunking演算法 瀏覽:622
程序員被逮捕的判決 瀏覽:813
android定位獲取城市 瀏覽:599
做伺服器客戶怎麼去找 瀏覽:997
程序員升職可以干什麼 瀏覽:301
單片機原理課程設計大綱 瀏覽:909
cad命令大全圖表下載 瀏覽:389
程序員去印度工作 瀏覽:422
蘋果app活動怎麼導出 瀏覽:5
pdf轉高清圖片 瀏覽:35
人人玩棋牌源碼 瀏覽:347
如何獲取美團伺服器時間 瀏覽:342
php簡單加密演算法 瀏覽:795
什麼是開伺服器 瀏覽:607
cd4017單片機怎麼用 瀏覽:265
鳥哥pdf 瀏覽:242
忘記加密的密碼了怎麼辦 瀏覽:560
好友信息提示音在哪個文件夾 瀏覽:276