30/09/2018, 16:39
Sự khác nhau giữa thông dịch và biên dịch?
Em nghe nói Python là ngôn ngủ thông dịch vậy nó có những khác biệt nào so với các ngôn ngử thông dịch như pascal, c++, c# … Các bạn giải thích giùm mình nhé! Cảm ơn!
Bài liên quan
Hiểu nôm na thì biên dịch là dịch một lần hết toàn bộ mã nguồn của một chương trình còn thông dịch là chạy đến câu lệnh nào thì dịch câu lệnh đó. Ví dụ cổ điển là thông dịch giống như một thông dịch viên dịch tiếng Việt sang tiếng Anh cho một người nước ngoài trong khi giao tiếp trực tiếp, khi họ nghe đến câu nào thì dịch đến câu đó, còn biên dịch giống như dịch một cuốn sách, sau khi dịch toàn bộ cuốn sách mới đem tới cho người đọc.
Vậy dịch mã nguồn của một ngôn ngữ về thứ gì? Có thể dịch về mã máy (hợp ngữ), dịch về mã trung gian (như bytecode của java, hay mã trung gian của .Net) v.v…
Thực tế không có ngôn ngữ nào hoàn toàn là ngôn ngữ thông dịch hay biên dịch cả, chỉ là ngôn ngữ đó “ưu tiên” sử dụng cách nào hơn thôi. Mọi ngôn ngữ biên dịch đều có thể thông dịch. Chiều ngược lại thì có thể không đúng, vì một số ngôn ngữ thông dịch có khả năng thay đổi mã nguồn của mình trong quá trình chạy, Trong khi chạy, giai đoạn dịch về mã máy đối với các chương trình cấp cao đều là quá trình thông dịch.
Theo mình nghĩ một cách đơn giản thì trong dịch thuật:
Tương tự trong lập trình theo mình thì: