-
1 # 依然菜刀
-
2 # 沉澱740216
java和c++是編譯型語言,python和
js等是動態語言,設計之初的目標不同,導致他們用法截然不同。
-
3 # 醫療兵皮特兒
C和CPP是編譯型語言,也就是可以生成exe檔案直接放在微控制器內部執行的,其他解釋型語言需要直譯器放在微控制器內部而且要與微控制器對接才行。第一佔空間,第二影響執行速度。
-
4 # 塵都四倍紐約
因為c和cpp能直接操作記憶體及底層硬體區域,Java中能和底層互動的模組也是透過native方法呼叫c程式碼來實現的。
-
5 # 張友玉GlennWhelan
首先,C語言是比彙編高一個等級的語言,程式設計風格是面向過程程式設計,資料操作比較簡單,且易實現,編寫起來比彙編容易;C++是繼C語言上起來的語言,有自己的庫和很多通用的模板類,程式設計風格是面向物件,對資料處理進行了嚴格的封裝,處理起來不太方便;Python就比較高階了,有更為專業的庫,使用時只需呼叫介面函式。
-
6 # 微控制器小張
其他語音屬於高階語言,
C主要是面對底層的,而且微控制器對語言庫依賴少,高階語言主要是庫豐富,用起來方便
-
7 # nagexiucai
這個認識是錯誤的!只要願意,任何語言都可以寫!事實上,好多Java開發者居然不知道有直接用Java開發的嵌入式系統。
-
8 # HeloneTech
問題裡說的是微控制器,那首先你得知道什麼是微控制器。根據不同的核心,微控制器一般有51核心微控制器和ARM核心微控制器,根據位數不同分為8位、16位、32位微控制器。微控制器不同於電腦的CPU,它集成了CPU、ROM(理解為電腦硬碟)、RAM(理解為記憶體)以及板載通訊匯流排(SPI、IIC、UART等),高階的微控制器還會整合乙太網、LCD和USB等功能,看起來就像一臺微型電腦一樣。
說完微控制器再說一下微控制器程式設計,一般的微控制器程式設計都是裸機程式設計,也就是沒有作業系統的單程序程式。程式設計師透過程式碼直接操作微控制器的CPU暫存器、記憶體以及其整合的所有外設,所以微控制器程式設計不同於基於作業系統的程式設計。前者直接操作硬體層,從選擇程式語言上來講,彙編是最好的選擇,因為它執行效率高,可以直接對暫存器、記憶體進行操作。但是不同的微控制器指令集是不同的,彙編可移植性太差,給一個微控制器寫的程式在不同指令集的微控制器上不能執行。
說到這很多人會想到可以用高階語言代替組合語言,然後再透過編譯器將高階語言編譯成彙編,最後生成機器語言給微控制器執行。這是個不錯的想法,那如何選擇高階語言呢C、C++、JAVA、Python還是C#等。這裡面最好的就是C語言,為什麼呢?通俗來講,C語言誕生之初就是用來替代彙編的,提高程式碼可移植性,而且C語言具有彙編的很多特性,比如其可以透過指標操作暫存器、記憶體地址,C語言語法簡單,更貼近硬體層,執行效率高。
這裡提到了執行效率,計算機專業的同學都知道組合語言效率最高,C語言效率僅次於彙編,因為C語言在透過編譯器生成彙編的時候會產生一些冗餘指令。因為編譯器也是一個程式,它的編譯效能再好,也不如程式設計師直接寫一個彙編程式的執行效率高。
說到這差不多快明白了,C++、Java、Python這類語言我們也可以用於寫微控制器程式,只要有適應的編譯器,將其編譯成微控制器的機器語言就行了。但是這類面向物件的語言,其語法格式比較複雜,而且執行效率不如C語言,其特性不利於操作硬體暫存器、記憶體地址等,比如Java設計之初為了避免程式設計師操作地址,就取消了C++裡的指標的概念,另外編譯器也是一個程式,編譯器也會有bug,編譯複雜語言出問題的機率也會增加。
因此,在微控制器執行的程式,直接接觸硬體層,這類程式要求效率高,出現異常的機率要小,還要具有可移植性,滿足這些條件的,好像只有C語言了。
-
9 # 實不可忍
一個原本錯誤的認識,以問題的方式,顯得那麼理所當然的,很專業的問出來,還有一大批人去回答,難度自媒體就是要不懂裝懂的來製造垃圾資訊,來浪費別人的時間嗎?
-
10 # 雁塔菜農
菜農從1981年開始就涉足與嵌入式領域的程式設計,開始是組合語言和宏組合語言,後來是C語言及C++語言,其他語言可能有,但很少且無大出路。
因為嵌入式領域的程式設計與硬體有關,特別是晶片裡的中斷向量即函式指標,而C和C++被其他程式語言攻擊和被拋棄的就是函式指標!
而嵌入式領域最需要的就是函式指標,它與結構和聯合,可以構成“COM介面技術”,為晶片的中斷向量或函式指標即地址加密。
而其他程式語言大多沒有函式指標,故無法滿足嵌入式領域程式設計的特殊需要,故以後或永遠不可能完全替代C或C++,除非他不想保護他的程式碼被篡改或產品的克隆。
-
11 # 大街小巷逛南京
只要微控制器支援,也就是有相應的驅動,其它語言當然可以編寫。
-
12 # 劉耕新
錯了c不是高階語言,cpp也算不上嚴格意義的高階語言。這麼說你明白了?
-
13 # jinesc
取決於有沒有編譯器 以前微控制器還能用basic呢 只要想做沒啥不可以的 甚至你可以自己編一套語言。
-
14 # 玉生煙312
JAVA需要虛擬機器,Python需要解析器,兩者都佔用空間比較大,效能是最大問題
-
15 # 114012651
c設計之初就和機器聯絡比較緊密。
-
16 # 尚宏偉9
如果你的微控制器上能跑python直譯器,就可以跑python, 如果能跑jvm,就可以跑java
回覆列表
第一點,編譯出的程式的執行環境,java,Python編譯以後的程式都不能獨立執行,都要基於虛擬機器執行,所以肯定就不行了。
2,編譯依賴的庫,目前的微控制器還沒有為java,Python開發相關驅動和庫,所以哪怕能開發也不能編譯。。。