Các thành phần của ngôn ngữ lập trình

## Các thành phần cơ bản

Mỗi ngôn ngữ lập trình thường có ba thành phần cơ bản: **bảng chữ cái, cú pháp và ngữ nghĩa**.

**a. Bảng chữ cái:** Là tập các kí hiệu dùng để viết chương trình.

* Trong ngôn ngữ Pascal bảng chữ cái gồm: Các chữ cái trong bảng chữ cái tiếng Anh, các chữ số 0 -> 9 và một số kí tự đặc biệt

**b. Cú pháp:** là bộ qui tắc dùng để viết chương trình. cho ta biết cách viết một chương trình hợp lệ.

**c. Ngữ nghĩa:** xác định ý nghĩa thao tác cần phải thực hiên , ứng với tổ hợp kí tự dựa vào ngữ cảnh của nó

* Cú pháp cho biết cách viết một chương trình hợp lệ , còn ngữ nghĩa xác định ý nghĩa của các tổ hợp kí tự trong chương trình.

* Lỗi cú pháp được chương trình dịch phát hiện và thông báo cho người lập chương trình biết , chỉ có các chương trình không còn lỗi cú pháp mới có thể được dịch sang ngôn ngữ máy.

* Lỗi ngữ nghĩa chỉ được phát hiện khi thực hiện chương trình trên dữ liệu cụ thể

## Một số khái niệm

**a. Tên**

Mọi đối tượng trong chương trình đều phải được đặt tên theo quy tắc của ngôn ngữ lập trình và từng chương trình dịch cụ thể
Trong Turbo Pascal, tên là một dãy liên tiếp không quá 127 kí tự bao gồm chữ số , chữ cái hoặc dấu gạch dưới.
Trong chương trình dịch Free Pascal, tên có thể có độ dài tới 255 kí tự
Ngôn ngữ pascal không phân biệt chữ hoa, chữ thường trong tên. Một số ngôn ngữ lập trình khác (ví dụ C++) phân biệt chữ hoa, chữ thường
Tên không bắt đầu bằng chữ số, không chứa dấu cách, không chứa kí tự đặt biệt
Nhiều ngôn ngữ lập trình, trong đó có pascal, phân biệt ba loại tên.

- Tên dành riêng
- Tên chuẩn
- Tên cho người lập trình đặt
**Tên dành riêng:**

* Là những tên được ngôn ngữ lập trình quy định với ý nghĩa xác định

Mà người lập trình không thể dùng với ý nghĩa khác.

* Tên dành riêng còn được gọi là từ khóa

Ví dụ : Một số từ khóa

-Trong ngôn ngữ Pascal: program, var, uses, Begin, End…
-Trong ngôn ngữ C++: main, include, while, void…
**Tên chuẩn**

* Là những tên được NNLT dùng với ý nghĩa nào đó trong các thư viện của NNLT, tuy nhiên người lập trình có thể sử dụng với ý nghĩa khác
* Tên dành riêng còn được gọi là từ khóa.

Ví dụ Một số tên chuẩn

- Trong ngôn ngữ Pascal: Real, lnteger, Sin , Cos, Char…
- Trong ngôn ngữ C++: cin, cout, getchar…
Tên do người lập trình tự đặt

- Được xác định bằng cách khai báo trước khi sử dụng và không được trùng với tên dành riêng
- Các tên trong chương trình không được trùng nhau
**b. Hằng và biến**

**Hằng:** là các đại lượng có giá trị không đổi trong quá trình thực hiên chương trình

Các ngôn ngữ lập trình thường có:

* Hằng số học : số nguyên hoặc số thực
* Hằng xâu: là chuổi kí tự đặt trong cặp dấu nháy đơn “hoặc cặp dấu nháy kép tùy theo NNLT“’’. Trong pascal hằng đặt trong cặp nháy đơn.
* Hằng logic: là các giá trị đúng hoặc sai

**Biến:**

- Là đại lượng được đặt tên , giá trị có thể thay đổi được trong chương trình
- Các NNLT có nhiều loại biến khác nhau
- Biến phải khai báo trước khi sử dụng
**c. Chú thích**

* Trong khi viết chương trình có thể viết các chú thích cho chương trình. Chú thích không làm ảnh hưởng đến chương trình
* Trong pascal chú thích được đặt trong (và) hoặc (\*và\*)
* Trong C++, chú thích đặt trong /\* và \*/.