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