Chương trình dịch (Compiler

)
Đề tài : Biên dịch ngôn ngữ Pascal

C
Giảng viên: Bùi Ngọc Thăng
Thành viên nhóm: Nguyễn Thị An Bùi Thanh Hiếu Nguyễn Thị Thanh Hương Trần Bá Nghiệp Trịnh Quang Phúc Vũ Anh Tuấn Lớp: K50CD

Biên dịch ngôn ngữ Pascal  C
I. II. III. IV.

Mô tả ngôn ngữ Pascal Xây dựng biểu thức chính quy Xây dựng automat Đề xuất cấu trúc dữ liệu

I. Mô tả ngôn ngữ Pascal
1. Các loại từ tố (token)
1. 2. 3. 4. 5. 6.

Tên biến Từ khóa Kiểu số Ký hiệu và toán tử Xâu ký tự Ghi chú

I. Mô tả ngôn ngữ Pascal
2. Mô tả tự nhiên
1. Tên biến: Bắt đầu bằng chữ cái hoặc dấu gạch dưới, theo sau là chữ cái, chữ số hoặc dấu gạch dưới VD: x, a12, _else, x_a2 … 2. Từ khoá: bao gồm một tập từ khoá riêng VD: if, else, begin, array, case, const 3. Kiểu số: - Số nguyên: 2, 1034, -239 … - Số thực: 2.0, 0.00020, .02, 1.1e5, 0.e-10

I. Mô tả ngôn ngữ Pascal
2. Mô tả tự nhiên
4. Ký hiệu và toán tử: +, -, *, /, {, }, <, <<, [, ], >=, <=, <> 5. Xâu ký tự : “x”, “He said, \“Are you?\”” 6. Ghi chú: {nội dung chú thích} hoặc (*nội dung chú thích*)

I. Mô tả ngôn ngữ Pascal
3. Bảng các từ tố và ký hiệu: a. Bảng các từ khoá
And Array Asm Begin Case Const Constructor Destructor Div Do Downto And_Token Array_Token Asm_Token Begin_Token Case_Token Const_Token Constructor_Token Destructor_Token Div_Token Do_Token Downto_Token Else End File For Function Goto If Implementation In Inline Interface Label Mod Else_Token End_Token File_Token For_Token Function_Token Goto_Token If_Token Implementation_Token In_Token Inline_Token Interface_Token Label_Token Mod_Token

I. Mô tả ngôn ngữ Pascal
3. Bảng các từ tố và ký hiệu: a. Bảng các từ khoá
Nil Not Object Of Or Packed Procedure Program Record Repeat Set Shl Shr Nil_Token Not_Token Object_Token Of_Token Or_Token Packed_Token Procedure_Token Program_Token Record_Token Repeat_Token Set_Token Shl_Token Shr_Token String Then To Type Unit Until Uses Var While With Xor String_Token Then_Token To_Token Type_Token Unit_Token Until_Token Uses_Token Var_Token While_Token With_Token Xor_Token

I. Mô tả ngôn ngữ Pascal
3. Bảng các từ tố và ký hiệu: a. Bảng các từ khoá
+ * / ( ) {, (* }, *) = | <> > < Plus_Token Minus_Token Times_Token Over_Token Open_Token Close_Token Open_Comment_Token Close_Comment_Token Equal_Token Modulo_Token Not_Equal_Token Greater_Token Less_than_Token

I. Mô tả ngôn ngữ Pascal
3. Bảng các từ tố và ký hiệu: a. Bảng các từ khoá
<= >= , ‘ . : ; := And Or Not Xor Mod Div Less_or_Equal_Token Greater_or_Equal_Token List_Token Apostrophe_Token Priod_Token Separator_var_Token Separator_Token Becomes_Token And_Token Or_Token Not_Token Xor_Token Mod_Token Div_Token

I. Mô tả ngôn ngữ Pascal
1. Tên biến:
  

id = Letter(letter | digit)* letter = A | B | ... | Z | a | b | ... | z digit = 0 | 1 | 2 | ... | 9 key = boolean | break | continue | else | for | float | if | int | return | void | while … Hằng nguyên: intLit = digit+ Hằng thực: floLit = digit* fraction exponent? | digit+ . |digit+ .? exponent fraction = . digit+ exponent = PwLetter (+ | -)? digit+

2. Từ khoá

3. Kiểu số
 

II. Mô tả biểu thức chính quy
4. Ký hiệu và toán tử relop → < | <= | > | >= | <> | = arithOp + | - | * | / assOp  = 5. Dấu cách delim → blank | tab | newline

ws → delim+
6. Ghi chú cmm-->{ | } | (* | *)

III. Mô tả bằng automat(NFA/DFA)
1. Tên biến:id = Letter(letter | digit)*

2. Từ khoá ey = boolean | break | continue | else | for | float k | if | int | return | void | while …

III. Mô tả bằng automat(NFA/DFA)
n 3. Kiểu số: um → digit+(.digit+)?(E(+|-)?digit+)?

III. Mô tả bằng automat(NFA/DFA)
4. Ký hiệu và toán tử
relop → < | <= | > | >= |< | =

III. Mô tả bằng automat(NFA/DFA)
4. Ký hiệu và toán tử arithOp  + | - | * | /

III. Mô tả bằng automat(NFA/DFA)
5. Dấu cách delim → blank | tab | newline ws → delim+

6. Ghi chú: *)

cmm-->{ | } | (* |

IV. Đề xuất cấu trúc dữ liệu

Sign up to vote on this title
UsefulNot useful