컴파일러의 출력이 객체 코드라고하는 이유는 무엇입니까? 공급하는 고급 언어를 소스 코드

Hackers & Painters에 발표 된 Paul Graham이 설명한 에세이 프로그래밍 언어 :

컴파일러에 공급하는 고급 언어를 소스 코드 라고하며
, 생성하는 기계 언어 변환을 객체 코드 라고 합니다 .

에서 오브젝트 코드에 Wikipedia 기사 :

객체 코드 또는 때로는 객체 모듈은 컴퓨터 컴파일러가 생성하는 것입니다.

에서 ‘컴파일러’의 정의 :

전통적으로 컴파일의 출력을 객체 코드 또는 객체 모듈이라고했습니다. 여기서 “개체”라는 용어는 개체 지향 프로그래밍과 관련이 없습니다.

그렇다면 객체라는 용어 무엇 입니까?



답변

객체 코드는 때때로 컴파일러가 수행하는 변환 프로세스의 대상 결과이기 때문에 대상 코드 라고도 합니다. 따라서 “개체 코드”는 “소스 코드”와 반대로 사용됩니다.

컴파일러 세계에는 다른 이상한 이름이 있습니다. 예를 들어, 프로그램의 이진 코드가있는 파일의 세그먼트를 종종 “텍스트 세그먼트”라고합니다.


답변

「객관적」과 같은 대상입니다. “것”으로 반대하지 마십시오.

“대상 코드”라고하는 것에 대한 dasblinkenlight의 답변과 유사합니다. 컴파일러의 목표 또는 목표입니다.


답변

소스 코드를 컴파일 할 때 객체 코드가 생성됩니다. 이 오브젝트 코드는 실행할 라이브러리가 없기 때문에 아직 실행 가능하지 않습니다. 따라서 여러 객체 코드와 라이브러리를 연결하면 실행 파일이됩니다.

내 이해에서 ” 객체 “는 해당 소스 코드를 작성하여 개발 한 ” 사물 “과 관련이 있습니다. 모듈, 클래스, 함수 또는 무엇이든 될 수 있습니다.


답변

객체 코드Object File에 속해 있습니다.

초기 컴퓨터 과학에서 객체 라는 용어 는 “객관적”(일명 “대상”)을 지칭하는 것이 아니라, 객체의 속성이 서로 쉽게 구별되고 쉽게 인식 될 수 있도록 강조한다. 일반적인 객체는 경계가 있기 때문에 쉽게 정의하고 이야기 할 수 있습니다. 안개와는 달리 …

가상 객체는 데이터 컨테이너입니다.

앉아서 코드를 작성하는 것이 아니라 Object Code 입니다. 아니요, ELF, COFF, XCOFF (공통 객체 파일 형식)의 읽기 요구 사항을 따르고 코드가 이러한 요구 사항에 맞는 경우 말한대로 오브젝트 코드가 됩니다.


답변

일반적으로 학생들은 저급 언어를 이해하거나 저급 언어로 작성된 프로그램을 “개체 코드”라고합니다. 컴파일러의 출력을 객체 코드라고하는 이유를 이해하는 데 문제가 있습니다. 일반적으로 출력은 컴파일러에 의해 컴파일되는 target이라고합니다. 소스 코드의 목적입니다. 객체 코드가 저수준 언어 프로그램이라는 의미는 없습니다. 타겟이 생성되어 타겟이 컴파일러에 의해 컴파일되는 소스 코드의 객관 및 목적과 관련되어 있으므로 컴파일러의 출력이 일반적으로 “객체 코드”라고하는 이유입니다. 낮은 언어는 컴파일러에 의해 컴파일되지 않기 때문입니다. 저수준 언어는 “어셈블러”또는 “통역사”와 같은 번역기에 있습니다.