當前位置:首頁 » 編程軟體 » 編譯器包含硬體部分和軟體部分

編譯器包含硬體部分和軟體部分

發布時間: 2024-04-05 06:01:44

編譯器的組成及各部分的功能及作用

1. 詞法分析 詞法分析器根據詞法規則識別出源程序中的各個記號(token),每個記號代表一類單詞(lexeme)。源程序中常見的記號可以歸為幾大類:關鍵字、標識符、字面量和特殊符號。詞法分析器的輸入是源程序,輸出是識別的記號流。詞法分析器的任務是把源文件的字元流轉換成記號流。本質上它查看連續的字元然後把它們識別為「單詞」。 2. 語法分析 語法分析器根據語法規則識別出記號流中的結構(短語、句子),並構造一棵能夠正確反映該結構的語法樹。 3. 語義分析 語義分析器根據語義規則對語法樹中的語法單元進行靜態語義檢查,如果類型檢查和轉換等,其目的在於保證語法正確的結構在語義上也是合法的。 4. 中間代碼生成 中間代碼生成器根據語義分析器的輸出生成中間代碼。中間代碼可以有若干種形式,它們的共同特徵是與具體機器無關。最常用的一種中間代碼是三地址碼,它的一種實現方式是四元式。三地址碼的優點是便於閱讀、便於優化。 5. 中間代碼優化 優化是編譯器的一個重要組成部分,由於編譯器將源程序翻譯成中間代碼的工作是機械的、按固定模式進行的,因此,生成的中間代碼往往在時間和空間上有很大浪費。當需要生成高效目標代碼時,就必須進行優化。 6. 目標代碼生成 目標代碼生成是編譯器的最後一個階段。在生成目標代碼時要考慮以下幾個問題:計算機的系統結構、指令系統、寄存器的分配以及內存的組織等。編譯器生成的目標程序代碼可以有多種形式:匯編語言、可重定位二進制代碼、內存形式。 7 符號表管理 符號表的作用是記錄源程序中符號的必要信息,並加以合理組織,從而在編譯器的各個階段能對它們進行快速、准確的查找和操作。符號表中的某些內容甚至要保留到程序的運行階段。 8 出錯處理用戶編寫的源程序中往往會有一些錯誤,可分為靜態錯誤和動態錯誤兩類。所謂動態錯誤,是指源程序中的邏輯錯誤,它們發生在程序運行的時候,也被稱作動態語義錯誤,如變數取值為零時作為除數,數組元素引用時下標出界等。靜態錯誤又可分為語法錯誤和靜態語義錯誤。語法錯誤是指有關語言結構上的錯誤,如單詞拼寫錯、表達式中缺少操作數、begin和end不匹配等。靜態語義錯誤是指分析源程序時可以發現的語言意義上的錯誤,如加法的兩個操作數中一個是整型變數名,而另一個是數組名等。

⑵ 請問程序編譯器是硬體還是軟體

編譯器是一種一應用軟體,,你如編程技術好的話也可自己編一個自己專用的編譯器,,,,,當然你既然在問這種問題就說明你沒有這能力,,,

⑶ 編譯程序屬於什麼軟體

編譯程序是什麼軟體
看著問題,我就郁悶了,好吧,稍微普及下程序知識。

看你需要寫的是什麼程序,然後用什麼語言對應的又語言編輯器。(這個編輯器可能就是你認為的軟體了,其實不然,這個只是個工具比如txt是記事用的一樣,)

如:C C++ C#這些是語言,算是高級語言了,他們一般用的編輯器是VS2010現在或者Tbc

java也是語言,是高級語言,編輯器一般也用VS2010,不過看個人習慣了,畢竟編輯器多了去了,有的插件少,有個功能強大,有的使用方便。

再如asp php 這些也是高級語言,用的編輯器就更普遍了 什麼eclipse dw zend什麼的多了去了,也是看個人習慣和喜好了,再者高級的程序猿都可以用txt編輯語言。

再如E語言 VB這些語言也有特定的編輯器,不過都不是死的,等你稍微了解里邊東西多了,自然就明白這里是程序的世界,如果還有不明白的,可以追問,說出具體的你要編譯的軟體,再給你詳細的說是用什麼做的。

一般用到編譯的大多存在於 VB E語言 C等等之類

另外語言的種類還有 其他很多種,詳細的可以查閱!
編譯程序,匯編程序屬於什麼軟體?
嘿嘿 樓上的幾個人 自己都不懂 還回答啥啊 不是害人嗎

1 系統軟體:

是能提高程序設計者的工作效率、方便用戶使用、可以對計算機進行管理的軟體。

包括:操作系統、監控軟體、編譯程序、,匯編程序、資料庫、標准程序庫。

因此 很明確編譯程序,匯編程序屬於系統軟體。

2 只有為解決某一特殊問題而編寫的程序才能叫應用軟體。

哈哈 請為正確答案 選擇滿意回答 嘍
高級程序語言的編譯程序屬於什麼軟體?
2
編譯軟體具體是什麼啊?為屬於系統軟體啊
以上回答是什麼亂七八糟的水平!

計算機常識,操作系統,資料庫管理系統,編譯軟體都屬於系統軟體。

沒有為什麼,這就是個定義。規定就是這樣。原因我想可能是因為這些軟體都沒有特定的應用吧。。都是為了輔助其它應用軟體而存在。所以定義為系統軟體。
什麼是編譯程序?
編譯程序也叫編譯系統,是把用高級語言編寫的面向過程的源程序翻譯成目標程序的語言處理程序。

編譯程序把一個源程序翻譯成目標程序的工作過程分為五個階段:詞法分析;語法分析;中間代碼生成;代碼優化;目標代碼生成。主要是進行詞法分析和語法分析,又稱為源程序分析,分析過程中發現有語法錯誤,給出提示信息。

(1) 詞法分析

詞法分析的任務是對由字元組成的單詞進行處理,從左至右逐個字元地對源程序進行掃描,產生一個個的單詞符號,把作為字元串的源程序改造成為單詞符號串的中間程序。執行詞法分析的程序稱為詞法分析程序或掃描器。

源程序中的單詞符號經掃描器分析,一般產生二元式:單詞種別;單詞自身的值。單詞種別通常用整數編碼,如果一個種別只含一個單詞符號,那麼對這個單詞符號,種別編碼就完全代表它自身的值了。若一個種別含有許多個單詞符號,那麼,對於它的每個單詞符號,除了給出種別編碼以外,還應給出自身的值。

詞法分析器一般來說有兩種方法構造:手工構造和自動生成。手工構造可使用狀態圖進行工作,自動生成使用確定的有限自動機來實現。

(2) 語法分析

編譯程序的語法分析器以單詞符號作為輸入,分析單詞符號串是否形成符合語法規則的語法單位,如表達式、賦值、循環等,最後看是否構成一個符合要求的程序,按該語言使用的語法規則分析檢查每條語句是否有正確的邏輯結構,程序是最終的一個語法單位。編譯程序的語法規則可用上下文無關文法來刻畫。

語法分析的方法分為兩種:自上而下分析法和自下而上分析法。自上而下就是從文法的開始符號出發,向下推導,推出句子。而自下而上分析法採用的是移進歸約法,基本思想是:用一個寄存符號的先進後出棧,把輸入符號一個一個地移進棧里,當棧頂形成某個產生式的一個候選式時,即把棧頂的這一部分歸約成該產生式的左鄰符號。

(3) 中間代碼生成

中間代碼是源程序的一種內部表示,或稱中間語言。中間代碼的作用是可使編譯程序的結構在邏輯上更為簡單明確,特別是可使目標代碼的優化比較容易實現。中間代碼即為中間語言程序,中間語言的復雜性介於源程序語言和機器語言之間。中間語言有多種形式,常見的有逆波蘭記號、四元式、三元式和樹。

(4) 代碼優化

代碼優化是指對程序進行多種等價變換,使得從變換後的程序出發,能生成更有效的目標代碼。所謂等價,是指不改變程序的運行結果。所謂有效,主要指目標代碼運行時間較短,以及佔用的存儲空間較小。這種變換稱為優化。

有兩類優化:一類是對語法分析後的中間代碼進行優化,它不依賴於具體的計算機;另一類是在生成目標代碼時進行的,它在很大程度上依賴於具體的計算機。對於前一類優化,根據它所涉及的程序范圍可分為局部優化、循環優化和全局優化三個不同的級別。

(5) 目標代碼生成

目標代碼生成是編譯的最後一個階段。目標代碼生成器把語法分析後或優化後的中間代碼變換成目標代碼。目標代碼有三種形式:

① 可以立即執行的機器語言代碼,所有地址都重定位;

② 待裝配的機器語言模塊,當需要執行時,由連接裝入程序把它們和某些運行程序連接起來,轉換成能執行的機器語言代碼;

③ 匯編語言代碼,須經過匯編程序匯編後,成為可執行的機器語言代碼。

目標代碼生成階段應考慮直接影響到目標代碼速度的三個問題:一是如何生成較短的目標代碼;二是如何充分利用計算機中的寄存器,減少目標代碼訪問存儲單元的次數;三是如何充分利用計算機指令系統的特點,以提高目標代碼的質量。...
現在最新的c語言編譯軟體是哪個?
GCC

毫無疑問,GCC幾乎是unix及linux系統中最通用的編譯器套件,幾乎所有的linux發行版都預裝了GCC作為C語言的默認編譯器。除了對C語言的支持,GCC還支持C++、Objective-C等多種語言。GCC早在1987就由 Richard Stallman作為GNU計劃的一部分發布。

Clang

Clang是近幾年新興的C/C++以及Objective-C的編譯器,Apple是其主要投資者,其最初的開發者已加盟Apple。雖說是新興,但其對C/C++標準的支持不亞於GCC等老牌編譯器,並且外部介面和GCC完全兼容,並且因其模塊化、錯誤提示完善等優點已經越來越受到重視。一些如FreeBSD等項目已將clang作為默認編譯器。
c語言編譯程序是不是系統軟體?
系統軟體貳就是計算機系統,如:windows系列,DOS、OS/2、UNIX、XENIX、LINUX、Netware等;

作用是維持計算機的正常運行;

編譯軟體是用於編譯代碼使用的,屬於應用軟體。

從程序語言上來說,匯編程序應該是最早也是最成熟的系統軟體,

它直接利用計算機硬體的特點進行代碼編譯,

直接使用系統指令進行定址,程序佔用內存小,實現迅速。

C語言不能實現
c編譯程序是什麼?
D

編譯程序

這是一類很重要的語言處理程序,它把高級語言(如FORTRAN、COBOL、Pascal、C等)源程序作為輸入,雞行翻譯轉換,產生出機器語言的目標程序,然後再讓計算機去執行這個目標程序,得到計算結果。

實在不明白用排除法
程序設計語言的編譯程序屬於系統軟體還是應用軟體。
編譯程序與解釋程序是屬於語言處理系統,負責把高級語言轉化成低級語言,語言處理系統是系統軟體的一種,所以編譯程序屬於系統軟體。而編程語言是用於開發各種軟體包括系統軟體的,所以編程語言是應用軟體,比如說編譯程序解釋程序匯編程序是系統軟體,而高級語言低級語言匯編語言是應用軟體。
編譯軟體是什麼
編譯(pilation , pile)

1、利用編譯程序從源語言編寫的源程序產生目標程序的過程。

2、用編譯程序產生目標程序的動作。

編譯就是把高級語言變成計算機可以識別的2進制語言,計算機只認識1和0,編譯程序把人們熟悉的語言換成2進制的。

詳情去網路看看哈,地址:ke./view/69568

理解了編譯,你自然就了解什麼是編譯軟體咯.常用的很多,我推薦幾個給你吧.

編譯C:Turbo C 2.0、Turbo C 3.0

編譯C\C++唬:VC6.0、winTC等

編譯Java:eclipse(也可以直接配置好環境在DOS下編譯運行)

⑷ 計算機軟體著作權登記中的軟、硬體環境;編程語言;源代碼分別指的是什麼 「代碼最後一頁是模塊結尾」是

這幾個問題 沒有那麼復雜,1.軟體環境是指你申請的這個軟體在電腦上運行的時候主要在那些軟體上運行 如操作系統軟體,資料庫軟體,伺服器軟體等 2.硬體環境是指你這個軟體在運行的在電腦上對電腦的要求。主要寫寫 CPU。內存 解析度。硬碟等其他的硬體 3.編程語言只指編寫軟體是 所用到的語言 如:C java 等語言 最後一頁是你軟體的代碼結尾就行了

⑸ FPGA中軟體編譯器和硬體綜合器區別是什麼

軟體編譯器是把高級語言編譯成可執行文件,比如二進制代碼
典型編譯器如C/C++編譯器
硬體綜合器是把RTL級別的硬體代碼綜合成網表文件。是一個具體優化+映射的過程,代表語言是verilog/VHDL,轉換成網表netlist

⑹ c語言編譯程序屬於應用軟體,系統軟體還是工具軟體

c語言編譯程序屬於系統軟體。

編譯程序(Compiler,compiling program)也稱為編譯器,是指把用高級程序設計語言書寫的源程序,翻譯成等價的機器語言格式目標程序的翻譯程序。這里的編譯程序是一種動作,是根據編譯原理技術,由高級程序設計語言編譯器翻譯成機器語言二進制代碼行為。因此它是系統軟體。

計算機軟體總體分為系統軟體和應用軟體兩大類:系統軟體是各類操作系統,如windows、Linux、UNIX等,還包括操作系統的補丁程序及硬體驅動程序,都是系統軟體類。

應用軟體可以細分的種類就更多了,如工具軟體、游戲軟體、管理軟體等都屬於應用軟體類。電腦工具軟體就是指在使用電腦進行工作和學習時經常使用的軟體。

(6)編譯器包含硬體部分和軟體部分擴展閱讀:

不同點

1、表現形式不同

硬體有形,有色,有味,看得見,摸得著,聞得到。而軟體無形,無色,無味,看不見,摸不著,聞不到。軟體大多存在人們的腦袋裡或紙面上,它的正確與否,是好是壞,一直要到程序在機器上運行才能知道。這就給設計、生產和管理帶來許多困難。

2、生產方式不同

軟體是開發,它是人的智力的高度發揮,不是傳統意義上的硬體製造。盡管軟體開發與硬體製造之間有許多共同點,但這兩種活動是根本不同的。

3、要求不同

硬體產品允許有誤差,而軟體產品卻不允許有誤差。

4、維護不同

硬體是要用舊用壞的,在理論上,軟體是不會用舊用壞的,但在實際上,軟體也會變舊變壞。因為在軟體的整個生存期中,一直處於改變(維護)狀態。

網路-計算機軟體

熱點內容
android音樂波形圖 發布:2024-11-15 11:57:12 瀏覽:378
福建社保銀行卡初始密碼是多少 發布:2024-11-15 11:47:40 瀏覽:911
游戲多開用什麼配置 發布:2024-11-15 11:46:51 瀏覽:729
管理java版本 發布:2024-11-15 11:44:03 瀏覽:629
ndk編譯的程序如何執行 發布:2024-11-15 11:43:18 瀏覽:626
輕應用伺服器適合搭建網站嗎 發布:2024-11-15 11:36:08 瀏覽:246
c語言的百分號 發布:2024-11-15 11:34:24 瀏覽:31
一加五安卓8什麼時候推送 發布:2024-11-15 11:19:40 瀏覽:854
暗影騎士擎有哪些配置 發布:2024-11-15 11:13:46 瀏覽:598
方舟主機專用伺服器是什麼意思 發布:2024-11-15 11:12:23 瀏覽:8