프로그래밍 언어론 (11) 썸네일형 리스트형 [프로그래밍 언어론] 상속(inheritance) 새로운 클래스를 정의할 때 상속을 사용할 수 있는데 기존 클래스를 상속받아 새로운 클래스를 정의할 수 있음. ㅋ기존 클래스는 부모 클래스(parent class) 라고 하며 상속을 받아 새로 정의된 클래스는 자식 클래스(child class) 라고 함 상속을 이용해 자식 클래스를 새로 정의하면 자식 클래스는 부모 클래스의 필드 변수와 메소드들을 상속받아 갖게되며 필요에 따라 새로운 필드 변수나 메소드들을 추가할 수 있음. 부모 클래스를 확장한(extend) 클래스라고 할 수 있으며, 부모 클래스를 super class, 자식 클래스를 sub class 라고도 함 부모 클래스와 이를 상속받아 정의하려는 자식 클래스 사이에는 반드시 is - a 관계가 성립되어야 함. (ex. human is animal) .. [프로그래밍 언어론] 객체(object)와 클래스 객체(object) 는 그 객체의 속성(attribute)과 그 객체의 행동(behavior)으로 이루어짐 - 속성: 객체의 데이터 혹은 상태를 나타내는 속성 - 행동 : 객체가 취할 수 있는 연산 혹은 동작 클래스로부터 객체들을 생성해 내는 것을 실체화(instantiation) 이라고 하며 객체는 클래스의 하나의 실체 혹은 인스턴스(instance)라고 함. 하나의 클래스 정의는 클래스 헤더(class header) 와 클래스 본체(class body) 로 구성 클래스 헤더에는 정의하고자 하는 클래스 이름을 표기 클래스 본체 내에서는 객체의 속성을 나타내기 위한 필드 변수들(field vatiables)을 선언하고, 행동을 정의하는 메소드들(methods)을 정의 클래스 내에 선언된 변수들을 실체 변.. [프로그래밍 언어론] 예외 처리 예외 처리를 위한 기능 - 예외 정의 : 프로그래머가 새로운 예외를 정의할 수 있는 기능 - 예외 발생(raise or throw exception) : 예외를 발생시킬 수 있는 문장 - 예외 처리(exception handling) : 발생된 예외를 처리하기 위한 문장 재개 모델(resumption model) : 예외가 발생하면 예외 처리 후 예외를 발생시킨 코드로 재개하여 계속 실행 종료 모델(termination model) : 예외가 발생하면 예외 처리 후 예외를 발생시킨 코드로 재개하지 않고 try 문을 끝내고 다음 문장을 실행 호출된 함수 내에서 발생된 예외는 그 함수 내에서 처리되지 않으면 호출의 역순으로 처리될 때까지 호출자 함수에게 전파되는데 이를 예외 전파(exception propa.. [프로그래밍 언어론] 함수 함수는 헤더(header) 와 본체(body) 로 이루어 짐 헤더에는 리턴 타입(return type), 함수이름(id), 매개변수(parameter) 를 선언 함수 호출은 함수 이름과 인자(argument) 로 구성 정적 유효 범위(static scope) - 선언된 이름은 선언된 블록 내에서만 유효함. 대부분 언어에서 표준 규칙으로 사용 동적 유효 범위(dynamic scope) - 선언된 이름은 선언된 블록의 실행이 끝날 때까지 유효. 실행 경로에 따라 유효 범위가 달라짐 바인딩(binding) 은 이름을 어떤 속성(attribute)과 연관 짓는 것을 말하며, 보통 변수, 상수, 함수 등의 이름을 속성과 연관 짓는 것 정적 바인딩(static binding) - 컴파일 시에 한번 바인딩이 이루어지.. [프로그래밍 언어론] 타입 시스템 타입 오류(type error) : 프로그램 실행 중에 수식, 문장, 함수 등의 프로그램 구성요소가 타입에 맞지 않게 잘못 사용되어 발생하는 오류 어떤 타입 시스템이 안전하다는 것은 이 타입 시스템의 타입 검사를 오류없이 통과한 프로그램은 실행중에 타입 오류를 일으키지 않을 것이 보장된다는 의미 정적 타입 검사(static type checking) : 프로그램 내에 선언된 변수나 함수의 타입 정보를 이용해서 프로그램의 구성요소(변수, 수식, 문장 등) 가 타입에 맞게 올바르게 사용되고 있는지 컴파일 시간에 검사하는 것 타입 규칙(typing rule) : 수식, 문장, 함수 등과 같은 프로그램 구성요소의 올바른 타입 사용 및 그 결과 타입을 정하는 규칙 타입 시스템(type system) : 프로그래밍.. [프로그래밍 언어론] 자료형(data type) 자료형(data type)은 값들의 집합과 이 값들에 대한 연산들의 집합 - 기본 자료형(basic type) : 더 이상 쪼갤 수 없는 값들로 구성된 자료형 - 빌트인 기본 자료형 : 프로그래밍 언어에 의해 사전 정의된 기초 자료형(primitive type) (ex. boolean, char, int) - 사용자 정의 기본 자료형 (ex. enumeration type) 복잡 타입(composite type) 을 구성하는 타입 구성자(type constructor) - 배열 타입(array type) : 같은 타입의 연속된 변수들로 구성하는 자료형. 배열을 구성하는 변수 하나 하나를 배열 요소(element)라고 하며 배열 요소는 배열 이름과 순서를 나타내는 인덱스로 나타냄 - 리스트(list) : .. [프로그래밍 언어론] 의미론(sementics) 의미론(sementics) 는 작성된 수식, 문장 혹은 프로그램의 의미를 정하는 것 - 프로그램의 의미를 정확하게 정희하고 이해하기 위해 필요 - 소프트웨어가 하는 일을 정확하게 명세하는데 사용 - 소프트웨어에 대한 검증 혹은 추론의 기초 - 컴파일러 혹은 해석기 작성의 기초 작동 의미론(operational semantics) : 프로그램 내의 수식이나 문장의 작동 등 실행 과정을 기술하여 정의하는 방법 표시 의미론(denotational semantics) : 프로그램 내의 수식이나 문자의 의미를 표시하고 부르는 수학적 함수 형태로 정의하는 방법 공리 의미론(axiomatic semantics) : 프로그램 내의 문자의 의미를 그 문장의 전제 조건과 후행 조건을 상태에 대한 표명(assertion)으.. [프로그래밍 언어론] 변수, 유효 범위 선언된 변수 이름이 유효한 프로그램 내의 범위/영역을 변수의 영역 혹은 유효범위(scope) 정적 유효범위 규칙(static scope rule)의 기본 개념은 선언된 이름은 선언된 블록 내에서만 유효하는 것 블록의 중첩을 허용하는 언어를 블록 구조 언어(block structured language)라고 함 상태 s 를 이름 집합인 Identifier 에서 값 집합인 Value 로 가는 하나의 함수로 정의 - s:Identifier -> Value 문장 S 를 상태 s 에서 상태 s' 으로 변경 시키는 것을 상태 전이(state transition) - (s, S) -> s' 문장 S 의 상태 s 에서 상태 s' 으로 변경 시키는 상태 변환 함수(state transformation fuction) 을.. 이전 1 2 다음