Tại sao đầu ra của một trình biên dịch được gọi là mã đối tượng?


13

Từ bài tiểu luận Ngôn ngữ lập trình được giải thích bởi Paul Graham, được xuất bản trên Hackers & Painters :

Ngôn ngữ cấp cao mà bạn cung cấp cho trình biên dịch còn được gọi là mã nguồn và bản dịch ngôn ngữ máy mà nó tạo ra được gọi là mã đối tượng .

Từ bài viết Wikipedia về mã đối tượng :

Mã đối tượng, hoặc đôi khi mô-đun đối tượng, là những gì trình biên dịch máy tính tạo ra.

Từ một định nghĩa của 'trình biên dịch' :

Theo truyền thống, đầu ra của quá trình biên dịch được gọi là mã đối tượng hoặc đôi khi là một mô-đun đối tượng. (Lưu ý rằng thuật ngữ "đối tượng" ở đây không liên quan đến lập trình hướng đối tượng.)

Vì vậy, những gì đối tượng hạn liên quan đến?


2
Lưu ý rằng trình biên dịch không phải tạo mã máy. Nó là thông lệ để có một mức độ trừu tượng thấp hơn, nếu không nó thường được gọi là một dịch giả.

2
Hai người đầu tiên phải liên lạc với nhau về đối tượng không biết nên gọi nó là gì nên họ đã áp dụng một thuật ngữ rất chung chung.
semaj

Những người tốt trong RetroComputing.SE có thể có cái nhìn sâu sắc hơn về điều này.
Roger

Câu trả lời:


10

đối tượng đôi khi cũng được gọi là mã đích , bởi vì nó là kết quả đích của quá trình dịch được thực hiện bởi trình biên dịch. Vì vậy, "mã đối tượng" được sử dụng ngược lại với "mã nguồn".

Có nhiều tên lạ khác trong thế giới trình biên dịch: ví dụ: phân đoạn tệp có mã nhị phân của chương trình của bạn thường được gọi là "phân đoạn văn bản".


1
Bất cứ ý tưởng tại sao nó được gọi là "văn bản"? Như trong nguồn gốc lịch sử?
nielsbot 16/03/18

@nielsbot: Tôi nghĩ đơn giản là trái ngược với "phân đoạn dữ liệu" nơi các biến được lưu trữ, "phân đoạn văn bản" chứa văn bản ban đầu (trước khi biên dịch), cụ thể là mã của chương trình.
Michael Borgwardt

8

Nó là đối tượng như trong "mục tiêu". Không phải đối tượng là một "điều".

Tương tự như câu trả lời của dasblinkenlight về việc được gọi là "mã đích". Nó là mục tiêu hoặc mục tiêu của trình biên dịch.


1
Không chắc chắn tôi đồng ý với điều đó.
Martin York

1
Âm thanh về đúng với tôi. Nó luôn được nhắc đến trong bối cảnh mục tiêu của trình biên dịch.
Lord Tydus

Vâng, đây là câu trả lời đúng. Nó phản ánh cách nó hoạt động trong một câu, trong đó động từ đại diện cho trình biên dịch ( người thực hiện ), chủ đề là mã nguồn và đối tượng là mục tiêu hoặc kết quả của hành động đó (biên dịch). Do đó "mã chủ đề" là nguồn (trải qua quá trình biên dịch, là "chủ đề" của nó), trong khi "mã đối tượng" là mục tiêu ("mục tiêu" của quá trình biên dịch).
BarbaraKwarc

1

Mã đối tượng được tạo ra khi bạn biên dịch mã nguồn. Mã đối tượng này chưa được thực thi vì nó không có các thư viện cần thiết để chạy. Vì vậy, bạn liên kết nhiều mã đối tượng và thư viện và nó trở thành một tệp thực thi.

Theo cách hiểu của tôi, " đối tượng " liên quan đến "điều" bạn đã phát triển bằng cách viết mã nguồn đó. Nó có thể là một mô-đun, lớp, chức năng hoặc bất cứ điều gì.


-1

Mã đối tượng thuộc về tệp đối tượng .

Thuật ngữ Đối tượng trong Khoa học máy tính ban đầu không đề cập đến "mục tiêu" (còn gọi là "mục tiêu"), mà thay vào đó nhấn mạnh một đặc tính của các đối tượng để dễ nhận biết, khác biệt với nhau. Các đối tượng thông thường rất dễ xác định và nói về, bởi vì chúng có ranh giới. Không giống như sương mù ...

Các đối tượng ảo là các thùng chứa dữ liệu.

Không phải là bạn ngồi xuống và viết một số mã và bằng cách nào đó Mã đối tượng . Không, bạn ngồi xuống đọc các yêu cầu của ELF, COFF, XCOFF (các định dạng tệp đối tượng chung) và nếu mã của bạn phù hợp với các yêu cầu này, nó sẽ trở thành Mã đối tượng như bạn nói.


-3

Thông thường học sinh hiểu ngôn ngữ cấp thấp hoặc chương trình viết bằng ngôn ngữ cấp thấp được gọi là "mã đối tượng". Có một vấn đề để hiểu tại sao đầu ra của trình biên dịch được gọi là mã đối tượng. Đầu ra về mặt gen được gọi là đích được biên dịch bởi trình biên dịch. Đó là mục tiêu của mã nguồn. Không có nghĩa là mã đối tượng là chương trình ngôn ngữ cấp thấp. Chỉ cần nó tạo ra mục tiêu nên mục tiêu liên quan đến mục tiêu và mục tiêu của mã nguồn được biên dịch bởi trình biên dịch và đó là lý do tại sao đầu ra của trình biên dịch thường được gọi là "mã đối tượng". Bởi vì ngôn ngữ thấp không được biên dịch bởi trình biên dịch. Ngôn ngữ cấp thấp có trên trình dịch như "Trình biên dịch" hoặc "trình thông dịch".

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.