當前位置:首頁 » 編程軟體 » 系統級編程語言

系統級編程語言

發布時間: 2022-12-22 20:43:50

㈠ 鴻蒙3.0系統與華為倉頡編程語言,從系統級6層架構上深入分析

華為的鴻蒙系統3.0開始對9款手機的公測,這其中就包括p50系列的3款手機,mate40系列的5款手機,和一款12.6英寸的matepad pro。這讓咱手裡拿著的mate30備受冷落。但我自己心裡就更加期待華為的倉頡編程語言。這么屈指一算,倉頡編程語言從4月2號開始內測以來已經兩個多月了。因此,我預判,鴻蒙系統3.0會跟倉頡編程語言一起來到咱們的身邊。

那麼在准備迎接鴻蒙系統3.0和倉頡編程語言之前,我這一期幫大家打一個堅實的基礎。我相信許多朋友當說起來操作系統或者是編程語言的時候,腦子里其實是有點支離破碎,或者是一頭霧水。我幫助大家從一個宏觀的角度去鳥瞰,去把握和理解計算機科學體系中的坐標,讓你獨具一雙慧眼,單單靠著你的直覺就能獲得專業的視角。計算機科學包括六層架構,操作系統在第四層上,華為倉頡編程語言這樣的應用級編程語言則處在第五層上。

咱們先從底部開始,所謂萬丈高樓平地起嘛。咱們來先看基礎:信息理論。任何學科的基礎都是數學,當然計算機科學也不例外。這第一層就是關於數學理論的。咱們日常用的是十進制,計算機則是由0和1構建起來的是二進制。那數學也很簡單,就是關於0和1的加法。比如1加1,在十進制中是等於2,而在二進制1加1等於10,這就是所有的數學基礎,也就是這么簡單。

但是還有更加往上抽象的一個層面的基礎,就是咱們在高中時候學習的「布爾代數」。看似不起眼的「布爾代數」研究的是機器如何思考,如何讓機器來獲得智能這樣的問題。

布爾在1854年就解決發表一篇「研究人類的思考規律」的論文,提出了「布爾代數」,為機器如何思考打下了理論基礎。

布爾當時的想法很簡單。他認為人是理性的,那麼人是按照理性邏輯來思考問題的。於是,如果他能把大腦思考問題的邏輯,提煉抽象出來的話,那麼是不是就能用這邏輯在大腦之外去思考呢?布爾的這項雄心勃勃的構思就是人工智慧的雛形。你想呀,如果把這個邏輯提煉出來用在機器機械零件上,機械零件就會開始思考。如果用在電路上,這個電路是不是也就開始思考了呢。布爾代數咱們就很熟悉了,我就在這里就不帶展開,我前面有一期就專門來講述了這個機器來如何用布爾代數來思考,大家感興趣可以看下那一期,我在這不展開浪費時間。

再往上第二層就是硬體,布爾他把理論抽象出來,將布爾代數應用到電路上,電路是不是也就能開始思考?哎,到了1938年,香農就首次把布爾代數應用到了電路上,於是這個電路就開始思考了。從最早的真空管到半導體晶體管(我前面那一期也專門講過「機器如何用晶體管來思考」)然後到集成電路,再到現在這個大型的集成電路晶元。我們知道麒麟9000晶元用的Arm架構的指令集,指揮CPU工作的指令又叫機器碼。比如「加法」就是用一串數字機器碼00000011來表示。

然而你會發現,用機器碼來指揮這個cpu或者電腦工作太麻煩了。一般人哪裡能記住像前面的6個0和後面兩個1來表示加減乘除的加呢。

正是困擾於此,科學家就此提出來編程語言。最早編程語言是匯編語言。比如前面表示加法的機器碼00000011,匯編語言中將其抽象為add。然而,匯編語言也需要大量的記憶,一個指令一個指令的對應,也是太機械了。再往前一步,往上一層抽象就是系統級的編程語言:面向過程的c語言

一門編程語言所要做的一個主要工作就是在機器和我們人類思考之間建立一座橋梁。我們是人類的思考邏輯,機器是機械 式邏輯思考問題。越高級的編程語言越符合我們人類的思考邏輯,越初級的編程語言則越貼近機器的邏輯。因此,我們用高級的編程語言比如C語言,將想做的事情表達出來,它會自動轉換成機器碼。

我喜歡的編程發展史上的第二大古老的語言:Lisp語言。

就是直接使用我們的抽象思考的語言。比如重復地來做一件事,重復說五遍「Hello」這個單詞。Lisp將重復抽象為dotimes,do是做, times是多次,dotimes反復多次做。看見沒,編程語言成了我們抽象的思考工具。

當然,華為倉頡語言也是在編程語言這里,但不是系統級的編程語言,咱們後面再說

當在第二層硬體之上發展出來高級的編程語言,有了系統級的編程語言比如C語言之後。大家就發現,我需要一個操作系統來處理日常的基本任務,比如文件管理,進程管理,內存管理,設備管理和用戶管理等等。於是科學家著手用編程語言寫操作系統。而事實上C語言在1969年的發明,也正是為了移植與開發UNIX操作系統。C語言的設計者丹尼斯·里奇同時也是Unix操作系統的發明人。到了1991年Linus用C語言寫了Linux內核,也是目前安卓和鴻蒙系統的內核。

華為的EROFS超級文件系統並入Linux內核之後,無論是Linux還是安卓都打上了20%的華為烙印。

操作系統再往上一層就是我們日常的應用。比如聽歌、看視頻等apps就是在操作系統之上。這也好理解,先有了操作系統,才有我們的各種應用。由此也能理解,為什麼像鴻蒙系統3.0如此重要,因為應用程序要運行在上面。這些應用程序就是用華為倉頡編程語言等應用級編程語言開發的。不過,目前咱們手機上的應用程序都是用Java開發。未來鴻蒙系統將會使用自研的倉頡語言開發鴻蒙應用。

應用程序的主要功能之一是溝通和交流。我們用Email發郵件,用通訊視頻聊天,而Web應用技術構建起來當前的互聯網信息大廈。

好了,我們總結一下。計算機科學的六層架構。

第1層是信息理論,研究如何在大腦之外實現思考,布爾代數是人工智慧的雛形。第2層是硬體,布爾代數應用到電路上,晶體管開始思考,將數以億計的晶體管雕刻到集成電路CPU中,CPU的機器碼指揮計算機工作。第3層編程語言,從枯燥難記的機器碼里發展出來匯編語言,再到系統級的C語言,構建起來人類思考與機器邏輯之間橋梁。第4層操作系統,C語言不是憑空而來,是為了開發Unix操作系統而發明,而操作系統是計算機里最大的軟體。第5層應用軟體,日常所有的apps都運行在操作系統之上。倉頡編程語言是給鴻蒙系統開發應用程序的專屬開發語言。第六層溝通互聯,就是我們目前的互聯網技術,在網路里看書、聽音樂,點一份外賣等等。

這就是計算機科學六層架構,鴻蒙操作系統與倉頡編程語言各就各位。用架構去思考和看問題,不僅能心中有數,還能獨具一雙慧眼。

㈡ 我們為什麼用Rust

Rust 是一門系統級編程語言,被設計為保證內存和線程安全,防止段錯誤產生。作為系統級編程語言,它的基本理念是 「零開銷抽象」。理論上來說,它的速度與 C/C++ 同級。Rust 可以被歸為通用的、多範式、編譯型的編程語言,類似 C/C++。與這兩門編程語言不同的是,Rust 是線程安全的!Rust 編程語言的目標是,創建一個安全和並發的軟體系統。它強調安全性、並發和內存控制。盡管 Rust 借用了 C/C++ 的語法,卻杜絕了空指針和懸掛指針,而這二者是 C/C++ 中系統崩潰、內存泄露和不安全代碼的根源。

雖然 Rust 是一門系統級編程語言,但並不意味著它只能寫底層程序(操作系統、驅動、工具、資料庫、搜索引擎等),它的抽象層次之高完全給人驚艷的感覺,實踐證明它對問題建模的能力和方便性不比 C++/Java/python/Ruby 差。但 Haskell 這類超高抽象語言,也不是 Rust 的發展方向。Rust 力求在抽象與現實世界中找到一個平衡。

在向SCRY 項目研發負責人Peace交流時,他說到,當時選擇Rust,主要有兩個原因:一是有高性能要求時,原來好多人會選擇C/C++,現在多了一個Rust選擇,還解決了C/C++許多不足;二是Rust應用在區塊鏈有成熟的參考。最後Peace給了未來使用SCRY項目開源部分的學習者一些建議,「快速的學習能力,快樂地把小事做好,正確合理定義一個函數。」

Rust到底有多受歡迎呢?目前,Rust 已經在 StackOverflow 的年度語言評選中,連續 4 年榮獲「程序員最喜愛語言」第一名(2016, 2017, 2018, 2019)。以下是 2019 年調查的截圖:


但比起Python、C、C++ 等,Rust還只是個小年輕。調查顯示,更多的人不去學習 Rust 還是因為 Rust 沒有足夠的活躍商業項目讓它成為企業的一部分。


不過,Rust 在工作中的佔比也越來越高。過去一年間,Rust 在商業應用上有著令人驚訝的成長。下面是部分人們熟知的公司:

國內的網路,阿里,也已經在內部小范圍的使用上了Rust。

就在本月初,微軟還推出了基於 Rust 的 Windows 運行時項目 Rust/WinRT。該項目和 C++/WinRT 一脈相承,用標准語言和編譯器為 Windows 運行時構建語言投影,從而方便 Rust 開發人員調用 Windows API,更輕松地使用 Rust 構建各類 Windows 應用和組件。

(https://blogs.windows.com/windowsdeveloper/2020/04/30/rust-winrt-public-preview/)

2015年下半年,Gavin Wood 博士創立了 Parity Technologies,推出以太坊(Ethereum)客戶端 parity,而這個 parity 客戶端就是使用Rust寫的。實際在 parity 出現之前,MaidSafe項目就已經出現了。MaidSafe用 Rust 語言嘗試了很多東西。Rust語言本身強調的安全性以及MaidSafe這些前沿項目,可能給了 Gavin 充分的理由選擇 Rust 作為 parity 開發語言。

寫一個有效率的、符合習慣的Rust程序比寫一個有潛在危險的程序容易得多。下面是Linux內核在2018年一月到四月期間發現的bug:


而對於Rust而言,上圖右側佔比 51% 的部分,從語言層面就可以避免。也就是說,對Rust來說,根本不存在上圖右邊這些問題。

Rust在實現內存安全和並發安全的同時,並沒有以損失性能為代價。更牛逼的是,它甚至是用同一套抽象解決了內存安全和數據競爭這兩個不同領域的問題。

Rust的零開銷抽象讓你在享受安全性的同時,又不損失性能。這正是傳統的程序員夢寐以求的。

Solana的首席執行官Anatoly Yakovenko在一段采訪中提到剛開始項目的時候,他用了兩周時間使用C語言,但是當用到一些外部庫的時候,還得寫makefile,手動下載這些庫,比較麻煩。所以,他決定嘗試一下Rust。就在那一刻,「Holy shit, this is amazing.」「我才覺醒到,這是一個和C語言一樣快的語言,並且還給了我Haskell般的類型安全。Rust擊中了我,這真的很酷。」

今天Rust滿5歲了(2020年5月15日,是Rust語言正式發布5年生日)。Rust語言正在IT工業各個領域快速發展,而由於區塊鏈本身的特質,區塊鏈領域是較早接納Rust的領域之一。在區塊鏈領域,Rust正以勢如破竹之勢佔領區塊鏈新興項目市場,很多著名的老項目也在考慮轉向使用Rust重寫。

祝Rust 5周年生日快樂!


參考:

1. Why Rust?

https://www.parity.io/why-rust/

2. Meetup with Solana, Zcash, & Parity — Why Rust Is Ideal For Blockchain Development?

https://medium.com/solana-labs/solana-at-portland-dev-meetup-72e4dc7ad32c

3. Rust 2017 Survey Results

https://blog.rust-lang.org/2017/09/05/Rust-2017-Survey-Results.html

4. 微軟開源 Rust/WinRT,方便使用 Rust 構建 Windows 應用

https://www.oschina.net/news/115354/microsoft-winrt

5. Stack Overflow』s Developer Survey Results 2019

https://insights.stackoverflow.com/survey/2019#developer-profile-_-what-inpial-person-will-have-the-most-influence-in-tech-this-year

6. 當區塊鏈遇上Rust

https://rustcc.cn/article?id=289da7be-19ce-49fe-af6d-3a7946404ca6

㈢ 編程都有哪些語言

使用較普遍的有FORTRAN、ALGOL、COBOL、BASIC、PROLOG、Ada、LISP、SNOBOL、Pascal、C、C++、VC、VB、Delphi、JAVA等。
1、編程語言(programminglanguage),是用來定義計算機程序的形式語言。它是一種被標准化的交流技巧,用來向計算機發出指令。一種計算機語言讓程序員能夠准確地定義計算機所需要使用的數據,並精確地定義在不同情況下所應當採取的行動。最早的編程語言是在電腦發明之後產生的。
2、編程語言的描述一般可以分為語法及語義。語法是說明編程語言中,哪些符號或文字的組合方式是正確的,語義則是對於編程的解釋。有些語言是用規格文件定義,例如C語言的規格文件也是ISO標准中一部分,2011年後的版本為ISO/IEC9899:2011,而其他語言(像Perl)有一份主要的編程語言實現文件,視為是參考實現。
3、編程語言俗稱"計算機語言",種類非常的多,總的來說可以分成機器語言、匯編語言、高級語言三大類。電腦每做的一次動作,一個步驟,都是按照已經用計算機語言編好的程序來執行的,程序是計算機要執行的指令的集合,而程序全部都是用我們所掌握的語言來編寫的。所以人們要控制計算機一定要通過計算機語言向計算機發出命令。目前通用的編程語言有兩種形式:匯編語言和高級語言。

㈣ 編程都有哪些語言

1、Java:應用廣泛,Android的編程,大部分是用Java;相關崗位:軟體工程師,軟體架構師和DevOps工程師。
2、Python:簡單易學,軟體庫廣泛,支持多種編程範例,近些年在人工智慧領域應用廣泛。
3、JavaScript:入門難度較低,可在任何瀏覽器上開發及調試,一門靈活的腳本語言,用於前端,後端,游戲腳本等。大多數要求JavaScript的工作都與網路相關。
4、C#:微軟的編程利器,語法很棒,大部分學習了C語言Java的語法風格,基本是全能語言。
5、c、objec-c、C++:C語言在編程語言中鼻祖級的,比如Linux操作系統就是用c語言編寫的,而Android是Linux進化過來的。開發工具很多。
6、PHP,這是做網站常用的編程語言,一般與MySQL等資料庫結合使用,大部分的網站是用PHP做的。
關於常見的編程語言都有哪些,環球青藤小編就和大家分享到這里了,學習是永無止境的,學習一項技能更是受益終身,所以,只要肯努力學,什麼時候開始都不晚。如果您還想繼續了解關於python編程的學習方法及素材等內容,可以點擊本站其他文章學習。

㈤ 編程語言有哪些

有高級語言VB、Java等,中級語言C、C++等,低級語言:匯編語言,最低級的應該是機器語言。或者分成高級語言、匯編語言、機器語言。

腳本類的語言是高級語言的變形,嚴格意義上說不能成為嚴謹的計算機語言。分類種類很多,比如還分成了描述性語言、結構化程序設計語言、面向對象語言等,還有一些是針對某些系統的專用語言,那分類就更多了。

主流資料庫不是語言是資料庫管理系統,它牽扯到的計算機語言是SQL,結構化查詢語言,是完全針對資料庫系統。

編程語言Basic語言優點:

⑴Pascal語言結構嚴謹,可以很好地培養一個人的編程思想。

⑵Delphi是一個真正的面向對象的開發工具,並且是完全的可視化。

⑶Delphi使用了真編譯,可以讓你的代碼編譯成為可執行的文件,而且編譯速度非常快。

⑷Delphi具有強大的資料庫開發能力,可以讓你輕松地開發資料庫。

缺點:

Delphi幾乎可以說是完美的,只是Pascal語言的過於嚴謹讓人感覺有點煩。

綜述: 方案二比較適合那些具有一定編程基礎並且學過Pascal語言的朋友。

㈥ 同樣曾被用於系統級編程語言,Pascal 和 BASIC 為什麼失敗了

basic並沒有用作為系統語言。如果一定要說有,那pc1500或者ibmpc的rombasic姑且算是吧!
兩種語言都談不上失敗,仍有不少的用戶!

㈦ 全球十大編程語言排行榜:C最古老,JavaScript第一

在軟體開發行業,新技術正以快節奏的方式出現。程序員在選擇編程語言時也應該順應行業和時代的發展趨勢,以保持他們在技術市場的領先優勢。許多編程語言中哪一種是你最喜歡的?
最近,GitHub作為編程界的「臉譜」,列出了世界上十種最流行的編程語言。它們都在使用嗎?讓我們看看。
世界十大編程語言列表
10、C
C是最常用和最古老的編程語言之一,創建於20世紀70年代初。1978年,貝爾實驗室正式發布了C語言,並出版了一本名為《The C Programming Language》的書,該書被用作對C語言的非正式標准解釋。
9、Go
Go最初是由谷歌設計的,旨在為全球最繁忙的搜索引擎谷歌提供一個巨大的多處理器系統。如今,用圍棋語言編譯的程序已經可以與C9和C9的速度相匹配,並且更加安全,已經成為開發人員的熱門選擇。微軟也開發了
8、C#
語言,發音為「C-夏普」。它是Java的競爭對手,主要用於開發商業軟體和系統級應用程序。
7、CSS
層疊樣式表(CSS)是一種廣泛使用的網站設計和基於瀏覽器的編程語言。
6、C++
C是創建於1983年的C編程語言的一個分支。我們可以在桌面網路應用程序或伺服器框架中找到它。
5、PHP
PHP被廣泛使用。我們包括雅虎!臉譜網和其他使用PHP作為網站代碼的大型網路公司。PHP是C語言、JAVA語言和PERL語言的混合。它可以將程序嵌入html中執行。
4、Ruby
Ruby因其易於閱讀和書寫而贏得了許多贊譽。Ruby可以使構建網路應用程序變得容易。這種語言的座右銘是「程序員最好的朋友」,這也被許多老程序員稱為最易讀的語言。
3、Java
Java最初是由太陽微系統公司在1991年創建的。Java吸收了C語言的優點,具有功能強大、使用方便的特點。甲骨文在2009年收購太陽後,爪哇已經成為一個強大的製造商。JAVA是安卓應用程序中最常見的語言。自2007年3月以來,世界各地的人們都可以修改JAVA源代碼。
2、Python
Python可追溯到1989年,由荷蘭吉多·范·羅蘇姆發明。由於其可讀性很強的代碼,它很受程序員的歡迎,許多程序員認為這是最容易上手的語言。
1、JavaScript
盡管它們的名字與Java非常相似,但JavaScript實際上與JAVA沒什麼關系。它在客戶端的腳本語言中被廣泛使用,最初是在html網頁上,但它也會減慢瀏覽器速度,有時會使用戶暴露在安全漏洞中。
但是與此同時,我們可以發現幾乎所有的網頁現在都有了陰影。
除了全球十大編程語言之外,GitHub流行的編程語言列表還包括TypeScript、Shell、Swift、Scala和Objective-C.
以下是全球十大編程語言的完整投票表:8、Ruby
7、CSS
6、C
5、C#
4、PHP
3、Python
2、Java
1、JavaScript

㈧ 為什麼說 C 語言是系統級編程的首選

因為C語言基本上可以完成匯編語言的所有功能,適合用於系統編寫,而且比匯編語言更便於設計、調試和移植。

熱點內容
java返回this 發布:2025-10-20 08:28:16 瀏覽:647
製作腳本網站 發布:2025-10-20 08:17:34 瀏覽:939
python中的init方法 發布:2025-10-20 08:17:33 瀏覽:634
圖案密碼什麼意思 發布:2025-10-20 08:16:56 瀏覽:823
怎麼清理微信視頻緩存 發布:2025-10-20 08:12:37 瀏覽:734
c語言編譯器怎麼看執行過程 發布:2025-10-20 08:00:32 瀏覽:1069
郵箱如何填寫發信伺服器 發布:2025-10-20 07:45:27 瀏覽:302
shell腳本入門案例 發布:2025-10-20 07:44:45 瀏覽:163
怎麼上傳照片瀏覽上傳 發布:2025-10-20 07:44:03 瀏覽:855
python股票數據獲取 發布:2025-10-20 07:39:44 瀏覽:765