Câu trả lời:
"Xây dựng" là một thuật ngữ khá chung chung và nó có thể đề cập đến bất cứ điều gì cần thiết để đi từ tài liệu nguồn có thể chỉnh sửa (mã nguồn, tập lệnh, tệp dữ liệu thô, v.v.) đến một sản phẩm phần mềm có thể chuyển đổi. Xây dựng có thể (và thường không) bao gồm một số bước, chẳng hạn như xử lý trước, biên dịch, liên kết, chuyển đổi tệp dữ liệu, chạy thử nghiệm tự động, đóng gói, v.v.
"Biên dịch" cụ thể hơn và hầu như luôn luôn đề cập đến một quy trình lấy mã nguồn làm đầu vào của nó và đưa ra một cái gì đó có thể chạy được, điển hình là mã máy cho máy vật lý hoặc ảo hoặc mã nguồn bằng ngôn ngữ khác.
Các thuật ngữ này thường được sử dụng thay thế cho nhau, nhưng tôi sẽ phân biệt chúng theo cách sau:
Vì vậy, biên dịch thực sự là một tập hợp con của xây dựng.
Quá trình biên dịch được thực hiện bởi trình biên dịch, quá trình xây dựng có thể phức tạp hơn.
Ví dụ. trong C ++ để tạo bản dựng dự án bạn cần tiền xử lý (tiền xử lý tệp nguồn); trình biên dịch (biên dịch các tệp nguồn); linker (hợp nhất mọi thứ thành thực thi - mã được biên dịch, biểu tượng, chuỗi, các tài nguyên khác với nhau)
Vì vậy, việc biên dịch nói chung là dịch mã được viết bằng ngôn ngữ này sang ngôn ngữ khác (ví dụ: mã máy).