Bài 5 - Tìm hiểu trình biên dịch. So sánh thông dịch và biên dịch

1. Trình biên dịch là gì? Vai trò của trình biên dịch?

Trình biên dịch, còn gọi là phần mềm biên dịchcompiler, là một chương trình máy tính làm công việc dịch một chuỗi các câu lệnh được viết bằng một ngôn ngữ lập trình (gọi là ngôn ngữ nguồn hay mã nguồn, source code), thành một chương trình tương đương nhưng ở dưới dạng một ngôn ngữ máy tính mới (gọi là ngôn ngữ đích) và thường là ngôn ngữ ở cấp thấp hơn, như ngôn ngữ máy (chỉ bao gồm dãy số 0, 1).

Trình biên dịch là gì? Vai trò trình biên dịch trong lập trình

2. Có những kiểu trình biên dịch nào?

Có 2 kiểu trình biên dịch là "thông dịch" và "biên dịch". Điểm khác nhau cơ bản của 2 kiểu biên dịch này là cơ chế hoạt động của chúng. Cơ chế hoạt động của "biên dịch" là việc biên dịch sẽ phải hoàn thành công việc trước khi thực thi, tức là trình biên dịch sẽ phải "dịch" toàn bộ mã nguồn sang ngôn ngữ máy rồi máy tính mới bắt đầu thực thi, còn cơ chế hoạt động của "thông dịch" là việc biên dịch và thực thi sẽ là đồng thời, tức là câu lệnh chạy đến đâu thì trình biên dịch sẽ "dịch" đến đấy, máy tính thực thi luôn.

So sánh trình biên dich và thông dịch

Ta có bảng so sánh giữa 2 kiểu biên dịch này:

Tiêu chí Trình biện dịch Trì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

3. Tại sao cần biết về trình biên dịch? Có ý nghĩa gì trong lập trình web PHP?

Điều bạn cần lưu ý: Ngôn ngữ lập trình PHP sử dụng trình "thông dịch" để biên dịch các dòng lệnh. Tức là trình biên dịch sẽ "dịch" từng dòng lệnh 1 từ trái qua phải và từ trên xuống dưới ==>điều này rất quan trọng khi fix lỗi (bug) trong quá trình viết code bằng PHP.

Ví dụ: bạn có thể sử dụng lệnh die(); để ngắt toàn bộ code đồng thời sử dụng các lệnh sau để hiển thị thông báo lỗi:

ini_set('display_errors', 1);
ini_set('display_startup_errors', 1);
error_reporting(E_ALL);
Tác giả: Admin