亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

淺談一下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ǔ)言的分類?

編程語(yǔ)言主要分為 編譯型和解釋型 ,靜態(tài)語(yǔ)言和動(dòng)態(tài)語(yǔ)言,強(qiáng)類型和弱類型,混合語(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)類型系統(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)上,如果你小心的避免使用依賴于系統(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++用戶可能不是太習(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)格要求的專用計(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)于定義方面的解釋,似乎,Python很難稱得上一門(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 線程的暫停, 恢復(fù), 退出詳解及實(shí)例

    python 線程的暫停, 恢復(fù), 退出詳解及實(shí)例

    這篇文章主要介紹了python 線程的暫停, 恢復(fù), 退出詳解及實(shí)例的相關(guān)資料,需要的朋友可以參考下
    2016-12-12
  • Python進(jìn)程間通信multiprocess代碼實(shí)例

    Python進(jìn)程間通信multiprocess代碼實(shí)例

    這篇文章主要介紹了Python進(jìn)程間通信multiprocess代碼實(shí)例,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-03-03
  • Python中range()與np.arange()的具體使用

    Python中range()與np.arange()的具體使用

    本文主要介紹了Python中range()與np.arange()的具體使用,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2022-06-06
  • python學(xué)習(xí)print中format的用法示例

    python學(xué)習(xí)print中format的用法示例

    這篇文章主要為大家介紹了python學(xué)習(xí)print中format的用法示例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-03-03
  • python 如何做一個(gè)識(shí)別率百分百的OCR

    python 如何做一個(gè)識(shí)別率百分百的OCR

    最近在做游戲自動(dòng)化(測(cè)試),也就是游戲腳本了。主要有以下幾個(gè)需求識(shí)別率百分百、速度要快、模型要小,本文就來(lái)著手實(shí)現(xiàn)它
    2021-05-05
  • python解析庫(kù)Beautiful?Soup安裝的詳細(xì)步驟

    python解析庫(kù)Beautiful?Soup安裝的詳細(xì)步驟

    Beautiful?Soup是python的一個(gè)庫(kù),最主要的功能是從網(wǎng)頁(yè)抓取數(shù)據(jù),下面這篇文章主要給大家介紹了關(guān)于python解析庫(kù)Beautiful?Soup安裝的詳細(xì)步驟,文中通過(guò)圖文介紹的非常詳細(xì),需要的朋友可以參考下
    2023-04-04
  • PyQT5 QTableView顯示綁定數(shù)據(jù)的實(shí)例詳解

    PyQT5 QTableView顯示綁定數(shù)據(jù)的實(shí)例詳解

    今天小編就為大家分享一篇PyQT5 QTableView顯示綁定數(shù)據(jù)的實(shí)例詳解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2019-06-06
  • Windows10下Tensorflow2.0 安裝及環(huán)境配置教程(圖文)

    Windows10下Tensorflow2.0 安裝及環(huán)境配置教程(圖文)

    這篇文章主要介紹了Windows10下Tensorflow2.0 安裝及環(huán)境配置教程(圖文),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-11-11
  • Python 內(nèi)置方法和屬性詳解

    Python 內(nèi)置方法和屬性詳解

    這篇文章主要為大家介紹了Python 內(nèi)置方法和屬性,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來(lái)幫助
    2021-12-12
  • PyTorch一小時(shí)掌握之神經(jīng)網(wǎng)絡(luò)分類篇

    PyTorch一小時(shí)掌握之神經(jīng)網(wǎng)絡(luò)分類篇

    這篇文章主要介紹了PyTorch一小時(shí)掌握之神經(jīng)網(wǎng)絡(luò)分類篇,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2021-09-09

最新評(píng)論