Chuong 5- Kiem tra kieu

| CHƯƠNG V Kiểm tra kiểu Mục tiêu: Nắm được cách định nghĩa hệ thống kiểu trong các ngôn ngữ lập trình Cách kiểm tra kiểu trong quá trình biên dịch Biểu thức kiểu Kiểu của một ngôn ngữ lập trình được kí hiệu bởi các biểu thức kiểu (type expression). Biểu thức kiểu được định nghĩa như sau: Kiểu cơ sở là một biểu thức kiểu: boolean, char, integer, real, type_error, void Một tên kiểu là một biểu thức kiểu 3. Mỗi kiểu dữ liệu có cấu trúc là một biểu thức kiểu, các cấu trúc bao gồm: Mảng (array): Nếu T là một biểu thức kiểu thì array(I, T) là một biểu thức kiểu. Một mảng có tập chỉ số I và các phần tử có kiểu T Tích (product): Nếu T1, T2 là biểu thức kiểu thì tích Đề- các T1* T2 là biểu thức kiểu Bản ghi (record): Là cấu trúc bao gồm một bộ các tên trường, kiểu trường Con trỏ (pointer): Nếu T là một biểu thức kiểu thì pointer(T) là một biểu thức kiểu T Hàm (function): Hàm là một ánh xạ các phần tử của tập xác định (domain) D lên tập giá trị (range) R. Một hàm là một biểu thức kiểu D | CHƯƠNG V Kiểm tra kiểu Mục tiêu: Nắm được cách định nghĩa hệ thống kiểu trong các ngôn ngữ lập trình Cách kiểm tra kiểu trong quá trình biên dịch Biểu thức kiểu Kiểu của một ngôn ngữ lập trình được kí hiệu bởi các biểu thức kiểu (type expression). Biểu thức kiểu được định nghĩa như sau: Kiểu cơ sở là một biểu thức kiểu: boolean, char, integer, real, type_error, void Một tên kiểu là một biểu thức kiểu 3. Mỗi kiểu dữ liệu có cấu trúc là một biểu thức kiểu, các cấu trúc bao gồm: Mảng (array): Nếu T là một biểu thức kiểu thì array(I, T) là một biểu thức kiểu. Một mảng có tập chỉ số I và các phần tử có kiểu T Tích (product): Nếu T1, T2 là biểu thức kiểu thì tích Đề- các T1* T2 là biểu thức kiểu Bản ghi (record): Là cấu trúc bao gồm một bộ các tên trường, kiểu trường Con trỏ (pointer): Nếu T là một biểu thức kiểu thì pointer(T) là một biểu thức kiểu T Hàm (function): Hàm là một ánh xạ các phần tử của tập xác định (domain) D lên tập giá trị (range) R. Một hàm là một biểu thức kiểu D R Đặc tả một bộ kiểm tra kiểu đơn giản Trong phần này chúng ta mô tả một bộ kiểm tra kiểu cho một ngôn ngữ đơn giản trong đó kiểu của mỗi một định danh được khai báo trước khi sử dụng Bộ kiểm tra kiểu (type checker) là một lược đồ dịch, nó tổng hợp kiểu của mỗi biểu thức từ kiểu của các biểu thức con của nó Định nghĩa một ngôn ngữ đơn giản: Văn phạm sau sinh ra một chương trình, biểu diễn bởi một ký hiệu chưa kết thúc P chứa một chuỗi các khai báo D và một biểu thức đơn giản E P D ; E D D ; D | id : T T char | integer | array[num] of T | T E literal | num | id | E mod E | E [E] | E Ví dụ : Chương trình sau sinh bởi văn phạm trên key: integer; key mod 1999 Ta có lược đồ dịch để lưu trữ kiểu của một định danh P D ; E D D ; D D id : T {addtype(, ) } T char { := char } T integer { := integer } T T1 { := pointer() } T array[num] .

Không thể tạo bản xem trước, hãy bấm tải xuống
TỪ KHÓA LIÊN QUAN
TÀI LIỆU MỚI ĐĂNG
Đã phát hiện trình chặn quảng cáo AdBlock
Trang web này phụ thuộc vào doanh thu từ số lần hiển thị quảng cáo để tồn tại. Vui lòng tắt trình chặn quảng cáo của bạn hoặc tạm dừng tính năng chặn quảng cáo cho trang web này.