Các bước thực hiện quá trình biên dịch

Một phần của tài liệu Bài giảng: Cấu trúc máy tính và ghép nối pot (Trang 67 - 68)

c, Liên kết thông qua stack

5.1.1. Các bước thực hiện quá trình biên dịch

Để xem xét các bước thực hiện quá trình biên dịch, ta sẽ xem xét quá trình chuyển một câu lệnh đơn giản được viết từ một ngôn ngữ bậc cao thành một

đoạn chương trình hợp ngữ

Câu lệnh A = B + 4;

Trình biên dịch phải đối mặt với một số nhiệm vụ phức tạp trong việc chuyển câu lệnh trên thành một hay một vài lệnh hợp ngữ, đó là các vấn đề

• Giảm lượng chữ viết trong câu lệnh, chuyển nó thành các biểu tượng của câu lệnh của ngôn ngữ mà ta đang nghiên cứu. Ví dụ trong câu lệnh trên, ta phải định nghĩa cac biến A và B, cũng như phải nhận dạng và định nghĩa các phép toán + và toán tử =. Quá trình này được gọi là quá trình

phân tích ngôn từ

• Phân tích các ký hiệu để nhận biết cấu trúc cơ bản của chương trình. Trong ví dụ trên, việc phân tích cú pháp phải nhận ra được các cấu trúc cơ bản như là cấu trúc cơ bản của lệnh gán được biểu hiện bằng ký tự

“=”, hay là cấu trúc của phép toán cộng được biểu hiện bằng ký tự “+”. Quá trình trên còn được gọi là phân tích cú pháp

Quá trình phân tích tên biến: đây là quá trình kết hợp các biến A và B của chương trình với một vị trí nhất định trong bộ nhớ để lưu trữ các giá trịđó

Quá trình phân tích dạng dữ liệu. Trong ví dụ trên, các biến A và B và hằng số 4 sẽ được nhận diện thành dạng biến kiểu số nguyên int. Quá trình phân tích tên biến và quá trình phân tích dạng dữ liệu đôi khi được gọi tên chung là phân tích ngữ nghĩa

• Tạo bản đồ mã và tạo mã lệnh, đây là quá trình kết nối các câu lệnh trong chương trình với ngôn ngữ hợp ngữ tương ứng. Với câu lệnh trên, chương trình hợp ngữ tương ứng có thể là

ld [B],%r0, %r1 ; Nạp nội dung của ô nhớ [B] vào %r1

add %r1,4, %r2 ; Cộng giá trị của %r1 với 4, đưa kết quả vào %r2 st %r2,%r0, [A] ; Lưu kết quả từ%r2 vào ô nhớ [A]

• Một số bước tiếp theo mà trình biên dịch phải thực hiện là quản lý biến và quản lý các thanh ghi, theo dõi việc sử dụng các thanh ghi, tối ưu chương trình...

Một phần của tài liệu Bài giảng: Cấu trúc máy tính và ghép nối pot (Trang 67 - 68)