Nhập môn Chương trình dch
Hc kì II 2006-2007
Bài 09: Phân tích ngnghĩa
Nhc vic
Np bài tp lp trình s1: tun sau
Phân tích ngnghĩa
Tìm tt ccác li còn li của chương trình
ngun
Khai báo biến
Kim tra kiu (kiu tĩnh)
Thiết lp các thông tin cn thiết cho các
bước dịch sau đó
Kiu ca các biu thc
Btrí dliu
Kim tra ngnghĩa – đ quy
Ta đã có cây pháp
Duyt cây pháp bng phương pháp đệ quy, tới thăm tất c
các nút trong cây
Ti mi nút, xây dng các thông tin cn thiết (thông tin vkiu)
class Add extends Expr {
Expr e1, e2;
Type typeCheck() throws SemanticError {
Type t1 = e1.typeCheck(), t2 = e2.typeCheck();
if (t1 == Int && t2 == Int) return Int;
else throw new TypeCheckError(“type error +”);
}
}
Kim tra kiu ca tên
class Id extends Expr {
String name;
Type typeCheck() {
return ?
}
}
Cần lưu giữ thông tin vkiu ca các tên
xut hin trong phm vi (scope) ca
chương trình: bng hiu(symbol table)