高级语言的特性有哪些
這篇文章主要講解了“高級語言的特性有哪些”,文中的講解內(nèi)容簡單清晰,易于學(xué)習(xí)與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學(xué)習(xí)“高級語言的特性有哪些”吧!
一、程序語言的定義
編譯程序要對程序進(jìn)行正確的翻譯,首先要對程序設(shè)計(jì)語言本身進(jìn)行精確地定義和描述。對語言的描述是從三個(gè)方面來考慮(精簡地說):
語法:是對語言結(jié)構(gòu)的定義(什么樣的符號序列是合法的);定義語言的詞法和語法的形式規(guī)則;
語義:是描述語言的含義;定義語言的單詞符號和語法單位的意義;
語用:是從使用的角度去描述語言。定義程序設(shè)計(jì)技術(shù)和語言成分的使用方法,它使語言的基本概念與語言的外界(如數(shù)學(xué)概念或計(jì)算機(jī)的對象和操作)聯(lián)系起來
比如說賦值語句 s = 2* 3.1416* r* (r+ h)的非形式化的描述如下:
語法:賦值語句由一個(gè)變量、后隨賦值號“=”、后跟一個(gè)表達(dá)式構(gòu)成;
語義:首先計(jì)算語句右部表達(dá)式的值,然后把所得結(jié)果送入左部變量中;
語用:賦值語句可用來計(jì)算和保存表達(dá)式的值。
程序設(shè)計(jì)語言的定義是語言編譯程序?qū)崿F(xiàn)的基礎(chǔ),是語言使用者的用戶手冊;程序語言是符號語言,即一個(gè)記號系統(tǒng),它主要有語法、語義和語用等三方面定義。
1.語法
任何語言程序都可看成是一定字符集(字母表)上的一字符串(有限序列)。
語言的語法規(guī)則定義了程序的形式結(jié)構(gòu),語法規(guī)則是指這樣的一組規(guī)則,用它可以形成和產(chǎn)生一個(gè)格式(合法)的程序。這些規(guī)則的一部分稱為詞法規(guī)則,另一部分稱為語法規(guī)則(或產(chǎn)生規(guī)則)。
字母表是一個(gè)有限的字符集,字符集中的字符是語言程序中可能出現(xiàn)的字符,它們是語言程序單詞的組成部分。
詞法規(guī)則定義了語言程序中單詞符號的形成規(guī)則。即什么樣的字符串是一個(gè)合法的單詞。如標(biāo)識符、數(shù)值常量、運(yùn)算符等單詞的構(gòu)成規(guī)則。描述詞法規(guī)則和進(jìn)行詞法分析的有效工具是正規(guī)式、正規(guī)文法和有限狀態(tài)自動(dòng)機(jī)理論。
語法規(guī)則定義了語言程序中語法單位的形成規(guī)則。一般語言的語法單位有表達(dá)式、語句、分程序、函數(shù)、過程和程序等。描述語法規(guī)則和進(jìn)行語法分析的有效工具是`上下文無關(guān)文法。
語法規(guī)則和詞法規(guī)則定義了程序的形式結(jié)構(gòu),定義語法單位的意義屬于語義問題。
2.語義
對于一個(gè)語言來說,不僅要給出它的詞法、語法規(guī)則,而且要定義它的單詞符號和語法單位的意義。這就是語義問題。離開語義,語言只不過是一堆符號的集合。
語言的語義是指這樣的一組規(guī)則,使用它可以定義一個(gè)程序的意義。這些規(guī)則稱為語義規(guī)則。
程序語言的每個(gè)組成成分(語法范疇)均有抽象邏輯和計(jì)算機(jī)實(shí)現(xiàn)兩方面的意義。前者描述在數(shù)學(xué)上的邏輯意義,后者注重其在計(jì)算機(jī)內(nèi)的表示和實(shí)現(xiàn)的可能性與效率。
語義的描述方法有兩種。一種是自然語言描述,但是其存在隱藏錯(cuò)誤、二義性和不完整性的缺陷。另外一種是形式描述。
形式語義學(xué)有操作語義學(xué)、代數(shù)語義學(xué)、公理語義學(xué)、指稱語義學(xué)等許多分支,它們分別用不同的形式系統(tǒng)來描述語義問題,但是目前還沒有一種公認(rèn)的形式系統(tǒng),因此也還沒有實(shí)用的語義自動(dòng)分析方法。
目前編譯程序中常用的語義分析方法是一種基于屬性文法的語法制導(dǎo)翻譯。
即在語法分析的同時(shí)對其中識別出的語法單位進(jìn)行語義的分析與翻譯工作;在描述文法的同時(shí)為定義的語法范疇加上它們的屬性計(jì)算規(guī)則,屬性可以是語法范疇的類型、地址、取值、執(zhí)行動(dòng)作等信息。
不過在本科生階段,編譯原理不會(huì)過多涉及到形式語義學(xué),但是屬性文法是需要學(xué)習(xí)的。其他內(nèi)容,研究生階段可能會(huì)需要學(xué)習(xí)。
二、高級語言的一般特性
1、高級語言的分類
高級語言可分為以下幾類:
一、強(qiáng)制式語言(Imperative Language)也稱過程式語言,特點(diǎn)是命令驅(qū)動(dòng),面向語句。如C、pascal屬于這類語言。
二、應(yīng)用式語言(Applicative Language)也稱函數(shù)式 注重程序所表示的功能,程序的開發(fā)過程是從已有的函數(shù)出發(fā)構(gòu)造更復(fù)雜的函數(shù),程序的執(zhí)行即函數(shù)的嵌套或遞歸調(diào)用。如LISP、 ML屬于這類語言。
三、基于規(guī)則的語言(Rule-based Language)也稱邏輯程序設(shè)計(jì)語言,程序的執(zhí)行過程是檢查一定的條件(謂詞邏輯表達(dá)式),條件滿足則執(zhí)行適當(dāng)?shù)膭?dòng)作。如Prolog屬于這類語言。
四、面向?qū)ο笳Z言(Object-Oriented Language)特點(diǎn)是支持抽象、封裝性、繼承性、多態(tài)性和動(dòng)態(tài)綁定。程序設(shè)計(jì)的方法是將數(shù)據(jù)和操作封裝在一起構(gòu)成對象,對簡單對象進(jìn)行擴(kuò)充、繼承從而構(gòu)造更復(fù)雜的對象,通過向?qū)ο蟀l(fā)送消息獲得動(dòng)作的執(zhí)行。如C++、Java、C#屬于這類語言。
2、數(shù)據(jù)類型與操作
一個(gè)數(shù)據(jù)類型通常包括以下三個(gè)要素:
用于區(qū)別類型的數(shù)據(jù)對象的屬性;
這種類型的數(shù)據(jù)對象可以具有的值;
可以作用于類型的數(shù)據(jù)對象的操作。
程序設(shè)計(jì)語言從初始到復(fù)雜:
初等數(shù)據(jù)類型
數(shù)值數(shù)據(jù)、邏輯數(shù)據(jù)(布爾類型)、字符數(shù)據(jù)、指針類型。
數(shù)據(jù)結(jié)構(gòu)
數(shù)組:由同一類型數(shù)據(jù)所組成的 n 維矩形結(jié)構(gòu)。可分為確定數(shù)組和可變數(shù)組;數(shù)組的內(nèi)情向量包括:首地址、維數(shù)、各維的上下限及元素類型。
記錄:由已知類型(可以不同)的數(shù)據(jù)組合起來的結(jié)構(gòu)。記錄中每個(gè)域的 OFFSET 是它相對于記錄首地址的地址位移量。
字符串、表格、棧和隊(duì)列:數(shù)組或記錄組合的訪問受限的復(fù)合結(jié)構(gòu)。
關(guān)于標(biāo)識符和名字:
雖然名字和標(biāo)識符在形式上往往難于區(qū)分,但這兩個(gè)概念是有本質(zhì)區(qū)別的。例如,對于‘PI’,我們有時(shí)說它是一個(gè)名字,有時(shí)又說它是一個(gè)標(biāo)識符。標(biāo)識符是一個(gè)沒有意義的字符序列,但名字卻有明確的意義和屬性。作為標(biāo)識符的PI,無非是兩個(gè)字母的并置,但作為名字的PI,常常被用來代表圓周率。在髙級語言中常用“局部名”、“全局名”之稱,但 少有“局部標(biāo)識符”、“全局標(biāo)識符”之分。
3、語句與控制結(jié)構(gòu)
除了提供數(shù)據(jù)的表示、構(gòu)造及運(yùn)算機(jī)制外,程序設(shè)計(jì)語言還有可執(zhí)行的語句。控制結(jié)構(gòu)定義了語句的執(zhí)行次序,語言所提供的控制結(jié)構(gòu)的集合對可讀和可維護(hù)的軟件的編寫有很大影響。
(1)表達(dá)式
表達(dá)式是由運(yùn)算量和運(yùn)算符組成的。運(yùn)算量亦稱操作數(shù),可以是數(shù)據(jù)引用或函數(shù)調(diào)用;運(yùn)算符有算術(shù)運(yùn)算符、邏輯運(yùn)算符、關(guān)系運(yùn)算符等,運(yùn)算符之間有規(guī)定的優(yōu)先級和結(jié)合律。
(2)語句
1、賦值句:變量名 = 表達(dá)式。
2、控制語句:無條件轉(zhuǎn)移語句、條件語句、循環(huán)語句、過程調(diào)用語句、返回語句。
3、說明語句:用于定義名字的性質(zhì)。
4、簡單句和復(fù)合句:語句1;語句2;語句3;……
總結(jié)
以上是生活随笔為你收集整理的高级语言的特性有哪些的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 洛谷P1122 最大子树和 树形DP初
- 下一篇: 轻量应用服务器有哪些用途