프로그래밍언어론

    [2021-1 프로그래밍언어론] Chapter 14: Exception Handling and Event Handling

    Introduction to Exception Handling 예외 처리가 불가능하다면, 예외가 발생했을 때 제어권은 운영체제로 이동하고, 에러 메세지가 표시되며 프로그램은 종료된다. 반면에 예외 처리가 가능하다면, 프로그램은 몇몇 예외에 대하여 적절한 처리를 함으로써 프로그램이 종료되지 않고 계속 실행될 수 있도록 할 수 있다. 예외(Exception)은 드물게 발생하는 이벤트로, 하드웨어나 소프트웨어에 의해 발견되며 특별한 처리가 필요하다. 이 특별한 처리를 exception handling이라고 부르며, 예외가 발견된 이후에 예외를 처리하는 코드 단위인 exception handler에 의해 진행된다. Exception Handling Alternatives 예외 처리가 불가능한 경우 대안들 보조 ..

    [2021-1 프로그래밍언어론] Chapter 12: Object-Oriented Programming

    객체지향 프로그래밍 언어의 3가지 특징 Abstract Data Types: 추상 자료형 Inheritance: 상속 Polymorphism: 다형성 Inheritance 상속 재사용이 가능하므로 생산성이 높아진다. ADT의 문제점이 모든 인스턴스가 독립적이고 동등하므로 재사용을 하기 어렵다는 것이었다. 이미 존재하는 것의 속성을 가져와 새로운 클래스를 정의하는 것을 허용한다. 👉🏻 ADT의 사소한 부분을 수정해 계층적으로 새로운 클래스를 정의해 재사용할 수 있도록 한다. (상속의 계층 구조) 유지보수가 어렵다는 단점이 있다. 부모가 바뀌면 자식들까지 모두 수정해야 하기 때문이다. Object-Oriented Concepts 객체지향의 개념 기본적으로 자식 클래스는 부모 클래스의 전부를 상속받지만, 캡슐..

    [2021-1 프로그래밍언어론] Chapter 11: Abstract Data Types and Encapsulation Constructs

    The Concept of Abstraction 추상화 특징적인, 가장 중요한 특성으로 전체를 표현하는 것 공통적인 속성이나 기능을 묶어 이름을 붙이는 것 거의 모든 프로그래밍 언어는 subprogram을 통해 process abstraction을 지원한다. 1980년대 이후의 거의 모든 프로그래밍 언어는 data abstraction을 지원한다. process abstraction에서 처리하는 데이터까지 추상화하는 방법 Abstract Data Type 다음의 두 조건을 만족하는 사용자 정의 자료형을 ADT라 칭한다: Hidden data representation 서비스하고자 하는 기능만 보여주며, 구체적인 내부 동작과 객체의 데이터 타입 등은 모두 숨긴다. 일종의 캡슐화 Operation 이 타입에..

    [2021-1 프로그래밍언어론] Chapter 10: Implementing Subprograms

    Subprogram Linkage 서브프로그램의 call과 return General sementics of calls: 파라미터 전달 방법 로컬 변수의 stack-dynamic 할당 호출한 프로그램의 실행 상태 저장 제어권 전달받기? 서브프로그램 중첩이 가능한 경우에서의 nonlocal variable 접근 방식 General sementics of returns: out mode와 inout mode 파라미터는 무조건 그들의 값을 반환해야 함 서브프로그램 안의 Stack-dynamic한 지역 변수들의 할당 해제 저장해뒀던 실행 상태로 되돌아가기 caller에게 제어권 반납하기 Implementing "Simple" Subprograms: 중첩 없이 모든 지역변수가 static인 경우 Stack-dyn..