프로그래밍언어논문지 제16권 제1호 (2002년)
권두언:
[.PDF 154KB]
논문
튜토리얼
본문
증가분 계산에 기반한 고정점 생성방법 [.PDF 321KB]
- 저자: 안준선
- 요약:
정적 분석의 속도를 향상시키기 위하여, 중가분(increment)만을 계산하여
고정점(fixpoints)을 효율적으로 구하기 위한 방법을 제시한다. 일반적인
고정점 계산 반복문(fixpoint interations)에서는 단조증가(nomotonic
increaseing)성질을 갖는 함수를 함수의 결과가 증가하지 않을 때까지 반복
적용하기 때문에, 반복 간에 중복되는 계산을 수행하게 된다. 본 연구에서는
이전 계산 결과에 대한 증가분만을 계산하여 각각의 반복에서의 계산량을
줄이고자 하였다. 제시된 방법의 실용성을 검증하기 위하여, 요약 해석에
기반한 프로그램 분석기 생성 도구인 Z1을 사용하여 상수 전달 및
이명분석을 위한 프로그램 분석기를 구현하고, 이를 실제적인 프로그램들에
적용하여 제시된 방법이 분석의 속도를 향상시킴을 보였다.
클래스분석에서 예외분석의 필요성 [.PDF 2235KB]
- 저자: 이정수, 조장우
- 요약:
이론적으로 자바의 예외분석과 클래스분석은 상호 의존적인 관계이다. 이로
인해 클래스분석 시 예외분석을 동시에 수행하게 되면 실용적인 분석기
개발이 어렵다. 그러나 클래스분석 시 예외분석의 의존도가 낮다면 두
분석을 분리함으로서 보다 실용적인 분석기를 설계할 수 있다. 이
논문에서는 두 분석이 상호의존적으로 필요한 경우를 제시하고, 자바
프로그램들을 대상으로 이러한 경우가 빈번하게 발생하는지에 대한 분석을
수행한다.
자바 프로그램에서 예외 사용에 대한 실험 [.PDF 2341KB]
- 저자: 이지연, 창병모
- 요약:
프로그램 수행 전에 예외 사용에 대한 정적 분석을 통해 프로그램
개발자에게 예외와 그 사용에 대한 좀더 정확한 정보를 제공함을 목표로
한다. 이를 위해 본 논문에서는 프로그램에서의 예외 사용에 대한 정보를
분석하기 위하여 예외 관련 구문들의 사용 빈도 및 사용 형태를 실험을
통해서 알아본다. 또한 예외 관련 클래스들의 계층구조를 보여줌으로써 예외
구조에 대한 보다 효과적인 이해를 돕는다. 또한 소스 코드에서 예외 관련
문장들만을 추출하여, 프로그램의 대략적인 구조와 예외의 사용을 한눈에 볼
수 있도록 한다.
고계 함수와 컴비네이터의 프로그래밍 원리 [.PDF 3445KB]
- 저자: 변석우
- 요약:
함수형 프로그래밍의 고계 함수 기능은 프로그램의 합성에 탁월한 기능을
하며 프로그램 코드의 재사용을 극대화시킬 수 있도록 한다. 컴비네이터는
함수들을 합성하기 위한 목적으로 정의된 함수로서 고계 함수 기능을
이용하여 정의된다. 프로그래밍의 패턴에 따라 다양한 형태의 프로그램 합성
기법과 컴비네이터들이 정의될 수 있다. 대표적인 컴비네이터로서 map,
fold, 모나드 (>>=) 등이 있으며, 새로운 컴비네이터들이 계속 연구되고
있다. 본 연구에서는 컴비네이터의 기본 원리에 대해서 설명하고, 재귀
함수들을 fold를 이용하여 정의하는 원리에 대해서 논의한다. fold를
재사용하여 다양한 재귀 함수를 정의할 수 있다. 논의되는 내용들을
Haskell로 프로그래밍 함으로써 그 원리의 타당성을 검증하였다.
다익스트라의 '프로그래밍의 수련(修練)':여섯 번째, 두 개의 정리 [.PDF 1411KB]
- 저자: 김도형
- 요약:
이번 튜토리얼에서는 두 개의 정리를 유도하고 증명한다. 이 정리들은 각각
대안적 구조와 반복적 구조를 위한 기본 정리라고 부르며, 가드 명령
집합으로부터 구성한 문장들에 관한 것들이다. 간단하게 요약하자면, 대안적
구조를 위한 기본 정리는 선택 구조가 실행될 때 불변 조건에 관한 것이며,
반복적 구조를 위한 기본 정리는 대안적 구조를 위한 기본 정리가
성립한다는 전제 하에서 루프 구조가 실행을 종료할 때 달성되는 사후
조건에 관한 것이다
프로그래밍언어 연구회