본문 바로가기

CS(Computer Science)/프로그래밍언어14

10장 부 프로그램 부 프로그램 (SubProgram) - 일련의 행위나 계산을 추상화 하는 기법을 제공 - 실행과 분리해서 선언할 수 있는 블록(호출을 요구) - 식별자를 가지고 있고, 특정 언어 구성자를 이용하여 다른 모듈에 의해서 호출되거나, 다른 프로그램에서의 제어 흐름(control flow)속으로 호출되는 모듈 - 그 모듈에서부터 제어 흐름은 호출한 프로그램이나 모듈로 변환된다. ex) 함수(function) : 함수 이름으로 값 반환, 하나의 결과값만을 반환 서브루틴(subroutine, procedure) : 하나 이상의 결과값 배정, 환경 변환 등 주어진 목적의 완료 프로시저의 구성 1) 프로시저 이름 2) 매개변수(parameter)리스트 3) 환경(environment) 4) 몸체(body) 매개변수(p.. 2023. 6. 4.
9장 요약 기억 장소 할당 기법 1) 정적 기억장소 할당 -> 번역 시간 2) 동적 기억장소 할당 -> 실행 시간 // 스택 할당 , 힙 할당 단위 활성화 : 코드부(고정) + 활성 레코드(가변) 오프셋 : 활성 레코드의 상대 위치 1) 정적 변수 : 활성 레코드의 크기가 번역 시간에 결정된다(정적 바인딩) / 번역시간에 기억장소 할당 (정적 바인딩) 2) 준 정적 변수 : 활성 레코드의 크기가 번역 시간에 결정된다(정적 바인딩) / 실행시간에 기억 장소 할당 (동적 바인딩) 3) 준 동적 변수 : 활성 레코드의 크기가 실행 시간에 결정된다(동적 바인딩) / 실행시간에 기억장소 할당 (동적 바인딩) -> Stack으로 4) 동적 변수 : 활성 레코드의 크기가 실행시간에 결정되며 변할 수 있다(동적 바인딩) / 실행.. 2023. 6. 4.
9. 기억장소 배당 기억장소 할당 기법 : 프로그래밍 언어를 설계하고 구현하고자 할 때 우선 고려 사항 -> recursion 허용 , 배열 크기 변화 등 정적 기억 장소 할당 : 번역 시간 (적재 시간) (컴파일 타임, 로딩 타임) 기억장소 크기와 위치가 정적으로 고정 배열 접근 코드가 효율적 (크기 고정) 조건 : 사용된 모든 배열은 확정된 고정 크기로 선언 부프로그램은 되부름(recursion) 불가 Fortran, Cobol, Basic 등에서 사용 동적 기억 장소 할당 : 실행 시간 변수 제한 완화(자료형, 크기 등) 인터프리터 언어 - Lisp, Snobol4, APL Algol 형태 언어 - recursion 허용 정적, 동적 기억 장소 할당을 함께 수행하는 언어 1) ALGOL own 변수 : 정적할당 own.. 2023. 6. 3.
8. 영역과 수명 영역(scope) : 식별자의 효력을 나타낼 수 있는 영역 , 식별자의 사용이 허락되는 프로그램의 범위 , 프로그램 내에서 어떤 선언이 유효한 부분 식별자(identifier) : 변수, 상수, 레이블, 자료형, 부프로그램 등의 이름 언어 구성자를 명명하는 어휘토큰 / 변수, 배열, 레코드, 레이블, 프로시저 등의 이름/ 일반적으로 문자가 맨 앞에 오고, 그 뒤에 영문자,숫자, 그밖의 문자가 0개 이상 따라옴 수명(Extent, LifeTime) : 식별자(변수) 값을 보유할 기억장소가 배정되어 있는 실행시간 식별자의 기억장소 할당부터 해제까지의 기간 언어 구성자가 존재하는 동안을 가리키는 실행시간의 부분 식별자 영역 제공의 간결화로 모든 식별자를 전 프로그램에서 사용가능하도록 "전역변수화" 하는 방법 .. 2023. 6. 3.
728x90