24/05/2018, 16:28

Các đặc trưng của ngôn ngữ cài đặt

Các đặc trưng được đánh giá ở đây gồm: đồng nhất (uniformity), sáng sủa (ambiguity), cô đọng (compactness), địa phương – cục bộ (locality), tuyến tính (linearity), dễ lập trình, dịch hiệu quả, khả chuyển. Tính sẵn có của công cụ trợ giúp, các bộ ...

Các đặc trưng được đánh giá ở đây gồm: đồng nhất (uniformity), sáng sủa

(ambiguity), cô đọng (compactness), địa phương – cục bộ (locality), tuyến tính

(linearity), dễ lập trình, dịch hiệu quả, khả chuyển. Tính sẵn có của công cụ trợ giúp, các bộ sinh mã và tính sẵn dùng của công cụ trợ giúp kiểm tra cũng được thêm vào nhằm làm tăng tính hấp dẫn của ngôn ngữ.

Tính đồng nhất là cách sử dụng ký hiệu nhất quán trong cả ngôn ngữ. Một ví dụ của sự không nhất quán trong Focus là việc sử dụng dấu ngoặc đơn cho tiêu đề bản báo cáo do người sử dụng tạo ra và dấu ngoặc kép của trang bản báo cáo. Ngôn ngữ không nhất quán cản trở người sử dụng học và dễ gây lỗi.

Tính sáng sủa đề cập đến mức độ con người và chương trình dịch bất đồng trong việc dịch các câu lệnh của ngôn ngữ. Lý tưởng nhất là ý nghĩa của con người tương tự với sự biên dịch của trình dịch và chương trình dịch ra giống sự nhận thức của con người. Thật không may, tính sáng sủa có những vấn đề cố hữu của mình, như các ứng dụng trí tuệ nhân tạo (ứng dụng suy luận trong cả tiến trình), khi thêm luật, cơ chế mới vào, sự thông dịch của dữ liệu, luật đó có lẽ cũng thay đổi.

Tính cô đọng của ngôn ngữ nằm ở sự ngắn gọn. Các đặc trưng của chương trình bao gồm sự kết cấu có cấu trúc, từ khoá và viết tắt, hàm có sẵn, đã đơn giản hoá việc lập trình. Tương phản với hai ngôn ngữ thế hệ bốn SQL và Focus là Cobol, ngôn ngữ thế hệ ba. Thực tế cho thấy 3 đến 5 dòng lệnh 4GLs tương đương với 50 đến 150 dòng lệnh trong ngôn ngữ Cobol. Thời gian học Focus ngắn hơn Cobol một phần là bởi tính cô động của ngôn ngữ.

Tính cô đọng bao hàm tính cục bộ trong việc cung cấp sự phân đoạn tự nhiên của mã lệnh, làm đơn giản hoá việc học, trực quan hoá từng phần của vấn đề và có thể mô phỏng các giải pháp. Tính cục bộ được cung cấp thông qua khối case, hoặc những cơ chế phân đoạn (chunks). Sự phân đoạn có lẽ được thực hiện thông qua thực thi đoạn mã trong ngôn ngữ Cobol, cấu trúc case trong ngôn ngữ Focus, hoặc định nghĩa đối tượng trong ngôn ngữ Smalltalk.

Tính tuyến tính đề cập đến mức độ có thể đọc mã một cách liên tiếp (tuần tự). Ngôn ngữ càng tuyến tính (tuần tự) thì càng dễ phân đoạn và hiểu đoạn mã. Tính tuyến tính đơn giản hoá việc hiểu và bảo trì. Trong ví dụ đoạn mã Cobol được chặt thành các đoạn và thực hiện.

Trong lựa chọn ngôn ngữ độ khó khi biên dịch cũng đóng một vai trò quan trọng. Nói chung, nhiều ngôn ngữ mô tả, ví dụ như SQL, đang được xem xét, cân nhắc trên cơ sở dễ dàng hơn khi dịch ra mã ngữ so với các ngôn ngữ thủ tục như Fortran. Mặc dù vậy, Prolog và các ngôn ngữ suy diễn khác tuy đơn giản trong việc mô tả và phát triển các luật đơn nhưng không tầm thường trong việc quyết định kết hợp các luật để tạo ra các tri thức đúng mới.

Tính hiệu quả của trình biên dịch nằm ở tính hiệu quả của mã assembler nhận được sau khi dịch. Tính hiệu quả đó thay đổi tuỳ theo ngôn ngữ và nhà sản xuất. Tính hiệu quả của trình biên dịch đặc biệt quan trọng khi lập trình một hệ thống máy bay hay các ứng dụng thường trú tương tác với các thành phần hệ thống như là một phần của hệ thống lớn.

Cùng với tính hiệu quả, tính khả chuyển của mã cũng rất quan trọng. Tính khả chuyển là khả năng đáp ứng của mã trên các cơ sở thực hiện khác nhau. Các cơ sở thực hiện bao gồm cả phần cứng, hệ điều hành, hay môi trường thực hiện phần mềm. Khi các ứng dụng dùng chung và phân tán càng phổ biến thì sự cần thiết đối với tính khả chuyển của ngôn ngữ sẽ càng tăng. Lý tưởng nhất, chương trình sẽ thực hiện được ở bất cứ nơi nào, trên bất cứ phần cứng hay hệ điều hành nào.

Tóm lại, nền tảng không đóng vai trò chính để phân biệt ngôn ngữ thì những tính đặc trưng của ngôn ngữ sẽ trở nên quan trọng trong việc lựa chọn ngôn ngữ.

0