본문 바로가기

Language15

[Programming Language] 7. 부프로그램 구현 (2) 직전글 2023.08.02 - [Language] - [Programming Language] 7. 부프로그램 구현 (1) - 재귀 부프로그램 예제int factorial(int n) { // 지점 1 if (n 2023. 8. 3.
[Programming Language] 7. 부프로그램 구현 (1) 직전글 2023.07.31 - [Language] - [Programming Language] 6. 부프로그램(Subprogram) (4) ● 호출과 복귀의 일반적인 의미 - 부프로그램 연결 부프로그램 호출과 복귀 연산을 통틀어 부르는 용어 - 부프로그램 호출 과정 호출 과정은 사용되고 있는 매개변수 전달 방법의 구현을 포함해야 함. 지역 변수가 정적 변수가 아니라면, 호출 과정은 피호출 부프로그램에서 선언된 지역 변수를 위한 기억 장소를 할당하고, 그 기억장소에 지역 변수를 바인딩하여야 하며, 호출 프로그램 단위의 실행 상태를 저장해야 함. 이후, 제어를 부프로그램 코드에 전달하고, 부프로그램이 끝났을때 제어가 반환될 수 있도록 해야 함. 언어가 중첩 부프로그램을 지원한다면, 호출과정은 피호출 부프로그.. 2023. 8. 2.
[Programming Language] 6. 부프로그램(Subprogram) (4) 직전글 2023.07.30 - [Language] - [Programming Language] 6. 부프로그램(Subprogram) (3) ● 중복 부프로그램 - 중복 연산자 여러 가지 의미를 갖는 연산자. 피연산자의 타입에 의해 의미가 결정됨. - 중복 부프로그램 같은 참조 환경에서 다른 부프로그램과 이름이 같은 부프로그램 모든 중복 부프로그램은 "고유한" 프로토콜을 가짐. 즉, 매개변수의 개수, 순서, 타입, 또는 반환 타입에서 달라야 함. 어떤 부프로그램이 호출되었는지는 "실 매개변수 리스트"와 "반환값의 타입"에 의해 결정됨. ㄴ C++, Java의 사용자 정의 중복 생성자 각 중복 생성자는 유일한 매개변수 프로파일을 갖기 때문에, 컴파일러는 매개변수의 타입으로 모호함을 해결함. 그러나, C++와.. 2023. 7. 31.
[Programming Language] 6. 부프로그램(Subprogram) (3) 직전글 2023.07.29 - [Language] - [Programming Language] 6. 부프로그램(Subprogram) (2) - 매개변수 전달 방법의 구현 대부분의 현대 프로그래밍 언어에서 매개변수 전달은 런타임 스택(run-time stack)을 통하여 이루어짐. 런타임 스택은 시스템 프로그램에 의하여 초기화되고 유지 관리됨. 런타임 스택은 부프로그램 제어 연결과 매개변수 전달을 위해 광범위하게 사용됨. (이후 관련 내용 나올 예정) 이하에서는 스택을 통하여 모든 매개변수가 전달된다고 가정함. 1. 값 전달 매개변수 값을 스택 장소에 복사하고, 스택 장소는 대응되는 형식 매개변수의 기억장소로 사용됨. 2. 결과 전달 매개변수 값 전달의 반대로 구현함. 결과 전달 실 매개변수에 배정된 값이.. 2023. 7. 30.
[Programming Language] 6. 부프로그램(Subprogram) (2) 직전글 2023.07.25 - [Language] - [Programming Language] 6. 부프로그램(Subprogram) (1) ● 부프로그램의 설계 고려 사항 - 주요 설계 고려 사항들 지역변수의 정적/동적 할당 여부 부프로그램의 정의가 중첩(Nested)될 수 있는가에 대한 여부 매개변수 전달 방법의 선택 부프로그램의 이름이 매개변수로 전달될 수 있는가에 대한 여부 부프로그램의 이름이 매개변수로 전달되고 부프로그램이 중첩되는 것이 허용된다면, 매개변수로 전달된 부프로그램의 올바른 참조 환경에 대한 문제가 제기됨 부프로그램을 중복 또는 포괄형 부프로그램으로 허용하는가에 대한 여부 중복 부프로그램 : 동일 참조 환경 내에서 다른 부프로그램과 같은 이름(+ 다른 프로파일)을 갖는 부프로그램 포괄.. 2023. 7. 29.
[Programming Language] 6. 부프로그램(Subprogram) (1) 직전글 2023.07.16 - [Language] - [Programming Language] 5. 문장 수준의 제어 구조 ● 서론 프로그래밍 언어에서 두 개의 기본적인 추상화 도구로는 프로세스 추상화 도구인 "부프로그램(함수)"와 데이터 추상화 도구인 "클래스"가 있음. 초창기 고급 언어에서는 프로세스 추상화만 반영했음. 명령문장의 묶음을 부프로그램으로 작성 및 재사용함. 이러한 재사용은 메모리 공간과 코딩 시간을 포함하여 절약을 가져왔으며, 프로그램의 가독성을 증가시킴. 또한, 이러한 재사용은 추상화라고 할 수 있음. 부프로그램 세부 사항이 부프로그램을 호출하는 문장에 의해서 대체되기 때문임. 객체지향 언어의 메소드도 부프로그램과 밀접한 관계가 있음. 메소드와 부프로그램의 차이점은 메소드가 호출되는 .. 2023. 7. 25.