프로그래밍 언어, 기계어/어셈블리어

Posted by 슈퍼너드 리보
2020. 9. 3. 16:19 프로그래밍/C
반응형

컴퓨터 구조에 대해선 앞에 강좌에서 전부 다 배웠습니다. 다음부터는 프로그래밍 언어에 대해 본격적으로 배워볼텐데요. 프로그래밍 언어? 이게 뭘까요? 물론 C언어 C++ C# 이런게 프로그래밍 언어라는 사실은 누구나 다 알고 있죠. 하지만 프로그래밍 언어를 배우는 사람이 'C언어가 프로그래밍 언어야'라고만 이야기하면 무식해보이잖아요. 그래서 오늘은 한번 프로그래밍 언어가 무엇인지 또 프로그래밍 언어는 어떤것이 있는지 알아보는 시간을 갖겠습니다.

프로그래밍 언어

프로그래밍 언어란 쉽게 말해 사람과 컴퓨터가 서로 의사소통을 가능케 해주는 언어입니다. '컴퓨터는 언제나 내 키보드와 마우스로 수많은 텍스트를 받아들여 의사소통 하는데?'라는 일반적인 상식과는 달리 컴퓨터는 0과 1 이런 단순한 숫자로밖에 말을 알아듣습니다. 우리가 타이핑 하는 수많은 문자들도 결국 0과 1을 사람의 눈에는 감자, 치킨, 게임 이런 문자들로 보여주죠. 이러한 프로그래밍 언어는 컴퓨터에 가까운 저급언어(기계어+어셈블리어) 사람의 언어와 가까운 고급언어(C, C++, C#..)로 나눌 수 있습니다. 이 구분은 수준이 낮다 높다의 구분이 아니라 계층적 구분을 말해줍니다. 계층의 최하단인 하드웨어의 언어에 가까울수록 저급언어라 하고 인간의 언어에 가까울수록 고급언어라 합니다. 


기계어와 어셈블리어

기계어와 어셈블리어 처음들어보죠? 한번 정리하고 가겠습니다. 기계어는 0과 1로 표현되는 프로그래밍 언어입니다. 아래는 기계어로 Hi를 쳐본겁니다. 만약 이러한 기계어를 일일이 쳐서 코드를 짠다면 왠만한 변태가 아니고선 머리가 터질겁니다.

어셈블리어는 인간의 머리론 헤아릴 수 없는 기계어를 사람이 알아보기 쉽게 니모닉 기호를 사용한 OPCODE테이블이라는 것을 참조하여 기계어와 1:1 대응시켜 사용하는 언어입니다. 그리고 이 어셈블리어로 만들어진 프로그램을 기계어로 바꾸는 프로그램을 어셈블러라고 하죠.


반응형