日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

编程语言分类及区别

發(fā)布時(shí)間:2023/12/10 编程问答 44 豆豆
生活随笔 收集整理的這篇文章主要介紹了 编程语言分类及区别 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

編程語言分類及區(qū)別

一、按歷代分類

編程語言分為三大類:機(jī)器語言、匯編語言、高級語言
  • 第一代語言(1GL):機(jī)器語言 特征:面向機(jī)器的指令,機(jī)器可以直接執(zhí)行。
  • 第二代語言(2GL):匯編語言 特征:使用助記符代替機(jī)器指令。
  • 第三代語言(3GL):高級語言 特征:是設(shè)計(jì)更容易被人們所理解的程序語言,告訴計(jì)算機(jī)執(zhí)行什么任務(wù)和執(zhí)行任務(wù)的步驟,是過程化的,最重要的作用是此時(shí)已經(jīng)脫離了機(jī)器硬件系統(tǒng),具有代碼可移植性
  • 第四代語言(4GL):應(yīng)用語言 特征:只需要告訴計(jì)算機(jī)要執(zhí)行什么任務(wù),而不需要指定執(zhí)行步驟,是非過程化的,最典型的代表就是數(shù)據(jù)庫語言SQL

注意:

1、機(jī)器語言計(jì)算機(jī)能識別的唯一語言,機(jī)器語言是用二進(jìn)制代碼(由0和1組成,每個(gè)0/1與高低電頻對應(yīng))表示的計(jì)算機(jī)能直接識別和執(zhí)行的一種機(jī)器指令的集合。它是計(jì)算機(jī)的設(shè)計(jì)者通過計(jì)算機(jī)的硬件結(jié)構(gòu)賦予計(jì)算機(jī)的操作功能。機(jī)器語言具有靈活、直接執(zhí)行和速度快等特點(diǎn)。不同型號的計(jì)算機(jī)其機(jī)器語言是不相通的,按著一種計(jì)算機(jī)的機(jī)器指令編制的程序,不能在另一種計(jì)算機(jī)上執(zhí)行。 2、匯編語言為了解決機(jī)器語言難以記憶、閱讀、修改等問題,匯編語言對機(jī)器語言的指令用字符代替,通過匯編編譯器可以把匯編代碼編譯成機(jī)器語言指令。匯編語言是一種用于電子計(jì)算機(jī)、微處理器、微控制器或其他可編程器件的低級語言,亦稱為符號語言。在匯編語言中,用助記符代替機(jī)器指令的操作碼,用地址符號或標(biāo)號代替指令或操作數(shù)的地址。在不同的設(shè)備中,匯編語言對應(yīng)著不同的機(jī)器語言指令集,通過匯編過程轉(zhuǎn)換成機(jī)器指令。特定的匯編語言和特定的機(jī)器語言指令集是一一對應(yīng)的,不同平臺之間不可直接移植。 3、高級語言為了使代碼更通用,具有不同硬件平臺的可移植性,更加方便人類理解和使用。可以通過高級語言對應(yīng)的編譯器把代碼編譯成匯編語言(一般不會直接把高級語言編譯成機(jī)器語言,因?yàn)闄C(jī)器有匯編編譯器可以把匯編代碼轉(zhuǎn)換成機(jī)器代碼,并且匯編代碼更易調(diào)試和優(yōu)化)。高級語言是一種指令集的體系,在這種語言下,其語法和結(jié)構(gòu)更類似漢字或者普通英文,且由于遠(yuǎn)離對硬件的直接操作,使得一般人經(jīng)過學(xué)習(xí)之后都可以編程。高級語言通常按其基本類型、代系、實(shí)現(xiàn)方式、應(yīng)用范圍等分類。 代表:java,c,c++,C#等 4、應(yīng)用語言這種是高度封裝型語言,大多數(shù)情況下,是一些應(yīng)用級軟件自定義的使用規(guī)則/語法標(biāo)準(zhǔn),例如:數(shù)據(jù)庫編程語言,如各種數(shù)據(jù)庫的SQL語言,使用者只需要傳輸SQL語句給數(shù)據(jù)庫服務(wù)器,數(shù)據(jù)庫服務(wù)器內(nèi)部負(fù)責(zé)解析執(zhí)行。 代表:SQL

二、按編譯及運(yùn)行方式分類

編譯型和解釋型
一、編譯型編譯型語言是將代碼一次性全部編譯成二進(jìn)制碼,然后運(yùn)行。 代表語言:C/C++/go 二、解釋型解釋型語言的源代碼不是直接翻譯成機(jī)器指令,而是先翻譯成中間代碼,再由解釋器對中間代碼進(jìn)行解釋運(yùn)行。(編譯 一行,運(yùn)行一行)代表語言:Java、Python、Perl、JavaScript、VBScript

注意

編譯型和解釋型的定義是對立存在的,但也可以在一個(gè)語言中同時(shí)存在。比如 java 語言同時(shí)兼有編譯型和解釋型特點(diǎn)。整個(gè)流程如下:將源代碼(.java 文件)編譯生成字節(jié)碼(.class 文件),再通過 JVM(java 虛擬機(jī))運(yùn)行生成機(jī)器指令,由機(jī)器運(yùn)行機(jī)器碼。注意,此處生成機(jī)器語言前的操作是解釋型,每次運(yùn)行都要重新解釋。因此,此處表明 java 是解釋型。但是,部分 JVM(java 虛擬機(jī))有一種 JIT(Just in time)機(jī)制,能夠?qū)⒉糠忠呀?jīng)解釋翻譯的常用機(jī)器指令保存。下次不需要解釋,直接運(yùn)行即可。此時(shí) java 是編譯型。編譯性語言不如解釋性語言跨平臺性好編譯性語言例如c語言:用c語言開發(fā)了程序后,需要通過編譯器把程序編譯成機(jī)器語言(即計(jì)算機(jī)識別的二進(jìn)制文件,因?yàn)椴煌牟僮飨到y(tǒng)計(jì)算機(jī)識別的二進(jìn)制文件是不同的),所以c語言程序進(jìn)行移植后,要重新編譯。(如windows編譯成ext文件,linux編譯成erp文件)。

三、按數(shù)據(jù)類型的確認(rèn)時(shí)間段分類

動態(tài)語言和靜態(tài)語言
  • 一、動態(tài)類型語言

    • 動態(tài)類型語言,是指在代碼運(yùn)行階段對數(shù)據(jù)類型進(jìn)行確認(rèn)。用動態(tài)類型語言編程時(shí),不用給變量指定數(shù)據(jù)類型,該語言會在你第一次賦值給變量時(shí),在內(nèi)部記錄數(shù)據(jù)類型。
    • 動態(tài)類型語言的優(yōu)點(diǎn)是不需要寫多種數(shù)據(jù)類型的代碼,代碼相對簡潔一些,方便代碼閱讀。缺點(diǎn)是不方便調(diào)試,代碼命名也容易混淆;
      ??代表:JavaScript、Python、Perfl
  • 二、靜態(tài)類型語言

    • 靜態(tài)類型語言,是指在代碼編譯階段對數(shù)據(jù)類型進(jìn)行確認(rèn)
    • 靜態(tài)類型語言的優(yōu)點(diǎn)是方便調(diào)試,代碼相對規(guī)范。缺點(diǎn)是需要寫很多數(shù)據(jù)類型相關(guān)的代碼,代碼不夠簡潔。
      ??代表:Java、C/C++

四、編程語言、腳本語言、標(biāo)記語言

  • 一、編程語言

    • 是用來定義計(jì)算機(jī)程序的形式語言。它是一種被標(biāo)準(zhǔn)化的交流技巧,用來向計(jì)算機(jī)發(fā)出指令。一種計(jì)算機(jī)語言讓程序員能夠準(zhǔn)確地定義計(jì)算機(jī)所需要使用的數(shù)據(jù),并精確地定義在不同情況下所應(yīng)當(dāng)采取的行動
    • 代表語言:C/C++,Java,Perl等
  • 二、腳本語言

    • 是為了縮短編程語言的“編寫、編譯、鏈接、運(yùn)行”等過程而創(chuàng)建的計(jì)算機(jī)編程語言。是一種用來解釋某些東西的語言,又被稱為擴(kuò)建的語言,或者動態(tài)語言,用來控制軟件應(yīng)用程序,腳本通常以文本保存,只在被調(diào)用時(shí)進(jìn)行解釋或編譯。
    • 代表語言:php,js,asp,Python,ruby等
  • 三、標(biāo)記語言

    • 是一種將文本以及文本相關(guān)的其他信息結(jié)合起來,展現(xiàn)出關(guān)于文檔結(jié)構(gòu)和數(shù)據(jù)處理細(xì)節(jié)的電腦文字編碼。與文本相關(guān)的其他信息(包括文本的結(jié)構(gòu)和表示信息等)與原來的文本結(jié)合在一起,但是使用標(biāo)記進(jìn)行標(biāo)識。標(biāo)記語言不僅僅是一種語言,就像許多語言一樣,它需要一個(gè)運(yùn)行時(shí)環(huán)境,使其有用。
    • 代表語言:xml, html, xhtml ( xml 和 html 的合體 )等,(可以看出它們都是以 "ml"尾的)

五、按照數(shù)據(jù)類型的定義方式分類

  • 一、強(qiáng)類型語言

    強(qiáng)類型語言是一種強(qiáng)制類型定義的語言,一旦某一個(gè)變量被定義類型,如果不經(jīng)過強(qiáng)制轉(zhuǎn)換,則它永遠(yuǎn)就是該數(shù)據(jù)類型了,強(qiáng)類型語言包括Java、.net 、Python、C++等語言。舉個(gè)例子:定義了一個(gè)整數(shù),如果不進(jìn)行強(qiáng)制的類型轉(zhuǎn)換,則不可以將該整數(shù)轉(zhuǎn)化為字符串。
  • 二、弱類型語言

    弱類型語言是一種弱類型定義的語言,某一個(gè)變量被定義類型,該變量可以根據(jù)環(huán)境變化自動進(jìn)行轉(zhuǎn)換,不需要經(jīng)過顯性強(qiáng)制轉(zhuǎn)換。弱類型語言包括vb 、PHP、javascript等語言。

綜上所述,Python 是 動態(tài) 解釋型強(qiáng)類型定義腳本 語言

總結(jié)

以上是生活随笔為你收集整理的编程语言分类及区别的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。