30/09/2018, 20:27
Điểm khác biệt giữa ngôn ngữ kịch bản và các ngôn ngữ khác?
Mọi người cho mình hỏi điểm khác nhau giữa ngôn ngữ kịch bản (script language) vd JavaScript và các ngôn ngữ lập trình khác vd C++ là thế nào, có thể cho mình ví dụ cụ thể được không?
Bài liên quan
Ngôn ngữ kịch bản (scripting language) đa phần là thông dịch để sử dụng được mà không cần biên dịch. Dễ hiểu thông dịch là viết code tới đâu nó chạy tới đó được, gặp lỗi không nghiêm trọng thì bỏ qua lỗi/ thông báo lỗi rồi chạy tiếp, lỗi nghiêm trọng thì đứng lại đó.
Còn ngôn ngữ như C++ là ngôn ngữ biên dịch, bạn không thể gõ từng dòng cho nó chạy mà phải viết hoàn chỉnh một đoạn mã rồi compile nó ra dạng mã máy hoặc ít nhất là byte code rồi mới chạy được.
Có những ngôn ngữ là thông dịch nhưng bạn vẫn có thể biên dịch để chạy.
Ví dụ: Python là ngôn ngữ scripting, bạn có dòng lệnh để tương tác khi học, gõ tới đâu nó làm tới đó. Nhưng với C++ hay Java thì bạn không làm được điều đó.
Nhìn chung, nếu cố ép thì trong một số trường hợp có những ngôn ngữ ta đều làm scripting được nhưng mà cách ấy thì rất là đau thương, chạy chậm.
Để biết ngôn ngữ đó thuộc loại thông dịch hay biên dịch thì đọc về lịch sử của nó, và tác giả của nó xếp nó vào loại nào thì ta cứ tin như vậy, không cần phải lý luận lôi thôi kiểu tại sao 2+2=4.
Phân tích quá chuẩn, hay nhất là phần kết luận
Rất khó phán xét một ngôn ngữ là scripting language hay không vào thời nay vì sự ngày càng ôm đồm và đa nền của các ngôn ngữ.
Có rất nhiều tranh luận về việc này và cũng chẳng có hồi kết.
Bạn phân biệt rõ Interpreter và Compiler là đủ
Và Scripting Language thì thường dùng Interpreter và dễ viết, dễ đọc.