Ngôn ngữ lập trình đã không còn quá xa lạ với cộng đồng lập trình viên. Với sự trợ giúp của các ngôn ngữ lập trình, các lập trình viên có thể viết các ứng dụng trên nhiều nền tảng khác nhau, theo các kiến trúc khác nhau. Một trong các nhánh chính của ngôn ngữ lập trình chính là ngôn ngữ lập trình bậc cao. Vậy chính xác thì khái niệm ngôn ngữ bậc cao là gì? Tất cả sẽ được giải đáp trong bài viết dưới đây.
Contents
Ngôn ngữ lập trình bậc cao
Trong khoa học máy tính, một ngôn ngữ lập trình bậc cao (tiếng Anh: high-level programming language) là một ngôn ngữ lập trình có sự trừu tượng hóa mạnh mẽ khỏi các chi tiết của máy tính. So với các ngôn ngữ lập trình bậc thấp (low-level programming language), nó có thể sử dụng các yếu tố ngôn ngữ tự nhiên, dễ sử dụng hơn, hoặc có thể tự động (hoặc thậm chí che giấu hoàn toàn) các khu vực quan trọng của các hệ thống điện toán (ví dụ, quản lý bộ nhớ (memory management)), làm quá trình phát triển chương trình đơn giản hơn và tương đối dễ hiểu hơn so với một ngôn ngữ bậc thấp. Lượng trừu tượng hóa được cung cấp định nghĩa một ngôn ngữ lập trình có bậc cao tới mức nào.
Vào thập niên 1960, các ngôn ngữ lập trình bậc cao sử dụng một compiler (trình biên dịch) thường được gọi là autocode (mã tự động Ngôn ngữ lập trình cấp cao đầu tiên được thiết kế cho máy tính là Plankalkül, được tạo ra bởi Konrad Zuse.
Tuy nhiên, nó đã không được thực hiện trong thời đại của ông, và những đóng góp ban đầu của ông phần lớn bị cô lập với những phát triển khác do Thế chiến thứ hai, ngoài ảnh hưởng của ngôn ngữ đối với ngôn ngữ ” Superplan ” của Heinz Rutishauser và ở một mức độ nào đó của Algol. Ngôn ngữ cấp cao đầu tiên trên diện rộng đáng kể là Fortran, một sự phát triển máy độc lập trước đó của IBM Autocode hệ thống.
Algol, được xác định vào năm 1958 và 1960 bởi các ủy ban gồm các nhà khoa học máy tính châu Âu và Mỹ, đã giới thiệu phép đệ quy cũng như các hàm lồng nhau dưới phạm vi từ vựng. Nó cũng là ngôn ngữ đầu tiên có sự phân biệt rõ ràng giữa giá trị và tên-các tham số và ngữ nghĩa tương ứng của chúng.
Algol cũng giới thiệu một số khái niệm lập trình có cấu trúc, chẳng hạn như cấu trúc while-do và if-then-else và cú pháp của nó là cấu trúc đầu tiên được mô tả bằng ký hiệu chính thức – ” Backus – Naur form ” (BNF). Trong cùng khoảng thời gian đó, Cobol đã giới thiệu các bản ghi (còn gọi là cấu trúc) và Lisp lần đầu tiên giới thiệu một trừu tượng lambda tổng quát đầy đủ trong một ngôn ngữ lập trình.
Xem thêm:
- Mã Morse là gì
- Segmentation là gì
Các đặc điểm
“Ngôn ngữ cấp cao” đề cập đến cấp độ trừu tượng cao hơn từ ngôn ngữ máy. Thay vì xử lý các thanh ghi, địa chỉ bộ nhớ và ngăn xếp cuộc gọi, ngôn ngữ cấp cao xử lý các biến, mảng, đối tượng, biểu thức số học hoặc boolean phức tạp, chương trình con và hàm, vòng lặp, luồng, khóa và các khái niệm khoa học máy tính trừu tượng khác, với trọng tâm về khả năng sử dụng so với hiệu quả chương trình tối ưu. Không giống như các ngôn ngữ hợp ngữ cấp thấp, các ngôn ngữ cấp cao có rất ít, nếu có, các phần tử ngôn ngữ có thể dịch trực tiếp sang các mã opcodes gốc của máy.
Các tính năng khác, chẳng hạn như quy trình xử lý chuỗi, các tính năng ngôn ngữ hướng đối tượng và đầu vào / đầu ra tệp, cũng có thể có mặt. Một điều cần lưu ý về các ngôn ngữ lập trình bậc cao là các ngôn ngữ này cho phép lập trình viên được tách rời và tách rời khỏi máy. Nghĩa là, không giống như các ngôn ngữ cấp thấp như hợp ngữ hoặc ngôn ngữ máy, lập trình cấp cao có thể khuếch đại các lệnh của lập trình viên và kích hoạt rất nhiều chuyển động dữ liệu trong nền mà họ không biết. Trách nhiệm và quyền lực thực hiện các lệnh đã được giao cho máy từ lập trình viên.
Giá phải trả cho việc trừu tượng hóa
Các ngôn ngữ cấp cao có ý định cung cấp các tính năng chuẩn hóa các tác vụ phổ biến, cho phép gỡ lỗi phong phú và duy trì thuyết bất khả tri kiến trúc; trong khi các ngôn ngữ cấp thấp thường tạo ra mã hiệu quả hơn thông qua việc tối ưu hóa cho một kiến trúc hệ thống cụ thể. Hình phạt trừu tượng là chi phí mà các kỹ thuật lập trình cấp cao phải trả cho việc không thể tối ưu hóa hiệu suất hoặc sử dụng một số phần cứng nhất định vì chúng không tận dụng được một số tài nguyên kiến trúc cấp thấp nhất định.
Lập trình cấp cao thể hiện các tính năng như cấu trúc và hoạt động dữ liệu chung hơn, diễn giải thời gian chạy và tệp mã trung gian; thường dẫn đến việc thực hiện nhiều hoạt động hơn mức cần thiết, tiêu thụ bộ nhớ cao hơn và kích thước chương trình nhị phân lớn hơn
Các ngôn ngữ cấp cao có thể được cải thiện khi các nhà thiết kế của họ phát triển các cải tiến. Trong các trường hợp khác, các ngôn ngữ cấp cao mới phát triển từ một hoặc nhiều ngôn ngữ khác với mục tiêu tổng hợp các cấu trúc phổ biến nhất với các tính năng mới hoặc cải tiến.
Một ví dụ về điều này là Scala duy trì khả năng tương thích ngược với Java có nghĩa là các chương trình và thư viện được viết bằng Java sẽ tiếp tục sử dụng được ngay cả khi một cửa hàng lập trình chuyển sang Scala; điều này làm cho quá trình chuyển đổi dễ dàng hơn và tuổi thọ của mã hóa cấp cao như vậy là vô thời hạn. Ngược lại, các chương trình cấp thấp hiếm khi tồn tại ngoài kiến trúc hệ thống mà chúng được viết cho mà không cần sửa đổi lớn. Đây là kỹ thuật ‘đánh đổi’ cho ‘Hình phạt vì việc trừu tượng hóa’.
Tham khảo thêm
- Tìm hiểu về nam châm điện là gì? – Vật lý 9
- Lựa chọn tốt nhất bảo mật cho WiFi WPA2 WPA 3 WEP WPA là gì?
Lời kết:
Hy vọng bài viết trên đây đã cung cấp cho bạn những thông tin cần thiết về ngôn ngữ lập trình bậc cao là gì, những ngôn ngữ lập trình phổ biến hiện nay cũng như sự khác biệt cơ bản giữa ngôn ngữ lập trình bậc cao và ngôn ngữ lập trình bậc thấp. Ngoài ra Xuyenvietmedia còn cung cấp nhiều dịch vụ khác như: dịch vụ viết bài seo, dịch vụ quản trị web, dịch vụ thiết kế web, dịch vụ mua bán web, dịch vụ backlink, seo tổng thể…