Sự Khác Nhau Giữa Trình Biên Dịch Và Trình Thông Dịch - Japan IT Work

  • Sự nghiệp IT Sự nghiệp IT
    • Phát triển bản thân
    • Định hướng nghề nghiệp
  • Tư vấn HR Tư vấn HR
    • Hồ sơ ấn tượng
    • Bí quyết tìm việc
    • Phỏng vấn thành công
    • Kinh nghiệm làm việc
  • Thị trường Thị trường
    • Thị trường Việt Nam
    • Thị trường Nhật Bản
  • Tin tức Tin tức
  • Giải trí Giải trí
  • Kiến thức IT Kiến thức IT
    • Công nghệ
    • Sách lập trình
    • Tài liệu IT online
    • Source code
    • PHP
    • Javascript
    • UX,UI
    • Linux
    • Security
    • Mysql
    • AWS
    • AI
    • Python
  • Nhật Bản Nhật Bản
    • Tiếng Nhật giao tiếp
    • Tiếng Nhật thương mại
    • Tiếng Nhật ngành IT
    • Cuộc sống ở Nhật
  • Công việc IT Công việc IT
    • Leader
    • Project manager
    • BrSE
    • Designer
    • Devops
    • Technical Leader
    • Developer
    • Comtor
Tìm kiếm việc làm Employers
  • Japan-ITWorks
  • Blog
  • Kiến thức IT
Sự khác nhau giữa trình biên dịch và trình thông dịch
  • Kiến thức IT
13/10/2020 Các bạn có thể phân biệt được trình biên dịch và trình thông dịch không? Nếu chưa hãy cũng Japan IT Works tìm hiểu và có cái nhìn sâu hơn về hai định nghĩa này nhé.

Trình biên dịch là trình dịch chuyển đổi từ ngôn ngữ nguồn (các ngôn ngữ lập trình bậc cao) thành ngôn ngữ đối tượng (ví dụ như ngôn ngữ máy). Ngược lại với trình biên dịch, trình thông dịch là một chương trình bắt chước việc thực hiện của các chương trình được viết bằng ngôn ngữ nguồn.

Rõ ràng, 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 ngôn ngữ mà con người có thể đọc thành dạng ngôn ngữ mà máy tính có thể đọc.

Trình biên dịch và trình thông dịch là các loại trình dịch ngôn ngữ. Vậy trình dịch ngôn ngữ là gì?

Trình dịch ngôn ngữ là một phần mềm dịch các chương trình từ một ngôn ngữ nguồn ở dạng có thể đọc được bởi con người thành một chương trình tương đương bằng ngôn ngữ đối tượng. Ngôn ngữ nguồn nói chung là ngôn ngữ lập trình cấp cao và ngôn đối tượng thường là ngôn ngữ máy.

Bảng so sánh

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

Định nghĩa trình biên dịch

Trình biên dịch là một trình dịch đọc một chương trình được viết bằng ngôn ngữ cấp cao và chuyển đổi nó thành ngôn ngữ máy hoặc ngôn ngữ cấp thấp và báo cáo các lỗi có trong chương trình. Nó chuyển đổi toàn bộ mã nguồn trong một lần hoặc có thể mất nhiều lượt để làm như vậy, nhưng cuối cùng, người dùng sẽ nhận được mã được biên dịch sẵn sàng để thực thi.

COMPILER

Trình biên dịch hoạt động theo từng giai đoạn

Trình biên dịch hoạt động theo từng giai đoạn, các giai đoạn khác nhau có thể được nhóm thành hai phần đó là:

  • Giai đoạn phân tích của trình biên dịch cũng được gọi là phần đầu; trong đó chương trình được chia thành các phần cấu thành cơ bản và kiểm tra ngữ pháp, ngữ nghĩa và cú pháp của mã sau khi mã trung gian được tạo. Giai đoạn phân tích bao gồm phân tích từ vựng, phân tích ngữ nghĩa và phân tích cú pháp.
  • Giai đoạn tổng hợp của trình biên dịch còn được gọi là phần cuối; trong đó mã trung gian được tối ưu hóa và mã đích được tạo. Giai đoạn tổng hợp bao gồm trình tối ưu hóa mã và trình tạo mã.

Các giai đoạn biên dịch

Bây giờ hãy để chi tiết hiểu về hoạt động của từng giai đoạn.

  1. Trình phân tích từ vựng: Nó quét mã dưới dạng nhóm ký tự, nhóm chuỗi ký tự thành từ vựng và đưa ra chuỗi mã thông báo có tham chiếu đến ngôn ngữ lập trình.
  2. Trình phân tích cú pháp: Trong giai đoạn này, các mã thông báo được tạo trong giai đoạn trước được kiểm tra theo ngữ pháp của ngôn ngữ lập trình, cho dù các biểu thức có đúng về mặt cú pháp hay không.
  3. Trình phân tích ngữ nghĩa: Nó xác minh xem các biểu thức và câu lệnh được tạo trong giai đoạn trước có tuân theo quy tắc của ngôn ngữ lập trình hay không và nó tạo ra các cây phân tích chú thích.
  4. Trình tạo mã trung gian: Nó tạo ra một mã trung gian tương đương của mã nguồn. Có nhiều cách trình bày mã trung gian, những TAC (Mã địa chỉ ba) được sử dụng rộng rãi nhất.
  5. Trình tối ưu hóa mã: Nó cải thiện yêu cầu về thời gian và không gian của chương trình. Để làm như vậy, nó loại bỏ mã dự phòng có trong chương trình.
  6. Trình tạo mã: Đây là giai đoạn cuối cùng của trình biên dịch trong đó mã đích cho một máy cụ thể được tạo. Nó thực hiện các hoạt động như quản lý bộ nhớ, gán đăng ký và tối ưu hóa cụ thể cho máy.

Symbol table

Symbol table (bảng ký hiệu) là một cấu trúc dữ liệu quản lý các mã định danh cùng với loại dữ liệu có liên quan mà nó đang lưu trữ. Trình xử lý lỗi phát hiện, báo cáo, sửa các lỗi gặp phải giữa các giai đoạn khác nhau của trình biên dịch.

Định nghĩa trình thông dịch

Trình thông dịch là một thay thế để thực thi một ngôn ngữ lập trình và thực hiện công việc tương tự như một trình biên dịch. Trình thông dịch thực hiện kiểm tra từ vựng, phân tích cú pháp và kiểm tra các kiểu tương tự như trình biên dịch. Nhưng trình thông dịch xử lý cây cú pháp trực tiếp để truy cập các biểu thức và thực thi câu lệnh thay vì tạo mã trung gian.

Một trình thông dịch có thể yêu cầu xử lý cùng một cây cú pháp nhiều lần, đó là lý do tại sao tốc độ sẽ đối chậm hơn so với thực hiện chương trình được biên dịch.

Việc biên dịch và thông dịch kết hợp để có thể thực thi ngôn ngữ lập trình. Trong đó một trình biên dịch tạo mã ở cấp trung gian, sau đó mã được diễn giải thay vì được biên dịch thành mã máy.

Sử dụng một trình thông dịch thì sẽ thuận lợi trong quá trình phát triển chương trình, trong đó phần quan trọng nhất là có thể kiểm tra việc sửa đổi chương trình một cách nhanh chóng thay vì chạy chương trình một cách hiệu quả.

Tổng kết

Cả trình biên dịch và trình thông dịch đều có cùng một công việc nhưng khác nhau về quy trình vận hành, Trình biên dịch lấy mã nguồn theo cách tổng hợp trong khi Trình thông dịch lấy các phần cấu thành của mã nguồn.

Mặc dù cả trình biên dịch và trình thông dịch đều có những ưu điểm và nhược điểm nhất định. Với trình thông dịch thì mã nguồn có thể thực thi ở mọi nơi mà không cần phải biên dịch trước. Nhưng bù lại thì trình biên dịch sẽ tiết kiệm thời gian thực thi hơn.

Theo viblo.asia

Japan IT Works

Chủ đề

Thông tin dành cho người nước ngoài Cuộc sống tại Việt nam Làm việc tại Việt nam Sự nghiệp IT Tư vấn HR Thị trường Tin tức Giải trí Kiến thức IT Tin tức Nhật Bản Công việc IT

Xem nhiều nhất

15+ Tài liệu học NodeJS “chất” dành cho Developer Kỳ thi FE dành cho kỹ sư CNTT có cơ hội làm việc tại Nhật Bản Lộ trình học AI - Trí tuệ nhân tạo Kinh nghiệm luyện thi chứng chỉ FE bằng tiếng Nhật Advertisement

Blog nổi bật

Onsite là gì? Lập trình viên đi onsite cần biết những gì? Từ DEV lên BrSE cần phải học thêm gì Cách học tiếng Nhật mà mọi người giỏi đều áp dụng Sale IT là gì? Công việc Sale IT ở Nhật Bản Sự khác biệt giữa Customer Success Manager và Account Manager Xưng hô trong công ty Nhật như thế nào? Vì sao Nhật Bản cấm uống rượu khi chưa đủ 20 tuổi? Những việc nên làm trước khi nghỉ việc để là người chuyên nghiệp Website cứu nguy cho Dev khi bí CODE Thiền - cách vượt qua ngày thứ Hai đầu tuần uể oải của người Nhật

Bài viết liên quan

Lịch sử của ngôn ngữ lập trình

09/10/2020

10 cách hay để trở thành một lập trình viên giỏi

05/10/2020

Học lập trình Java từ đâu và như thế nào

24/09/2020

Nghề lập trình Web – lựa chọn nào cho người mới bắt đầu: Front-end, Back-end hay Full-stack

05/10/2020
  • Linkedin
  • Facebook

Xem nhiều nhất

15+ Tài liệu học NodeJS “chất” dành cho Developer Kỳ thi FE dành cho kỹ sư CNTT có cơ hội làm việc tại Nhật Bản Lộ trình học AI - Trí tuệ nhân tạo Kinh nghiệm luyện thi chứng chỉ FE bằng tiếng Nhật Advertisement

Blog nổi bật

Onsite là gì? Lập trình viên đi onsite cần biết những gì? Từ DEV lên BrSE cần phải học thêm gì Cách học tiếng Nhật mà mọi người giỏi đều áp dụng Sale IT là gì? Công việc Sale IT ở Nhật Bản Sự khác biệt giữa Customer Success Manager và Account Manager Xưng hô trong công ty Nhật như thế nào? Vì sao Nhật Bản cấm uống rượu khi chưa đủ 20 tuổi? Những việc nên làm trước khi nghỉ việc để là người chuyên nghiệp Website cứu nguy cho Dev khi bí CODE Thiền - cách vượt qua ngày thứ Hai đầu tuần uể oải của người Nhật

Việc làm theo chuyên ngành

Việc làm theo ngành

Việc làm theo tỉnh thành

  • Trang Chủ
  • Liên hệ với chúng tôi
  • Blog
  • FAQs
  • Điều khoản sử dụng
  • Quy Định Bảo Mật
  • Thông tin của tôi Thông tin của tôi
  • Danh sách công việc
  • Đăng công việc
  • RIVERCRANE VIETNAM CO., LTD (SSC Office)
  • Lầu 6, Toà nhà EBM, 394 Ung Văn Khiêm, Phường 25, Quận Bình Thạnh, TP.HCM
  • Thứ hai - Thứ sáu 8.00 AM - 5.00 PM
  • +84-28-2211-4595
  • RIVERCRANE Corporation.
  • Lầu 6, Tòa nhà Toei Mishuku, 1-13-1 Mishuku,Quận Setagaya,Tokyo,Nhật Bản
  • Thứ hai - Thứ sáu 9.00 AM - 6.00 PM
  • 03-5431-3219
  • Facebook
  • Linkedin
© 2019 Japan IT Works. All Right Reserved. Facebook Linkedin

Từ khóa » Trình Biên Dịch Là Gì Ví Dụ