Biên dịch là gì thông dịch là gì

-thông dịch(interpreter) dịch từng lệnh 1 thông qua chương trình ta gọi là trình thông dịch(interpreter) lần sau chạy lại thì phải trình thông dịch lại. file.Biên dịch(compiler) dịch toàn bộ thông qua chương trình ta gọi là trình biên dịch(compiler), dịch 1 lần và sử dụng mãi mãi không cần biên dịch nữa.

-(compiler) giống như nhà biên dịch dịch cuốn sách tiếng anh sang tiếng việt chỉ dịch 1 lần nhưng có thể in bán ra hàng ngàn cuốn.

Biên dịch là gì thông dịch là gì

  • Khác biệt giữa biên dịch và thông dịch
  • Ngôn ngữ biên dịch và thông dịch
    • Ngôn ngữ C++
    • Ngôn ngữ Java
  • Bảng so sánh

Chúng ta khi nhắc đến các ngôn ngữ lập trình thường nhắc đến cụm từ biên dịch (compiled) và thông dịch (interpreted). Vậy thực sự chúng là gì?

Khả năng nhận thức của con người và một thiết bị điện tử như máy tính là khác nhau. Con người có thể hiểu bất cứ điều gì thông qua các ngôn ngữ tự nhiên, nhưng một máy tính thì không thể. Máy tính cần một trình dịch để chuyển đổi các ngôn ngữ được viết ở dạng mà con người có thể đọc thành dạng mà máy tính có thể đọc.

Khác biệt giữa biên dịch và thông dịch

Trình biên dịch (compiler) và trình thông dịch (interpreter) là các loại trình dịch ngôn ngữ chuyển đổi các đoạn mã lập trình sang ngôn ngữ máy. Điểm khác nhau giữa biên dịch và thông dịch nằm ở quá trình chuyển đổi và thực thi.

  • Thông dịch là khi chạy chương trình, ngôn ngữ mới được dịch sang ngôn ngữ máy và thực thi
  • Biên dịch là trước khi chạy, chương trình sẽ dịch toàn bộ thành mã máy rồi mới tiến hành thực thi.
Biên dịch là gì thông dịch là gì

Chính vì vậy ngôn ngữ thông dịch sẽ dễ hiện thực hơn do bỏ qua việc kiểm tra lỗi và tối ưu code thường được thực hiện trong quá trình compiled. Đồng thời hỗ trợ hoạt động đa nền tảng, mã nguồn có thể thực thi mọi nơi mọi lúc mà không cần biên dịch.

Tuy nhiên nhược điểm của thông dịch là:

  • Độ tin cập thấp hơn do không qua bước check syntax tại quá trình complier
  • Tốc độ thực thi chậm hơn đáng kể so với các ngôn ngữ trình biên dịch
  • Dễ bị lọt lộ dịch ngược code

Ngôn ngữ biên dịch và thông dịch

Ngôn ngữ C++

Trong ví dụ này, C++ là ngôn ngữ lập trình biên dịch, Visual Studio là trình biên dịch và Windows là hệ điều hành; quá trình đó được tóm tắt ngắn gọn như sau:

  • 1. Viết code C++ bằng Visual Studio và nhấn F5 (hay 1 nút nào đó ra lệnh chạy).
  • 2. Visual Studio dịch các file .cpp  của bạn ra các file .dll  và .exe .
  • 3. Windows sẽ thực thi các file .dll  và .exe  cho bạn.

Ngôn ngữ Java

Java là một ngôn ngữ thông dịch điển hình. Các bạn viết mã nguồn Java bằng Netbean trên Linux và lại nhấn… F5, chương trình sẽ được thực thi. Vậy thì trong này, Netbean là trình biên dịch, Linux là hệ điều hành.
Vậy thì trình thông dịch đâu? Thôi đọc tiếp đi.

  1. Viết code Java
  2. Netbean sẽ dịch các file .java  thành các file .class … hay còn gọi là Java byte code
  3. Các file Java byte code sẽ được thực thi bởi JVM (Java virtual machine). JVM chính là trình thông dịch mà mình chưa nhắc tới.
  4. Và dĩ nhiên, JVM phải chạy trên nền Linux rồi

Ngoài Java còn có 1 số NNLT thông dịch phổ biến khác như:

  • C#, cậu chàng nổi tiếng này lưu mã nguồn trong file .cs  và được .NET framework chạy (chủ yếu) trên nền Windows.
  • T-SQL và PL/SQL được SQL engine thực thi trên rất nhiều hệ điều hành khác nhau sau khi được biên dịch.

Thông thường, các ngôn ngữ lập trình thông dịch rất gần gũi với ngôn ngữ tự nhiên, dễ đọc, dễ hiểu, chạy trên nhiều hệ điều hành khác nhau… Nhưng mà nó… chậm lắm.

Bảng so sánh

Tiêu chíTrình biện dịchTrình thông dịch
Đầu vào Toàn bộ trường trình Chỉ một dòng code
Đầu ra Mã đối tượng trung gian Không tạo ra bất kì mã đối tượng trung gian nào
Cơ chế hoạt động Việc biên dịch sẽ phải hoàn thành công việc trước khi thực thi Việc biên dịch và thực thi sẽ là đồng thời
Tốc độ Nhanh hơn Chậm hơn
Bộ nhớ Yêu cầu bộ nhớ nhiều hơn do việc tạo mã đối tượng Nó đòi hỏi ít bộ nhớ hơn vì nó không tạo mã đối tượng trung gian
Errors Hiển thị tất cả các lỗi sau khi biên dịch, tất cả cùng một lúc Hiển thị lỗi của từng dòng một
Phát hiện error Rất khó khăn Tương đối dễ
Các ngôn ngữ lập trình C, C++, C#, Scala, typescript PHP, Perl, Python, Ruby

Khái niệm thông dịch và biên dịch là gì?

Thông dịch là dịch ngôn ngữ nói còn biên dịch là dịch văn bản viết. Cả hai hình thức dịch này đều đòi hỏi phải có vốn hiểu biết sâu rộng về ngôn ngữ văn hóa, kiến thức chuyên môn về lĩnh vực được dịch và kỹ năng giao tiếp tốt cả bằng ngôn ngữ nói viết.

Biên dịch là gì?

Biên dịch là việc dịch thuật tài liệu, văn bản từ ngôn ngữ A sang ngôn ngữ B. Bên dịch phải làm việc với những thông tin dạng văn bản, bao gồm website, bản in, phụ đề video, file word, PDF, hồ sơ công chứng, các file đa phương tiện khác…

Thông dịch viên khác phiên dịch viên như thế nào?

Phiên dịch viên (hay còn gọi là thông dịch viên) có tên tiếng anh là Interpreter, nhiệm vụ là người chuyên làm công việc chuyển đổi ngôn ngữ này sang ngôn ngữ khác một cách chính xác, giúp những người không nói cùng ngôn ngữ có thể hiểu nhau, nắm rõ thông tin của nhau thông qua lời nói.

Biên dịch và thông dịch giống nhau như thế nào?

Sự giống nhau của thông dịch và biên dịch Cả phiên dịch và thông dịch đều là hoạt động được thực hiện với mục đích là chuyển đổi ngôn ngữ. Vụ trong quá trình chuyển đổi đều yêu cầu về độ chính xác cao giữ nguyên được ý định ban đầu của ngôn ngữ nguồn.