컴퓨터공학/시스템프로그래밍

시스템프로그래밍 7 - 1

Arkeiyou 2021. 10. 5. 19:26

용어체크

1. 매크로

일련의 명령어에 대한 생략형으로 프로그램에서 반복되는 일련의 명령어를 묶어서 하나의 이름으로 정의해 놓고 호출해서 사용할 수 있도록 만든 것을 말한다.

2. 매크로 프로세서

자신의 고유한 언어(매크로 지시어)를 가진 별도의 언어 처리기로 즉, 매크로 정의에 따라 프로그램 내에서 매크로가 발견되면 발견된 모든 곳의 실제 코드들을 치환해 주는 기능을 가진 것을 말한다.

3. 서브루틴

프로그램 중의 하나 이상의 장소에서 필요할 때마다 반복해서 사용할 수 있는 부분적 프로그램이다.

 

학습내용
  • 매크로 정의와 확장
  • 매크로와 서브루틴
학습목표
  • 매크로가 무엇인지 매크로 프로세스의 역할을 설명할 수 있다.
  • 매크로와 서브루틴의 차이점을 알고 설명할 수 있다.

 

매크로와 서브루틴의 차이점

 

서브루틴과 매크로는 이들을 호출하는 호출 프로그램과 연관을 맺는 시기에 있어서 크게 차이가 있음.

 

서브루틴 : 호출 프로그램과의 연관은 프로그램 수행 시에 이루어짐. 프로그램 실행 시 분기가 일어나 진행이 완전히 서브루틴으로 옮겨갔다가 다시 되돌아옴. 동일한 서브루틴이 몇 번 호출되는지 관계없이 하나의 서브루틴 프로그램으로 처리됨

 

장단점

 

  장점 단점
매크로 서브루틴 호출이 일어나지 않기 때문에 호출에 필요한 시간은 절약됨 매크로가 여러 번 호출되면 동일한 코드가 반복적으로 프로그램에 나타나게 되어 프로그램이 길어지게 됨. 
주기억장치의 기억 공간을 많이 차지함
서브루틴 추가되는 코드가 없기 때문에 기억장소를 절약하게 됨 서브루틴 호출에 시간을 소비하여 실행시간이 길어짐

 

서브루틴 : 폐쇄형 서브루틴

매크로 : 개방형 서브루틴

 

프로그래밍 할 때 반복 되는 명령들을 프로그래머가 쉽게 사용할 수 있는 방법으로는 어떤 것이 있을까요?

 

반복되는 명령들을 하나의 서브루틴, 함수 또는 매크로로 정의해 놓고 필요한 부분에 호출하여 처리하는 방법이 있습니다. 매크로로 정의할 경우에는 매크로를 호출하게 되면 매크로의 정의된 모든 내용을 그대로 복사하여 사용하게 되고 함수나 서브루틴의 경우에는 호출 시에 함수 있는 곳으로, 정의된 곳으로 이동하여 처리하고 결과를 넘겨받는 형태로 처리가 됩니다. 장단점이 있으니 상황에 따라 고려하여 작성하여 사용하시면 됩니다.

 

 


Quiz 01반복되는 일련의 명령들을 하나의 이름으로 정의해 놓고 프로그래머가 쉽게 이용할 수 있도록 하는 것을 매크로의 기능이라 한다.

  • 1 O
  • 2 X

정답 :1

해설 :매크로에 대한 설명이다.

 

 

 

Quiz 02다음은 매크로와 서브루틴의 차이점에 대한 설명이다. 잘못 설명된 것은?

  • 1 매크로는 서브루틴 호출이 일어나지 않기 때문에 호출에 필요한 시간이 절약된다.
  • 2 서브루틴은 추가되는 코드가 없기 때문에 기억 장소를 절약하게 된다.
  • 3 매크로는 컴파일 후에 매크로 프로세서가 호출되며 컴파일 시간이 길어지고 기억 장소도 많이 차지한다.
  • 4 서브루틴은 프로그램 실행 시 분기가 일어나 서브루틴으로 옮겨갔다가 다시 되돌아 온다.

정답 :3

해설 :매크로는 컴파일 이전에 매크로 프로세서가 호출된다.

 

 

 

Quiz 03다음 설명 중 설명이 잘못 설명된 것은?

  • 1 매크로는 개방형 서브루틴 이라고도 불린다.
  • 2 매크로가 발견되는 곳마다 실제의 코드들을 치환해 주기 위해 매크로 프로세서가 필요하다.
  • 3 서브루틴은 패쇄형 서브루틴이라고도 불린다.
  • 4 MACRO는 매크로 지시어로 매크로의 이름만 매크로 프로세서에게 알려준다.

정답 :4

해설 :매크로 지시어 MACRO는 매크로의 이름과 내용을 매크로 프로세서에게 알려준다.

 

 


학습정리

 

1. 매크로 정의와 확장

  • 매크로는 반복되는 일련의 명령들을 하나의 이름으로 정의해 놓고 프로그래머가 쉽게 이용할 수 있도록 하는 것이다.
  • 매크로 지시어는 MACRO(매크로의 이름과 내용을 매크로 프로세서에게 알려줌)와 NDM(하나의 매크로가 끝났음을 매크로 프로세서에게 알려줌)이 있다.
  • 매크로 확장은 프로그램 내에서 정의된 매크로 이름이 발견되면, 해당 매크로를 불러온다. 매크로 호출에 의해 불려 온 소스코드와 프로그램 내에 있는 매크로 이름을 치환, 원래의 코드들이 확장된다.

 

2. 매크로와 서브루틴

  • 매크로의 장점은 서브루틴 호출이 일어나지 않기 때문에 호출에 필요한 시간은 절약된다. 단점은 매크로가 여러 번 호출되면 동일한 코드가 반복적으로 프로그램에 나타나게 되어 프로그램이 길어지게 되며, 주기억장치의 기억 공간을 많이 차지한다.
  • 서브루틴의 장점은 추가되는 코드가 없기 때문에 기억 장소를 절약하게 된다. 단점은 서브루틴 호출에 시간을 소비하여 실행 시간이 길어진다.