導航:首頁 > 源碼編譯 > 開源與商用編譯器

開源與商用編譯器

發布時間:2023-05-04 04:50:16

Ⅰ 什麼是開源軟體和不開源軟體

1、開放源碼軟體(open-source)是一個新名詞,它被定義為描述其源碼可以被公眾使用的軟體,並且此軟體的使用,修改和分發也不受許可證的限制。開放源碼軟體通常是有right的,它的許可證可能包含這樣一些限制: 蓄意的保護它的開放源碼狀態,著者身份的公告,或者開發的控制。「開放源碼」正在被公眾利益軟體組織注冊為認證標記,這也是創立正式的開放源碼定義的一種手段。


2、不開源軟體就是封閉源代碼軟體,相對開放源代碼而言,為封閉源代碼軟體的簡稱。 只要源代碼不容易獲取,就被視為閉源軟體。閉源軟體,通常是在電子游戲開發中,付足夠的費用即可得到部分源代碼,如torque引擎,但一定是有限使用(通常為次數和不準透露),故不是開源軟體。


(1)開源與商用編譯器擴展閱讀:

開放源碼軟體主要被散布在全世界的編程者隊伍所開發,但是同時一些大學,政府機構承包商,協會和商業公司也開發它。開放源碼軟體在歷史上曾經與UNIX,Internet聯系得非常緊密。

在這些系統中許多不同的硬體需要支持,而且源碼分發是實現交叉平台可移植性的唯一實際可行的辦法。在DOS,Windows,Macintosh平台上僅僅有很少的用戶有可用的編譯器,開放源碼軟體更加不普遍。對開放源碼開發模式的更詳細的討論請看Eric Raymond寫的「The Cathedral and the Bazaar」。

Ⅱ 請問學x86匯編語言用什麼編譯器

編譯器自舉!搜索這個關鍵字
程序都是編譯器編譯的。這個是肯定的
至於第一款X語言編譯器是不是直接1010101010自己寫的那就不知道啦

一般開發編譯器的話。有兩條路選擇
1.利用yacc(或者其變種)&lex(詞法分析)-等工具自己生成語法模板
詞法語法都可以使用這些工具自己生成
然後自己編寫生成的中間碼和生成的機器碼就可以了
一般做編譯原理類似試驗都是如此的。許多編譯器也的確是這樣

2.自己寫詞法分析和語法分析。可以參考一些開源的編譯器
lcc-這個是ANSI C99標準的編譯器是開源的
或者nasm,watcom等編譯器到上不少開源的編譯器

總的來說。高級語言編譯器比較難寫
如果想快速寫出一個的話
可以採用第一種做法。利用工具生成語法詞法模板
先寫一個簡單的匯編編譯器比較簡單
開源的有nasm,jwasm(支持masm語法開源的編譯器)

fasm(這款編譯器是自舉的.就是自己可以編譯自己),

剩下的就是自己做好語言規則關鍵字map
引用高手的話。語言map做好了你的編譯器也做好一半了
剩下的都是機械性的工作了。
生成x86或者arm指令。

優化工作這個很難解釋.根據你所需要的做吧
畢竟可以做出一個無錯,又XX的編譯器已經很難得

你可以選擇使用現有的編譯器開發自己的編譯器
然後等到你的編譯器支持相當數量指令和成熟度的時候
使用自己的語法重新寫一遍編譯器.
這樣你就可以用自己的編譯器開發自己的編譯器了(是不是很邪惡?)

另外舉幾個例子
Delphi的編譯器是C++ Builder開發的。
而C++ Builder的IDE是Delphi開發的
C++ Builder的編譯器是C++ Builder開發的-這個就是編譯器自舉了。。Delphi和C++ Builder共享一個後端化優化器。
Delphi 早期的版本的編譯器是tasm直接編譯的。可見Anders的匯編功力多強悍(Anders也就是後來VJ++,C#,.NET工程的核心架構師.最關鍵的靈魂級人物)

VC++的編譯器是VC++開發的。很明顯這都說明了編譯器自舉
自己開發自己。如果一個編譯器可以做到自己編譯自己。那基本上就可以實現任何功能了。

關於編譯器開發的書籍可以看一下
龍書《編譯原理(第二版)》
虎書《現代編譯原理-C語言描述》
鯨書《高級編譯器設計與實現》
建議從鯨書看起。然後是龍書
再來是虎書--虎書裡面描述了許多現代編譯器(正如其名)技術
例如面向對象啦,優化,垃圾回收等等.
鯨書看完基本上就可以實現一個簡單的Tiny C編譯器了
然後在龍書鞏固,讀一下語言規范,自己看一些開源的匯編編譯器代碼
自己就可以嘗試做一個匯編語言編譯器了.等到技術提高了
在嘗試做一些高級語法識別,參考LCC代碼做一下ANSI C99的
C語言編譯器。再來就看你自己的興趣和領悟度拉
如果想支持C++的話就得要對編譯器做許多方便的研究

類似java那種跨平台或者Ruby,Python等動態語言
虎書中也有描述。當然看自己功力了

Ⅲ c語言編程的平台是什麼

c語洞芹言編程的平台是:

1、GCC,GNU組織開發的開源免費的編譯器;

2、MinGW,Windows操作系統下的GCC;

3、Clang,開源的BSD協議的基於LLVM的編譯銀晌器;

4、Visual C++ :: cl.exe,Microsoft VC++自帶的編譯器。

(3)開源與商用編譯器擴展閱讀

選擇開發平台注意事項

一、windows

開發環境:visual studio

特點:集成開發環境、簡單易用、完整的工具集

缺點:需要授權(也有免費版)體積龐大、無法學習到背後工程代碼組織情況、不利於初學者掌握代碼編譯、鏈接過程、工程管理

二、unix 或者類unix (包過aix,open solaris ,*bsd, linux)

開發環境:編譯工具 gcc、clang ...等等

代碼編輯器:vim、emacs等

工程組織:make,CMake

特點:操作系統集成很多工具,所有的工具幾乎開源且免費、短小精悍、功能強大

缺點:需要自己動手搭建開發環境、熟悉編譯工具、

熟悉編輯器操作、熟悉類unix操作系統的操作。

入門門檻高需要在命令模式下使用腳本、make等工具完成開發工作納搏畢

Ⅳ 常用的c語言編程軟體有哪些

windows下首選VS,版本至少vs2005以上,或者用最新的VSCode,不過需要自己配插件,好處是免費,如果做單片機c開發首選eclipse,linux下如果做單片機首選eclipse,其次是clion。eclipse兼容性最好,不過穩定性差一些,vs在win下沒有對手,clion用cmake,相比來說大部分c程序用的都是makefile,需要適應一下。

Devc++:這個IDE是windows環境下的,操作簡單,功能也不弱,適合新手使用。

Codeblocks(強力推薦):功能比較強大的c/c++IDE,有著不錯的智能提示。

拓展資料

C語言是一門通用計算機編程語言,廣泛應用於底層開發。C語言的設計目標是提供一種能以簡易的方式編譯、處理低級存儲器、產生少量的機器碼以及不需要任何運行環境支持便能運行的編程語言。

盡管C語言提供了許多低級處理的功能,但仍然保持著良好跨平台的特性,以一個標准規格寫出的C語言程序可在許多電腦平台上進行編譯,甚至包含一些嵌入式處理器(單片機或稱MCU)以及超級電腦等作業平台。

二十世紀八十年代,為了避免各開發廠商用的C語言語法產生差異,由美國國家標准局為C語言制定了一套完整的美國國家標准語法,稱為ANSIC,作為C語言最初的標准。目前2011年12月8日,國際標准化組織(ISO)和國際電工委員會(IEC)發布的C11標準是C語言的第三個官方標准,也是C語言的最新標准,該標准更好的支持了漢字函數名和漢字標識符,一定程度上實現了漢字編程。

C語言是一門面向過程的計算機編程語言,與C++,Java等面向對象的編程語言有所不同。

其編譯器主要有Clang、GCC、WIN-TC、SUBLIME、MSVC、TurboC等。

編譯器

GCC,GNU組織開發的開源免費的編譯器

MinGW,Windows操作系統下的GCC

Clang,開源的BSD協議的基於LLVM的編譯器

VisualC++::cl.exe,MicrosoftVC++自帶的編譯器

集成開發環境

CodeBlocks,開源免費的C/C++IDE

CodeLite,開源、跨平台的C/C++集成開發環境

OrwellDev-C++,可移植的C/C++IDE

C-Free

LightTable

VisualStudio系列

HelloWorld

Ⅳ 適合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語言編譯器就非常豐富了,比如:

Ⅵ Arm編譯器有什麼用

Arm RVDS 4.1中的Arm編譯器是唯一一個與Arm編譯器聯合開發的商用編譯器,專門設計用於為 Arm 編譯器架構程序並提供最優支持。該編譯器的開發歷經有20年左右,被公認為是業界標准 C 和 C++ 編譯器,用於生成面向 Arm、Thumb、Thumb-2、VFP 和 NEON 指令集的應用程序。詳情請到億道電子咨詢

Ⅶ JAVA開源是什麼意思標准C和C++是不是開源的

一種語言有很多實現。你說的是sun公司的java,其他公司也有java的版本,比如ibm,還有gnu的Java。 語言本身是一種標准,沒有開源不開源的說法,除非大家有種默認的說法。例如如果沒有特指其他的java,java自然直sun公司的java。

開源指的是語言的實現是開源的。比如c,有turbo c,源代碼不公開的,就不是開源的。但是linux下默認的gcc是更符合c/c++標準的一種實現,同時也是開源的。而微軟的各種c/C++實現(visual c++)就不是開源的。

如果某種語言所有的實現都不是開源的,那它就不是開源的。例如C#過去可以認為它不是開源的,因為僅有的實現visual c#不開源。但c#是一種國際標准,如果有能力誰都可以做出自己的實現,像現在有了Mono project,它是一個開源的c#實現,甚至可以在linux下用。

強調的是,不是說只要公開就是開源,實際上還有其他版權的一些條款,你必須符合某種開源的版權。還有不是說開源的你就可以隨便用了,有很多開源產品都有類似「強盜」的條款:粗略地說,只要你用了它的代碼,你的代碼也必須開源,否則就侵權了。如果做商用,必須仔細看你用的每一個開源庫的版權聲明,看是否要求你也開源。

Ⅷ 開源的本質是指編譯器開源嗎,c++是開源的嗎

並不是,源是源代碼的意思
c++是語言,並非特定軟體,沒有開源與否這一說

Ⅸ 誰能推薦一下有哪些開源的c/c++語言編譯器啊

GCC不錯,不過多數參考書是以TC和VC為主的,
如果自學建議安裝TC3.0不過操作有點不方便,和Win7不兼容。
而VC6.0安裝就有點麻煩了。
GCC如果你願意找點資料的話,最好不過了....

Ⅹ 什麼叫開源,都說JAVA是開源的

開源就是開放程序源代碼。就是把程序源代碼發放出來,讓程序的用戶可以獲得。
開源和收不收費沒有關系,開源軟體同樣可以收費。

編程語言本身沒有開不開源的問題。開不開源的是把語言編譯成可執行程序的編譯器或者是執行這種語言寫的腳本的解釋器軟體。
也有編譯java的編譯器是不開源的。當然,常用的java的編譯/解釋器都是開源的。
所有常見的編程語言,像C, C++, Basic, Pascal, Php, Python等等都有開源的編譯器或解釋器。

對自己懂編寫軟體的語言的用戶而言,水平高的可以對軟體做修改以滿足自己的特殊需要。水平低的可以學習。
因為軟體有很多人知道源代碼,有問題也容易發現。其它不懂編程的用戶也相對放心一點。
對於軟體編寫者而言,他有可能得到看他軟體源代碼的高手的指導,別人也可能幫他發現軟體中的問題,甚至有人幫他修正源程序中的錯誤。
而且,如果知道源代碼的人比較多,就算他有一天不想繼續開發這個軟體了,也很容易找到接手的人,這對於用戶也是一件好事。

閱讀全文

與開源與商用編譯器相關的資料

熱點內容
怎麼解壓鏡像系統 瀏覽:190
程序員求助國企 瀏覽:837
雲伺服器網址租用多少錢 瀏覽:942
行車記錄儀安卓版怎麼用 瀏覽:500
java是不是數字 瀏覽:182
php模擬瀏覽器環境 瀏覽:353
編程誰都能學會嗎 瀏覽:407
使用國家反詐app都要開啟什麼 瀏覽:712
下載民宿APP有什麼用 瀏覽:52
續子語pdf 瀏覽:385
2021年加密貨幣最新行情 瀏覽:162
nfs怎麼加密ipsec 瀏覽:245
國二考試調用編譯器運算選擇題 瀏覽:750
同濟大學高等數學pdf 瀏覽:234
延時的宏命令怎麼設置 瀏覽:596
資料庫有哪些加密 瀏覽:209
改之理反編譯注冊教程 瀏覽:391
什麼是編譯程序和翻譯程序 瀏覽:208
python課程心得總結 瀏覽:17
派派中怎麼看對方在哪個伺服器 瀏覽:796