計算機語言
計算機語言
(也稱為程式語言
)是用來書寫程式的語言
,是人命令計算機完成工作
的工具。每一種語言都規定了一組有確定含義的符號和一組規則。根據規則構成的符號串
的總體就是語言。計算機語言分為機器語言、組合語言、高階語言和***語言。
機器語言是機器指令的集合。直接採用機器語言來書寫程式是一件非常繁瑣而枯燥的工作,
而且容錯出錯
。用各種字母組合或單詞縮寫代替相應的機器指令更便於程式設計,
於是產生了組合語言
,它是符號化的機器語言。例如在以
intel 8086/8088
為cpu
的計算機中,
把整數1
存入暫存器
ax的操作
,機器指令是
101110000000000100000000
,而用彙編
指令寫出來則是
mov ax,1
。顯然,組合語言比機器語言更直觀和容易記憶,它用
mov表示「
傳送」,
用add表示「
相加」。當然
,計算機不能直接按照這類符號執行相應的操作
,而需要把它們翻譯成
相應的機器指令。
這個翻譯工作被交給乙個被稱為「
匯程式設計序」
的翻譯程式來完成。被翻
譯的組合語言程式稱為源程式
,由匯程式設計序翻譯出的程式稱為目標程式
,而翻譯的過程則
稱為彙編。源程式經過彙編得到的目標**較短
,幾乎沒有多餘的指令,程式的
執行效率較高,
但使用的符號繁多,編寫程式繁瑣、費時、容易出錯
,難以維護。圖
2.1表示了彙編
的過程。
圖2.1
彙編和匯程式設計序
由於組合語言和機器語言都依賴於具體的機器
,非專業人員使用很困難
。直到產生
高階語言以後,程式設計才逐漸大眾化。高階語言的表示方法更接近數學方法和自然語言。
源程式目標
程式匯程式設計序
c語言與程式設計·12
·例如讓機器完成求和操作
,並把結果存放到變數c中,
用高階語言寫作
c=a+b
。用高階語言
書寫的程式
,不用修改或只作少量修改
,就可適用於各種不同的機器。同樣的道理,機器
也不能識別高階語言的語句
,它也必須經過翻譯。一般一條高階語言的語句要翻譯成一組
機器指令。這裡承擔翻譯工作的程式被稱為「
編譯程式」
,被翻譯的高階語言程式稱為源程式,
翻譯的結果是一系列機器指令,稱為目標程式。圖
2.2表示了編譯的過程。
圖2.2
編譯和編譯程式
早期的源程式規模較小
,編譯系統能直接產生機器可以執行的目標程式。隨著程式規
模的不斷擴大
,出現了將程式按結構分段
,交由多人分別進行設計和編譯的方法。這種方
法不僅生成各段程式的目標模組
,還產生連線裝配這些模組的有關資訊。另外,
一些經常使用、能夠完成一定功能的規範化程式段被集中起來存放在「
程式庫」中,
當設計人員需要用到某種功能時
,可直接使用相應的程式段
,而不必重複設計這些代
碼。這就需要用到「
連線程式」
,它能把多個分別編譯得到的目標程式
,以及程式中用到
的程式庫中的**
,裝配成乙個完整的可執行程式。因此,
乙個包括多個程式檔案的大專案
,通常要對這些程式檔案分別進行編譯,然後
把這些分別編譯產生的目標檔案和系統的程式庫進行連線
,才能最終裝配成乙個可執行程
序。圖2.3
表示了連線的過程。
源程式1
源程式2
源程式n
目標程式
1目標程式
2目標程式
n連線程式
„„„„
„„可執行程式
系統程式庫
編譯程式
編譯程式
編譯程式
圖2.3
連線和連線程式
一般說來
,高階語言程式經過
編譯得到的目標**較為冗長
,執行程式的時間較長,
效率較低。儘管如此
,由於高階語言與自然語言和數學語言較為接近
,容易被人理解,因
而得到了廣泛的應用。目前已經出現了數百甚至上千種高階語言
,它們的語法規則各不相同,
應用範圍也不盡相同。
源程式目標
程式編譯程式
廣大程式設計師歡迎
計算機語言
早期的程式設計均使用機器語言。程式設計師們將用0,1數字編成的程式 打在紙帶或卡片上,1打孔,0不打孔,再將程式通過紙帶機或卡片機輸入計算機,進行運算。這樣的機器語言由純粹的0和1構成,十分複雜,不方便閱讀和修改,也容易產生錯誤。程式設計師們很快就發現了使用機器語言帶來的麻煩,它們難於辨別和記憶,給...
計算機語言
用二進位制 0和1描述的指令 低階語言 優點 速度最快 缺點 最複雜,開發效率最低。組合語言的實質和機器語言是相同的,都是直接對硬體操作吧指令換成了英文縮寫。優點 速度最快 缺點 最複雜,開發效率最低。高階語言在開發效率上大大提高 高階語言編制的程式不能直接被計算機識別,必須經過轉換才能被執行。優點...
計算機語言啊
1 感情不像鍊錶,刪掉誰,頭尾指標賦個值又完好如初。它像堆疊,從棧頂慢慢清理,丟掉不想要的,再慢慢壓回去。2 鋤禾日當午,不如coding苦,對著c 一調一下午 鋤禾日當午,不如coding苦,調了一下午,bug還得補 鋤禾日當午,不如coding苦,bug剛補完,結構需重組 鋤禾日當午,哪有cod...