選擇編程語言是一個復雜的決定,因為它會極大地影響軟件系統的預期可靠性 - 特別是在軍事應用中。幾乎任何語言都可用于開發任何應用程序,但是當從一個領域移動到另一個領域時,語言的原始設計優勢可能不會延續。Ada語言由于其強大的類型和其他固有的安全特性,可以幫助開發人員生成非常可靠的程序,這使得程序更容易理解和修改,而不會產生副作用。
今天的編程語言領域非常豐富,但對于關鍵的嵌入式應用程序,少數應用程序往往比其他應用程序更頻繁地使用。部分列表可能包括 Ada、Assembly、C、C++ 和 Java(按字母順序排列)。這些語言(粗略地和不詳盡地)分別被定義為支持:可靠和可維護的系統,硬件和設備的直接操作,操作系統和類似軟件工具的構建,將當時新的面向對象編程(OOP)范式添加到基礎C語言中,并支持高度可移植的應用程序。每個都擅長開發其域中的應用程序或與該域中的應用程序共享特征。
Ada 語言由于其強大的類型和其他固有的安全特性,可以幫助生成非常可靠的程序。這些相同的特征使程序更容易理解和修改,而不會產生副作用,因此它們更易于維護。如果需要算法來直接操作計算機的指令或數據,則匯編語言是無法擊敗的。C 是一種相對簡單的語言,其中源指令通常映射到一組或一組常見的計算機指令或數據操作。術語“有思想的人的組裝者”被用來描述C來傳達這個概念。然而,它比匯編具有優勢,因為它允許使用更高級的概念操作計算機,從而允許編寫更高級的應用程序。C++使用 C 作為其基礎,最值得注意的是在此基礎上添加了 OOP 支持。OOP允許將問題分解為更小的可管理問題,然后為正在解決的更高級別的問題創建解決方案,以促進低級和高級組件的共享。在這種一般意義上,OOP可以在軟件重用方面表現出色。Java語言旨在促進可移植性作為其主要目標。它是一種純粹的OOP語言,鼓勵繼承和重用現有組件,具有比C或C++更強類型的數據模型,但努力防止C/C++直接訪問/操作。
因此,匯編是直接操作計算機硬件的好語言。Ada 非常適合開發大型、長壽命系統或可靠性很重要的系統。C 適用于開發只需要應用程序和計算機之間相當低的抽象級別的應用程序。也就是說,軟件開發人員執行將域解決方案轉換為使其在計算機上執行的指令的任務。C++添加了 OOP 概念以及模板、命名空間管理和其他有助于軟件重用和構建大規模應用程序的功能。Java是可移植性是關鍵設計目標的理想選擇。作為一種現代編程語言,它還具有比 C 或 C++ 更強大的類型化和程序打包概念,因此軟件開發人員不必直接將解決方案轉換為操縱計算機的東西(事實上,在許多情況下他們不能使用 Java)。
上述每種語言在它所針對的應用程序域中使用時都會表現出色。每個域可能都不適合其他域。Ada 語言在編寫非常小的程序或生存期有限的程序的語法上可能有點冗長。在這些情況下,可讀性和可維護性不太重要。C 語言直接映射到硬件解決方案的能力并不是一個優勢,因為軟件開發人員必須編寫大中型程序,在這些程序中,從問題解決方案到計算機指令的這種心理轉換很難管理;程序員會犯錯誤。由于該語言假設開發人員的意思是他們所說的(類型),因此它將算法中的許多錯誤解釋為僅僅是他們的意圖,并且錯誤將與軟件集成而不會被發現。
使用C相當簡單的語言語法,開發人員可以快速編寫大量源文本。這有時會給人一種錯誤的印象,即正在編寫大量正確的軟件。情況往往并非如此,C 和 Ada 之間的生產力比較實際上可能表明 Ada 開發人員在編寫正確的源代碼方面更有效率。C++語言為其C基礎增加了好處,但繼承了許多與C語言相同的缺點.Java提供了可移植性,但通常是實時性能特征之間的權衡,使此類程序難以編寫,因此編寫效率較低。
審核編輯:郭婷
-
嵌入式
+關注
關注
5086文章
19140瀏覽量
305862 -
JAVA
+關注
關注
19文章
2970瀏覽量
104825
發布評論請先 登錄
相關推薦
評論