tài liệu tham khảo tìm hiểu về trình biên dịch và xây dựng ngôn ngữ lập trình tiếng việt
Trang 1Giáo Viên HD: Nguyễn Công Nhật Sinh Viên TH: Nguyễn Thị Nha Trang Lớp K42E3 – Khoa Công Nghệ Thông Tin - Đại Học Vinh
Trang 2Lời nói đầu
Từ trước tới nay các ngôn ngữ lập trình đều bằng tiếng Anh, điều đó đã gây không ít trở ngại cho những người lập trình Xuất phát từ
Ý tưởng đó em xin trình bày đề tài:
“Giới Thiệu Về Trình Biên Dịch Và Xây
Dựng Ngôn Ngữ Lập Trình Tiếng Viêt”
Trang 3S l ơ lược nội dung đề tài ược nội dung đề tài c n i dung ội dung đề tài đề tài ài t i
Chươ lược nội dung đề tàing 1
Chươ lược nội dung đề tàing 3
Chươ lược nội dung đề tàing 4
Chươ lược nội dung đề tàing 5
Chươ lược nội dung đề tàing 2
Tổng Quan Về Trình Biên Dịch
Bộ Phân Tích Từ Vựng
Bộ Phân Tích Cú Pháp
Bộ Xử Lý Ngữ NghĩaGiới Thiệu Ngôn Ngữ
Trang 4Ch ươ lược nội dung đề tài ng 1 : Tổng Quan Về Trình Biên Dịch
1 Giới thiệu về Trình Biên Dịch
• Trình Biên Dịch là chương trình chịu trách
nhiệm dịch một mã văn bản chương trình nguồn của một ngôn ngữ lập trình ra mã máy
• Trình biên dịch có thể được chia thành hai
loại : Biên Dịch và Thông Dịch
Trang 51.1 Cơ Chế Biên Dịch
Mô Hình Biên Dịch Của Công Nghệ Dot Net
Mã văn bản chương trình nguồn được dịch sang một dạng mã trung gian sau đó mã trung gian sẽ được dịch xuống mã máy và mã máy sẽ được thực thi bởi Control Process Unit (CPU)
Trang 61.2 Cơ Chế Thông Dịch
Mã văn bản chương trình nguồn được dịch sang một dạng mã trung gian sau đó mã trung gian sẽ được thực thi bởi một phần mềm
Source Code (Mã nguồn)
Front-End (Analysis)
Immediate Code (Mã trung gian)
Process By JVM (Java Virtual Machine)
Mô Hình Biên Dịch Của Công Nghệ Java
Trang 72 Khái Quát Chương Trình
thông dịch khi chương trình thực thi, toàn bộ văn bản chương trình nguồn được nạp vào bộ nhớ Trình biên dịch phân biệt chữ hoa, chữ thường Trong quá trình biên dịch chương trình
sẽ dừng lại ngay khi gặp lỗi
Trang 8Ch ươ lược nội dung đề tài ng 2 : Bộ Phân Tích Từ Vựng
1 Vai trò và nhiệm vụ
• Nạp toàn bộ văn bản chương trình nguồn vào
bộ nhớ Phân tích văn bản chương trình
nguồn thành các token riêng biệt
• Báo lỗi khi gặp các ký hiệu không thuộc tập
ký hiệu hoặc các token không thỏa mãn luật danh hiệu
Trang 106 Xây dựng bộ phân tích từ vựng
Xây dựng vùng đệm nhập Vùng đệm nhập là nơi để nạp văn bản
chương trình nguồn vào bộ nhớ
Xây dựng bảng danh hiệu Bảng danh hiệu là một cấu trúc dữ liệu lưu
trữ trông tin liên quan đến bảng danh hiệu
Sơ đồ dịch
Sơ đồ chuyển trạng thái cho biết cách thức
biến đổi tương ứng với ký hiệu nhập
Trang 11Ch ươ lược nội dung đề tài ng 3 : Bộ Phân Tích Cú Pháp
1 Gới thiệu chung về bộ phân tích cú pháp
• Vai trò và nhiệm vụ:Dựa vào tập luật sinh cho
trước phân tích câu lệnh nhập xem có thỏa tập luật sinh hay không, báo lỗi khi câu lệnh nhập không đúng cú pháp
• Phân loại văn phạm
• Cây dẫn xuất
• Khái niệm về câu, dạng câu
• Thiết kế văn phạm
Trang 122 Bộ Phân Tích Cú Pháp
Đoán Nhận Trước Không Đệ Quy
- Vùng đệm nhập: chứa
văn bản chương trình cần phân tích.
Trang 13M [A, b] = { A → B}; } }
}
Trang 143 Bộ Phân Tích Cú Pháp Thứ Tự Yếu
Stack trạng thái:chứa các ký hiệu văn phạm.
Tập luật sinh:chứa các luật sinh của văn phạm.
Bảng phân tích:cho biết hành
vi tương ứng khi biết ký hiệu hiệu trên đỉnh stack trạng thái
và ký hiệu trên đính stack nhập.
3.1 Nguyên tắc phân tích
3.2 Mô hình hoạt động
Trang 153.3 Xây dựng bảng phân tích
• Quan hệ thứ tự yếu
• Phương pháp xác định quan hệ thứ tự yếu
• Giải thuật xây dựng bảng phân tích M:
khởi tạo bảng hai chiều M là rỗng.
Trang 164 Bộ Phân Tích Cú Pháp LR
4.1 Nguyên tắc phân tích
4.2 Mô hình hoạt động:
Stack trạng thái: chứa các
ký hiệu văn phạm và ký hiệu trạng
Stack nhập: chứa chuỗi nhập
Tập luật sinh: chứa các luật sinh của văn phạm
Bảng phân tích: gồm hai thành phần Action và Goto
Đơn vị điều khiển
Trang 174.3 Bảng Phân Tích
Có nhiều phương pháp để xây dựng bảng phân tích
và phương pháp SLR (Simple LR) được xem là dễ cài đặt nhất Sau đây ta sẽ sử dụng phương pháp SLR để xây dựng bảng phân tích.
Trang 18Ch ươ lược nội dung đề tài ng 4 : Bộ Xử Lý Ngữ Nghĩa
• Tổng Quát : Khi bộ phân tích cú pháp nhận dạng được cấu trúc của một câu lệnh thì gọi thực hiện hàng vi ngữ nghĩa tương ứng
• Cấu trúc rễ nhánh
• Cấu trúc lệnh Switch
• Các cấu trúc lặp
Trang 19Ch ươ lược nội dung đề tài ng 5 : Giới Thiệu Ngôn Ngữ
• Giới thiệu ngôn ngữ C Sharp
• Giới thiệu ngôn ngữ lập trình tiếng việt
– Tập ký hiệu
– Luật danh hiệu
– Lệnh khai báo biến
– Các lệnh xử lý điều kiện rẽ nhánh
– Các câu lệnh lặp
Trang 20• Tập ký hiệu:
Các ký tự chữ cái: từ a z và từ A Z
Các ký tự số: từ 0 9
Các ký tự đặc biệt: + - * / % & > < = ( ) { } ! _ , “ ;
• Luật danh hiệu:
Sử dụng các ký tự chữ và các ký tự số để dặt tên cho một danh hiệu
Các danh hiệu phải được bắt đầu bởi ký tự chữ
Các danh hiệu không được chưa ký tự khoảng trắng , không chứa các ký tự đặc biệt
Chương trình phân biệt chữ hoa , chữ thường
Trang 21• Lệnh khai báo biến:
liệu đó là kiểu số nguyên và kiểu số thực
Trang 22- Lệnh khoảng … tương đương với câu lệnh for …
- Lệnh gọi chương trình con