1. 프로그래밍 입문 추천 언어 _ C 언어와 python
최근 들어 SW 개발자의 취업 시장이 활성화되고 있습니다. 프로그래밍 관련 비즈니스가 확대되고 있는 탓입니다. 이와 관련하여 프로그래밍의 입문을 위해서 추천하고자 합니다. 프로그래밍과 더불어 하드웨어와의 관계를 보다 근본적으로 이해하고 싶다면 C언어를 강력히 추천합니다. 그 이유는 C언어의 개발 스토리와 관련이 있습니다.
C언어는 1972년 켐 톤슨과 데니스 리치가 벨연구소에서 개발한 언어로 유닉스 운영체제에서 사용하기 위해 개발 한 프로그래밍 언어입니다. 유닉스는 '커널'이라 불리는 프로그램이 응용 프로그램과 하드웨어 사이의 수행을 위한 명령 혹은 메모리 할당 등의 서비스를 제공하는 운영 체제 시스템의 모든 것입니다. 결론적으로 C언어는 하드웨어와 소프트웨어의 이해를 바탕으로 컴퓨터 과학 분야의 전반적 시스템을 배워볼 수 있는 장점을 가지고 있습니다. 그리고 C언어는 하드웨어의 이식성이 우수한 특성을 가지고 있습니다.
위와 같이 C언어가 하드웨어 중심의 프로그래밍 언어라면, 파이썬은 사용자 중심의 프로그래밍 언어로 코드가 간결하고 명령어를 이해하기 쉽습니다. 따라서 입문용 프로그래밍 언어로 강력히 추천하는 바입니다. 또한 라이브러리가 오픈용으로 공개되어 있기 때문에, 사용자들이 만든 코드를 쉽게 이용 가능하다는 특 장점을 가지고 있죠.
C와 파이썬 외에도 C+ 와 matlab, java 등과 같은 수많은 종류의 프로그래밍이 존재합니다. 만약 하나의 프로그래밍 언어를 배우기로 시작하였다면, 가장 먼저 컴파일러라는 단어를 접하게 될 것인데요, 컴파일러란 무엇일까요?
2. 컴파일러의 이해 _ 컴파일러는 무엇인가?
컴파일러(Compiler)란 영어로 편집자라는 뜻을 가지고 있습니다. 프로그래밍 관점에서 컴파일러는 특정 프로그래밍 언어의 문법으로 짜인 코드를 코드의 의도에 맞는 명령을 수행할 수 있도록 기계어로 변환하는 변환기라는 의미를 가지고 있습니다. 예를 들어, C언어로 컴퓨터가 명령을 수행할 수 있도록 코드를 작성하면 이 파일은 확장자가. C인 C파일이 완성됩니다. 이를 소스(source) 파일이라고 부르는데요, 소스파일을 컴파일러가 기계어로 변환을 할 수 있도록 변환 작업을 수행시키는 것을 컴파일 작업이라고 합니다. 기계어는 0과 1의 언어로 컴파일 작업이 완료되면, 확장자가 ". obj"인 오브젝트 파일이 완성됩니다. 다음의 그림을 참고하시면, 일련의 과정을 쉽게 이해할 수 있습니다.
위와 같이 오브젝 파일이 완성되었다면, 기계어로 번역된 오브젝 파일에서 프로그램의 동작까지 어떠한 과정이 펼쳐질까요?
3. 오브젝 파일에서 프로그램 동작까지의 과정 _ 링커와 로더
컴파일러와 비슷한 작업을 링커라고 부릅니다. 바로 표준 라이브러리 함수와 오브젝트 파일의 통합 단계를 위한 작업인데요, 이 작업을 링크 단계라고 합니다. 링크 단계까지 완성된다면, 우리가 흔히 알고 있는 EXE 파일 (실행 파일)이 제작되는 것입니다.
* C 표준 라이브러리 함수는 C 언어를 위해서 미리 정의되어있는 라이브러리로써 운영체제 프로그램을 위한 명령 함수 등과 같은 여러 가지 함수 기능을 제공합니다. 이는 헤더 파일의 형태로 제공됩니다.
로더는 실행파일을 주기억장치(RAM)에 로딩하는 역할을 합니다. 구체적으로 CPU의 연산 작업은 실행파일의 명령을 수행하는 것이고 실행파일의 명령은 주기억장치에 로딩이 되어야만 CPU가 그 명령을 읽어올 수 있는 것입니다.
'COMPUTER SCIENCE > Fundamental Computer' 카테고리의 다른 글
추상 자료형이란? _ Abstract Data type, ADT (0) | 2022.01.04 |
---|---|
컴퓨터의 이해를 위한 기초 전자회로 (0) | 2021.05.04 |