llvmpython
LLVM後端的numba和支持大部分C++編譯器作為後端的nuitka。
Python由荷蘭數學和計算機科學研究學會的Guido van Rossum於1990 年代初設計,作為一門叫做ABC語言的替代品。
Python提供了高效的高級數據結構,還能簡單有效地面向對象編程。Python語法和動態類型,以及解釋型語言的本質,使它成為多數平台上寫腳本和快速開發應用的編程語言,隨著版本的不斷更新和語言新功能的添加,逐漸被用於獨立的、大型項目的開發。
Python解釋器易於擴展,可以使用C或C++(或者其他可以通過C調用的語言)擴展新的功能和數據類型。Python 也可用於可定製化軟體中的擴展程序語言。Python豐富的標准庫,提供了適用於各個主要系統平台的源碼或機器碼。
Python是一門跨平台的腳本語言,Python規定了一個Python語法規則,實現了Python語法的解釋程序就成為了Python的解釋器。
簡單講,編譯器就是將「一種語言(通常為高級語言)」翻譯為「另一種語言(通常為低級語言)」的程序。
一個現代編譯器的主要工作流程:源代碼 (source code) →預處理器(preprocessor) → 編譯器 (compiler) →目標代碼(object code) →鏈接器(Linker) → 可執行程序(executables)。
高級計算機語言便於人編寫,閱讀交流,維護。機器語言是計算機能直接解讀、運行的。編譯器將匯編或高級計算機語言源程序(Source program)作為輸入,翻譯成目標語言(Target language)機器代碼的等價程序。
源代碼一般為高級語言 (High-level language), 如Pascal、C、C++、Java、漢語編程等或匯編語言,而目標則是機器語言的目標代碼(Object code),有時也稱作機器代碼(Machine code)。
對於C#、VB等高級語言而言,此時編譯器完成的功能是把源碼(SourceCode)編譯成通用中間語言(MSIL/CIL)的位元組碼(ByteCode)。最後運行的時候通過通用語言運行庫的轉換,編程最終可以被CPU直接計算的機器碼(NativeCode)。
⑵ Go語言編譯器TinyGo,基於LLVM,在微控制器和小系統上編譯和運行
TinyGo是一個為微控制器、WebAssembly(Wasm)和命令行工具等小型場景設計的Go語言編譯器。TinyGo重用了Go語言工具和LLVM使用的庫,以編譯用Go語言編寫的程序。目前,該項目在GitHub上已經積累了10.1k的Star。
如下為一個示常式序,當運行在任何支持的帶板載LED的主板上時,則會點亮內置LED。
上述程序可以在單片機、Adafruit ItsyBitsy M0微控制器或任何支持的帶內置LED的板上進行編譯和不需要修改的運行,只要設置正確的TinyGo編譯器目標即可。例如,設置如下目標可以編譯和點亮 單片機。
項目概述
TinyGo項目旨在將Go語言引入到具有單進程或核心的微控制器和小系統。TinyGo類似於emgo,但主要的區別在於作者想要保留Go內存模型。另一個區別在於TinyGo在內部使用LLVM,因而可以獲得更小更高效的代碼以及更高的靈活性。
創建TinyGo項目的初衷是,如果Python可以在微控制器上運行,Go語言當然也應該能夠在更低級微設備上運行。
支持設備
你可以為微控制器、WebAssembly和Linux編譯TinyGo程序。目前,TinyGo支持以下85種微處理器板。
更多技術細節請參閱原項目。
⑶ 最難的開發語言
第十名、R語言
R語言,一種自由軟體編程語言與操作環境,主要用於統計分析、繪圖、數據挖掘。R基於S語言的一個GNU計劃項目,所以也可以當作S語言的一種實現,通常用S語言編寫的代碼都可以不作修改的在R環境下運行。R的語法是來自Scheme。
提名詞
R語言作者,George Ross Ihaka:在奧克蘭大學統計系任副教授,是R語言的最初作者。
2
/10
第九名、Python
頒獎詞
Python是一種廣泛使用的高級編程語言,屬於通用型編程語言。作為一種解釋型語言,Python的設計哲學強調代碼的可讀性和簡潔的語法。相比於C++或Java,Python讓開發者能夠用更少的代碼表達想法。不管是小型還是大型程序,該語言都試圖讓程序的結構清晰明了。
提名詞
Python語言作者,Guido van Rossum:生於荷蘭哈勒姆,計算機程序員,為Python程序設計語言的最初設計者及主要架構師。
3
/10
第八名、C語言
頒獎詞
C是一種通用的編程語言,廣泛用於系統軟體與應用軟體的開發。C語言具有高效、靈活、功能豐富、表達力強和較高的可移植性等特點。C語言編譯器普遍存在於各種不同的操作系統中,例如Microsoft Windows、macOS、Linux、Unix等。C語言的設計影響了眾多後來的編程語言,例如C++、Objective-C、Java、C#等。
提名詞
C語言作者,Dennis MacAlistair Ritchie:美國計算機科學家。黑客圈子通常稱他為「dmr」。他是C語言的創造者、Unix操作系統的關鍵開發者,對計算機領域產生了深遠影響,並與肯·湯普遜同為1983年圖靈獎得主。
4
/10
第七名、Go
頒獎詞
Go(又稱Golang)是Google開發的一種靜態強類型、編譯型、並發型,並具有垃圾回收功能的編程語言。Go的語法接近C語言,但對於變數的聲明有所不同。Go支持垃圾回收功能。
提名詞
Go語言作者,Robert C. Pike:來自加拿大的程序員,曾經加入貝爾實驗室,為 UNIX小組的成員。他與肯·湯普遜共同開發了UTF-8。目前為 google的工程師,參與編程語言 Go與Sawzall的研發工作。
5
/10
第六名、JavaScript
頒獎詞
JavaScript,通常縮寫為JS,是一種高級的,解釋執行的編程語言。JavaScript是一門基於原型、函數先行的語言,是一門多範式的語言,它支持面向對象編程,命令式編程,以及函數式編程。它已經由ECMA(歐洲計算機製造商協會)通過ECMAScript實現語言的標准化。它被世界上的絕大多數網站所使用,也被世界主流瀏覽器(Chrome、IE、Firefox、Safari、Opera)支持。
提名詞
JavaScript語言作者,Brendan Eich:美國程序員與企業家,JavaScript主要創造者與架構師,曾任Mozilla公司的首席技術官,並曾短暫擔任首席執行官。
6
/10
第五名、Objective-C
頒獎詞
Objective-C是一種通用、高級、面向對象的編程語言。它擴展了標準的ANSI C編程語言,將Smalltalk式的消息傳遞機制加入到ANSI C中。目前主要支持的編譯器有GCC和Clang(採用LLVM作為後端)。
提名詞
Objective-C作者,Brad Cox:美國計算機科學家。於傅爾曼大學主修化學與數學,於芝加哥大學取得數學生物學博士學位。Objective-C主要作者。
7
/10
第四名、PHP
頒獎詞
PHP(全稱:PHP:Hypertext Preprocessor,即「PHP:超文本預處理器」)是開源的通用計算機腳本語言,尤其適用於網路開發並可嵌入HTML中使用。PHP的語法借鑒吸收C語言、Java和Perl等流行計算機語言的特點,易於一般程序員學習。PHP的主要目標是允許網路開發人員快速編寫動態頁面,但PHP也被用於其他很多領域。
提名詞
PHP語言作者,Rasmus Lerdorf:出生於格陵蘭島凱凱塔蘇瓦克,是一個丹麥程序員,他擁有加拿大國籍。他也是編程語言PHP的創始人,其中PHP的頭兩個版本是由他編寫的,後來他也參與PHP後續版本的開發。
8
/10
第三名、Java
頒獎詞
Java是一種廣泛使用的計算機編程語言,擁有跨平台、面向對象、泛型編程的特性,廣泛應用於企業級Web應用開發和移動應用開發。Java編程語言是個簡單、面向對象、分布式、解釋性、健壯、安全與系統無關、可移植、高性能、多線程和動態的語言。
提名詞
Java語言作者,James Gosling:出生於加拿大,軟體專家,Java編程語言的共同創始人之一,一般公認他為「Java之父」。
9
/10
第二名、C++
頒獎詞
C++是一種使用廣泛的計算機程序設計語言。它是一種通用程序設計語言,支持多重編程模式,例如過程化程序設計、數據抽象、面向對象程序設計、泛型程序設計和設計模式等。
提名詞
C++語言作者,Bjarne Stroustrup:生於丹麥奧胡斯郡,計算機科學家。他以創造C++編程語言而聞名,被稱為「C++之父」。
10
/10
第一名、Visual Basic .NET
頒獎詞
Visual Basic .NET(VB.NET)是.NET Framework框架下的一種多重編程範式高級語言。Visual Basic .NET屬Basic系語言,其語法特點是以極具親和力的英文單詞為基礎標識,以及與自然語言極其相近的邏輯表達,有時候你會覺得寫VB.NET代碼就好像在寫英文句子一樣,從這個角度來說,VB.NET似乎是最高級的一門編程語言,當然在Basic系語言中VB.NET也確實是迄今為止最強大的一門編程語言。
提名詞
Visual Basic .NET作者,Alan Cooper:交互設計的提倡者。庫珀有些時候被叫做 Visual Basic 之父,雖然大多數的工作是由微軟的內部開發團隊完成的,但是對於Windows可視化設計工具的創意是來源於庫珀的。
⑷ 編程時選用的程序設計語言,對軟體的開發與維護的影響
編程時選用的程序設計語言,對軟體的開發與維護的影響?
這個是有一定的影響的,有些編程語言維護起來比較簡單,而有些編程語言維護起來難度還是比較大的。另外也要考慮到運維人員的接受程度。
⑸ python打開文件的路徑
可以使用絕對路徑,類似於D:workdeter.xls
Python中打開文件的路徑是當前工作路徑,可以通過下面的方式查看
importos
os.getcwd()
可以通過 os.chdir('c:\') 進行修改