컴퓨터구조에 따른 언어의 개발 / 설계

k_bell·2024년 10월 9일

프로그래밍언어론

목록 보기
2/8

현대의 컴퓨터 구조는 다들 잘 알다시피 von-neumann architecture 를 따르고 있다.

von-neumann architecture 는, 다음과 같이 이루어져 있다.

최근에는 이 구조에 storage 형태로 non-volatile memory 가 함께 추가된다. 따라서 컴퓨터의 프로그램들은 스토리지에 저장되고, 실행 시에 메모리에 로딩된다. cpu는 메모리에 로딩된 insturuction 들을 읽으면서 연산을 처리하는 것이다.

따라서 기계어의 실행 과정은 다음과 같다.

Fetch-excute-cycle

  1. fetch
    메모리의 insruction을 cpu로 가져온다.

  2. decoding
    바이너리로 번역된 기계어를 해석한다.

  3. execution
    명령어를 실행한다.

메모리에 있는 instruction의 주소는 cpu의 pc를 통해 접근한다.

Vom Neumann Bottleneck

von neumann architecture에서의 병목 현상은 cpu와 메모리 간의 접근 시간에 의해 발생한다. CPU가 아무리 성능이 좋더라도 메모리에 접근하는 시간에는 한계가 있기 때문에, 전체 프로그램의 실행 속도가 느려지는 것이다.

즉, 프로그램 명령어를 실행하는 속도보다는 메모리 접근 시간을 어떻게 줄일 것인지가 컴퓨터의 성능에 더 많은 영향을 미친다는 것이다.

Programming Methodologies

  1. 1950년대 : 하드웨어의 성능이 불안정했기 때문에, 우선 하드웨어가 잘 돌아가야 한다는 것에 중점을 둔 언어들이 많았다.

    하드웨어 입장에서 설계된 언어들이 많았다.

  2. 1960년대 : 하드웨어의 성능이 안정화되어 가면서, 프로그램 설계의 핵심이 사람으로 바뀌었다. 계층적 설계와 단계별 개선을 강조하는 구조적 프로그래밍이 중요시되었다.

  3. 1970년대 : 프로세스 중심에서 데이터 중심으로 프로그램 설계 방식이 바뀌었다. 데이터의 양이 방대해짐에 따라 데이터 추상화가 제공되었다.

  4. 1980년대 : 객체지향 프로그래밍 언어가 등장하였다. 데이터 추상화 + 상속 + 다형성이 가장 큰 특징이다.

0개의 댓글