Ngôn Ngữ Lập Trình Là Gì?

Ngôn ngữ lập trình là một ký hiệu để viết chương trình, là các đặc tả của một phép tính hoặc thuật toán. Một số tác giả hạn chế thuật ngữ “ngôn ngữ lập trình” đối với những ngôn ngữ có thể thể hiện tất cả các thuật toán có thể. Các đặc điểm thường được coi là quan trọng đối với những gì cấu thành một ngôn ngữ lập trình bao gồm:

Chức năng và mục tiêu
Ngôn ngữ lập trình máy tính là ngôn ngữ được sử dụng để viết các chương trình máy tính, liên quan đến việc một máy tính thực hiện một số loại tính toán hoặc thuật toán và có thể điều khiển các thiết bị bên ngoài như máy in, ổ đĩa, robot,… Ví dụ, các chương trình PostScript thường được tạo bởi một chương trình khác để điều khiển máy in hoặc màn hình máy tính. Tổng quát hơn, một ngôn ngữ lập trình có thể mô tả tính toán trên một số máy, có thể là trừu tượng. Người ta thường chấp nhận rằng một đặc tả hoàn chỉnh cho một ngôn ngữ lập trình bao gồm một mô tả, có thể được lý tưởng hóa, về một máy hoặc bộ xử lý cho ngôn ngữ đó. Trong hầu hết các ngữ cảnh thực tế, một ngôn ngữ lập trình liên quan đến máy tính; do đó, các ngôn ngữ lập trình thường được định nghĩa và nghiên cứu theo cách này. Ngôn ngữ lập trình khác với ngôn ngữ tự nhiên ở chỗ ngôn ngữ tự nhiên chỉ được sử dụng để tương tác giữa con người với nhau, trong khi ngôn ngữ lập trình cũng cho phép con người truyền đạt các hướng dẫn cho máy móc.
Tóm tắt
Ngôn ngữ lập trình thường chứa các trừu tượng để xác định và thao tác với cấu trúc dữ liệu hoặc kiểm soát luồng thực thi. Sự cần thiết thực tế mà một ngôn ngữ lập trình hỗ trợ đầy đủ trừu tượng được thể hiện bằng nguyên tắc trừu tượng. Nguyên tắc này đôi khi được xây dựng như một khuyến nghị cho lập trình viên để sử dụng hợp lý những điều trừu tượng đó.
Sức mạnh biểu đạt
Lý thuyết tính toán phân loại ngôn ngữ theo các tính toán mà chúng có khả năng diễn đạt. Tất cả các ngôn ngữ hoàn chỉnh của Turing có thể triển khai cùng một bộ thuật toán. ANSI/ISO SQL-92 và Charity là những ví dụ về ngôn ngữ chưa hoàn chỉnh Turing, nhưng thường được gọi là ngôn ngữ lập trình.

Các ngôn ngữ đánh dấu như XML, HTML hoặc troff, xác định dữ liệu có cấu trúc, thường không được coi là ngôn ngữ lập trình. Tuy nhiên, ngôn ngữ lập trình có thể chia sẻ cú pháp với các ngôn ngữ đánh dấu nếu ngữ nghĩa tính toán được xác định. Ví dụ, XSLT là một ngôn ngữ hoàn chỉnh Turing hoàn toàn sử dụng cú pháp XML. Hơn nữa, LaTeX, phần lớn được sử dụng để cấu trúc tài liệu, cũng chứa một tập con hoàn chỉnh Turing.

Thuật ngữ ngôn ngữ máy tính đôi khi được sử dụng thay thế cho ngôn ngữ lập trình. Tuy nhiên, cách sử dụng của cả hai thuật ngữ khác nhau giữa các tác giả, bao gồm cả phạm vi chính xác của mỗi thuật ngữ. Một cách sử dụng mô tả các ngôn ngữ lập trình như một tập hợp con của các ngôn ngữ máy tính. Tương tự như vậy, các ngôn ngữ được sử dụng trong máy tính có mục tiêu khác với mục đích thể hiện các chương trình máy tính là các ngôn ngữ máy tính được chỉ định chung. Ví dụ, các ngôn ngữ đánh dấu đôi khi được gọi là ngôn ngữ máy tính để nhấn mạnh rằng chúng không được sử dụng để lập trình.

Một cách sử dụng khác coi ngôn ngữ lập trình là cấu trúc lý thuyết để lập trình máy trừu tượng và ngôn ngữ máy tính là tập hợp con của chúng chạy trên máy tính vật lý có tài nguyên phần cứng hữu hạn. John C. Reynolds nhấn mạnh rằng các ngôn ngữ đặc tả hình thức cũng giống như các ngôn ngữ lập trình giống như các ngôn ngữ dùng để thực thi. Ông cũng lập luận rằng các định dạng đầu vào văn bản và thậm chí đồ họa ảnh hưởng đến hoạt động của máy tính là ngôn ngữ lập trình, mặc dù thực tế là chúng thường không hoàn chỉnh và nhận xét rằng sự thiếu hiểu biết về các khái niệm ngôn ngữ lập trình là lý do dẫn đến nhiều sai sót trong các định dạng đầu vào.

Nguồn Wikipedia