久久婷婷香蕉热狠狠综合,精品无码国产自产拍在线观看蜜,寡妇房东在做爰3,中文字幕日本人妻久久久免费,国产成人精品三上悠亚久久

當前位置:首頁 > 嵌入式培訓 > 嵌入式學習 > 講師博文 > 編程的本質(zhi)是(shi)什(shen)么?程序(xu)是(shi)什(shen)么?

編程(cheng)的(de)本質是(shi)什(shen)么(me)?程(cheng)序是(shi)什(shen)么(me)? 時間:2019-02-22      來(lai)源:華清遠(yuan)見

程(cheng)序(xu)(xu)是(shi)什么(me)?在(zai)編程(cheng)的(de)世界,我(wo)們(men)平時所見到(dao)的(de)程(cheng)序(xu)(xu),是(shi)指(zhi)(zhi)(zhi)以某種邏輯組織起來(lai)(lai)的(de)指(zhi)(zhi)(zhi)令(ling)(ling)序(xu)(xu)列(lie),通過這些(xie)指(zhi)(zhi)(zhi)令(ling)(ling)序(xu)(xu)列(lie)達(da)到(dao)一些(xie)特定的(de)效果(guo),一個可執行程(cheng)序(xu)(xu)呢,它(ta)的(de)內部是(shi)一系列(lie)計算機(ji)指(zhi)(zhi)(zhi)令(ling)(ling)和數據的(de)集合(he),它(ta)們(men)都是(shi)二(er)進制形式的(de),通常的(de)格式是(shi)ELF段的(de)二(er)進制文(wen)件,CPU 可以直接看到(dao),識別,但是(shi),若是(shi)對于(yu)程(cheng)序(xu)(xu)員來(lai)(lai)說(shuo)呢,這些(xie)二(er)進制文(wen)件就顯得(de)晦(hui)澀難懂(dong),看得(de)人頭皮發麻。

而在(zai)windons中呢,我(wo)們所(suo)說的(de)(de)程(cheng)(cheng)序(xu),就(jiu)是(shi)(shi)(shi)(shi)那(nei)些(xie)平時(shi)雙(shuang)擊(ji)就(jiu)可(ke)以直(zhi)接(jie)運行(xing)(xing)(xing)的(de)(de)程(cheng)(cheng)序(xu)了,他們不需要安裝,而是(shi)(shi)(shi)(shi)可(ke)以直(zhi)接(jie)執(zhi)(zhi)行(xing)(xing)(xing),這樣的(de)(de)程(cheng)(cheng)序(xu)呢被稱為可(ke)執(zhi)(zhi)行(xing)(xing)(xing)程(cheng)(cheng)序(xu),英文名字是(shi)(shi)(shi)(shi)Executable Program,所(suo)以我(wo)們一般(ban)平時(shi)看到的(de)(de)exe文件(jian)呢就(jiu)是(shi)(shi)(shi)(shi)可(ke)執(zhi)(zhi)行(xing)(xing)(xing)程(cheng)(cheng)序(xu)名字的(de)(de)一個縮寫。在(zai) Windows 下,可(ke)執(zhi)(zhi)行(xing)(xing)(xing)程(cheng)(cheng)序(xu)的(de)(de)后綴一般(ban)有(you) .exe 和 .com(其(qi)中 .exe 比(bi)較(jiao)常見);而在(zai)類 UNIX 系統(tong)(Linux、Mac OS 等操作系統(tong))下,可(ke)執(zhi)(zhi)行(xing)(xing)(xing)程(cheng)(cheng)序(xu)并(bing)沒有(you)特定(ding)的(de)(de)后綴,系統(tong)根據文件(jian)的(de)(de)頭部信(xin)息(xi)來(lai)判斷(duan)是(shi)(shi)(shi)(shi)否是(shi)(shi)(shi)(shi)可(ke)執(zhi)(zhi)行(xing)(xing)(xing)程(cheng)(cheng)序(xu),一般(ban)格式為ELF文件(jian)。

例如,在(zai)我們的(de)電腦屏幕上(shang)輸出“hello world”,C語言(yan)的(de)寫法(fa)為(wei):

puts("hello world");或(huo)者printf("hello world");

二進制的(de)寫法為:

編程的本質,程序是什么

如果你(ni)是(shi)(shi)程(cheng)(cheng)序員,你(ni)可以(yi)感(gan)受一下,直接使用(yong)二進(jin)制寫(xie)程(cheng)(cheng)序感(gan)覺(jue)是(shi)(shi)不是(shi)(shi)想撞墻?而(er)在(zai)計算發展的初期,程(cheng)(cheng)序員就(jiu)是(shi)(shi)使用(yong)這樣(yang)的二進(jin)制指令來(lai)編(bian)寫(xie)程(cheng)(cheng)序的,因為在(zai)那個年代還沒有編(bian)程(cheng)(cheng)語言。

直接使用二(er)進制(zhi)指令(ling)編程(cheng)(cheng)對程(cheng)(cheng)序(xu)員(yuan)來(lai)說簡直是噩夢,尤其是當程(cheng)(cheng)序(xu)比較大的時候,不但編寫麻煩(fan),需要頻繁查(cha)詢指令(ling)手冊(ce),而且(qie)除(chu)錯(cuo)會異常苦惱,要直接面對一堆二(er)進制(zhi)數據,讓人(ren)眼(yan)花繚亂。另(ling)外,用二(er)進制(zhi)指令(ling)編程(cheng)(cheng)步驟繁瑣,要考慮(lv)各種邊界情況和(he)底層(ceng)問題,開發效率十分(fen)低(di)下(xia)。

這(zhe)(zhe)(zhe)種(zhong)情況下,這(zhe)(zhe)(zhe)就逼得程序員開發出了編(bian)程語(yu)言(yan)(yan)(yan)(yan),提高(gao)自己的(de)生產力(li),例如匯(hui)編(bian)語(yu)言(yan)(yan)(yan)(yan)、C語(yu)言(yan)(yan)(yan)(yan)、C++、Java、Python、Go語(yu)言(yan)(yan)(yan)(yan)等,逐(zhu)步提高(gao)開發效(xiao)率(lv)。從此,C語(yu)言(yan)(yan)(yan)(yan)代碼(ma)由固定的(de)詞(ci)匯(hui)按照固定的(de)格式(shi)組織(zhi)起(qi)來,簡單直觀,便于程序員識別(bie)和(he)理解,但是(shi)對于CPU,C語(yu)言(yan)(yan)(yan)(yan)代碼(ma)是(shi)什么東西?根本(ben)不(bu)認(ren)識好吧!CPU只認(ren)識一(yi)(yi)些二進(jin)制(zhi)形(xing)式(shi)的(de)指令。所以呢(ni)!這(zhe)(zhe)(zhe)個(ge)時候(hou)就需(xu)要這(zhe)(zhe)(zhe)么一(yi)(yi)個(ge)工具,將(jiang)C語(yu)言(yan)(yan)(yan)(yan)代碼(ma)轉換成CPU能夠識別(bie)的(de)二進(jin)制(zhi)文件,也(ye)就是(shi)將(jiang)代碼(ma)加工成 .exe 程序;這(zhe)(zhe)(zhe)個(ge)工具是(shi)一(yi)(yi)個(ge)特殊的(de)軟件,叫做編(bian)譯(yi)(yi)器(Compiler)。編(bian)譯(yi)(yi)器能夠識別(bie)代碼(ma)中的(de)詞(ci)匯(hui)、句子以及各種(zhong)特定的(de)格式(shi),并將(jiang)他們轉換成計算機能夠識別(bie)的(de)二進(jin)制(zhi)形(xing)式(shi),這(zhe)(zhe)(zhe)個(ge)過程稱為編(bian)譯(yi)(yi)英文是(shi)Compile。

編(bian)譯(yi)也可(ke)以理解(jie)為“翻譯(yi)”,它(ta)是一個(ge)復雜的過程,大致包(bao)括(kuo)詞法分析、語(yu)(yu)法分析、語(yu)(yu)義分析、性能優化、生成(cheng)可(ke)執行文(wen)件五個(ge)步驟,期間涉及到復雜的算法和(he)硬件架構。然(ran)后(hou)將人們寫的各種c語(yu)(yu)言或其他語(yu)(yu)言的語(yu)(yu)句,翻譯(yi)成(cheng)系統才能夠理解(jie)的語(yu)(yu)句,進(jin)一步進(jin)行運算。Windows 下常用的是微軟編(bian)譯(yi)器(qi)(cl.exr),它(ta)被(bei)集成(cheng)在 Visual Studio 或 Visual C++ 中,一般不單獨使用;Linux 下常用的是 GUN 組織(zhi)開發的 GCC,也叫(jiao)GNU C Compile,很多(duo) Linux 發行版都自帶 GCC編(bian)譯(yi)軟件。

你(ni)的(de)代碼(ma)語法(fa)正確與否,編譯器說(shuo)了才(cai)算,編譯器可以 100% 保證你(ni)的(de)代碼(ma)從語法(fa)上(shang)講是正確的(de),因為(wei)哪(na)怕有一點小小的(de)錯誤(wu),編譯也不(bu)能通過,編譯器會告訴(su)你(ni)哪(na)里錯了,那你(ni)就是錯了,這樣以便(bian)于你(ni)對自(zi)己代碼(ma)的(de)更改。

上一篇:嵌入式行業是個坑嗎?

下一篇:嵌入式系統的就業前景

熱點文章推(tui)薦
華清學員就業榜單
高(gao)薪學員經驗分享
熱點新聞推(tui)薦
前臺專線:010-82525158 企業培(pei)訓洽談(tan)專線:010-82525379 院校合作(zuo)洽談專線:010-82525379 Copyright © 2004-2022 北京華清遠見科技集團有限公司 版權所有 ,,京公海網安備11010802025203號

回到頂部