簡單理解編程語言的工作原理


一、編程語言定義

編程語言可以簡單的理解為一種計算機和人都能識別的語言。計算機只能識別二進制,人識別的是人類語言。那怎么實現計算機和人都能識別的語言呢?先看下編程語言的發展歷程,再來回答這個問題。

二、分類/發展階段

第一代:機器語言

  • 簡單來說就是:
    1. 機器語言就是由0和1組成的指令代碼
    2. 每個指令代碼會執行計算機內部相應的電路
    3. 指令代碼的集合即是指令系統
    4. 不同的計算機廠家的指令代碼一般不同
  • 百科說明:機器語言是機器能直接識別的程序語言或指令代碼,無需經過翻譯,每一操作碼在計算機內部都有相應的電路來完成它,或指不經翻譯即可為機器直接理解和接受的程序語言或指令代碼。機器語言使用絕對地址和絕對操作碼。不同的計算機都有各自的機器語言,即指令系統。從使用的角度看,機器語言是最低級的語言。

第二代:匯編語言

  • 簡單來說:
    1. 用一些容易理解和記憶的字母,單詞來代替一個特定的指令
    2. 這些字母需要轉為二進制的機器語言才能被計算機執行
    3. 不同設備中匯編語言對應着不同的機器語言指令集,所以匯編程序不可直接移植到不同的平台上
    4. 目前實際應用,它通常被應用在底層,硬件操作和高要求的程序優化的場合。驅動程序、嵌入式操作系統和實時運行程序都需要匯編語言。
  • 百科說明:匯編語言(Assembly Language)是任何一種用於電子計算機、微處理器、微控制器或其他可編程器件的低級語言,亦稱為符號語言。在匯編語言中,用助記符代替機器指令的操作碼,用地址符號或標號代替指令或操作數的地址。在不同的設備中,匯編語言對應着不同的機器語言指令集,通過匯編過程轉換成機器指令。特定的匯編語言和特定的機器語言指令集是一一對應的,不同平台之間不可直接移植。

第三代:高級語言

  • 簡單來說:
    1. 較接近自然語言和數學公式的編程
    2. 高級編程語言編寫的程序需要經過翻譯,翻譯成機器所能識別的二進制數才能由計算機去執行,運行速度比匯編程序要低,同時因為高級語言比較冗長,所以代碼的執行速度也要慢一些
    3. 不能用於編寫直接訪問機器硬件資源的系統軟件或設備控制軟件(可以用匯編語言編寫的程序,作為高級語言的一個外部過程或函數,利用堆棧來傳遞參數或參數的地址,來實現相應的功能)
    4. 不依賴於計算機硬件,能夠在不同機器上運行的程序,程序的有很好的可移植性
  • 百科說明:高級語言(High-level programming language)是一種獨立於機器,面向過程或對象的語言。高級語言是參照數學語言而設計的近似於日常會話的語言。
  • 分類:
    1. 命令式語言
    2. 函數式語言
    3. 邏輯式語言
    4. 面向對象語言
  • 工作方式
    1. 解釋:對高級語言程序進行解釋並執行的程序稱為解釋程序(軟件)。它的功能是讀入源程序,按源程序動態邏輯順序進行逐句分析、翻譯,解釋一句執行一句,不產生任何中間代碼,最終得到程序的執行結果
    2. 編譯:編譯是源程序翻譯成機器指令形式的目標程序的過程,再用鏈接程序把目標程序鏈接成可執行程序后才能執行

三、如何實現機器和人類都能識別的編程語言:編譯原理

  • 簡單來說:
    1. 人按照編程語言規定的語法編寫源程序/源代碼
    2. 解釋器/編譯器按照對應的語法將源代碼解釋/編譯為匯編語言
    3. 不同的平台/設備按照自身設備指令集轉為自身設備可以執行的二進制指令
    4. 機器根據二進制指令執行相應的電路
  • 百科說明:編譯原理即是對高級程序語言進行翻譯的一門科學技術, 我們都知道計算機程序由程序語言編寫而成, 在早期計算機程序語言發展較為緩慢, 因為計算機存儲的數據和執行的程序都是由0、1代碼組合而成的, 那么在早期程序員編寫計算機程序時必須十分了解計算機的底層指令代碼通過將這些微程序指令組合排列從而完成一個特定功能的程序, 這就對程序員的要求非常高了。人們一直在研究如何如何高效的開發計算機程序, 使編程的門檻降低。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM