當前位置:首頁 » 編程軟體 » 編寫編譯器和操作系統用什麼

編寫編譯器和操作系統用什麼

發布時間: 2022-06-07 22:24:43

編譯器一般由哪種語言開發

其實我在想為什麼匯編語言生成一個簡單的編譯器後,可以用新生成的編譯器再次生成編譯器,例如,c語言開發C的編譯器呢?
這是一個遞歸的思想,舉個例子一看就明白了
用一個大的模具可以生成一個A模具,A模具可以做出來B模具,依次往下推,最終這個小模具可以做出來小盒子用來裝東西。
第一個大模具肯定是手工做出來的第一個模具,但是有了這個大模具後,後面就可以用他自動的生成更多的模具,後面的各種模具加起來又可以造出來更精緻的模具,
所以,自動第一個大模具造出來模具的時候,大模具就可以被拋棄了。
我們都知道編譯程序通常分為下面五個階段:
1)詞法分析
2)語法分析
3)語義分析與中間代碼產生
4)優化
5)目標代碼生成
當然最難的一點就是目標代碼的生成,這一階段實現了最終的翻譯,就是真正把原碼翻譯成可以被CPU直接計算的機器碼(NativeCode)。

㈡ 現在學習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等。
同時也是中國國家計算機等級考試中計算機二級考試下的一個考試科目。

㈢ Windows、Linux、Mac等系統是用什麼編程語言匯編的

它們的系統
多是用C語言加匯編語言製作的。。C語言的運行速度比較快。。開發效率也快,一般多是用來做系統開發的。。。而匯編語言是用來做底層硬體介面的,使個硬體相互傳遞數據的。。。一般的軟體開發平台多是將代碼轉換成匯編語言的。。在通過匯編器轉換成相應的二進制數據的(電腦唯一識別的代碼)

㈣ 在Windows xp操作系統中用C語言編程,用什麼編輯器和編譯器好呢

如果只是寫C的話,
編輯器用UltraEdit, 編譯器用TurboC就足夠了.
如果要求高,用VC也可以,終歸是集成開發環境的.

還是要看你的目的,如果是上學, 學校讓你用啥就用啥
如果是自己隨便學,那就無所謂了

㈤ 請問DOS/WINDOW/LINUX都用什麼編寫各種語言工具又是用什麼開發為什麼可用多種語言開發操作系統

其中C語言佔90%以上的代碼量,並實現主要的操作系統功能。當然,操作系統不僅僅是一個內核,還有大量的必須組件和工具,這些組件和工具Windows主要基於C++編寫,Linux主要基於C編寫,Dos主要基於C和匯編編寫。
語言工具的建構是一個循環遞進的過程。早期的編程較少使用語言,那時候直接編寫二進制的機器碼,讓CPU直接運行指令。後來程序比較大比較復雜了,這種方式就難以為繼,於是就有人用二進制碼寫出一些簡單的編譯器,後來簡單的編譯器也不夠用了,就再用它寫出更復雜的編譯器,如此不斷反復,就有了我們今天的高級編譯環境了。
一個編程語言不是先天就具有某種能力的,編程語言的能力是由編譯器賦予的。語言就是一堆符號,編譯器定義這些符號和二進制機器碼之間的對應關系,所以只要編譯器提供支持,你就可以用任何語言編寫任何的程序。
命令提示符是一個程序,但不是DOS程序,更不是DOS,它是一個標準的Windows程序。你要取消它也沒什麼問題,你把它直接刪除就行了。至於微軟為什麼不取消它,那是因為很多人需要它。就好像很多人需要MediaPlayer一樣,你也可以問既然有了暴風影音,微軟為什麼不取消MediaPlayer。但是,控制檯子系統是Windows的核心子系統,這個是不能取消的,因為大量的現有程序依賴於這個簡單的有效的子系統來工作,如果取消這個子系統,很多現有程序就不能用了,將來一些程序的開發成本也會增加。命令提示符是基於控制檯子系統的程序,並且,它提供了一個標准化的界面來通過命令行執行Windows任務。
Windows當然可以用來編寫操作系統,只要你有合適的編譯器。Windows下可以開發任何程序,包括手機程序、Linux程序、Unix程序、工控程序等等。關鍵是要有編譯器。當然,你也可以寫二進制碼,那就不需要任何編譯器了。

㈥ C/C++編譯器是用什麼寫的

C語言和匯編,幾乎所有的底層軟體(操作系統 編譯器 資料庫底層等)都是C語言和匯編寫的

㈦ 學習linux編程Ubuntu 操作系統,用什麼編譯器

當然是用gcc/g++編譯器咯,支持C90、C99標准,在Ubuntu上的安裝命令是:
apt-get
install
build-essential
這個安裝命令安裝的軟體包包含了Linux編程需要的編譯器和各種庫文件,裝上後就可以開始Linux編程了。

㈧ 如何用c語言編寫簡單的操作系統

C語言當然是可以寫操作系統的,但是操作系統的編寫一般都不僅僅只是用C語言編寫的。
寫操作系統需要編程語言提供以下幾個特徵:
1、跨平台,不能是只在某個平台下編譯(VB就不行);
2、必須是編譯型語言(PHP就不行),或者有一個非常高效的解釋器;
3、必須有方便的操作硬體的功能,容易嵌入匯編(Java就不行);
4、兼容性要好,最好不同編譯器編譯的符號要基本相同,容易鏈接(C++不行,如果放棄Class的話C++基本可以);
5、編譯器本身最好是由該語言自己完成的(大部分語言的編譯器都是用C/C++寫的);
6、開發者可以很方便的擴展、改造、或者使用第三方的運行庫(大部分語言的庫都無法修改);
7、開發者眾多(小眾語言就不行);
8、該語言開發操作系統的資料要足夠完善。
所以總結下來,C語言是首選。

㈨ 操作系統、編譯程序、實時控制等軟體多數是用編寫的

比如編譯程序是如何知道 本機的硬體信息 而生成其對應的匯編代碼的(匯編代碼機器相關),是操作系統的提供了查詢的介面?
沒有。你當然要告訴編譯器去使用哪種機器碼。至於默認的那個,本來不同的系統上不同的CPU架構的編譯器就是分開編譯,寫死在裡面了的。
還有比如程序中靜態分配的變數(並非指運行時動態分配的)的存儲位置也是由操作系統分配的嗎?然後我們看到的編譯好的匯編代碼里的那些地址只是類似於高級語言中的變數的標識符而已?(邏輯地址)
算是吧,編譯器會統計所有全局變數的大小的總和,寫在exe裡面,exe被執行的時候會直接分配好,然後再在上面跑構造函數。

㈩ 適合win10系統的c語言編譯器

桌面操作系統

對於當前主流桌面操作系統而言,可使用 VisualC++、GCC以及 LLVM Clang 這三大編譯器。

Visual C++(簡稱 MSVC)只能用於 Windows 操作系統;GCC 和 LLVM Clang除了可用於Windows操作系統之外,主要用於 Unix/Linux操作系統。

像現在很多版本的 Linux 都默認使用 GCC 作為C語言編譯器,而像 FreeBSD、macOS 等系統默認使用 LLVM Clang 編譯器。由於當前 LLVM 項目主要在 Apple 的主推下發展的,所以在 macOS中,Clang 編譯器又被稱為 Apple LLVM 編譯器。

MSVC 編譯器主要用於 Windows 操作系統平台下的應用程序開發,它不開源。用戶可以使用 Visual Studio Community 版本來免費使用它,但是如果要把通過 Visual Studio Community 工具生成出來的應用進行商用,那麼就得好好閱讀一下微軟的許可證和說明書了。

而使用 GCC 與 Clang 編譯器構建出來的應用一般沒有任何限制,程序員可以將應用程序隨意發布和進行商用。

MSVC 編譯器對 C99 標準的支持就十分有限,加之它壓根不支持任何 C11 標准,所以本教程中設計 C11 的代碼例子不會針對 MSVC 進行描述。所幸的是,Visual Studio Community 2017 加入了對 Clang 編譯器的支持,官方稱之為——Clang with Microsoft CodeGen,當前版本基於的是 Clang 3.8。

也就是說,應用於 Visual Studio 集成開發環境中的 Clang 編譯器前端可支持 Clang 編譯器的所有語法特性,而後端生成的代碼則與 MSVC 效果一樣,包括像 long 整數類型在 64 位編譯模式下長度仍然為 4 個位元組,所以各位使用的時候也需要注意。

為了方便描述,本教程後面涉及 Visual Studio 集成開發環境下的 Clang 編譯器簡稱為 VS-Clang 編譯器。

嵌入式系統

而在嵌入式系統方面,可用的C語言編譯器就非常豐富了,比如:

  • 用於 Keil 公司 51 系列單片機的 Keil C51 編譯器;

  • 當前大紅大紫的 Arino 板搭載的開發套件,可用針對 AVR 微控制器的 AVRGCC 編譯器;

  • ARM 自己出的 ADS(ARM Development Suite)、RVDS(RealView Development Suite)和當前最新的 DS-5 Studio;

  • DSP 設計商 TI(Texas Instruments)的 CCS(Code Composer Studio);

  • DSP 設計商 ADI(Analog Devices,Inc.)的 Visual DSP++ 編譯器,等等。


  • 通常,用於嵌入式系統開發的編譯工具鏈都沒有免費版本,而且一般需要通過國內代理進行購買。所以,這對於個人開發者或者嵌入式系統愛好者而言是一道不低的門檻。


  • 不過 Arino 的開發套件是可免費下載使用的,並且用它做開發板連接調試也十分簡單。Arino 所採用的C編譯器是基於 GCC 的。


  • 還有像樹莓派(Raspberry Pi)這種迷你電腦可以直接使用 GCC 和 Clang 編譯器。此外,還有像 nVidia 公司推出的 Jetson TK 系列開發板也可直接使用 GCC 和 Clang 編譯器。樹莓派與 Jetson TK 都默認安裝了 Linux 操作系統。


  • 在嵌入式領域,一般比較低端的單片機,比如 8 位的 MCU 所對應的C編譯器可能只支持 C90 標准,有些甚至連 C90 標準的很多特性都不支持。因為它們一方面內存小,ROM 的容量也小;另一方面,本身處理器機能就十分有限,有些甚至無法支持函數指針,因為處理器本身不包含通過寄存器做間接過程調用的指令。


  • 而像 32 位處理器或 DSP,一般都至少能支持 C99 標准,它們本身的性能也十分強大。而像 ARM 出的 RVDS 編譯器甚至可用 GNU 語法擴展。


  • 下圖展示了上述C語言編譯器的分類。


熱點內容
安卓拳皇對戰用哪個平台 發布:2025-05-19 18:42:39 瀏覽:530
華為暢玩5怎麼取消鎖屏密碼 發布:2025-05-19 18:42:38 瀏覽:582
linuxrm文件夾 發布:2025-05-19 18:40:25 瀏覽:972
譚浩強c語言錯誤 發布:2025-05-19 18:39:33 瀏覽:951
安卓和蘋果用流量哪個劃算 發布:2025-05-19 18:38:04 瀏覽:408
安卓手機怎麼設定背景牆 發布:2025-05-19 18:29:40 瀏覽:1001
androidstudio斷點調試 發布:2025-05-19 18:20:23 瀏覽:766
abaqus如何配置證書 發布:2025-05-19 18:19:38 瀏覽:583
美食的密碼是多少 發布:2025-05-19 18:18:58 瀏覽:72
買合資車選哪個品牌好配置高 發布:2025-05-19 18:01:51 瀏覽:49