- Quỏ trỡnh tớnh ∆i j VD: tớnh ∆ 2 4, Tớnh:
3. MỘT SỐ VẤN ĐỀ KHÁC CỦA KIỂM TRA KIỂU 1 Sự tương đương của kiểu biểu thức.
3.1. Sự tương đương của kiểu biểu thức.
Nhiều luật cú dạng “if kiểu của 2 biểu thức giống nhau thỡ trả về kiểu đú else trả về type _error” Vậy làn sao để xỏc định chớnh xỏc khi nào thỡ 2 kiểu biểu thức là tương đương?
Function sequiv(s,t): boolean; begin
if s và t cựng kiểu cơ sở then return true; else if s = array (s1,s2) and t = array (t1,t2) then return sequiv(s1,t1) and sequiv(s2,t2)
else if s=pointer(s1) and t=pointer(t1) then return sequiv(s1,t1)
else if s=s1 → s2 and t = t1 → t2 then return sequiv(s1,t1) and sequiv(s2,t2)
else return false; end;
3.2. Đổi kiểu.
Xột biểu thức dạng : x+i, (x: kiểu real, i kiểu integer)
Biểu diễn real và integer trong mỏy tớnh là khỏc nhau đồng thời cỏch thực hiện phộp cộng đối với số real và số integer khỏc nhau. Để thực hiện phộp cộng, trớc tiờn chương trỡnh
dịch đổi cả 2 toỏn tử về một kiểu (kiểu real) sau đú thực hiện cộng.
Bộ kiểm tra kiểu trong chương trỡnh dịch được dựng để chốn thờm phộp toỏn vào cỏc biểu diễn trung gian của chương trỡnh nguồn.
Vớ dụ: chốn thờm phộp toỏn inttoreal (dựng chuyển một số integer thành số real) rồi mới thực hiện phộp cộng số thực real + như sau: xi inttoreal real +
* ẫp kiểu:
Một phộp đổi kiểu được gọi là khụng rừ (ẩn) nếu nú thực hiện một cỏch tự động bởi chương trỡnh dịch, phộp đổi kiểu này cũn gọi là ộp kiểu. (ộp kiểu thường gõy
mất thụng tin)
Một phộp đổi kiểu được gọi là rừ nếu người lập trỡnh phải viết số thứ để thực hiện phộp đổi này. Vớ dụ:
Sản xuất Luật ngữ nghĩa
E → Số E.type:= integer E → Số.số E.type:= real
E → E1 op E2
E,type:= if E1.type = integer and E2.type = integer Then integer Else if E1.type = integer and E2.type = real Then real Else if E1.type = real and E2.type = integer Then real Else if E1.type = real and E2.type = real Then real Else type_error
3.3. Định nghĩa chồng của hàm và cỏc phộp toỏn.
Kớ hiệu chồng là kớ hiệu cú nhiều nghĩa khỏc nhau phụ thộc vào ngữ cảnh của nú.
VD: + là toỏn tử chồng, A+B ý nghĩa khỏc nhau đối với từng trường hợp A,B là số nguyờn, số thực, số phức, ma trận…
Định nghĩa chồng cho phộp tạo ra nhiều hàm khỏc nhau nhưng cú cựng một tờn. Để xỏc định thực sự dựng định nghĩa chồng nào ta phải căn cứ vào ngữ cảnh lỳc ỏp dụng.
Điều kiện để thực hiện toỏn tử chồng là phải cú sự khỏc nhau về kiểu hoặc số tham số. Do đú ta cú thể dựa vào luật ngữ nghĩa để kiểm tra kiểu và gọi cỏc hàm xử lý.
CHƯƠNG 7 BẢNG KÍ HIỆU.