3 mã địa chỉ trong trình biên dịch là gì?

Mã ba địa chỉ là một loại mã trung gian dễ tạo và chuyển đổi sang mã máy. Nó chỉ có thể định nghĩa một biểu thức với ba địa chỉ và một toán tử. Về cơ bản, ba mã địa chỉ giúp xác định trình tự các hoạt động được thực hiện bởi trình biên dịch

Con trỏ cho ba mã địa chỉ

  • Mã ba địa chỉ được coi là mã trung gian và được sử dụng bằng cách tối ưu hóa trình biên dịch
  • Trong mã ba địa chỉ, biểu thức đã cho được chia thành nhiều nguyên tắc. Các hướng dẫn này dịch sang hợp ngữ một cách dễ dàng
  • Ba toán hạng được yêu cầu cho mỗi trong số ba hướng dẫn mã địa chỉ. Đó là toán tử nhị phân và phép gán kết hợp

Đại diện chung

P. = [-r * q] + [-r * s]

Mã ba địa chỉ như sau

t1. = -r

t2. = q*t1

t3. = -r

t4. = s * t3

t5. = t2 + t4

P. = t5

Ở đây, t được sử dụng làm thanh ghi trong chương trình đích

Thực hiện ba mã địa chỉ

Có 2 đại diện của ba mã địa chỉ, cụ thể là

  1. tăng gấp bốn lần
  2. Bộ ba

1. tăng gấp bốn lần

Để triển khai ba mã địa chỉ, bộ tứ có bốn trường. Tên của toán tử, toán hạng nguồn thứ nhất, toán hạng nguồn thứ hai và kết quả đều được chứa trong trường bộ bốn

trường tăng gấp bốn lần

Toán tử Nguồn 1 Nguồn 2 Đích

Ví dụ

P. = -q * r + s

Mã ba địa chỉ như sau

t1. = -q

t2. = r + s

t3. = t1 * t2

P. = t3

2. Bộ ba

Để triển khai ba mã địa chỉ, bộ ba có ba trường. Tên của toán tử, toán hạng nguồn thứ nhất và toán hạng nguồn thứ hai đều được chứa trong trường bộ ba

ba trường

Toán tử Nguồn 1 Nguồn 2

Ví dụ – p. = -q * r + s

Ba mã địa chỉ như sau

t1. = -q t2. = r + sM t3. = t1 * t2 p. = t3

vấn đề thực hành

Q1. Xét đoạn mã sau

x = u–t;

y = x * v;

x = y + w;

y = t – z;

y = x * y;

Số lượng biến tổng tối thiểu cần thiết để chuyển đổi đoạn mã trên thành biểu mẫu chuyển nhượng đơn tĩnh là _______

quý 2. Hãy xem xét mã trung gian đưa ra dưới đây

[1] tôi = 1

[2] j = 1

[3] t1 = 5*i

[4] t2 = t1+ j

[5] t3 = 4 * t2

[6] t4 = t3

[7] a[t4] = – 1

[8] j = j + 1

[9] nếu j < = 5 goto [3]

[10] tôi = tôi + 1

[11] nếu tôi < 5 goto [2]

Số nút và cạnh trong biểu đồ luồng điều khiển được xây dựng cho đoạn mã trên tương ứng là

  • [A] 5 và 7
  • [B] 6 và 7
  • [C] 5 và 5
  • [Đ] 7 và 8

Q3. Đối với chương trình C truy cập X[i][j][k], mã trung gian sau đây được tạo bởi trình biên dịch. Giả sử rằng kích thước của một số nguyên là 32 bit và kích thước của một ký tự là 8 bit

t0 = tôi * 1024

t1 = j * 32

t2 = k * 4

t3 = t1 + t0

t4 = t3 + t2

t5 = X[t4]

Phát biểu nào sau đây về mã nguồn của chương trình C là ĐÚNG?

[A] X được khai báo là “int X[32][32][8]”

[B] X được khai báo là “int X[4][1024][32]”

[C] X được khai báo là “char X[4][32][8]”

[D] X được khai báo là “char X[32][16][2]”

Cũng khám phá,

Phân tích cú pháp trong Ghi chú thiết kế trình biên dịch cho GATE . Sự khác biệt giữa Trình biên dịch và Trình thông dịch . Môi trường thời gian chạy trong thiết kế trình biên dịch

Câu hỏi thường gặp liên quan đến mã ba địa chỉ

Các đại diện của ba mã địa chỉ là gì?

Hai mã địa chỉ có thể được biểu diễn dưới hai dạng.
1. Tăng gấp bốn lần
2. Bộ ba

Hãy tiếp tục học và theo dõi để nhận thông tin cập nhật mới nhất về Kỳ thi GATE cùng với Tiêu chí đủ điều kiện, Giáo trình GATE cho CSE [Kỹ thuật khoa học máy tính], Ghi chú GATE CSE, Tài liệu câu hỏi GATE CSE, v.v.

Nó gán kết quả thu được sau khi giải biểu thức bên phải của toán tử gán cho toán hạng bên trái

 

2. Sao chép tuyên bố-

 

x = y

 

Đây,

  • x và y là toán hạng
  • = là toán tử gán

 

Nó sao chép và gán giá trị của toán hạng y cho toán hạng x

 

3. Nhảy có điều kiện-

 

Nếu x relop y goto X

 

Đây,

  • x & y là toán hạng
  • X là thẻ hoặc nhãn của câu lệnh đích
  • relop là toán tử quan hệ

 

Nếu điều kiện “x relop y” được thỏa mãn, thì-

  • Điều khiển được gửi trực tiếp đến vị trí được chỉ định bởi nhãn X
  • Tất cả các tuyên bố ở giữa được bỏ qua

 

Nếu điều kiện “x relop y” không thành công, thì-

  • Điều khiển không được gửi đến vị trí được chỉ định bởi nhãn X
  • Câu lệnh tiếp theo xuất hiện trong trình tự thông thường được thực thi

 

4. Nhảy vô điều kiện-

 

đi đến X

 

Ở đây, X là thẻ hoặc nhãn của câu lệnh đích

 

Khi thực hiện tuyên bố,

  • Điều khiển được gửi trực tiếp đến vị trí được chỉ định bởi nhãn X
  • Tất cả các tuyên bố ở giữa được bỏ qua

 

5. Cuộc gọi thủ tục-

 

tham số x gọi p trả về y

 

Ở đây, p là một hàm lấy x làm tham số và trả về y

 

BÀI TOÁN THỰC HÀNH DỰA TRÊN BA ĐỊA CHỈ MÃ-

 

Để giải quyết các vấn đề, hãy Tìm hiểu về Mối quan hệ ưu tiên và Tính liên kết của các toán tử

 

Vấn đề-01

 

Viết ba mã địa chỉ cho biểu thức sau-

a = b + c + d

 

Dung dịch-

 

Biểu thức đã cho sẽ được giải như-

 

 

Mã ba địa chỉ cho biểu thức đã cho là-

[1] T1 = b + c

[2] T2 = T1 + d

[3] một = T2

 

Vấn đề-02

 

Viết ba mã địa chỉ cho biểu thức sau-

-[a x b] + [c + d] – [a + b + c + d]

 

Dung dịch-

 

Mã ba địa chỉ cho biểu thức đã cho là-

[1] T1 = a x b

[2] T2 = âm T1

[3] T3 = c + d

[4] T4 = T2 + T3

[5] T5 = a + b

[6] T6 = T3 + T5

[7] T7 = T4 – T6

 

Vấn đề-03

 

Viết ba mã địa chỉ cho biểu thức sau-

Nếu A < B thì 1 khác 0

 

Dung dịch-

 

Mã ba địa chỉ cho biểu thức đã cho là-

[1] Nếu [A < B] chọn [4]

[2] T1 = 0

[3] goto [5]

[4] T1 = 1

[5]

 

Vấn đề-04

 

Viết ba mã địa chỉ cho biểu thức sau-

Nếu A < B và C < D thì t = 1 khác t = 0

 

Dung dịch-

 

Mã ba địa chỉ cho biểu thức đã cho là-

[1] Nếu [A < B] chọn [3]

[2] goto [4]

[3] Nếu [C < D] chọn [6]

[4] t = 0

[5] goto [7]

[6] t = 1

[7]

 

Cũng đọc- Các vấn đề khác về ba mã địa chỉ

 

Để hiểu rõ hơn về Three Address Code,

Xem Video bài giảng này

 

Tải xuống ghi chú viết tay tại đây-

 

 

Bài viết tiếp theo- Bộ tứ, Bộ ba và Bộ ba gián tiếp

 

Nhận thêm ghi chú và tài liệu học tập khác của Thiết kế trình biên dịch

Xem video bài giảng bằng cách truy cập kênh YouTube LearnVidFun của chúng tôi

Tóm lược

Tên bài viết

Ba mã địa chỉ. ví dụ

Sự miêu tả

Trong thiết kế trình biên dịch, Three Address Code là một dạng mã trung gian. Ba ví dụ về mã địa chỉ và các hình thức phổ biến. Mã ba địa chỉ được tạo bởi trình biên dịch để thực hiện tối ưu hóa mã

Ba mã địa chỉ với các ví dụ là gì?

Mã ba địa chỉ là một chuỗi các câu lệnh có dạng A−=B op C, trong đó A, B, C là các tên, hằng số do lập trình viên xác định hoặc . , the op represents an operator that can be constant or floatingpoint arithmetic operators or a Boolean valued data or a logical operator.

Các loại của ba tuyên bố địa chỉ là gì?

Mã ba địa chỉ là một dãy các câu lệnh có dạng tổng quát A. = B op C, trong đó A, B, C là tên do lập trình viên xác định, hằng số hoặc tên tạm thời do trình biên dịch tạo; . Nói một cách đơn giản, một mã có nhiều nhất ba địa chỉ trong một dòng được gọi là ba địa chỉ.

Làm thế nào các vòng lặp được phát hiện trong ba mã địa chỉ?

Để phát hiện các vòng lặp, chúng tôi sử dụng Phân tích luồng điều khiển [CFA] bằng Biểu đồ luồng chương trình [PFG]. .
f = 1;
tôi = 2;
nếu [i > x] goto 9
t1 = f*i;
f = t1;
t2 = i + 1;
tôi = t2;
goto[3]

Bộ tứ và bộ ba là gì?

Quadruple là một cấu trúc chứa tối đa bốn trường, i. e. , toán tử, Đối số 1, Đối số 2 và Kết quả. Bộ ba có ba trường đại diện cho ba mã địa chỉ . Trường bộ ba bao gồm tên của toán tử, toán hạng nguồn thứ nhất và toán hạng nguồn thứ hai.

Chủ Đề