alexms0316.log
로그인
alexms0316.log
로그인
모두를 위한 컴퓨터 과학 (CS50 2019) - 배열_1강. 컴파일링
Alex
·
2022년 3월 22일
팔로우
0
computer science
0
ComputerScience
목록 보기
9/10
1강. 컴파일링
1) 전처리(Precompile)
컴파일의 전체 과정은 4단계로 나누어볼 수 있음. 전처리는 그 중 첫 번째 단계.
으로 시작되는 C 소스코드는 전처리기에서 실질적인 컴파일이 이루어지기 전에 무언가를 실행하라고 알려줌.
예를들어, #include는 전처리기에게 다른 파일의 내용을 포함시키라고 알려줌.
2) 컴파일(Compile)
컴파일러라고 불리는 프로그램은 C코드를 어셈블리에라는 저수준 프로그래밍 언어로 컴파일
어셈블리는 C보다 연산의 종류가 훨씬 적지만, 여러 연산들이 함께 사용되면 C에서 할 수 있는 모든 것들을 수행할 수 있음.
컴파일이라는 용어는 소스 코드에서 오브젝트 코드로 변환하는 전체과정을 통틀어 일컫기도 하지만, 구체적으로는 전처리한 소스 코드를 어셈블리 코드로 변환시키는 단계를 말함
3) 어셈블(Assemble)
어셈블리 코드를 오브젝트 코드로 변환
컴퓨터의 중앙처리장치가 프로그램을 어떻게 수행해야 하는지 알 수 있는 명령어 형태인 연속된 0과 1들로 바꿔주는 작업
만약, 소스 코드에서 오브젝트 코드로 컴파일 되어야 할 파일이 한 개라면, 컴파일 작업은 여기서 끝.
4) 링크(Link)
만약 프로그램이 (math.h나 cs50.h와 같은 라이브러리를 포함해) 여러 개의 파일로 이루어져 있어 하나의 오브젝트 파일로 합쳐져야한다면 링크라는 컴파일의 마지막 단계가 필요.
링커는 여러 개의 다른 오브젝트 코드 파일을 실행 가능한 하나의 오브젝트 코드 파일로 합쳐준다.
Alex
With Data or Without Data?
팔로우
이전 포스트
모두를 위한 컴퓨터 과학 (CS50 2019) - C언어_4강. 자료형, 형식 지정자, 연산자
다음 포스트
모두를 위한 컴퓨터 과학 (CS50 2019) - 배열_2강. 디버깅
0개의 댓글
댓글 작성