본문 바로가기

반응형

Computer

객체지향언어(Object Oriented Language) I. C++의 다형성기능 템플리트구조 - 일반화 추상 자료형 - 매크로 대치구조이므로 사용시마다 동일한 템플리트 코드가 만들어짐II. 객체지향 프로그램의 개념 역사 - 1960년대 Simula 67이 기원 - 1980년 Smalltalk80에서 완전한 모습을 나타냄 객체 - 실세계에 존재하는 모든 것 - 자체의 정보 + 외부와 상호작용 프로그래밍 언어의 객체 - 객체기반의 언어 객체중심->객체에 필요한 연산을 요청 - 프로시저중심의 언어 연상중심->연산이 데이터를 처리 - 객체 : 추상 자료형에 의해 만들어진 것. (보호화된 데이터 + 데이터에 대한 연산) 객체를 기반으로 하는 언어 분류 - 객체기반언어 단순히 추상 자료형의 객체를 정의할 수 있는 언어 - 객체지향언어 추상자료형 + 계승/부프로그램 호출.. 더보기
대규모 프로그래밍 분할정복 - 복잡한 것을 여러 부분으로 분할 - 분할된 여러 부분을 좀 더 작은 문제로 나누어 해결 - 각 부분의 중요 특징만을 추출=>추상화추상화 - 프로그램의 추상화 : 모듈화 - 모듈 : 상호작용의 최소화 및 독립적 기능캡슐화 - 부프로그램과 데이터의 통합 - 정보은폐:모듈의 구체적인 표현 및 구현 내용 접근의 블랙박스화 - 구조 접속부 : 제공되는 서비스의 정의 및 서비스에 대한 접근방법 정의 구현부 : 서비스를 구현한 부분(사용자에게 은폐)독립컴파일 - 어떤 모듈을 다른 모듈에 관계없이 컴파일하는 것 - 예 : C분리컴파일 - 순서를 따라서 컴파일함 - Ada, Modula-2, FORTRAN 90 추상자료형 - 하나의 자료형에 대한 표현명세와 그 자료형에 대한 연산인 부프로그램의 캡슐화 - 접.. 더보기
범위 (Scope) 실체(변수,레이블의 속성)가 그 이름(변수이름,프로시저이름,레이블이름)으로 유효하게 사용(이름으로 접근 가능)될 수 있는 프로그램의 영역. Ada에서처럼 정의하는 방법에 따라서는 범위와 가시성을 별개로 구분할 수도 있다. 블록 ALGOL60에서 최초 제시된 개념. 특정 변수가 어떤 문맥 속에서 의미를 가지는 범위. 블록구조 언어 : 블록 안에 또 다른 블록이 포함되는 것을 허용하는 언어 경계 : 부호 또는 예약어를 사용하여 지정함 변수 사용 범위 : 지역변수 : 자기 블록에서 선언된 변수 비지역변수 : 상위 블록에서 선언된 것이지만 자기 블록에서 쓸 수 있는 변수 전역변수 : 제일 바깥 쪽 블록에서 선언되어 모든 블록에서 쓸 수 있는 변수 장점 : 블록 내에서는 변수명을 자유롭게 사용할 수 있게 됨. 프.. 더보기
참조 환경과 기호 상수 (referencing environment and symbolic constant) 참조 환경(referencing environment) 명령문에서 접근할 수 있는 모든 이름(변수 이름, 프로시저 이름, 레이블 이름)들의 집합 (1) 정적 범위 규칙 언어의 참조 환경 - 지역환경 : 지역변수로 구성됨 - 비지역환경 : 비지역 변수로 구성됨 - 컴파일시 피연산자나 자료구조의 주소를 결정 (2) 동적 범위 규칙 언어의 참조 환경 - 지역환경과 활성 상태 블록 변수로 구성됨 기호 상수(symbolic constant) 모양은 변수이지만 실제로는 상수임 (1) 정적 기호상수 - 실행 이전에 값이 바인딩 됨 - 컴파일시 실제 값이 대체되며, 기억장소가 할당되지 않는 특징 - Pascal, C, Modula-2 (2) 동적 기호상수 - 실행 시의 계산된 값 바인딩 - 기억장소 할당 필요 - Ad.. 더보기
기억장소와 생명시간 (memory and lifetime) 기억장소 할당 - 변수의 값을 기억시킬 기억장소를 할당(allocation)하면 변수의 메모리 위치가 바인딩됨 - 변수의 필요성이 없어지면 할당된 기억장소가 반납됨 생명 시간(lifetime) - 변수의 값과 기억장소가 바인딩되어 있는 시간간격 - 생명시간에 따른 변수 분류 : 정적변수, 스택변수, 명시적 히프변수, 묵시적 히프변수 1. 정적 변수(static variable) 기억장소가 실행 이전에 바인딩되어 실행종료까지 계속되는 변수이며, 실행시간 전체에 걸친 생명시간을 가진다. 해당 단위 프로그램이 실행중이 아닌 동안에도 바인딩이 유지됨. C/C++, Java에서는 static을 지역변수의 선언 앞에 붙이면 정적 변수로 선언된다. 전역 변수도 정적 변수로 볼 수 있다 (1) 장점 프로그램 실행중 기.. 더보기
동적 형 바인딩(Dynamic Type Binding) 형 바인딩 - 대부분의 언어에서 변수의 형은 정적으로 바인딩 됨 - 동적 형 바인딩 언어에서는 실행시 지정문에 의하여 변수값이 주어지면 그 값에 따라 변수에 형이 바인딩. - 동적 형 바인딩 언어 : APL, SNOBOL4, Perl 장점 - 융통성이 많은 프로그램을 작성할 수 있다 - 어떤 형 매개변수도 받아들일 수 있는 프로시저가 가능하다 단점 - 컴파일러 오류검사능력 저하 - 실행시의 형 조사로 인해 실행속도 저하 - 변수형에 대한 설명자를 실행시에도 유지해야 한다 - 변수의 기억장소가 가변적이어야 한다 더보기
변수 (Variables) 폰 노이만 구조의 메모리 셀을 추상화한 것변수의 속성 1. 이름 : 개체 식별을 위한 문자 스트링 2. 값 : 기억장소에 저장된 내용 3. 형 : 값의 범위와 값에 대한 정의 4. 위치 : 변수와 연관된 기억장소의 주소 5. 범위 : 프로그램 내의 유효구역 6. 생명시간 : 기억장소 점유시간 변수의 선언 명시적 선언 : 선언 후 사용 묵시적 선언 : 명시적 선언 없이 바로 사용 변수의 값 - 지정문에 의해서 변수의 값이 부여(바인딩)됨 - 지정하는 메모리 위치(r-값:right-hand side value)에 지정하는 값(변수,l-값:left-hand side value)을 저장하는 것 예) 지정문 x := y; - 오른쪽(y) : r-값(right-hand side value) : 변수의 값 - 왼쪽(.. 더보기
속성과 바인딩(Attribute and Binding) 속성(Attribute) : 프로그램에 나타나는 변수, 프로시저, 문 등의 실체(Entity)가 가지게 되는 성질 - 변수의 속성 : 이름, 값, 형, 저장위치 등 - 프로시저의 속성 : 이름, 매개변수, 매개변수 전달방식, 수행할 코드 - 명령문 : 수행연산 - 정적 속성 : 정적으로 바인딩되는 속성 - 동적 속성 : 동적으로 바인딩되는 속성 바인딩(Binding) : 실체의 속성을 특정한 값으로 정하는 것. 실체들이 쓰이기 전에 반드시 속성이 결정되어 있어야 하며, 실체의 속성을 특정한 값으로 정하는 것. 각 실체의 바인딩 정보의 저장장소를 설명자(descriptor)라고 함. - 정적 바인딩 : 실행 이전에 바인딩이 이루어 지는 것 - 동적 바인딩 : 실행시에 이루어지는 바인딩 바인딩 시각(Bind.. 더보기

반응형