프로그래밍 언어의 작동방식
C언어, 자바, 파이썬, C++, C# 등과 같은 고급 프로그래밍 언어를 통해 개발자는 코드를 작성한다. 이러한 코드들은 컴퓨터가 이해하는 저수준 프로그래밍 언어인 어셈블리어로 변환을 거치고, 다시 기계어로 번역되어 최종적으로 실행된다.
*저수준 프로그래밍 언어 - 컴퓨터의 하드웨어와 직접적으로 상호작용이 가능한 프로그래밍 언어
*고급 프로그래밍 언어 - 사람이 이해하고 작성하기 쉬운 높은 추상화 수준의 프로그래밍 언어
*기계어(Machine Language) - 컴퓨터가 이해하고 실행할 수 있는 0과 1로 이루어진 이진 코드
이때 사용되는 두 가지 방식이 바로 인터프리터와 컴파일러 방식이다.
어셈블리어(Assembly language)
어셈블리어는 컴퓨터와 직접적으로 소통이 가능한 저수준의 프로그래밍 언어이다.
컴퓨터가 직접 이해할 수 있는 기계어에 가까운 언어로, 사람이 이해 및 작성이 가능하도록 기계어와 일대일로 대응시킨 언어이다. 어셈블리어는 별도의 컴파일 과정 없이 기계어로 번역되어 컴퓨터의 하드웨어와 메모리를 제어할 수 있다.
어셈블리어는 일반적인 다른 고급 프로그래밍 언어보다 직접적으로 하드웨어와 상호작용이 가능하다는 특징으로 성능이 좋다는 장점이 있지만 다른 프로그래밍 언어에 비해 이해하기가 어렵고 복잡하여 사용자가 직접 작성하기가 어렵다는 단점이 있다.
컴파일러(Compiler)
컴파일러는 작성된 프로그램 코드를 한 번에 읽어 들이고, 전체를 분석하여 실행파일로 변환하는 과정을 거친 후 기계어로 번역하는 방식이다. 초기 전체 코드를 읽어들이는 작업과 실행파일을 만드는 시간이 오래 걸리지만 한 번 만들어진 실행파일은 재실행이 가능하여 반복적으로 실행을 해야 할 경우 인터프리터보다 작업 시간이 빠르다는 특징이 있다.
대표적인 언어로 C, C++, 자바 언어가 있다.
인터프리터(Interpreter)
인터프리터는 작성한 프로그램 코드를 한 줄 씩 읽어 들여서 기계어로 번역 후 실행하는 방식이다. 프로그램을 한 줄씩 번역하기 때문에 실행 결과를 바로 확인할 수 있지만, 실행시간이 느리다. 번역 시 오류를 발견하게 되면 그 즉시 프로그램이 중단된다. 컴파일러와 달리 중간단계, 실행파일을 따로 만들지 않기 때문에 메모리 효율이 좋다는 특징이 있다
대표적인 언어로 파이썬, 루비, 자바스크립트 언어가 있다.
'프로그래밍' 카테고리의 다른 글
데이터베이스(DB)란?, DB와 DBMS 차이, SQL이란 (0) | 2024.05.26 |
---|---|
UUID(Universally Unique Identifier)란?, 범용 고유 식별자란?, 생성방법 (0) | 2024.05.16 |
자바(Java)와 자바스크립트(JavaScript) 차이, 이름이 비슷한 이유? (0) | 2024.04.24 |
프론트엔드(Front-end), 백엔드(Back-end) 차이점 (1) | 2024.04.24 |
댓글