Quá Trình Biên Dịch Một Chương Trình C/C++ - TAPIT
Có thể bạn quan tâm
I. ĐỊNH NGHĨA
Quy trình dịch là quá trình chuyển đổi từ ngôn ngữ bậc cao (NNBC) (C/C++, Pascal, Java, C#…) sang ngôn ngữ đích (ngôn ngữ máy) để máy tính có thể hiểu và thực thi. Ngôn ngữ lập trình C là một ngôn ngữ dạng biên dịch. Chương trình được viết bằng C muốn chạy được trên máy tính phải trải qua một quá trình biên dịch để chuyển đổi từ dạng mã nguồn sang chương trình dạng mã thực thi. Quá trình được chia ra làm 4 giai đoạn chính:
- Giai đoàn tiền xử lý (Pre-processor)
- Giai đoạn dịch NNBC sang Asembly (Compiler)
- Giai đoạn dịch asembly sang ngôn ngữ máy (Asember)
- Giai đoạn liên kết (Linker)
II. HOẠT ĐỘNG
1. Giai đoạn tiền xử lý – Preprocessor Giai đoạn này sẽ thực hiện:
- Nhận mã nguồn
- Xóa bỏ tất cả chú thích, comments của chương trình
- Chỉ thị tiền xử lý (bắt đầu bằng #) cũng được xử lý
Ví dụ: chỉ thị #include cho phép ghép thêm mã chương trình của một tệp tiêu để vào mã nguồn cần dịch. Các hằng số được định nghĩa bằng #define sẽ được thay thế bằng giá trị cụ thể tại mỗi nơi sử dụng trong chương trình.
2. Cộng đoạn dịch Ngôn Ngữ Bậc Cao sang Assembly
- Phân tích cú pháp (syntax) của mã nguồn NNBC
- Chuyển chúng sang dạng mã Assembly là một ngôn ngữ bậc thấp (hợp ngữ) gần với tập lệnh của bộ vi xử lý.
3. Công đoạn dịch Assembly
- Dich chương trình => Sang mã máy 0 và 1
- Một tệp mã máy (.obj) sinh ra trong hệ thống sau đó.
4. Giai đoạn Linker
- Trong giai đoạn này mã máy của một chương trình dịch từ nhiều nguồn (file .c hoặc file thư viện .lib) được liên kết lại với nhau để tạo thành chương trình đích duy nhất
- Mã máy của các hàm thư viện gọi trong chương trình cũng được đưa vào chương trình cuối trong giai đoạn này.
- Chính vì vậy mà các lỗi liên quan đến việc gọi hàm hay sử dụng biến tổng thể mà không tồn tại sẽ bị phát hiện. Kể cả lỗi viết chương trình chính không có hàm main() cũng được phát hiện trong liên kết.
Kết thúc quá trình tất cả các đối tượng được liên kết lại với nhau thành một chương trình có thể thực thi được (executable hay .exe) thống nhất.
Các bạn có thể tham khảo hướng dẫn liên kết 2 source file chương trình C bằng Command line qua video dưới đây.
Nếu bạn quan tâm đến các chủ đề liên quan, hãy nhấn like ? và subcribe ? tại kênh youtube của Cộng đồng kỹ thuật TAPIT để nhận thông báo về những video với các nội dung liên quan nhé! Chúc các bạn thành công.
Tìm hiểu thêm: Tổng hợp hướng dẫn Internet of Things với NodeMCU ESP8266 và ESP32 Tổng hợp các bài hướng dẫn Lập trình vi điều khiển STM32 [HỌC ONLINE: LẬP TRÌNH VI ĐIỀU KHIỂN STM32, VI XỬ LÝ ARM CORTEX – M] Fanpage Cộng đồng Kỹ thuật TAPIT: TAPIT – Learning, Research and Sharing CommunityTừ khóa » Trình Biên Dịch Code
-
8 Trình Biên Dịch Hàng đầu Tốt Nhất Hiện Nay Cho Ngôn Ngữ Lập Trình ...
-
Trình Biên Dịch – Wikipedia Tiếng Việt
-
Chương Trình C++ Được Biên Dịch Như Thế Nào? - CodeLearn
-
Trình Biên Dịch - CodeLearn
-
Biên Dịch Chương Trình Trong C
-
Top Website Viết Và Biên Dịch Code Online Tốt Nhất
-
Hướng Dẫn Cài đặt Trình Biên Dịch C/C++ MinGW (gcc) - CodeCute
-
Bài 3. Biên Dịch Code C Sử Dụng G++ - Lập Trình Không Khó
-
Sự Khác Nhau Giữa Trình Biên Dịch Và Trình Thông Dịch - Viblo
-
Lập Trình C/Cơ Bản Về Biên Dịch – Wikibooks Tiếng Việt
-
Tải Phần Mềm Biên Dịch C , Huong Dan Bien Dich C Full
-
Top Website Viết Và Biên Dịch Code Online Tốt Nhất - VIETWIKI.VN
-
Top Website Viết Và Biên Dịch Code Online Tốt Nhất
-
Sử Dụng C để Lập Trình Nhúng - TMA Solutions