- C語(yǔ)言程序設(shè)計(jì)(第2版)
- 孔銳睿 王富強(qiáng)
- 1369字
- 2020-09-10 16:02:07
1.1 計(jì)算機(jī)語(yǔ)言的發(fā)展
計(jì)算機(jī)語(yǔ)言(Computer Language)是人與計(jì)算機(jī)之間傳遞信息的媒介,用于人與計(jì)算機(jī)之間的通信。為了使計(jì)算機(jī)按照人類(lèi)的指令進(jìn)行各種工作,計(jì)算機(jī)系統(tǒng)就需要有一套人能夠編寫(xiě)并且翻譯后計(jì)算機(jī)能讀懂的程序,用來(lái)表示生活中的數(shù)字、字符和語(yǔ)法規(guī)則,并通過(guò)指令把命令傳達(dá)給機(jī)器。由這些字符和語(yǔ)法規(guī)則組成的計(jì)算機(jī)的各種指令(或各種語(yǔ)句)就是計(jì)算機(jī)語(yǔ)言。
計(jì)算機(jī)語(yǔ)言的發(fā)展經(jīng)歷了機(jī)器語(yǔ)言、匯編語(yǔ)言、高級(jí)語(yǔ)言3個(gè)階段。
1.1.1 機(jī)器語(yǔ)言
機(jī)器語(yǔ)言是指計(jì)算機(jī)能夠完全識(shí)別的指令集合,是最低、最早的程序語(yǔ)言,是由“0”和“1”組成的二進(jìn)制數(shù)(代碼),而二進(jìn)制是計(jì)算機(jī)語(yǔ)言的基礎(chǔ)。計(jì)算機(jī)發(fā)明之初,人們將一串串由“0”和“1”組成的指令序列交由計(jì)算機(jī)執(zhí)行,這就是計(jì)算機(jī)唯一能夠真正識(shí)別的機(jī)器語(yǔ)言。使用機(jī)器語(yǔ)言編寫(xiě)程序是十分痛苦的,特別是程序有錯(cuò)需要修改的時(shí)候。
1.1.2 匯編語(yǔ)言
為了減輕使用機(jī)器語(yǔ)言編程的痛苦,人們進(jìn)行了一種有益的改進(jìn)。用一些簡(jiǎn)潔的英文字母、符號(hào)串來(lái)替代一個(gè)特定的二進(jìn)制串指令,如用“ADD”代表加法,“MOV”代表數(shù)據(jù)傳遞等。這樣一來(lái),人們很容易讀懂并理解程序在干什么,糾錯(cuò)及維護(hù)就變得方便了。這種程序設(shè)計(jì)語(yǔ)言即第二代計(jì)算機(jī)語(yǔ)言,稱(chēng)為匯編語(yǔ)言。然而計(jì)算機(jī)是不認(rèn)識(shí)這些符號(hào)的,這就需要一個(gè)專(zhuān)門(mén)的程序,負(fù)責(zé)將這些符號(hào)翻譯成二進(jìn)制代碼的機(jī)器語(yǔ)言。這種翻譯程序被稱(chēng)為匯編程序。
匯編語(yǔ)言同樣十分依賴(lài)于機(jī)器硬件,移植性不好,但效率十分高,尤其在結(jié)合計(jì)算機(jī)硬件方面更能發(fā)揮特長(zhǎng),所以至今仍是一種強(qiáng)有力的軟件開(kāi)發(fā)工具。
1.1.3 高級(jí)語(yǔ)言
從最初與計(jì)算機(jī)交流的痛苦經(jīng)歷中,人們意識(shí)到應(yīng)該設(shè)計(jì)一種語(yǔ)言。這種語(yǔ)言接近于數(shù)學(xué)語(yǔ)言或人的自然語(yǔ)言,同時(shí)又不依賴(lài)于計(jì)算機(jī)硬件;編出的程序能在所有機(jī)器上通用。經(jīng)過(guò)努力, 1954年,第一個(gè)完全脫離機(jī)器硬件的高級(jí)語(yǔ)言FORTRAN問(wèn)世了。一直以來(lái),共有幾百種高級(jí)語(yǔ)言出現(xiàn),有重要意義的、影響較大、使用較普遍的有FORTRAN、BASIC、Pascal、C、PROLOG、C++、VC、VB、Java 等。從另一個(gè)角度分類(lèi),高級(jí)語(yǔ)言中的 C++、Java 等也被定義為面向?qū)ο笳Z(yǔ)言,所以也有人把面向?qū)ο笳Z(yǔ)言劃分為第四類(lèi)語(yǔ)言。
1.1.4 計(jì)算機(jī)語(yǔ)言的概念
了解計(jì)算機(jī)語(yǔ)言之前,讓我們先了解幾個(gè)概念。
指令:一條機(jī)器語(yǔ)言稱(chēng)為一條指令。指令是不可分割的最小功能單元。
程序:早期的程序就是一個(gè)個(gè)的二進(jìn)制文件,如今程序可以定義為“計(jì)算機(jī)要執(zhí)行的指令集合”。
機(jī)器語(yǔ)言是第一代計(jì)算機(jī)語(yǔ)言。早期人們通過(guò)機(jī)器語(yǔ)言向計(jì)算機(jī)發(fā)出指令,無(wú)需借助翻譯程序,計(jì)算機(jī)就能執(zhí)行機(jī)器語(yǔ)言編好的程序。
匯編語(yǔ)言是第二代語(yǔ)言,實(shí)質(zhì)和機(jī)器語(yǔ)言是相同的,都是直接對(duì)硬件操作,只不過(guò)指令采用了英文縮寫(xiě)的標(biāo)識(shí)符,更容易識(shí)別和記憶。
高級(jí)語(yǔ)言是目前絕大多數(shù)編程者的選擇,它雖然需要借助翻譯程序才能被計(jì)算機(jī)識(shí)別,但它簡(jiǎn)化了程序中的指令,并且去掉了與具體操作有關(guān)但與完成工作無(wú)關(guān)的細(xì)節(jié)。
高級(jí)語(yǔ)言的發(fā)展經(jīng)歷了從早期語(yǔ)言到結(jié)構(gòu)化程序設(shè)計(jì)語(yǔ)言,從面向過(guò)程到非過(guò)程化程序語(yǔ)言的過(guò)程。20世紀(jì)60年代中后期,各廠商推出的軟件各自為戰(zhàn),后期出現(xiàn)的“軟件危機(jī)”就是因?yàn)檐浖g兼容性錯(cuò)誤和困難造成的。1970年面向過(guò)程的結(jié)構(gòu)化程序語(yǔ)言Pascal的出現(xiàn),標(biāo)志著結(jié)構(gòu)化程序設(shè)計(jì)時(shí)期的開(kāi)始。20世紀(jì)80年代初開(kāi)始,面向?qū)ο蟮某绦蛟O(shè)計(jì)語(yǔ)言如C++、Visual Basic、Delphi出現(xiàn)。高級(jí)語(yǔ)言的下一個(gè)發(fā)展目標(biāo)是面向應(yīng)用,也就是說(shuō)只需要告訴程序要干什么,程序就能自動(dòng)生成算法進(jìn)行處理,這是非過(guò)程化的程序語(yǔ)言。
- Mastering JavaScript Functional Programming
- Building a Home Security System with Raspberry Pi
- FreeSWITCH 1.6 Cookbook
- Building Minecraft Server Modifications
- Angular開(kāi)發(fā)入門(mén)與實(shí)戰(zhàn)
- Windows Embedded CE 6.0程序設(shè)計(jì)實(shí)戰(zhàn)
- Visual Studio Code 權(quán)威指南
- FFmpeg開(kāi)發(fā)實(shí)戰(zhàn):從零基礎(chǔ)到短視頻上線
- Python開(kāi)發(fā)基礎(chǔ)
- 數(shù)據(jù)結(jié)構(gòu):Python語(yǔ)言描述
- Arduino Electronics Blueprints
- Android初級(jí)應(yīng)用開(kāi)發(fā)
- 軟件測(cè)試技術(shù)
- Python數(shù)據(jù)可視化之matplotlib實(shí)踐
- Web開(kāi)發(fā)新體驗(yàn)