操作系統(tǒng)歷史
- UINX操作系統(tǒng)誕生之初是用匯編語言編寫的。
- 隨著UNIX的發(fā)展,匯編語言的開發(fā)效率成為一個瓶頸。
- 尋找新的高效開發(fā)語言成為UNIX開發(fā)者需要解決的問題。
- 當時BCPL語言成為了當時的選擇之一。
- Ken Thomposn對BCPL進行簡化得到了B語言。
- 但是B語言不是直接生成機器碼,而是生成中間碼之后解釋執(zhí)行,有點像Java。解釋型的語言執(zhí)行效率無法勝任操作系統(tǒng)的開發(fā)。
- 1971年,Ken Thompson 和 Dennis Ritchie 對B語言進行了改良,使其能夠直接產生機器碼,C語言誕生。
- UNIX開始使用C語言重寫,同時C語言在實踐過程中得到了發(fā)展,由于是在開發(fā)過程中發(fā)展,沒有深思熟慮的設計過程。
使用時存在很多“灰色地帶”;
殘留過多低級語言的特征,例如可以直接利用指針進行內存操作; - C語言的目標是高效,高效開發(fā)UNIX,最終使得程序執(zhí)行效率的高效。
軟件方法論的發(fā)展
面向過程程序設計:數(shù)據結構+算法
主要解決科學計算問題,用戶要求簡單而固定。
特點:
1.分析解決問題所需要的步驟;
2.利用函數(shù)實現(xiàn)各個步驟;
3.依次調用函數(shù)解決問題;
問題:
1.軟件可重用性差;
2.軟件可維護性差;
3.構建的軟件無法滿足用戶需求。
面向對象程序設計:由現(xiàn)實世界建立軟件模型
將現(xiàn)實世界中的事物直接映射到程序中,可直接滿足用戶需求。
特點:
1.直接分析用需求中涉及的各個實體;
2.在代碼中描述現(xiàn)實世界中的實體;
3.在代碼中關聯(lián)各個實體協(xié)同工作解決問題;
優(yōu)勢:
1.構建的軟件能夠適應用戶需求的不斷變化;
2.直接利用面向過程方法的優(yōu)勢而避開其劣勢。
C語言的加強
當面向過程的方法論暴露的缺陷越來越多的時候,業(yè)界開始考慮在工程項目中引入面向對象的設計方法,而第一個需要解決的問題:高效的面向對象語言,并且能夠兼容已有的C代碼。
- C++是C語言的加強,是一種更好的C語言。
- C++是已C語言為基礎,并且完全兼容C語言的特性。通過學習C++能夠掌握更多的軟件設計方法
- C++是Java/C#/D等現(xiàn)代開發(fā)語言的基礎,學習C++后能夠快速掌握這些語言。
- 如果是做安卓framework,定制安卓Rom,C++是必須掌握的技能。
以安卓系統(tǒng)為例,C語言開發(fā)只是占其中的一部分,HAL可以用C/C++編寫,為了方便移植和開發(fā),大部分外設器件廠商的HAL采用C++編寫。Native層和ART大部分使用面向對象C++編寫。
操作系統(tǒng)的修改和驅動程序開發(fā)在現(xiàn)代軟件產品中占據的比重越來越小。安卓系統(tǒng)框架圖鏈接文章來源:http://www.zghlxwxcb.cn/news/detail-693988.html
現(xiàn)代軟件產品的特性
系統(tǒng)一般是由多種語言寫成的
系統(tǒng)架構的目的是擁抱用戶需求的變化
系統(tǒng)擁有較好的移植性
系統(tǒng)能夠方便的部署和更新。
對于一個架構師而言,掌握各種語言的優(yōu)勢并合理運用到系統(tǒng)中,由此簡化系統(tǒng)的開發(fā),是架構生涯的第一步。文章來源地址http://www.zghlxwxcb.cn/news/detail-693988.html
到了這里,關于為什么要學習C++的文章就介紹完了。如果您還想了解更多內容,請在右上角搜索TOY模板網以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網!