- TOP làm ột generic.
Ch ương 8: CÁC CHƯƠNG TRÌNHCON VÀ QUÁ TRÌNH TRÀN
8.4 CÁC KÝ HIỆU ( signature):
Trong các version trước của ngôn ngữ , nó không thể nhận dạng duy nhất 1 chương trình con overloaded hoặc bảng chử liệt kê overloaded . Ví dụ :
--two enumeration type declaration : type MYBIT is (‘0’,’1’);
type FOUR_VALUE is (‘U’,’0’,’1’,’Z’);
--two overloaded operator function declaration:
function “+” (A,B : BIT_VECTOR) return BIT_VECTOR ; function “-” (A,B : MVL_VECTOR) return MVL_VECTOR ;
Trong các khai báo kiểu liệt kê . ‘0’ và ‘1’ các chử liệt kê overloaded , trong khi trong 2 khai báo function ,“+” là 1 function toán tử overloaded . Nếu cần định nghĩa 1 alias cho function “+” đầu tiên hoặc 1 attribute cho tín hiệu ( Các alias và các attribute sẽđược bàn luận trong chương 10 ), nó không thể nhận ra duy nhất 1 function “+” trong version trước của ngôn ngữ . Trương tự nó không thể nhận dạng ra chử liệt kê ‘0’ và ‘1’ , 1 attribute có thể liên kết với 1 alias được tạo cho 1 trong 2 chửđó .
Các signature cung cấp phương pháp phân biệt các chương trình con overloaded và các chử liệt kê overloaded . Một signature xem như là các kiểu tham số và kiểu kết quả của 1 chương trình con overloaded hoặc 1 chử liệt kê overloaded . Một signature có dạng :
[ first_parameter_type , second_parameter_type, …
[ return function_return_type ]]
Chú ý phía ngoài dấu ngoặc vuông ( [] ) là phần cú pháp và các item không được mô tả . Đây là các signature khai báo function overloaded “+” :
[ BIT_VECTOR, BIT_VECTOR return BIT_VECTOR ] [ MVL_VECTOR, MVL_VECTOR return MVL_VECTOR ]
Để xác định tham số và các kiểu kết quả của 1 chử liệt kê , chử liệt kê giải quyết giống như 1 function không có tham số , với tên function giống như chử liệt kê và kiểu trả về của function là kiểu liệt kê . Ví dụ
một function chử liệt kê ‘0’ được khai báo phần trước trong kiểu MYBIT và FOUR_VALUE là :
function ‘0’ return MYBIT;
function ‘0’ return FOUR_VALUE;
Do đó các signature cho mỗi một chử liệt kê là :
[ return MYBIT ]
Các signature có thể sử dụng trong khai báo alias , đặc biệt là attribute và tên attribute nhận ra duy nhất 1 chương trình con overloaded hoặc 1 chử liệt kê overloaded . Các ví dụ có thể xem trong chương 10.