Phân tích từ vựng của ngôn ngữ lập trình. - pdf 16

Link tải luận văn miễn phí cho ae Kết nối

Trong ngành khoa học máy tính, phân tích từ vựng (en:Lexical Analysis, còn được gọi là scanning hay lexing) là một quá trình chuyển đổi chuỗi ký tự nguồn thành một chuỗi liên tiếp các đoạn ký tự ngắn hơn đã được phân loại, gọi là tokens. Chương trình dùng để phân tích từ vựng được gọi là bộ phân tích từ vựng (tiếng Anh là Lexer).
Token: Một token là một tập hợp các xâu kí tự có một nghĩa xác định, ví dụ identifier token là tập hợp tất cả các identifier. Token chính là các kí hiệu kết thúc (terminal) trong định nghĩa văn phạm của một ngôn ngữ, ví dụ: Các từ khoá, định danh, toán tử, hằng, xâu kí tự, dấu ngoặc đơn, dấu phẩy, dấu chấm phẩy...
Tokens tương tự như loại từ trong ngôn ngữ học. Tương tự như danh từ hay tính từ, động từ, tokens sẽ được định nghĩa gồm từ khóa (keyword), định danh (identifier), số nguyên, số chấm động tùy theo đặc điểm của trình biên dịch.
Để biểu diễn các tokens, người ta dùng biểu thức chính quy.
a : có xuất hiện ký tự 'a'
ab : có xuất hiện ký tự 'b' theo sau ký tự 'a' (theo đúng thứ tự)
a|b : có 'a' hay có 'b'
a* : xuất hiện nhiều hay không xuất hiện ký tự 'a'
a+ : xuất hiện nhiều hay ít nhất là một ký tự 'a'
a3 : xuất hiện 3 ký tự a
a? : xuất hiện a hay không xuất hiện
• Phân tích từ vựng giúp cho các giai đoạn biên dịch tiếp theo dễ dàng hơn, ví dụ: Giai đoạn phân tích cú pháp không phải quan tâm đến các khoảng trắng cũng như các lời chú trích vì nó đã được loại bỏ khi khi phân tích từ vựng
• Giảm đáng kể thời gian đọc chương trình nguồn và nhóm thành các token nhờ một số chương trình xử lí chuyên dụng
I. Bảng chữ,phân tích từ vựng của ngôn ngữ Pascal
1. Bảng chữ

1.1. Bộ ký tự

- Bộ 26 chữ Latin:
Chữ in: A, B, C, ..., X, Y, Z
Chữ thường: a, b, c, ..., x, y, z
- Bộ chữ số thập phân: 0, 1, 2, 3, ..., 8, 9
- Ký tự gạch nối dưới: _
- Các ký hiệu toán học: +, -, *, /, =, <, >, (, ), [, }
-Các ký tự khác: ; # ^ $ @ & . ,


xc3WPydwUqIP5yQ
Music ♫

Copyright: Tài liệu đại học © DMCA.com Protection Status