基本概念
程序語(yǔ)言已經(jīng)經(jīng)歷了40多年的發(fā)展,期間人們提出并完善了許多程序語(yǔ)言的概念。程序語(yǔ)言有交流算法和計(jì)算機(jī)實(shí)現(xiàn)的兩重目的,現(xiàn)在程序設(shè)計(jì)語(yǔ)言種類繁多,他們?cè)趹?yīng)用上各有不同的側(cè)重面。程序語(yǔ)言可以劃分為低級(jí)語(yǔ)言和高級(jí)語(yǔ)言兩大類。低級(jí)語(yǔ)言又稱面向機(jī)器語(yǔ)言,它是特定的計(jì)算機(jī)系統(tǒng)所固有的語(yǔ)言,它包括機(jī)器語(yǔ)言和匯編語(yǔ)言。我了便于理解和使用,人們?cè)O(shè)計(jì)出了高級(jí)語(yǔ)言,它們與人類的自然語(yǔ)言更接近,大大提高了程序設(shè)計(jì)的效率。
為了使機(jī)器能夠理解運(yùn)行某一種程序語(yǔ)言書寫的程序,需要語(yǔ)言處理程序,語(yǔ)言處理程序分為兩大類:解釋程序和翻譯程序。解釋程序用軟件模擬計(jì)算機(jī)環(huán)境直接執(zhí)行源程序;而翻譯程序?qū)⒃闯绦蚍g成另一種語(yǔ)言程序,成為目標(biāo)語(yǔ)言。如果源語(yǔ)言是匯編語(yǔ)言而目標(biāo)語(yǔ)言是機(jī)器語(yǔ)言,則這種翻譯程序成為匯編程序;如果源語(yǔ)言是高級(jí)語(yǔ)言而目標(biāo)語(yǔ)言是低級(jí)語(yǔ)言,則這種翻譯程序成為編譯程序。
一般程序設(shè)計(jì)語(yǔ)言的定義都設(shè)計(jì)語(yǔ)法、語(yǔ)義和用語(yǔ)三個(gè)方面。 語(yǔ)法指程序語(yǔ)言基本號(hào)組成的規(guī)則;語(yǔ)義指按語(yǔ)法規(guī)則構(gòu)成的各個(gè)語(yǔ)法成分的含義;而語(yǔ)用表示構(gòu)成語(yǔ)言的記號(hào)和使用者的關(guān)系。語(yǔ)言的實(shí)現(xiàn)設(shè)計(jì)語(yǔ)境問題,語(yǔ)境指理解和實(shí)現(xiàn)程序設(shè)計(jì)語(yǔ)言的環(huán)境,這種環(huán)境包括編譯環(huán)境和運(yùn)行環(huán)境。
程序設(shè)計(jì)語(yǔ)言的分類
按照程序設(shè)計(jì)的方式可以將程序語(yǔ)言分為命令式程序設(shè)計(jì)語(yǔ)言、面向?qū)ο蟪绦蛟O(shè)計(jì)語(yǔ)言、函數(shù)式程序設(shè)計(jì)語(yǔ)言和邏輯性程序設(shè)計(jì)語(yǔ)言等。
命令式程序設(shè)計(jì)語(yǔ)言,也成為過程性語(yǔ)言,指?jìng)鹘y(tǒng)的程序設(shè)計(jì)語(yǔ)言。命令式語(yǔ)言是基于動(dòng)作的語(yǔ)言,程序員不僅要說明信息結(jié)構(gòu),而且要描述程序的控制流。
面向?qū)ο?/a>的程序設(shè)計(jì)語(yǔ)言,一般認(rèn)為,面向?qū)ο蟪绦蛘Z(yǔ)言至少要包括以下概念。
1、對(duì)象:對(duì)象是人們要進(jìn)行研究的任何事物,它具有狀態(tài)和操作。面向?qū)ο笳Z(yǔ)言把狀態(tài)和操作封裝于對(duì)象中,并提供一種訪問機(jī)制,使對(duì)象的私有數(shù)據(jù)僅能由這個(gè)對(duì)象來操作和執(zhí)行。用戶只能通過向允許公開的操作提供要求,從而訪問數(shù)據(jù)。
2、類:類是面向?qū)ο笳Z(yǔ)言必須提供的由用戶定義的數(shù)據(jù)類型,他將有相同狀態(tài)、操作、訪問機(jī)制的多個(gè)對(duì)象抽象成一個(gè)對(duì)象類。
3、繼承:繼承是面向?qū)ο蟮谋貍湟亍n惻c類之間可以組合成繼承層次,一個(gè)類的定義可以在另一個(gè)已知類的基礎(chǔ)上。子類可以繼承和操作父類中的屬性和方法,也可以自己重新定義屬性和方法。
函數(shù)式程序設(shè)計(jì)語(yǔ)言,是一種以驗(yàn)算為基礎(chǔ)的語(yǔ)言。LISP是典型的函數(shù)型程序語(yǔ)言,函數(shù)是一種對(duì)應(yīng)規(guī)則(映射),他使其定義域中的每一個(gè)元素和值域中唯一的值相對(duì)應(yīng)。
邏輯性程序設(shè)計(jì)語(yǔ)言,是一類以形式邏輯為基礎(chǔ)的語(yǔ)言,它的理論基礎(chǔ)是一階謂詞驗(yàn)算。PROLOG是典型的邏輯型語(yǔ)言,它建立在關(guān)系理論和一階謂詞基礎(chǔ)理論上。