最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

淺談一下Python究竟屬不屬于嵌入式語(yǔ)言

 更新時(shí)間:2023年04月10日 11:04:37   作者:程序員老華  
這篇文章主要介紹了淺談一下Python究竟屬不屬于嵌入式語(yǔ)言,大家普遍的認(rèn)為C與C++才是標(biāo)準(zhǔn)的嵌入式語(yǔ)言,那么現(xiàn)在大火的Python算是一種嵌入式語(yǔ)言嗎,需要的朋友可以參考下

寫(xiě)在前面:

幾十年來(lái),大家普遍的認(rèn)為C與C++才是標(biāo)準(zhǔn)的嵌入式語(yǔ)言,那么現(xiàn)在大火的Python算是一種嵌入式語(yǔ)言嗎?

在給出我的答案之前我們要先明確幾個(gè)問(wèn)題?

什么是Python? 編程語(yǔ)言的定義?

編程語(yǔ)言(英語(yǔ):programming language),是用來(lái)定義計(jì)算機(jī)程序的形式語(yǔ)言。它是一種被標(biāo)準(zhǔn)化的交流技巧,用來(lái) 向計(jì)算機(jī)發(fā)出指令,一種能夠讓程序員準(zhǔn)確地定義計(jì)算機(jī)所需要使用數(shù)據(jù)的計(jì)算機(jī)語(yǔ)言 ,并精確地定義在不同情況下所應(yīng)當(dāng)采取的行動(dòng)。

最早的編程語(yǔ)言是在電腦發(fā)明之前產(chǎn)生的,當(dāng)時(shí)是用來(lái)控制提花織布機(jī)及自動(dòng)演奏鋼琴的動(dòng)作。在電腦領(lǐng)域已發(fā)明了上千不同的編程語(yǔ)言,而且每年仍有新的編程語(yǔ)言誕生。很多編程語(yǔ)言需要用指令方式說(shuō)明計(jì)算的程序,而有些編程語(yǔ)言則屬于宣告式編程,說(shuō)明需要的結(jié)果,而不說(shuō)明如何計(jì)算。

編程語(yǔ)言的分類(lèi)?

編程語(yǔ)言主要分為 編譯型和解釋型 ,靜態(tài)語(yǔ)言和動(dòng)態(tài)語(yǔ)言,強(qiáng)類(lèi)型和弱類(lèi)型,混合語(yǔ)言等。

編譯型語(yǔ)言

通過(guò)編譯器把源代碼編譯(compile)成機(jī)器語(yǔ)言,在經(jīng)過(guò)鏈接(linker)將源代碼中所使用的庫(kù)串聯(lián)起來(lái)生成可執(zhí)行二進(jìn)制文件,這樣運(yùn)行時(shí)計(jì)算機(jī)可以直接以機(jī)器語(yǔ)言來(lái)運(yùn)行程序。

優(yōu)點(diǎn):運(yùn)行效率高。

缺點(diǎn):編譯之后如果需要修改代碼需要重新編譯整個(gè)模塊。

編譯的時(shí)候根據(jù)對(duì)應(yīng)的運(yùn)行環(huán)境生成機(jī)器碼,不同的操作系統(tǒng)之間移植就會(huì)有問(wèn)題,需要根據(jù)運(yùn)行的操作系統(tǒng)環(huán)境編譯不同的可執(zhí)行文件

代表語(yǔ)言:C,C++,Objective-C等。

解釋型語(yǔ)言

不需要編譯,只在程序運(yùn)行時(shí)才逐條翻譯成機(jī)器語(yǔ)言。這種編程語(yǔ)言需要利用解釋器,在運(yùn)行期,動(dòng)態(tài)將代碼逐句解釋為機(jī)器代碼,或是已經(jīng)預(yù)先編譯為機(jī)器代碼的子程序,之后再運(yùn)行。

優(yōu)點(diǎn):跨平臺(tái)支持比較好,

缺點(diǎn):程序運(yùn)行效率會(huì)比較慢。

如:python,php,Perl等。

Python

Python是一種廣泛使用的解釋型、高級(jí)和通用的編程語(yǔ)言。

Python支持多種編程范型,包括函數(shù)式、指令式、反射式、結(jié)構(gòu)化和面向?qū)ο缶幊獭?/p>

它擁有動(dòng)態(tài)類(lèi)型系統(tǒng)和垃圾回收功能,能夠自動(dòng)管理內(nèi)存使用,并且其本身?yè)碛幸粋€(gè)巨大而廣泛的標(biāo)準(zhǔn)庫(kù)。它的語(yǔ)言結(jié)構(gòu)以及面向?qū)ο蟮姆椒ㄖ荚趲椭绦騿T為小型的和大型的項(xiàng)目編寫(xiě)清晰的、合乎邏輯的代碼。

Python開(kāi)發(fā)者的哲學(xué)是“用一種方法,最好是只有一種方法來(lái)做一件事”。

Python優(yōu)缺點(diǎn)

優(yōu)點(diǎn):

  • 1、python的定位是“優(yōu)雅”、“明確”、“簡(jiǎn)單”,所以python程序看上去總是 簡(jiǎn)單易懂 ,對(duì)于初學(xué)者容易入門(mén)。
  • 2、 開(kāi)發(fā)效率高 ,python有非常強(qiáng)大的第三方庫(kù),基本上你想通過(guò)計(jì)算機(jī)實(shí)現(xiàn)任何功能,python官方庫(kù)里都有相應(yīng)的模塊進(jìn)行支持,直接下載調(diào)用后,在基礎(chǔ)庫(kù)的基礎(chǔ)上進(jìn)行開(kāi)發(fā),大大降低開(kāi)發(fā)周期,避免重復(fù)造輪子。
  • 3、 高級(jí)語(yǔ)言 ,當(dāng)使用python語(yǔ)言編寫(xiě)程序時(shí),無(wú)需考慮如何管理內(nèi)存等底層細(xì)節(jié)。
  • 4、 可移植性 ,由于它開(kāi)源的本質(zhì),python已經(jīng)被移植在許多平臺(tái)上,如果你小心的避免使用依賴(lài)于系統(tǒng)特性,那么你的所有python程序無(wú)需修改就幾乎可以在市場(chǎng)上所有的系統(tǒng)平臺(tái)運(yùn)行。
  • 5、 可擴(kuò)展性 ,如果你需要你的一段關(guān)鍵代碼運(yùn)行得更快或者希望某些算法不公開(kāi),可以把部份程序用C或C++編寫(xiě)庫(kù),然后用python調(diào)用。

缺點(diǎn):

  • 1、 速度慢 ,由于是解釋型所以運(yùn)行速度相比編譯型語(yǔ)言要慢,跟Java相比也要慢一些。
  • 2、 代碼不能加密 ,因?yàn)閜ython是解釋型語(yǔ)言,它的源碼都是以明文形式存放的,所以如果項(xiàng)目要求源代碼必須保密或者加密,那一開(kāi)始就不應(yīng)該考慮用python來(lái)實(shí)現(xiàn)。
  • 3、 強(qiáng)制縮進(jìn) ,單行語(yǔ)句不用寫(xiě)分號(hào)對(duì)于習(xí)慣了C/C++用戶(hù)可能不是太習(xí)慣。

小結(jié)

從上面的信息可以看出,Python與標(biāo)準(zhǔn)的C/C++還是有很大的不同的,這些不同甚至從該語(yǔ)言的設(shè)計(jì)之初就決定了。

但我們僅從前后兩者不同就能簡(jiǎn)單的得出結(jié)論嗎?顯然不合適,所以我們還需要知道什么是嵌入式語(yǔ)言?

什么是嵌入式語(yǔ)言? 什么是嵌入式?

嵌入式,英語(yǔ)是 embedded,表示“嵌入式的,植入的,內(nèi)含的”。

首先,嵌入式有不少組合名詞,例如嵌入式系統(tǒng),嵌入式軟件,Linux 嵌入式,Android 嵌入式,嵌入式 Web,等等。

IEEE電氣工程師學(xué)會(huì):

嵌入式系統(tǒng)是控制、監(jiān)視或輔助機(jī)器和設(shè)備運(yùn)行的裝置。

從這里可以看出,老外們是特別看重應(yīng)用的,一切講究實(shí)際,不抽象,直接就是硬剛。

再來(lái)看看咱們國(guó)家的:

嵌入式系統(tǒng)是指以應(yīng)用為中心,以計(jì)算機(jī)技術(shù)為基礎(chǔ),軟、硬件可剪裁,適應(yīng)應(yīng)用系統(tǒng)對(duì)功能、可靠性、成本、體積和功耗嚴(yán)格要求的專(zhuān)用計(jì)算機(jī)系統(tǒng)。

講究的就是一個(gè)面面俱到。

所以,按我的理解,嵌入式就是:

  • 小電腦
  • 可長(zhǎng)期運(yùn)行
  • 執(zhí)行特定功能
  • 低功耗、高可靠、小體積
  • 可定制,軟硬件都是

嵌入式語(yǔ)言有哪些要求?

對(duì)于嵌入式語(yǔ)言來(lái)講最重要的一點(diǎn)就是: 面向硬件編程。

這個(gè)面向硬件有兩層含義:

第一是說(shuō)需要了解硬件特性,然后通過(guò)編程來(lái)訪問(wèn)硬件。

例如通過(guò)讀寫(xiě)寄存器完成對(duì)外設(shè)的控制,簡(jiǎn)單如GPIO,復(fù)雜一些像Ethernet控制器,除了了解硬件的操作邏輯,也需要了解引腳、電平、IO復(fù)用、、硬件緩存、DMA這些概念。

第二是說(shuō)硬件資源帶來(lái)的限制。

這是由于嵌入式產(chǎn)品通常針對(duì)具體系統(tǒng),涉及的技術(shù)約束大概有計(jì)算能力,IO接口,內(nèi)存,體積,功耗,等方面的約束,在這些約束下進(jìn)行技術(shù)選型和系統(tǒng)設(shè)計(jì),很多時(shí)候硬件選單片機(jī),ARM,PowerPC,軟件使用裸機(jī),RTOS或經(jīng)過(guò)裁剪的linux是比較合適的選擇,就是合適,我們也可以用牛刀殺雞,但是沒(méi)必要。

第二個(gè)重要的要求就是: 足夠的效率。

不能因?yàn)檎Z(yǔ)言本身占過(guò)多資源,這個(gè)時(shí)候需要虛擬機(jī)或解釋器的語(yǔ)言就不太合適,而C/C++通過(guò)指針(地址)訪問(wèn)硬件的操作最自然不過(guò),也可以做到較少的資源消耗。

小結(jié)

從傳統(tǒng)的嵌入式語(yǔ)言的定義來(lái)看,Python似乎從各個(gè)方面都算不上一個(gè)標(biāo)準(zhǔn)的嵌入式語(yǔ)言。

Python屬于嵌入式語(yǔ)言嗎?

通過(guò)上文的一些關(guān)于定義方面的解釋?zhuān)坪酰琍ython很難稱(chēng)得上一門(mén)標(biāo)準(zhǔn)的嵌入式語(yǔ)言。

但有一點(diǎn)大家不要忘記,我們學(xué)的這些編程語(yǔ)言,最終只有一個(gè)目的,那就是應(yīng)用。

近些年,隨著Python越來(lái)越多的被應(yīng)用于 嵌入式和邊緣系統(tǒng) ,IEEE(電氣電子工程師學(xué)會(huì))早已經(jīng)Python歸為嵌入式語(yǔ)言了。

這不僅代表了樹(shù)莓派所帶來(lái)的影響,還表明了連接到云端的邊緣系統(tǒng)也需具備智能的事實(shí)。

我這幾天也在學(xué)習(xí)一個(gè)很有趣的嵌入式AI的框架PYNQ。

PYNQ是Python On Zynq的縮寫(xiě),它是一個(gè)軟件開(kāi)發(fā)框架,指導(dǎo)硬件層、驅(qū)動(dòng)層和應(yīng)用層之間的接口設(shè)計(jì)。

底層硬件用的是FPGA,驅(qū)動(dòng)內(nèi)核使用的是Linux,上層一些智能算法(比如語(yǔ)音識(shí)別,人臉識(shí)別等)靠的是Python提供API接口。

雖然不想承認(rèn),但時(shí)代總是再向前發(fā)展的,一些固定領(lǐng)域的技術(shù)框架,終會(huì)被新生的技術(shù)所影響,但只要明確一點(diǎn):一切以應(yīng)用為導(dǎo)向,就沒(méi)有什么可以影響到我們。

到此這篇關(guān)于淺談一下Python究竟屬不屬于嵌入式語(yǔ)言的文章就介紹到這了,更多相關(guān)Python屬不屬于嵌入式內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Python實(shí)現(xiàn)監(jiān)控遠(yuǎn)程主機(jī)實(shí)時(shí)數(shù)據(jù)的示例詳解

    Python實(shí)現(xiàn)監(jiān)控遠(yuǎn)程主機(jī)實(shí)時(shí)數(shù)據(jù)的示例詳解

    這篇文章主要為大家詳細(xì)介紹了Python如何使用Socket庫(kù)和相應(yīng)的第三方庫(kù)來(lái)監(jiān)控遠(yuǎn)程主機(jī)的實(shí)時(shí)數(shù)據(jù),比如CPU使用率、內(nèi)存使用率、網(wǎng)絡(luò)帶寬等,感興趣的可以了解一下
    2023-04-04
  • Python實(shí)現(xiàn)簡(jiǎn)單的猜單詞

    Python實(shí)現(xiàn)簡(jiǎn)單的猜單詞

    這篇文章主要為大家詳細(xì)介紹了Python實(shí)現(xiàn)簡(jiǎn)單的猜單詞,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-06-06
  • 超實(shí)用Python庫(kù)之lxml使用方法詳解

    超實(shí)用Python庫(kù)之lxml使用方法詳解

    lxml是python的一個(gè)解析庫(kù),支持HTML和XML的解析,支持XPath解析方式,下面這篇文章主要給大家介紹了關(guān)于超實(shí)用Python庫(kù)之lxml使用方法的相關(guān)資料,文中通過(guò)代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2024-07-07
  • python assert斷言的實(shí)例用法

    python assert斷言的實(shí)例用法

    在本篇文章里小編給大家整理了一篇關(guān)于python assert斷言的實(shí)例用法,有需要的朋友們可以跟著學(xué)習(xí)參考下。
    2021-09-09
  • python關(guān)于多值參數(shù)的實(shí)例詳解

    python關(guān)于多值參數(shù)的實(shí)例詳解

    在本篇內(nèi)容里小編給大家整理了一篇關(guān)于python關(guān)于多值參數(shù)的實(shí)例詳解內(nèi)容,有興趣的朋友們可以學(xué)習(xí)下。
    2021-07-07
  • Python替換Excel表格中的空值或指定值的實(shí)現(xiàn)

    Python替換Excel表格中的空值或指定值的實(shí)現(xiàn)

    本文介紹了使用Python的pandas庫(kù)結(jié)合openpyxl來(lái)批量替換Excel表格中的空值或指定值,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2024-12-12
  • python內(nèi)置函數(shù)zip詳解

    python內(nèi)置函數(shù)zip詳解

    這篇文章主要為大家介紹了python內(nèi)置函數(shù)zip,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來(lái)幫助
    2022-01-01
  • 解決sublime+python3無(wú)法輸出中文的問(wèn)題

    解決sublime+python3無(wú)法輸出中文的問(wèn)題

    今天小編就為大家分享一篇解決sublime+python3無(wú)法輸出中文的問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2018-12-12
  • 精心整理總結(jié)的Python自動(dòng)化測(cè)試面試題

    精心整理總結(jié)的Python自動(dòng)化測(cè)試面試題

    簡(jiǎn)單來(lái)說(shuō),自動(dòng)化測(cè)試框架包含了所有的測(cè)試工作所需的測(cè)試框架,下面這篇文章主要給大家介紹了關(guān)于Python自動(dòng)化測(cè)試面試題的相關(guān)資料,文中通過(guò)實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2023-02-02
  • 圖文詳解梯度下降算法的原理及Python實(shí)現(xiàn)

    圖文詳解梯度下降算法的原理及Python實(shí)現(xiàn)

    梯度下降是迭代法的一種,可以用于求解最小二乘問(wèn)題(線性和非線性都可以)。本文將通過(guò)圖文詳解梯度下降算法的原理及實(shí)現(xiàn),需要的可以參考一下
    2022-08-08

最新評(píng)論

桑植县| 容城县| 阿勒泰市| 泸州市| 新乐市| 昌黎县| 乐山市| 嘉义县| 黑龙江省| 安庆市| 长武县| 阳曲县| 门源| 河源市| 清水河县| 靖西县| 呈贡县| 上犹县| 樟树市| 丰城市| 肇源县| 托克托县| 左权县| 土默特左旗| 双峰县| 莱阳市| 郑州市| 昌平区| 商南县| 阿荣旗| 资溪县| 乐亭县| 新田县| 汽车| 松阳县| 江孜县| 夏河县| 拉萨市| 农安县| 株洲县| 前郭尔|