Phát biểu nào sau đây dụng khi so sánh giữa thông dịch và biên dịch
Phát biểu nào dưới đây là sai khi nói về biên dịch và thông dịch?21/08/2020 4,454 Show
Câu hỏi Đáp án và lời giải Câu Hỏi: Phát biểu nào dưới đây là sai khi nói về biên dịch và thông dịch? A. Chương trình dịch của ngôn ngữ lập trình bậc cao gọi là biên dịch còn thông dịch là chương trình dịch dùng với hợp ngữ B. Một ngôn ngữ lập trình có thể có cả chương trình thông dịch và chương trình biên dịch C. Thông dịch lần lượt dịch và thực hiện từng câu lệnh còn biên dịch phải dịch trước toàn bộ chương trình sang mã nhị phân thì mới có thể thực hiện được D. Biên dịch và thông dịch đều kiểm tra tính đúng đắn của câu lệnh Câu hỏi trong đề: Trắc nghiệm Tin học 11 bài 1: Một số khái niệm về lập trình Đáp án và lời giải đáp án đúng: A Phát biểu sai khi nói về biên dịch và thông dịch là chương trình dịch của ngôn ngữ lập trình bậc cao gọi là biên dịch còn thông dịch là chương trình dịch dùng với hợp ngữ Hoàng Việt (Tổng hợp) Báo đáp án sai Facebook twitter 1. Trình biên dịcha. Định nghĩa Trình biên dịchlà 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. Trình biên dịchhoạ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íchcủatrình biên dịchcũ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ợpcủatrình biên dịchcò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ã. b. 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 (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. Video học lập trình mỗi ngàySo sánh thông dịch và phiên dịch100% lập trình viên đều đã nghe nói đến ngôn ngữ biên dịch và thông dịch, trong 100% đó có đến 60% hiểu nôm na là biên dịch nhanh hơn thông dịch, điều đó không bàn cãi. Nhưng chỉ có 10% hiểu chính xác về sự giống nhau của thông dịch và biên dịch, nhưng chỉ có 2% là có thể giải thích một cách cặn kẽ về những điều dưới đây. Tôi thuộc 60%, chính vì thế tôi đã tìm hiểu và đưa ra bài viết này. Bài viết này ngoài vấn đề giải thích và so sánh giữa biên dịch và thông dịch thì có nhiều vấn đề mà tôi mới nhận ra, hy vọng có những bạn có những suy nghĩa sai lầm như mình có sự điều chỉnh lại. Ngoài sự giống nhau giữa biên dịch và thông dịch, thì có sự khác nhau về biên dịch và thông dịch. Câu 3 trang 13 SGK Tin học 11Đề bài Biên dịch và thông dịch khác nhau như thế nào? Lời giải chi tiết Biên dịch và thông dịch khác nhau ở những điểm sau: - Trình biên dịch duyệt, kiểm tra, phát hiện lỗi, xác định chương trình nguồn có dịch được không. Dịch toàn bộ chương trình nguồn thành một chương trình đích có thể thực hiện trên máy và có thể lưu trữ lại để sử dụng về sau khi cần thiết. Trình thông dịch lần lượt dịch từng câu lệnh ra ngôn ngữ máy rồi thực hiện ngay câu lệnh vừa dịch được hoặc thông báo lỗi nếu không dịch được. Loigiaihay.com
Sự khác biệt giữa trình biên dịch và trình thông dịch
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. Máy tính cần một người dịch để chuyển đổi các ngôn ngữ được viết ở dạng người có thể đọc được thành dạng có thể đọc được trên máy tính. 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ữ. Dịch giả ngôn ngữ là gì? Câu hỏi này có thể phát sinh trong tâm trí của bạn. 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 người có thể đọc được 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 ngữ đối tượng thường là ngôn ngữ máy của một máy tính thực tế. Biểu đồ so sánh
Định nghĩa trình biên dịchTrình biên dịch là một chương trình đọ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 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. 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 MÁY TÍNHBây giờ hãy hiểu chi tiết hoạt động của từng giai đoạn.
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 phiên dịchTrình thông dịch là một thay thế để thực hiện 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 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ã từ cây cú pháp. 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 việc giải thích tương đối chậm hơn so với thực hiện chương trình được biên dịch. Biên dịch và giải thích có thể kết hợp để thực hiện một ngôn ngữ lập trình. Trong đó một trình biên dịch tạo mã cấp trung gian thì mã được hiểu thay vì được biên dịch thành mã máy. Sử dụng một thông dịch viên là 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 một 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ả. |