[CS] 어셈블리어, 컴파일러와 인터프리터

정선모·2022년 9월 29일
0

CS

목록 보기
8/8
  • 어셈블리어
    - 기계와 일대일 대응이 되는 컴퓨터 프로그래밍의 저급언어
    - 컴퓨터 구조에 따라 사용하는 기계어가 달라지며, 그 기계어에 대응하여 만들어지는 어셈블리어도 각각 다르게 된다. 이때문에 고급 프로그래밍 언어가 개발되게 되었습니다.
    - 고급 프로그래밍 언어는 통일된 언어체계로 작성합니다.
    - 컴퓨터는 고급 프로그래밍 언어로 작성된 코드를 인식할 수 없으므로 이를 어셈블리어로 번역해주는 과정이 필요하며, 이것이 컴파일입니다.
    - 번역하는 방식으로 컴파일러 방식과 인터프리터 방식이 있습니다.

  • 컴파일러
    - 전체 코드를 스캔하여 번역합니다.
    - 초기 스캔이 오래걸리지만, 한번 스캔하고나면 이전 실행파일을 다시 사용하므로 빠릅니다.
    - 오브젝트 코드를 만들고, 링킹 작업을 진행하므로 기계어 번역과정에서 더 많은 메모리를 사용합니다.
    - 전체 코드를 스캔하는 과정에서 모든 오류를 출력하기 때문에 실행전에 오류를 알 수 있습니다.
    - 컴파일을 하게되면 실행파일은 하드웨어에 종속적이 됩니다.
    - 수정사항이 발생하면 매번 새로 컴파일을 해야하므로 시간이 많이걸립니다. 따라서 개발 편의성이 떨어집니다.
    - 대표적으로 C, C++, JAVA 등이 있습니다.

  • 인터프리터
    - 프로그램 실행 시 한 문장씩 번역합니다.
    - 한 문장씩 번역 후 실행하므로 느립니다.
    - 오브젝트 코드 X, 링킹작업 X 이므로 메모리 효율이 좋습니다.
    - 실행하고 난 뒤 프로그램 오류를 발견하면 프로그램을 중단합니다. 실행 전에는 알 수 없습니다.
    - 실행파일이 하드웨어에 종속적이지 않습니다. 환경에 맞게 변환하기 때문입니다.
    - 한 문장씩 번역하여 실행하므로 수정이 용이합니다. 따라서 개발 편의성이 좋습니다.
    - 대표적으로 Python, Ruby, JavaScript 등이 있습니다.
profile
개발자가 되어가는 비전공자

0개의 댓글