編譯原理第2章_第1頁
編譯原理第2章_第2頁
編譯原理第2章_第3頁
編譯原理第2章_第4頁
編譯原理第2章_第5頁
已閱讀5頁,還剩17頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

第二章高級語言

及其語法描述

高級程序設(shè)計語言回顧、語法與語義的概念、語法描述程序語言§2.2高級語言的一般特性

一、高級語言的分類

1、強制式語言(過程式語言):命令驅(qū)動,面向語句。程序 由一系列語句構(gòu)成。如FORTRAN、C、Pascal、Ada; 2、應(yīng)用式語言(函數(shù)式語言):注重程序所表示的功能,程 序的開發(fā)過程是從前面已有的函數(shù)出發(fā)構(gòu)造更復(fù)雜的函 數(shù)。通常的語法形式為:函數(shù)n(…函數(shù)2(函數(shù)1(數(shù) 據(jù)))…)如LISP等; 3、基于規(guī)則的語言:程序的執(zhí)行過程是檢查一定的條件,當(dāng) 它滿足時,則執(zhí)行適當(dāng)?shù)膭幼?。通常的語法形式為: 條件i→動作i,如Prolog等;

4、面向?qū)ο笳Z言:支持封裝、繼承和多態(tài)。

§2.2高級語言的一般特性二、程序結(jié)構(gòu)

1、FORTRAN語言:由一個主程序段和若干輔程序段組成; 2、Pascal語言:子程序嵌套結(jié)構(gòu); 3、Ada:引入程序包,把數(shù)據(jù)和操作代碼封裝在一起,支持 數(shù)據(jù)抽象; 4、Java語言:面向?qū)ο蟮母呒壵Z言,類、繼承、多態(tài)、動態(tài) 綁定等概念;三、數(shù)據(jù)類型與操作:初等數(shù)據(jù)類型、數(shù)據(jù)結(jié)構(gòu)、抽象數(shù)據(jù)類型;

四、語句與控制結(jié)構(gòu):表達式、語句(賦值句、控制語句、說明句、簡單句和復(fù)合句);

§2.2高級語言的一般特性§2.1語法與語義一、有關(guān)程序語言的基本概念

1、語言的三要素: 語法(決定語言的形式)、 語義(決定語言的含義)、 語用(程序設(shè)計方法和語言成分的使用方法); 2、程序語言是記號(符號)系統(tǒng);

3、語言的定義與實現(xiàn) (1)定義(發(fā)明)語言: 語言的用戶手冊; 標(biāo)準(zhǔn)化; (2)實現(xiàn): 編譯系統(tǒng)(開發(fā)環(huán)境);§2.1語法與語義§1.1什么是編譯程序二、語法

1、語言的語法:用以規(guī)定產(chǎn)生合式程序的一組規(guī)則,有詞法 規(guī)則和語法規(guī)則兩部分;(合式——形式上正確) 2、詞法規(guī)則:單詞符號的形成規(guī)則; 3、語法規(guī)則:語法單位的形成規(guī)則; 4、單詞符號:語言中具有獨立意義的最基本結(jié)構(gòu),如常量、 標(biāo)識符、基本字、算符、界符等; 5、語法單位:語言中一些結(jié)構(gòu)更大的固定單位,如表達式、 語句、函數(shù)、過程和程序等;三、語義

1、語言的語義:語言的單詞符號和語法單位的意義; 2、語義規(guī)則:一組可以定義語義的規(guī)則; 3、語義的描述:還未有一套公認的形式系統(tǒng),本書用自然語 言結(jié)合屬性文法來描述?!?.1語法與語義§2.3程序語言的語法描述

一、預(yù)備概念

§2.3程序語言的語法描述二、上下文無關(guān)文法 1、文法:即語法規(guī)則,形式化的描述語言的語法結(jié)構(gòu) 2、漢語語法規(guī)則實例: (1)文法:〈句子〉→〈主語〉〈謂語〉 〈主語〉→〈代詞〉|〈名詞〉 〈代詞〉→我|你|他 〈名詞〉→大學(xué)生|工人|英語 〈謂語〉→〈動詞〉〈直接賓語〉 〈動詞〉→是|學(xué)習(xí) 〈直接賓語〉→〈代詞〉|〈名詞〉 (2)句子:按此規(guī)則,“我是大學(xué)生”的構(gòu)成符合上述規(guī) 則,是一個句子;而“我大學(xué)生是”不符合上述規(guī)則, 不是句子?!?.3程序語言的語法描述(3)文法的使用:

(4)文法的結(jié)構(gòu)§2.3程序語言的語法描述3、上下文無關(guān)文法ɑɑ1ɑ2ɑ3ɑ1ɑ2ɑ3§2.3程序語言的語法描述 (3)上下文無關(guān)文法的形式定義

例1:文法的幾種寫法ɑɑεεε§2.3程序語言的語法描述例2:Pascal語言中控制語句的文法§2.3程序語言的語法描述例3:C++語句的文法一、C++語句§1.1什么是編譯程序二、帶標(biāo)號語句

statement: labeled-statement expression-statement compound-statement selection-statement iteration-statement jump-statement declaration-statement try-blocklabeled-statement: identifier:

statement

case

constant-expression:

statement

default

:

statement§1.1什么是編譯程序三、表達式語句

expression-statement: expressionopt

;四、復(fù)合語句compound-statement:

{

statement-seqopt}statement-seq: statement statement-seqstatement§1.1什么是編譯程序五、選擇語句selection-statement:

if(condition)

statement

if(condition)

statementelse

statement

switch(condition)

statementcondition:

expression

type-specifier-seqdeclarator =

assignment-expression§1.1什么是編譯程序六、循環(huán)語句

iteration-statement:

while(

condition)

statement

do

statementwhile(

expression);

for(for-init-statementconditionopt

;

expressionopt)

statementfor-init-statement: expression-statement simple-declaration§1.1什么是編譯程序七、跳轉(zhuǎn)語句jump-statement:

break;

continue; return

expressionopt

;

goto

identifier;§1.1什么是編譯程序4、文法定義語言

γαβαβαβαβγαγβαγαγβαγβαγαβ§2.3程序語言的語法描述

例:文法G為E→E+E|E*E|(E)|i,

即:(i*i+i)是G的一個句子。§2.3程序語言的語法描述三、語法分析樹與二義性 1、語法

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論