고수준 언어에서 프로그램 실행까지

Kyoungmoon Kim·2022년 8월 4일
0

고수준 언어

  • 사람이 이해하기 쉬운 언어이다. 문법을 정밀하게 작성하지 않아도 맥락에 따라 생략이 가능하다 => 유지보수가 비교적 쉽다.
    (인간 친화적이라는 예시: print, if~~ while ~)
  • 저수준 언어보다는 컴퓨터 < 인간에게 친화적이기 때문에 컴퓨터가 이해하는 데에 시간이 걸린다. -> 고사양 컴퓨터를 요구한다.
  • 컴파일러 또는 인터프리터를 사용하여 사람이 읽을 수있는 프로그램을 컴퓨터가 읽을 수있는 기계어 코드로 변환한다.
  • FORTRAN, Java, C,C++, Python

어셈블러

  • 어셈블리어로 작성된 원시 프로그램을 기계어로 된 목적 프로그램으로 어셈블하는 언어 번역 프로그램.
  • 어셈블러는 각자의 어셈블리 언어 명령어를 실제 명렁어 비트 패턴으로 변환하는 일뿐만 아니라 변수를 저장할 메모리 위치를 확보하는 일을 담당한다.
  • 비트 패턴은 각각의 컴퓨터에 대해 거의 완전히 다르게 변환된다.

고수준 언어 사용의 장점

  • 고수준 언어는 사람들이 생각하는 방식에 더 가까워 배우고 사용하기 더 쉽다.
  • 고수준 언어에서는 프로그램을 효율적으로 짜기 위해 특정 프로세서의 명령어 레퍼토리를 알아야 할 필요가 없다. 따라서 더 많은 이들이 더 빨리 프로그래밍을 할 수 있게 해준다.
  • 또한 고수준 언어로 작성된 프로그램은 특정 아키텍처에 종속되지 않는다. 그래서 같은 프로그램이 여러 아키텍처상에서 실행될 수 있다. 코드를 변경할 일이 없으면, 그냥 다른 컴파일러로 컴파일 하기만 하면 된다.
  • 그래서 프로그램을 한 번만 작성하면 다양한 컴퓨터에서 실행이 가능하다.
  • 또한 고수준 언어에서 다른 언어로 컴파일 하는 단계에서는 몇 가지 명백한 에러를 미리 점검하게 해준다.

고수준 언어의 종류

FORTRAN

초창기 언어 중 하나로, '수식변환(Formula Transition)'에서 이름이 유래됨.
과학과 공학 분야에서 계산을 표현하는 데 매우 성공적으로 사용되었다.
빠르게 수치 연산을 하는 프로그램을 만들 때 사용한다.
포트란은 1958년 이래로 몇 번의 진화 단계를 거쳤지만, 같은 언어라고 쉽게 알아볼 수 있을 정도로 오늘날에도 건재함.

코볼 (CO-BOL)

사무 데이터 처리 목적으로 사용되었고, 재고 관리, 송장 작성, 급여 계산 등에 사용되는 자료 구조와 계산을 쉽게 표현할 수 있는 언어적 특징이 있다.
코볼도 아직까지 사용되는 언어로 모습이 많이 바뀌었지만 아직 알아볼 만하다.

베이직

프로그래밍 교육을 위한 쉬운 언어로 만들어졌다.
베이직은 특히 간단하면서 컴퓨팅 자원을 적게 필요로 해서 개인용 컴퓨터에서 사용할 수 있는 첫 번째 고수준 언어였다.
마이크로소프트 창업자인 빌게이츠와 폴앨런은 1975년에 알테어 마이크로컴퓨터용 베이직 컴파일러를 만들면서 사업을 시작했는데, 이게 마이크로소프트의 첫 번째 제품이었다.
베이직의 주요한 변종인 마이크로소프트 비주얼 베이직이 오늘날에도 활발하게 지원되고 있다.

컴파일 언어

  • 컴파일 언어는 내가 작성한 소스 코드 전체를 컴퓨터가 알아먹을 수 있는 기계어로 번역한 뒤, 이 번역된 코드를 한번에 실행하는 두 단계를 거쳐 진행된다. 즉 번역과 실행이 완전히 따로 이루어진다는 뜻이다. 번역은 컴파일러를 통해 수행된다.

  • 대표적인 예시로는 C, C++, Go, 코볼, 포트란

    특징

  1. 컴파일은 오래 걸릴 수 있다!
    --- 힘겹게 만든 코드를 5시간에 거쳐 컴파일을 했다고 가정해보자! 그런데 변수 이름에 오타가 나서 에러가 발생했다면? 5시간동안 다시 컴파일 해야한다.

  2. 하지만 이미 컴파일이 된 프로그램이라면? 굉장히 빠른 속도로 실행이 가능하다.
    --- 이미 컴파일이 다 되어 있어서 실행만 하면 되기 때문에!

  1. 운영체제 (OS) 이식성이 낮다.
    --- OS마다 실행할 수 있는 기계어가 다른 경우가 있다. 그럼 다른 OS에서 내 실행 파일을 실행시키려면? 이미 만들어둔 실행 파일은 불행히도 실행되지 않는다. 해당 OS에 맞는 컴파일러로 다시 컴파일 해줘야한다.

인터프리터 언어

  • 인터프리터 언어는 소스 코드를 한 줄씩, 번역과 실행을 동시에 진행한다. 번역은 인터프리터를 통해 수행되며,
  • 대표적인 예시로는 Python, R, JavaScript, 베이직 등이 있다.

특징

  1. 줄 단위로 번역과 실행을 하기 때문에 실행이 느리다.
    --- 다시 다 번역하고 실행해야 해서...

  2. 디버깅이 쉽다! (개발의 편의성)
    --- 오류를 발견하면 해당 코드 밑으로는 번역 및 실행을 못하기 때문에 오류 발견이 쉽다.

  3. 운영체제 이식성이 좋다.
    --- OS마다 호환되는 인터프리터만 준비되어 있다면 바로 실행이 가능하다!

    Java는 둘 중에 어디에 속할까?
    https://jooona.tistory.com/157

profile
프론트 개발 공부를 정리한 블로그입니다.

0개의 댓글