自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

嵌入式系統(tǒng)中,Python與C/C++哪方更為適用?

譯文
開發(fā) 后端
C/C++屬于編譯語(yǔ)言,而Python則屬于解釋語(yǔ)言。C語(yǔ)言最初誕生于1969年,C++則出現(xiàn)在1983年,相比之下1989年才開發(fā)完成的Python顯然更為年輕。經(jīng)過(guò)數(shù)十年的磨礪,如今Python已經(jīng)成為最具人氣的開源編程語(yǔ)言之一。

【51CTO.com快譯】長(zhǎng)久以來(lái),C/C++一直編譯著嵌入式系統(tǒng)編程領(lǐng)域,但二者亦擁有自己的缺陷。相比之下,Python則成為嵌入式系統(tǒng)中的另一大***語(yǔ)言選項(xiàng)。在今天的文章中,我們將共同探討雙方的優(yōu)劣與Python在嵌入式編程領(lǐng)域的定位。

[[170909]]

C/C++屬于編譯語(yǔ)言,而Python則屬于解釋語(yǔ)言。C語(yǔ)言最初誕生于1969年,C++則出現(xiàn)在1983年,相比之下1989年才開發(fā)完成的Python顯然更為年輕。經(jīng)過(guò)數(shù)十年的磨礪,如今Python已經(jīng)成為***人氣的開源編程語(yǔ)言之一。

Python闡述

Python在美國(guó)各***計(jì)算機(jī)科學(xué)部門中擁有***人氣。根據(jù)Barr集團(tuán)發(fā)布的調(diào)查結(jié)果,十大計(jì)算機(jī)科學(xué)部門中有八個(gè)在利用Python教授編碼技能。這里拋開優(yōu)劣不談,事實(shí)證明應(yīng)屆畢業(yè)生對(duì)于Python的理解要遠(yuǎn)遠(yuǎn)超過(guò)C/C++。

多數(shù)開發(fā)愛(ài)好者都具備一定程度的Python經(jīng)驗(yàn),且其Python水平往往要高于C/C++。然而在嵌入式領(lǐng)域,情況則正好相反——Barr集團(tuán)在調(diào)查中發(fā)現(xiàn)95%的嵌入式系統(tǒng)使用C/C++語(yǔ)言。雖然這樣的狀況對(duì)Python非常不利,但其易于上手的特性加上更為廣泛的從業(yè)者規(guī)模,相信其會(huì)在未來(lái)一步步超越C/C++。

Python在嵌入式計(jì)算領(lǐng)域的發(fā)展速度很快。雖然目前非C/C++語(yǔ)言在嵌入式系統(tǒng)中的代碼占比僅為5%,但Python無(wú)疑將在未來(lái)幾年內(nèi)快速蠶食C/C++的份額。無(wú)人機(jī)、機(jī)器人或者其它包含Arduino與Raspberry Pi的項(xiàng)目正吸引到眾多擁有Python技能背景的愛(ài)好者,而這一趨勢(shì)也必然會(huì)給嵌入式編程帶來(lái)深刻影響。

相較于C/C++編寫緩慢、易出錯(cuò)且難以直接閱讀的問(wèn)題,Python則一直以易于編寫、低錯(cuò)誤率及可讀性著稱。事實(shí)上,Python的復(fù)用能力要遠(yuǎn)高于C/C++,而這一優(yōu)勢(shì)將在目前的敏捷開發(fā)環(huán)境中起到?jīng)Q定性作用。

嵌入式算法本身正變得愈發(fā)復(fù)雜。利用神經(jīng)網(wǎng)絡(luò)及其它高度介入流程,Python取代了簡(jiǎn)單的控制循環(huán)并以此作為立足根基。另外,Python庫(kù)性能表現(xiàn)更出色且更具人類友好性,因而能夠顯著提升程序員的生產(chǎn)效率。

C/C++闡述

C/C++的特性非常明確:旨在構(gòu)建緊湊且運(yùn)行速度更快的代碼。然而,運(yùn)行速度只是開發(fā)工作中需要考慮的因素之一。雖然Python的執(zhí)行效率不及C/C++,但其開發(fā)效率卻更高,因此二者只能說(shuō)是各擅勝場(chǎng)。

改進(jìn)Python速度表現(xiàn)

我們目前可以選擇多種方法提升Python代碼運(yùn)行速度。除了Theano庫(kù),另有Cython等Python優(yōu)化擴(kuò)展可供使用,其基本上相當(dāng)于利用Python的靜態(tài)類型與關(guān)鍵字以提高數(shù)學(xué)運(yùn)算速度。由于Cython本身為靜態(tài)類型,因此大家可以將其編譯為C/C++并享受與后者一致的速度優(yōu)勢(shì)。

準(zhǔn)時(shí)制(簡(jiǎn)稱JIT)編譯器則是另一種提升Python運(yùn)行時(shí)速度的好方案。這些編譯器能夠與Python解釋器并行運(yùn)作以生成匯編指令代碼,進(jìn)而達(dá)到更快的執(zhí)行速度。雖然對(duì)于軟件而言,針對(duì)數(shù)據(jù)結(jié)構(gòu)與算法的優(yōu)化才是提升性能的核心法寶,但其設(shè)計(jì)與實(shí)現(xiàn)難度太高,因此上述工具相信能夠幫助大家更為輕松地完成提速。

利用Python與嵌入式系統(tǒng)通信

Python可能是目前最為出色的用戶與嵌入式系統(tǒng)間通信中間件選項(xiàng)。通過(guò)Python進(jìn)行消息收發(fā)能夠幫助用戶輕松完成自動(dòng)化測(cè)試。Python腳本亦可讓系統(tǒng)處于不同狀態(tài)、設(shè)置配置并測(cè)試全部實(shí)際用例。Python還可用于接收嵌入式系統(tǒng)數(shù)據(jù)以備日后分析。再有,程序員亦可利用Python開發(fā)參數(shù)及其它方法,用于執(zhí)行此類數(shù)據(jù)的分析任務(wù)。

當(dāng)下在考量Python與C/C++間的優(yōu)劣時(shí),大家實(shí)際上面對(duì)的是這樣一個(gè)選擇:開發(fā)速度還是運(yùn)行時(shí)速度。不過(guò)未來(lái),這一難題恐怕并不需要由Python開發(fā)者來(lái)?yè)?dān)心,而是將由嵌入式系統(tǒng)設(shè)計(jì)師負(fù)責(zé)——畢竟Python的普及趨勢(shì)早已不可阻擋。

原文標(biāo)題:Python vs. C/C++ in embedded systems

原文作者:Tom Radcliffe

【51CTO譯稿,合作站點(diǎn)轉(zhuǎn)載請(qǐng)注明原文譯者和出處為51CTO.com】

責(zé)任編輯:陳琳 來(lái)源: 51cto
相關(guān)推薦

2016-09-12 11:17:24

代碼開發(fā)Linux

2022-04-13 09:57:24

Go語(yǔ)言C語(yǔ)言程序開發(fā)

2010-03-24 12:45:00

Python 嵌入

2010-03-26 11:00:55

Python嵌入CC++

2010-01-28 16:58:32

學(xué)習(xí)C++感想

2010-03-26 16:17:24

Python嵌入

2010-03-26 11:00:55

Python嵌入CC++

2010-03-24 13:17:35

Python嵌入

2010-01-07 10:18:44

嵌入式Linux系統(tǒng)構(gòu)

2009-04-11 15:12:24

2021-12-19 22:34:45

Linux容器系統(tǒng)

2022-01-03 23:33:40

Linux組件系統(tǒng)

2010-01-07 09:07:41

嵌入式C變量

2010-03-24 13:04:12

Python嵌入

2023-09-22 09:04:00

C++編程

2010-09-25 15:05:49

LINUXJVM

2010-03-26 09:48:43

Python嵌入C++

2010-01-21 14:07:14

CC++聲明

2010-03-26 10:19:31

Python嵌入CC++

2010-01-14 11:14:47

C++應(yīng)用程序
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)