프로그래밍언어론 ) (1) 메모리에 적재된 프로그램의 기계어 명령어 하나를 컴퓨터의 CPU가 수행하는 과정에 대해 간략히 설명하시오. (2) 고급 프로그래밍 언어로 작성된 프로그램을 컴퓨터의 CPU가 수행하기 위해 필

목차

1. 다음에 대해 답하시오. (15점)
(1) 메모리에 적재된 프로그램의 기계어 명령어 하나를 컴퓨터의 CPU가 수행하는 과정에 대해 간략히 설명하시오.
(2) 고급 프로그래밍 언어로 작성된 프로그램을 컴퓨터의 CPU가 수행하기 위해 필요한 프로그래밍 언어 구현 방법을 두 가지 이상 이름만 나열하시오.
(3) (2)에서 제시한 방법 중 한 가지에 대해서만 10줄에서 20줄 사이로 자세히 설명하시오.

2. 다음에 대해 답하시오. (15점)
(1) BNF로 표현된 다음 세 개의 구문을 하나의 EBNF로 합쳐 표현하고 그렇게 표현한 이유를 설명하시오.
<do-while문> ::= do { <문장들> } while <논리식> ;
<문장들> ::= <문장> <문장들> | <문장>
<논리식> ::= True | False
(2) (1)에서 답한 EBNF 표현을 구문 도표로 표현하고 그렇게 표현한 이유를 설명하시오.

본문내용

(1) 메모리에 적재된 프로그램의 기계어 명령어 하나를 컴퓨터의 CPU가 수행하는 과정에 대해 간략히 설명하시오.

컴퓨터의 CPU가 메모리에 적재된 프로그램의 기계어 명령어를 수행하는 과정은 대체로 다음과 같다:
① 명령어 인출 : CPU는 현재 실행할 명령어의 주소를 Program Counter (PC) 라는 레지스터에서 확인한다. PC에 저장된 주소를 참조하여 메모리에서 해당 기계어 명령어를 인출한다. 인출 후, PC는 다음 명령어의 주소로 자동적으로 업데이트 된다.
② 명령어 해독 : CPU의 명령어 디코더는 인출된 기계어 명령어를 해석한다. 이 단계에서 CPU는 어떤 연산을 해야 하는지, 어떤 데이터나 레지스터가 필요한지 등의 정보를 파악한다.
③ 데이터 인출 : 명령어 실행에 필요한 데이터를 메모리나 CPU 내부의 레지스터에서 가져온다.
④ 명령어 실행 : CPU는 해석된 명령어에 따라 특정 연산을 수행합니다. 대부분의 연산은 ALU(Arithmetic Logic Unit)에서 처리된다.
⑤ 결과 저장 : 연산 결과는 메모리나 레지스터에 저장된다. 이렇게 명령어 인출부터 결과 저장까지의 일련의 과정을 “명령어 주기”라고 한다. 현대의 고성능 CPU들은 이 과정을 최적화하기 위한 다양한 기술, 예를 들면 파이프라이닝, 분기 예측, 아웃 오브 오더 실행 등을 활용하여 높은 성능을 달성하고 있다.

(2) 고급 프로그래밍 언어로 작성된 프로그램을 컴퓨터의 CPU가 수행하기 위해 필요한 프로그래밍 언어 구현 방법을 두 가지 이상 이름만 나열하시오.

출처 : 해피캠퍼스

코멘트

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다