Computer Science/프로그래밍언어론

5-2단원 요소 타입 동형(homogeneous) 구조: array, set 이형(heterogeneous) 구조: record, list 주의: 동형 리스트만 허용하는 경우도 있음 저장공간 관리의 문제점 Garbage(떠돌이 객체) 참조 경로를 잃어 버린 객체 객체의 deadlocation이 너무 늦음 dangling object라고도 함 위험하진 않지만 공간의 낭비 -> 메모리 누수 Dangling Reference(외로운 참조) 이미 해제된 공간을 가리키는 참조 경로 객체의 deadlocation이 너무 빠름 다른 용도의 공간을 훼손할 수 있음 -> 심각한 위험 6단원 Abstraction(추상화): 더 간단하게 만드는 것 Encapsulation(캡슐화): Data와 Operation을 하나의 묶..
Introduction Subprogram Control Sequence Control : call/return Data Control: scope rule, parameter transmission Secuence Control Copy Rule: 서브프로그램 호출이 일어나면 서브프로그램 몸체를 그대로 복사한다. 고려할 사항: 인수 이름 충돌, 재귀호출 호출시 변하지 않는 부분과 변하는 부분 분리 변하지 않는 부분 -> code segment -> static segment 변하는 부분 -> activation record -> dynamic segment Scope Ruels Static Scope Rule: 수행 전 변수의 scope 결정 Dynamic Scope Rule: 수행 중 변수의 scop..
사람이 대화를 할 때도 뜻이 제대로 전달되기 위해서는 '순서'가 중요하다. 프로그래밍 언어에서는 이를 Sequence Control(flow control)이라고 한다. Classifying Sequence Controls Control 분류 Sequence Control(Flow Control): 수행 순서 제어 Data Control: 서브프로그램 사이의 데이터 흐름 제어 제어 대상 크기(granularity)에 따른 Sequence Control 분류 Expressions: 표현 식 계산 제어 Statements: 문장 수행 제어 Subprograms: 서브 프로그램 사이의 흐름 제어 cf) Declaerative Programming: 추론 과정 제어 (여기서 다루지는 않음) 표현 여부에 따른 S..
Abstract Data Types(이전 챕터 복습) Abstract Data Types 사용자 정의 데이터 타입 T T에 적용 가능한 추상 연산(abstract operation) 타입 T 객체의 캡슐화(encapculation): 위에 정의된 연산을 제외한 다른 방법으로는 타입 T의 객체를 다룰 수 없음 주의 위 정의에서는 캡슐화와 정보은닉을 같은 것으로 다룸 은닉화는 외부에서 객체의 속성을 함부로 접근하지 못하도록 하는 것 일컫고, 캡슐화는 메서드 안에서 어떠한 일이 일어나고 있는지 모르게 해야한다는 것이다. 추상 연산(abstact operation)이란, 연산자의 인터페이스와 동작만 드러나 있을 뿐 "구현"이 드러나 있지 않은 연산을 말함 C++에서의 클래스 C++에서는 class를 통해 ADT..
Abstraction? 추상화 hiding the details 관심있는 것에 집중 용어 Abstraction(추상화): 더 간단하게 만드는 것 Encapsulation(캡슐화): 하나의 단위로 만드는 것 Information Hiding(정보은닉): 상세내용을 숨기는 것 추상화, 캡슐화, 정보은닉은 밀접한 연괸이 있음 캡슐화와 정보은닉은 통상 같은 의미로 사용하지만 구분하는 경우도 있음 데이터 타입의 발전 1957~1960(FORTRAN, ALGOL) 하드웨어에 직접 구현된 형태의 primitive data 1960~1963(COBOL,PL/I) 구조체의 등장 : primitive objects의 모음 1968~1970(Pascal, Algol68) 새로운 타입 정의 가능 새로운 타입을 사용하는 함수 ..
homogeneous aggregationProgramming이란? Programs = Algorithms+ Data Structures 입력 데이터를 적합한 절차를 통해 처리하는 것 프로그래밍 언어: 데이터와 알고리즘을 기술해야 함 내가 해야할 문제의 해결방법이 해당 언어에서 직접 제공된다면 그것으로 충분, 그렇지 않다면 무엇인가 만들어야 함(Data Type+Operations) Encapsulation Data와 Operation을 하나의 묶음(capsule)으로 묶을 수 있는 장치 Encapsulation=information hiding 사용자 정의 데이터 타입 네가지 Basic Mechanisms Structured Data: 복합 데이터를 만들 수 있는 기능 Subprograms: 새로운 연..
Data and Type Data 처리 대상 숫자, 문자 ,군집 데이터, 복합 데이터, 메타 데이터(예: 포인터) Type(형) 데이터를 분류해 둔 것 데이터의 집합 타입 = 갑 집함 + 연산 집합 Abstract Data Type: 연산의 구현방법이 명시되지 않은 데이터 타입 Data Objects and Values Data Object 데이터 값을 포함하는 container 또는 memory location 일반적으로 변수라고도 함 Scalar data objects: Numeric(Integer,Real),Boolean,Characters,Enumerations Composite objects: String, Pointer Structured objects: Arrays, Records, List..
Regular Grammar 형태 좌변: nonterminal 한개 우변: 정해진 한쪽 끝에만 nonterminal이 최대 한개 올 수 있음 좌측 끝: left-linear grammar 우측 끝: right-linear grammar 정규 문법의 예 Id ->aX | ... |zX | a | ... |...| z (대문자는 nonterminal, 안올수도 있다) Context Free Grammar 형태 좌변: nontermial 한개 우변: 제한 없음 문맥무관 문법 예 E -> E + T |T T -> T*F|F Context Sensitive Grammar 형태 좌변의 길이가 우변의 길이보다 크면 안됨 따라서 empty string (엡실론)은 생성할 수 없음 문맨민감 문법 예 S -> abc | ..
윤재에요
'Computer Science/프로그래밍언어론' 카테고리의 글 목록