Sự khác biệt giữa xây dựng và biên dịch là gì?


Câu trả lời:


34

Biên dịch là một phần của quá trình xây dựng.

Một quy trình xây dựng có thể bao gồm thử nghiệm, đóng gói và các hoạt động khác ngoài việc biên dịch.


19

"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.


9

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:

  • Việc xây dựng được thực hiện khi chuẩn bị một ứng dụng để phát hành, bao gồm biên dịch, đóng gói, thử nghiệm, v.v.
  • Quá trình biên dịch được thực hiện bất cứ lúc nào trình biên dịch có liên quan đến việc dịch mã ngôn ngữ lập trình sang mã máy.

Vì vậy, biên dịch thực sự là một tập hợp con của xây dựng.


1
"Việc xây dựng được hoàn thành khi chuẩn bị một ứng dụng để phát hành" - đừng nói rằng đám đông tích hợp liên tục;) Hoặc bất kỳ người dùng khao khát nào khác của các bản dựng tự động, cho vấn đề đó.

1
@del Nam: Đồng ý. Tích hợp liên tục tạo ra nhiều "bản dựng" trong suốt vòng đời của một ứng dụng. Tuy nhiên, bất kỳ hoặc tất cả các bản dựng này có thể được sử dụng để chuẩn bị phát hành công khai. Nó phụ thuộc vào quá trình xây dựng, thử nghiệm và phê duyệt của bạn.
Bernard

3
Vâng, theo đám đông giao hàng liên tục, mỗi bản dựng này nên sẵn sàng để phát hành. Nhưng thực tế lại nói khác, và nói chung "các bản dựng" có thể phục vụ bất kỳ mục đích nào được hỗ trợ bằng cách làm cho phần mềm sẵn sàng để chạy và kiểm tra nó. Xây dựng gỡ lỗi, ví dụ. Hoặc kiểm tra xem các thay đổi của bạn đã không phá vỡ bất kỳ trong số 16 triệu bài kiểm tra.

2
@delnan - Điều gì về một bản dựng thất bại trong các thử nghiệm của nó? Theo tiêu chuẩn của việc phân phối liên tục đông đúc, đó là bản dựng nhưng chưa sẵn sàng để phát hành :)
Oded

2

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).

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.