Sự khác biệt giữa ngôn ngữ kịch bản (Scripting) và Ngôn ngữ lập trình (Programming Languages) là gì?
Về cơ bản, tất cả các ngôn ngữ kịch bản là ngôn ngữ lập trình. Sự khác biệt lý thuyết giữa hai ngôn ngữ kịch bản không yêu cầu biên dịch (compiled) và được thông dịch (interpreted). Ví dụ, thông thường, một chương trình C cần phải được biên dịch trước khi chạy trong khi thông thường, một ngôn ngữ kịch bản như JavaScript hoặc PHP không cần phải được biên dịch.
Nói chung, các chương trình biên dịch chạy nhanh hơn so với các chương trình thông dịch bởi vì chúng là mã máy gốc được chuyển đổi đầu tiên. Ngoài ra, trình biên dịch đọc và phân tích mã chỉ một lần, và báo cáo các lỗi chung mà mã có thể có, nhưng thông dịch sẽ đọc và phân tích các câu lệnh mã mỗi khi nó gặp họ và dừng lại ở trường hợp đó nếu có một số lỗi. Trong thực tế, sự khác biệt giữa hai là nhận được mờ do khả năng tính toán được cải thiện của phần cứng hiện đại và thực hành mã hóa tiên tiến.
Một điểm khác cần lưu ý là trong khi phân loại một ngôn ngữ là ngôn ngữ kịch bản hay ngôn ngữ lập trình, môi trường mà nó sẽ thực hiện phải được xem xét. Lý do tại sao điều này là quan trọng là chúng ta có thể thiết kế một thông dịch viên cho ngôn ngữ C và sử dụng nó như một ngôn ngữ kịch bản, và đồng thời, chúng ta có thể thiết kế một trình biên dịch cho JavaScript và sử dụng nó như một ngôn ngữ không biên kịch (biên dịch). Một ví dụ trực tiếp về điều này là V8, công cụ JavaScript của Google Chrome, biên dịch mã JavaScript thành mã máy, thay vì diễn giải nó.
Một số ngôn ngữ kịch bản truyền thống được sử dụng mà không có một bước biên dịch rõ ràng là: JavaScript, PHP, Python, VBScript.
Một số ngôn ngữ lập trình truyền thống được sử dụng với một bước biên dịch rõ ràng là: C, C++.
Ứng dụng của ngôn ngữ kịch bản:
- Tự động hóa một số tác vụ nhất định trong một chương trình
- Trích xuất thông tin từ tập dữ liệu
- Ít mã chuyên sâu hơn so với ngôn ngữ lập trình truyền thống
Ứng dụng ngôn ngữ lập trình:
- Họ thường chạy bên trong một chương trình cha như kịch bản
- Tương thích hơn trong khi tích hợp mã với các mô hình toán học
- Các ngôn ngữ như JAVA có thể được biên dịch và sau đó được sử dụng trên bất kỳ nền tảng nào