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

강인호·2022년 8월 3일
0

cs스터디

목록 보기
15/17

1960년대초에 특정 프로세서 아키텍처에 독립적은 고수준 프로그래밍 언어의 개발이 일어났는데, 고수준 언어를 쓰면 사람이 표현하는 방식에 가까운 용어로 계산 과정을 작성할 수 있다.

일반적인 고수준 언어에서는 X와Y를 더하고 결과를 Z에 저장하는 계산이 다음과 같이 표현된다.

Z = X + Y

이는 X와 Y라는 메모리 위치에서 값을 가져와서 두 값을 더하고 Z라는 메모리 위치에 저장하라 는 뜻이다 연산자 = 는 같다 가 아니라 대체하다 또는 저장하다 라는 뜻이다. 같은 의미의 계산을 모형 컴퓨터용 컴파일러로는

LOAD X
ADD Y
STORE Z

라는 식으로 3줄로 표현된다.

고수준 언어는 어셈블리 언어에 비해 큰 이점을 갖는다. 사람들이 생각하는 방식에 더 가까워 배우고 사용하기 더 쉽다.
고수준 언어에서는 프로그램을 효율적으로 짜기 위해 특정 프로세서의 명령어 레퍼토리를 알아야 할 필요가 없다.

또한 고수준 언어로 작성된 프로그램은 특정 아키텍처에 종속되지 않는다. 그래서 같은 프로그램이 여러 아키텍처상에서 실행될 수 있다.프로그램을 한 번만 작성하면 다양한 컴퓨터에서 실행할 수 있다.

또한 컴파일 단계는 몇 가지 명백한 에러를 미리 점검하게 해준다. 여기에는 철자 오류 괄호 불일치 같은 구문 오류 정의되지 않은 변수에 대한 연산 같은 것들이 포함되며, 실행 프로그램이 만들어지려면 프로그래머가 이러한 에러를 반드시 고쳐야만 한다.

어셈블리는 구문 오류 이외의 에러는 검출하기 어렵다. 명령어의 실행순서까지는 상관하지 않아서. 논리적인 흐름이나 전후 관계를 파악하지 못하기 때문이다.

프로그래밍 언어 간의 유사점과 차이점을 살펴볼 수 있도록 가장 중요한 고수준 프로그래밍 언어 여섯가지로 작성된 동일 기능의 프로그램을 보여주려고 한다. 각 프로그램은 앞서 만든 모형 컴퓨터 프로그램과 동일한 계산을 수행한다. 일련의 정수를 합산하다가 0 값이 입력되면 합계를 출력하고 작동을 멈춘다.
프로그램들은 모두 같은 구조로 되어 있다. 프로그램이 사용하는 변수에 이름을 붙이고 누적 합계를 0으로 초기화한 다음, 수를 읽으면서0을 만나기 전까지는 누적 합계에 더하고 마지막으로 합계를 출력한다.

0개의 댓글