Code generation là gì?

Noun Complier
Tạo mã

Tạo mã (code generation) là giai đoạn cuối cùng của trình biên dịch (compiler). Nó nhận đầu vào từ các giai đoạn tối ưu hóa mã (code optimization) và kết quả là tạo ra page code hoặc mã đối tượng (object code). Mục tiêu của giai đoạn này là cấp phát bộ nhớ và tạo relocatable machine code.

Nó cũng cấp phát các vị trí bộ nhớ (memory location) cho biến (variable). Các chỉ thị trong mã trung gian (intermediate code) được chuyển đổi thành các lệnh máy. Giai đoạn này chuyển mã tối ưu (optimize code) hoặc mã trung gian (intermediate code) sang ngôn ngữ đích (target language).

Ngôn ngữ đích là mã máy (machine code). Do đó, tất cả các vị trí bộ nhớ và thanh ghi (register) cũng được chọn và cấp phát trong giai đoạn này. Mã được tạo ra bởi giai đoạn này được thực thi để lấy đầu vào và tạo ra đầu ra mong đợi.

Ví dụ:


a = b + 60.0

Có thể sẽ được dịch sang thanh ghi.


MOVF a, R1
MULF #60.0, R2
ADDF R1, R2

Learning English Everyday