TRONG CHẾ ĐỘ BIÊN DỊCH, MỘT CHƯƠNG CÂU LỆNH ĐÚNG VỀ CÚ PHÁP NẾU CÁC BIẾN ĐÃ ĐƯỢC KHAI TRÌNH ĐÃ ĐƯỢC DỊCH THÔNG SUỐT, HỆ THỐNG KHÔNG BÁO TRƯỚC
Câu 1: trong chế độ biên dịch, một chương
câu lệnh đúng về cú pháp nếu các biến đã được khai
trình đã được dịch thông suốt, hệ thống không
báo trước .Nếu a và b khai báo kiểu integer ( giá trị từ
báo lỗi.Có thể khẳng định rằng ta đã có một
-32768 đến 32767)
chương trình đúng hay chưa?Tại sao?
Nếu cho a=20000, b=15000 thì Z thuộc kiểu longint thì
câu lệnh vẫn sai về ngữ nghĩa trong TP vì nó qui định
cộng hai số integer thì phải trả về cùng kiểu. Nhưng
với Free Pascal thì không lỗi.
Nếu khai báo a,b thuộc longint thì mới đúng.
Lỗi ngữ nghĩa sinh ra khi không đáp ứng yêu cầu ngữ
nghĩa của ngôn ngữ hoặc chương trình dịch cụ thể.