A. Tóm tắt lí thuyết
- Cần có chương trình dịch để chuyển chương trình nguồn thành chương trình đích.
- Có hai loại chương trình dịch: thông dịch và biên dịch.
- Các thành phần của ngôn ngữ lập trình: bảng chữ cái, cú pháp và ngữ nghĩa
- Mọi đối tượng trong chương trình đều phải được đặt tên:
+ Tên dành riêng: Được dùng với ý nghĩa riêng, không được dùng với ý nghĩa khác.
+ Tên chuẩn: Tên dùng với ý nghĩa nhất định, khi cần dùng với ý nghĩa khác thì phải khai báo.
+ Tên do người lập trình đặt: cần khai báo trước khi sử dụng.
- Hằng: Đại lượng có giá trị không thay đổi trong quá trình thực hiện chương trình.
- Biến: Đại lượng được đặt tên. Giá trị của biến có thể thay đổi trong quá trình thực hiện chương trình.
B. Giải bài tập
1. Tại sao người ta phải xây dựng các ngôn ngữ lập trình bậc cao?
Người ta phải xây dựng các ngôn ngữ lập trình bậc cao, bởi những lí do sau:
- Ngôn ngữ lập trình bậc cao gần với ngôn ngữ tự nhiên hơn, thuận tiện cho đông đảo người lập trình (không chỉ cho những người lập trình chuyên nghiệp).
- Ngôn ngữ lập trình bậc cao nói chung không phụ thuộc vào loại máy, cùng một chương trình có thể thực hiện trên nhiều loại máy khác nhau.
- Chương trình viết bằng ngôn ngữ bậc cao dễ hiểu, dễ hiệu chỉnh và dễ nâng cấp hơn.
- Ngôn ngữ lập trình bậc cao cho phép làm việc với nhiêu kiểu dữ liệu và cách tổ chức dữ liệu da dạng, thuận tiện cho mô tả thuật toán.
2. Chương trình dịch là gì? Tại sao cần phải có chương trình dịch?
Chương trình dịch là chương trình đặc biệt, có chức năng chuyển đổi chương trình được viết trên ngôn ngữ Lập trình bậc cao thành chương trình thực hiện được trên máy tính cụ thể.
- Chúng ta cần phải có chương trình dịch bởi vì chương trình dịch có chức năng chuyển đổi chương trình được viết bằng ngôn ngữ lập trình bậc cao thành chương trình thực hiện được trên máy cụ thể. Nó nhận đầu vào là chương trình viết bằng ngôn ngữ lập trình bậc cao (chương trình nguồn) là dữ liệu vào (Input), thực hiện chuyển đổi bằng ngôn ngữ máy (chương trình đích) là kết quả ra (Output).
Ngoài ra, chương trình dịch trải qua hai giai (đoạn: phân tích và tổng hợp. Giai đoạn phân tích nhằm phân tích chương trình nguồn về từ vựng và cú pháp. Giai đoạn tổng hợp nhằm tạo ra chương trình đích gồm ba bước, đó là:
- Sinh mã trung gian (chuyển chương trình nguồn về chương trình trung gian);
- Tối ưu mã (chỉnh sửa tối ưu chương trình trung gian);
- Sinh mã (tạo chương trình đích từ chương trình trung gian đã tối ưu).
3. Biên dịch và thông dịch khác nhau như thế nào?
Biên dịch và thông dịch khác nhau ở những điểm sau:
- Trình biên dịch duyệt, kiểm tra, phát hiện lỗi, xác định chương trình nguồn có dịch được không. Dịch toàn bộ chương trình nguồn thành một chương trình dịch có thể thực hiện trên máy và có thể lưu trữ lại để sử dụng về sau khi cần thiết.
Trình thông dịch lần lượt dịch từng câu lệnh ra ngôn ngữ máy rồi thực hiện ngay câu lệnh vừa dịch được hoặc thông báo lỗi nếu không dịch được.
4. Hãy cho biết các điểm khác nhau giữa tên dành riêng và tên chuẩn?
Các điểm khác nhau giữa tên dành riêng và tên chuẩn, đó là: tên dành riêng không được dùng khác với ý nghĩa xác định, tên chuẩn có thể dùng với ý nghĩa khác.
5. Hãy tự viết ra ba tên đúng theo quy tắc của Pascal và có độ dài khác nhau.
Ba tên đúng theo quy tắc của Pascal và có độ dài khác nhau:
tinhoc
tin_hoc_2007
hanoi2007
Lưu ý: Tên trong Pascal được đặt theo quy tắc sau đây:
- Chỉ bao gồm chữ cái, chữ số và dấu gạch dưới;
- Không bắt đầu bằng chữ sổ;
- Độ dài theo quy định của trình dịch (Turbo Pascal không quá 127 kí tự:, Free Pascal không quá 255 kí tự).
Tuy nhiên, tên không nên đặt quá dài hay quá ngắn mà nên đặt sao cho gợi nhớ ý nghĩa đối tượng mang tên đó.
6. Hãy cho biết những biểu diễn nào dưới đây không phải là biểu diễn hàng trong Pascal và chỉ rõ lỗi trong từng trường hợp:
a)150.0
b) -22
c) 6.23
d)‘43’
e) A20)
f)1.06F.-15
g) 4+6
h)‘C
i) ‘TRUH’
Những biểu diễn sau đây không phải là hằng trong Pascal:
Biểu diễn |
Diễn giải |
c) 6,23 |
Dấu phẩy phải thay bằng dấu chấm (.) |
e) A20 |
Là tên chưa có giá trị |
Chú ý.
Biểu diễn |
Diễn giải |
g) 4+6 |
Là biểu thức hằng trong Pascal chuẩn cũng được coi là hằng trong Turbo Pascal (TP) |
h) ‘C |
Sai qui định về hằng xâu: thiếu dấu nháy đơn ở cuối |
i) ‘TRUE’ |
Là hằng xâu nhưng không phải là hằng lôgíc |