background image

ĐẶC TẢ NGÔN NGỮ LẬP TRÌNH

TỪ VỰNG – CÚ PHÁP

TS. Nguyễn Hứa Phùng
Khoa CNTT-ĐHBK TPHCM
2007

background image

Từ vựng - Cú Pháp

Khoa CNTT-ĐHBK TPHCM

2

GIỚI THIỆU

z

Đặc tả hình thức cung cấp một mô tả chính 
xác về một ngôn ngữ lập trình(nnlt)

Chương 

trình

Bộ dịch

Đặc tả

NNLT

background image

Từ vựng - Cú Pháp

Khoa CNTT-ĐHBK TPHCM

3

GIỚI THIỆU (tt)

z

Đặc tả hình thức cho phép:

Người học có thể tiếp thu nnlt dễ dàng

Bộ dịch có thể sinh mã đúng đắn

Bộ dịch có thể kiểm tra lỗi tự động

Có thể chứng minh được tính đúng đắn của chương trình

z

Đặc tả hình thức:

Từ vựng

Văn phạm

Ngữ nghĩa

background image

ĐẶC TẢ TỪ VỰNG

background image

Từ vựng - Cú Pháp

Khoa CNTT-ĐHBK TPHCM

5

NGÔN NGỮ

z

Chuỗi và ngôn ngữ

Tập hợp các ký tự Σ

Một chuỗi S trên Σ là 1 dãy hữu hạn các ký tự thuộc Σ

Chuỗi rỗng 

Một ngôn ngữ L trên Σ là tập hợp các chuỗi trên Σ

z

Tác vụ trên ngôn ngữ

Hợp

L

1

∪ L

2

Kết nối

L

1

L

2

 

Đóng bao

L

i

z

L

0

= {

∈}

z

L

2

= LL

z

L

i

= LL

i-1

L* = 

L

i

i = 

i = 0

background image

Từ vựng - Cú Pháp

Khoa CNTT-ĐHBK TPHCM

6

BIỂU THỨC CHÍNH QUI

z

Biểu thức chính qui diễn tả ngôn ngữ L(r)

{

∈}

∈ Σ

{a}

Giả sử và lần lượt diễn tả ngôn ngữ L(r) và

L(s) thì

z

(r) | (s

L(r

∪ L(s)

z

(r)(s)

L(r) L(s)

z

(r)*

(L(r))*

z

(r)

L(r)

background image

Từ vựng - Cú Pháp

Khoa CNTT-ĐHBK TPHCM

7

ĐỊNH NGHĨA CHÍNH QUI

z

Định nghĩa chính qui

d

1

Æ

r

1

d

2

Æ

r

2


d

n

Æ

r

n

background image

Từ vựng - Cú Pháp

Khoa CNTT-ĐHBK TPHCM

8

TOÁN TỬ CHÍNH QUI

z

Độ ưu tiên

*

concat

|

z

Một số toán tử mở rộng

(a)? == a | 

(a)+ == a(a)*

background image

ĐẶC TẢ VĂN PHẠM

background image

Từ vựng - Cú Pháp

Khoa CNTT-ĐHBK TPHCM

10

ĐẶC TẢ VĂN PHẠM

z

Cú pháp trừu tượng (abstract syntax)

z

Cú pháp cụ thể (concrete syntax)

Văn phạm phi ngữ cảnh (context-free grammar) 
và BNF (Backus-Naur Form)

Sơ đồ cú pháp

z

Cú pháp cảm ngữ cảnh (context-sensitive 
syntax)

background image

Từ vựng - Cú Pháp

Khoa CNTT-ĐHBK TPHCM

11

CÚ PHÁP TRỪU TƯỢNG

z

Phân các yếu tố NN thành các lớp văn phạm

z

Liệt kê tất cả các dạng của mỗi lớp

z

Ví dụ:

Lớp cú pháp:

C

Hằng (constant)

O

Toán tử (operator)

E

Biểu thức (expression)

Dạng cú pháp:

E ::= C | E O  E | ( E )

8  – 4  – 2 

E

O

E

8  – 4  – 2 

E

O

E

background image

Từ vựng - Cú Pháp

Khoa CNTT-ĐHBK TPHCM

12

VĂN PHẠM PHI NGỮ CẢNH 

z

Noam Chomsky, 1957

z

Là 1 bộ gồm 4 thành phần:

Tập các ký hiệu kết thúc Σ

Tập các ký hiệu không kết thúc N

Ký hiệu bắt đầu S

N

Tập các luật sinh ρ có dạng

Æ

ω với 

và ω là 1 chuỗi các ký hiệu kết thúc và

không kết thúc

background image

Từ vựng - Cú Pháp

Khoa CNTT-ĐHBK TPHCM

13

SƠ ĐỒ CÚ PHÁP

Term

Exp

Term

Exp

-

background image

Từ vựng - Cú Pháp

Khoa CNTT-ĐHBK TPHCM

14

Ví dụ: Biểu thức

z

Σ = { 0,1,2,3,4,5,6,7,8,9,(,),-,* }

z

= { <Exp>, <Term>, <Factor>}

z

S = <Exp>

z

ρ = { <Exp> Æ <Term> | <Exp> - <Term>

<Term> Æ <Factor> | <Term> * <Factor> 
<Factor> Æ 0|1|2|3|4|5|6|7|8|9| (<Exp>)

}

background image

Từ vựng - Cú Pháp

Khoa CNTT-ĐHBK TPHCM

15

CHUỖI DẪN XUẤT

<Exp> Æ <Exp> - <Term>

<Exp>

<Exp> - <Term>

<Term> - <Term>

<Term> * <Factor> - <Term>

<Factor> * <Factor> - <Term>

3 * <Factor> - <Term>

3 * 5 - <Term>

3 * 5 - <Factor>

3 * 5 - 2 

<Exp> Æ <Term>

<Term>Æ<Term>*<Factor>

<Term> Æ <Factor>

<Factor> Æ 3

<Factor> Æ 5

<Term> Æ <Factor>

<Factor> Æ 2

background image

Từ vựng - Cú Pháp

Khoa CNTT-ĐHBK TPHCM

16

CÂY PHÂN TÍCH CÚ PHÁP

<Exp>

5

2

4

<Factor>

<Factor>

<Term>

*

<Term>

<Factor>

-

<Exp>

<Term>

background image

Từ vựng - Cú Pháp

Khoa CNTT-ĐHBK TPHCM

17

CÂY CÚ PHÁP

5

2

*

-

4


Document Outline