新手學編程需要注意什么-創(chuàng)新互聯(lián)

一、 什么是計算機程序?

創(chuàng)新互聯(lián)公司是一家集網(wǎng)站建設,汕城企業(yè)網(wǎng)站建設,汕城品牌網(wǎng)站建設,網(wǎng)站定制,汕城網(wǎng)站建設報價,網(wǎng)絡營銷,網(wǎng)絡優(yōu)化,汕城網(wǎng)站推廣為一體的創(chuàng)新建站企業(yè),幫助傳統(tǒng)企業(yè)提升企業(yè)形象加強企業(yè)競爭力??沙浞譂M足這一群體相比中小企業(yè)更為豐富、高端、多元的互聯(lián)網(wǎng)需求。同時我們時刻保持專業(yè)、時尚、前沿,時刻以成就客戶成長自我,堅持不斷學習、思考、沉淀、凈化自己,讓我們?yōu)楦嗟钠髽I(yè)打造出實用型網(wǎng)站。

計算機程序又稱“計算機軟件”。通過指令的順序,使計算機能按所要求的功能進行精確記述的邏輯方法。計算機本身作為機器可以獲得專利,但計算機程序是一種數(shù)學邏輯方法,各國一般不予保護。隨著電子技術的廣泛應用,導致產(chǎn)生了專門提供計算機所需軟件的新興工業(yè)部門及新型商品——計算機程序。因此,也產(chǎn)生了對此類創(chuàng)造性活動的產(chǎn)品予以保護的需要。美國1980年12月12日生效的新修訂專利法已將計算機程序列為版權(quán)的保護對象。不過一些學者認為,用專利法或派權(quán)法對軟件進行保護均不適宜,因為軟件的壽命較短,經(jīng)常變化,而專利的保護期一般是10—20年,版權(quán)的保護期更長如有必要,對軟件的保護還應另頒單行法規(guī)更為適宜。世界知識產(chǎn)權(quán)組織也曾召開專家會議,討論對計算機軟件的保護問題。會議建議補充專利法、版權(quán)法及不正當競爭法,酌情建立計算機程序保護制度。

計算機程序,就是運行在計算機上能完成特定功能的指令集合,計算機程序的復雜程度由所需完成的邏輯功能來決定,計算機程序有簡單的也有復雜的,如編寫簡單的程序可以計算一個一元二次方程方程的解,而一個功能強大的游戲程序,可以給你帶來不一樣的游戲體驗,程序的本質(zhì)就是運行在計算機之上的一組有序指令的集合,這些指令可以讓計算機執(zhí)行一些具體的運算,能實現(xiàn)特定的功能。

在計算機開機后,進入操作系統(tǒng)如Windows/Linux/Mac等,操作系統(tǒng)會加載并執(zhí)行許多程序,操作系統(tǒng)本質(zhì)也是由一組計算機程序組成的,通常意義上表述的計算機程序,一般指的是能完成某些特定功能,相對比較獨立的程序,如視頻/音頻播放器,Web瀏覽器,社交工具的客戶端Wechat/QQ等;而一般由許多計算機程序共同協(xié)作來完成比較復雜的任務的一系列程序,通常被稱為系統(tǒng),如操作系統(tǒng)等。

百科描述中所說的指令運行于某種目標體系結(jié)構(gòu)上,對于絕大多數(shù)計算機來說,從計算機體系結(jié)構(gòu)的大分類來看,這里的目標體系結(jié)構(gòu)通常都是指最常見的馮諾依曼體系結(jié)構(gòu),也就是上一節(jié)所講述計算機的基本結(jié)構(gòu),而在馮諾依曼體系結(jié)構(gòu)設計之下,CPU(運算器和控制器)的設計也可以劃分不同的體系結(jié)構(gòu)。

再了解一下什么是指令集,指令集是存儲在CPU內(nèi)部,對CPU運算進行指導和優(yōu)化的硬程序,也就是說CPU的運算器只能執(zhí)行CPU的指令集體系所支持的指令,之所以出現(xiàn)不同的CPU架構(gòu),就是由于指令集的設計不同,常見的CPU架構(gòu)有Intel公司的X86架構(gòu)和ARM公司的ARM架構(gòu),對應的指令集分別為復雜指令集(CISC)和精簡指令集(RISC), X86和ARM處理器的主要區(qū)別就是,前者使用復雜指令集(CISC),而后者使用精簡指令集(RISC)。X86架構(gòu)的CPU常見于筆記本、臺式機和服務器上,而ARM架構(gòu)的CPU多用于手機及嵌入式系統(tǒng)里,指令集的細分類型還有許多,感興趣的可以具體了解一下。

二、 什么是程序語言?

機器語言是早期的程序語言,由0和1兩種符號構(gòu)成,當時計算機內(nèi)部只能接受二進制代碼,因此,用二進制代碼0和1描述的指令稱為機器指令,是計算機能夠直接閱讀與執(zhí)行的基礎語言,任何程序在執(zhí)行前都必須被轉(zhuǎn)換為機器語言。用機器語言編程的程序成為目標程序。 只有目標程序才能被計算機直接識別和執(zhí)行。      機器語言使用起來不方便、可讀性低、不容易維護,并且不同的機器平臺,編碼方式都不盡相同。機器語言是屬于低級語言。 

1. 機器語言

通過CPU架構(gòu)所支持的指令集可以編寫出成千上萬的程序,而由指令集所組成的程序,可以被CPU直接解讀和執(zhí)行, 由指令集生成程序的過程就如同,通過文字去編寫文章,單個的字或詞就是某一條具體的指令,不同字或詞(指令)通過一定規(guī)則組合起來,就是一篇文章(程序),所以CPU架構(gòu)所支持的指令集的體系,也可以看做是一門語言,這門語言就是通常所說的機器語言,又稱為機器碼。不同的CPU架構(gòu)所支持的不同指令集可以看做是不同的機器語言,就如同文字也分為漢語、English等許多語言,機器語言的道理也一樣。

2. 匯編語言

通過機器語言就可以編寫出許多各種功能的程序了,但是用機器語言編寫程序,編程人員要首先熟記所用計算機的全部指令代碼和代碼的涵義,手編程序時,程序員還需要自己處理每條指令和每一數(shù)據(jù)的存儲分配和輸入輸出,還得記住編程過程中每步所使用的工作單元處在何種狀態(tài)。這是一件十分繁瑣的工作。編寫程序花費的時間往往是實際運行時間的幾十倍甚至幾百倍,而且,編出的程序全是些0和1的指令代碼,直觀性差,還容易出錯,那該怎么辦了?

這時候匯編語言便產(chǎn)生了,匯編語言的主體是匯編指令。匯編指令和機器指令的差別在于指令的表示方法上,匯編指令是機器指令便于記憶的書寫格式,如執(zhí)行一個操作:寄存器BX的內(nèi)容送到AX中(具體什么含義可以不用深究,明白是一條完成特定功能的指令即可)

  1000100111011000               機器指令
    mov ax,bx                    匯編指令

很容易可以看出,同樣一個操作,下面的匯編指令更容易被人熟記,匯編語言的出現(xiàn)是程序發(fā)展的一大進步,相比機器語言主要有以下幾個特點:

1. 更具有可編程性,即使用匯編語言,程序員可以更加簡便、更加快速、更容易理解的方式完成同樣的編程任務;

2. 程序可移植性,上文介紹過不同的CPU架構(gòu)支持不同的指令集體系(機器語言),所以通常以機器語言為某一類CPU架構(gòu)編寫的程序,不能運行在其它CPU架構(gòu)之上,而有了匯編語言,可以想象同樣一條匯編語句,運行在不同的CPU架構(gòu)上時,只需要編譯器把它編譯(就如不同語言文字之間的翻譯)成對應CPU架構(gòu)所支持的機器碼即可;

匯編語言的編譯器,是可以把匯編語言翻譯成目標CPU架構(gòu)上機器語言的程序。

3. 高級語言

前面我們了解了什么是機器語言和匯編語言,匯編語言也是和機器語言一樣,都是直接對硬件進行操作,但是匯編語言指令采用了英文縮寫的標識符,更容易識別和記憶,但也只是相對于機器語言而言的。在實際編程中,匯編語言源程序也是十分復雜和冗長的,為了更加簡單和高效的編寫程序,于是高級語言就應運而生了。

高級語言并不是指一種語言,而是包括很多編程語言,比如C、C++、Java、php、python等等,是高度封裝的編程語言。高級語言與計算機的硬件結(jié)構(gòu)和CPU架構(gòu)(指令系統(tǒng))無關,匯編語言已經(jīng)具備一定的可移植性了,編譯器可以根據(jù)相應的CPU架構(gòu)翻譯成對應的機器語言,同樣高級語言的可移植性更強,編譯器也可以將高級語言翻譯成目標CPU架構(gòu)上的機器語言,至于是否是直接翻譯成機器語言,還是先經(jīng)過匯編再翻譯成機器語言,取決于編譯器的實現(xiàn)。

如今我們一般不需要學會如何用機器語言,匯編語言來進行編程,我們最多知道能如何看懂匯編語言就可以了。我們所編寫的高級語言,被翻譯成目標語言時,編譯器會自動進行一些優(yōu)化的處理。

4. 高級語言的分類

高級語言的分類方式很多,根據(jù)設計思想特點可以劃分為面向過程型(命令式)語言、面向?qū)ο笮驼Z言、函數(shù)式語言和邏輯式語言,而根據(jù)代碼在執(zhí)行之前被翻譯的時間,劃分為兩類: 解釋型語言和編譯型語言。

面向過程型(命令式)語言

這種語言的語義基礎是模擬“數(shù)據(jù)存儲/數(shù)據(jù)操作”的圖靈機可計算模型,十分符合現(xiàn)代計算機體系結(jié)構(gòu)的自然實現(xiàn)方式。其中產(chǎn)生操作的主要途徑是依賴語句或命令產(chǎn)生的副作用?,F(xiàn)代流行的大多數(shù)語言都是這一類型,比如 Fortran、Pascal、Cobol、C、C++、Basic、Ada、Java、C# 等,各種腳本語言也被看作是此種類型。

面向?qū)ο笳Z言

現(xiàn)代語言中的大多數(shù)都提供面向?qū)ο蟮闹С?,但有些語言是直接建立在面向?qū)ο蠡灸P蜕系模Z言的語法形式的語義就是基本對象操作。主流的支持面向?qū)ο蟮恼Z言有 C++ 、Java、C#、PHP、Python等,一般的語言也都支持面向過程(命令式)的編程方式。

函數(shù)式語言

這種語言的語義基礎是基于數(shù)學函數(shù)概念的值映射的λ算子可計算模型。這種語言非常適合于進行人工智能等工作的計算。典型的函數(shù)式語言如 Lisp、Haskell、ML、Scheme 、F#等。

邏輯式語言

這種語言的語義基礎是基于一組已知規(guī)則的形式邏輯系統(tǒng)。這種語言主要用在專家系統(tǒng)的實現(xiàn)中,最著名的邏輯式語言是 Prolog。

雖然各種語言屬于不同的類型,但它們各自都不同程度地對其他類型語言的運算模式都有所支持。

5. 解釋型語言

解釋型語言又可以根據(jù)語言的主動和被動特點劃分為: 標記語言和腳本語言。標記語言時被動的等待解釋,不主動向計算機發(fā)出指令,腳本語言一般主動發(fā)出指令讓計算機執(zhí)行任務。

標記語言

標記語言,是一種將文本(Text)以及文本相關的其他信息結(jié)合起來,展現(xiàn)出關于文檔結(jié)構(gòu)和數(shù)據(jù)處理細節(jié)的電腦文字編碼。與文本相關的其他信息(包括文本的結(jié)構(gòu)和表示信息等)與原來的文本結(jié)合在一起,但是使用標記進行標識。

例如: xml, html,  xhtml

腳本語言

腳本語言是為了縮短傳統(tǒng)的編寫-編譯-鏈接-運行(edit-compile-link-run)過程而創(chuàng)建的計算機編程語言。它的命名起源于一個腳本“screenplay”,每次運行都會使對話框逐字重復。早期的腳本語言經(jīng)常被稱為批量處理語言或工作控制語言。一個腳本通常是解釋運行而非編譯。腳本語言通常都有簡單、易學、易用的特性,目的就是希望能讓程序員快速完成程序的編寫工作。

例如: JavaScript、VBScript、PHP、Python

6. 編譯型語言

編譯型語言:程序在執(zhí)行之前需要一個專門的編譯過程,把程序編譯成為機器語言的文件,運行時不需要重新翻譯,直接使用編譯的結(jié)果就行了。程序執(zhí)行效率高,依賴編譯器,跨平臺性差些。

例如: C、C++、c#、java等

7. 不同類型高級語言的區(qū)別

1. 標記語言不用于向計算機發(fā)出指令,常用于格式化和鏈接。

2. 腳本語言介于標記語言和編程語言之間,腳本語言腳本語言不需要編譯,可以直接用,由解釋器來負責解釋。

3. 編譯型語言寫的程序執(zhí)行之前,需要一個專門的編譯過程,把程序編譯成為機器語言的文件,比如exe文件,以后要運行的話就不用重新翻譯了,直接使用編譯的結(jié)果就行了(exe文件),因為翻譯只做了一次,運行時不需要翻譯,所以編譯型語言的程序執(zhí)行效率高。

8. 高級語言的一般性特點

1. 高級語言接近算法語言,易學、易掌握,一般工程技術人員只要幾周時間的培訓就可以勝任程序員的工作;

2. 高級語言為程序員提供了結(jié)構(gòu)化程序設計的環(huán)境和工具,使得設計出來的程序可讀性好,可維護性強,可靠性高;

3. 高級語言遠離機器語言,與計算機的硬件結(jié)構(gòu)及指令系統(tǒng)無關,有更強的表達能力,因而所寫出來的程序可移植性好,重用率高;

4. 由于把繁雜瑣碎的事務交給了編譯程序去做,所以自動化程度高,開發(fā)周期短,且程序員得到解脫,可以集中時間和精力去從事對于他們來說更為重要的創(chuàng)造性勞動,以提高程序的質(zhì)量;

5. 高級語言編譯生成的程序代碼一般比用匯編程序語言設計的程序代碼要長,執(zhí)行的速度也慢。所以匯編語言適合編寫一些對速度和代碼長度要求高的程序和直接控制硬件的程序,高級語言程序“看不見”機器的硬件結(jié)構(gòu),不能用于編寫直接訪問機器硬件資源的系統(tǒng)軟件或設備控制軟件。為此,一些高級語言提供了與匯編語言之間的調(diào)用接口。用匯編語言編寫的程序,可作為高級語言的一個外部過程或函數(shù),利用堆棧來傳遞參數(shù)或參數(shù)的地址。

以上就是編程小白學習php必須要了解的事的詳細內(nèi)容,更多請關注創(chuàng)新互聯(lián)其它相關文章!

當前文章:新手學編程需要注意什么-創(chuàng)新互聯(lián)
URL網(wǎng)址:http://muchs.cn/article40/dcjoho.html

成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供電子商務、定制網(wǎng)站網(wǎng)站導航、用戶體驗、商城網(wǎng)站面包屑導航

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

微信小程序開發(fā)