CS/컴퓨터 밑바닥의 비밀

링커란?여러 개의 개별적인 오브젝트 파일과 라이브러리를 결합하여 하나의 실행 가능한 프로그램을 생성하는 도구컴파일러가 소스 코드를 컴파일 하여 생성한 오브젝트 파일은 독립적이며, 각 파일에는 해당 코드에 대한 심벌 정보, 코드 세그먼트, 데이터 세그먼트 등이 포함되있고, 각 오브젝트 파일을 연결하고 심벌 정보를 해석하여 전체 프로그램의 메모리 구조와 실행 흐름을 완성링커의 주요 역할심벌 해결(Symbol Resolution):프로그램 내에서 정의되거나 참조된 심벌(변수, 함수 등)의 실제 메모리 주소를 결정예를 들어, main 함수가 printf 함수와 같은 라이브러리 함수를 호출할 때, 링커는 printf의 정의를 표준 라이브러리에서 찾아 연결주소 할당(Address Binding):코드 세그먼트와 데..
컴파일러란 ?특정 프로그래밍 언어로 작성된 소스 코드를 다른 프로그래밍 언어, 주로 기계어로 변환하는 프로그램이다. 이를 통해 사람이 이해하기 쉬운 고급 프로그래밍 언어로 작성된 코드를 컴퓨터가 직접 실행할 수 있는 형태로 바꿔준다.그러나 컴파일링할 때 각 CPU에 따라 컴파일을 해줘야한다.그렇기 때문에 인터프리터 라는 가상머신이 필요하다.C/C++ 언어는 직접 기계어로 번역하여 CPU로 넘기거나, Java 처럼 바이트 코드를 변환 후 가상 머신으로 넘겨 실행함.Java 소스 코드 컴파일 프로세스int a = 1;int b = 2;while(a 자바 소스 코드는 컴파일러에 의해 여러 단계를 거쳐 바이트코드로 변환된다.이 과정은 주로 어휘 분석(Lexical Analysis), 구문 분석(Syntax An..
cozyong_dev
'CS/컴퓨터 밑바닥의 비밀' 카테고리의 글 목록