프로그래밍 언어 논 문지 제 16 권 제 3 호 ( 2002 년 10 월 ) 
 C 2 아키텍처 에서 Adapter 패턴 을 이용 한 EJB 합성 기법 
 정화영 , 송영재 
 Bi - directional Demand - Driven Set - Based Analysis 
 최웅식 , 이광근 
 PSAML 를 기반 으로 한 단백질 구조 비교 
 김진홍 , 안 건태 , 조민수 , 이수현 , 이명준 
 불완전 연결 프로그램 실행 을 위한 예외 처리 기법 
 한 경숙 , 표창우 
 바이트코드 정보 흐름 분석기 의 구현 
 조순희 , 신승철 , 도경구 
 컴파일러 수업 에서 레고 마인드 스톰 의 활용 
 G - machine 과 ZG - machine 의 그래프 합동 
 우균 , 한태숙 
 C 2 아키텍처 에서 Adapter 패턴 을 이용 한 EJB 합성 기법 [ . PDF 3242 KB ] 
 저자 : 정화영 , 송영재 
 최근 소프트웨어 개발 분야 에서 는 컴포넌트 기반 개발 방법론 ( CBD ) 에 관한 효율 성 및 필요 성 이 입증 되 면서 이 를 도입 하 고자 활발히 연구 되 고 있 다 . 이 에 따라 , 컴포넌트 들 을 쉽 게 조립 및 운용 할 수 있 는 합성 방법 들 이 제시 되 고 있 으며 , 이 들 중 C 2 ( Chiron - 2 ) 스타일 아키텍처 는 GUI 방식 을 따르 는 쓰레드 기반 의 메시지 전달 방법 에 의한 컴포넌트 합성 기법 이 라는 점 에서 많 은 관심 을 받 고 있 다 . 그러나 , 서버 측 컴포넌트 모델 인 EJB ( Enterprise Java Beans ) 의 경우 , 쓰레드 를 포함 할 수 없 고 직접 적 인 메소드 호출 방식 따름 으로써 쓰레드 기반 의 메시지 호출 방식 에 의한 컴포넌트 합성 을 위해서 는 EJB 를 위한 C 2 프레임워크 의 수정 이 불가피 하 다 . 따라서 , 본 논문 에서 는 C 2 스타일 아키텍처 에서 의 EJB 컴포넌트 를 적용 할 수 있 는 기법 으로서 , 디자인 패턴 을 이용 한 쓰레드 기반 의 컴포넌트 합성 기법 을 제안 하 고자 한다 . 즉 , 디자인 패턴 중 구조 패턴 의 하나 인 Adapter 패턴 을 이용 하 여 EJB 컴포넌트 를 C 2 스타일 아키텍처 에 적용 할 수 있 도록 하 였 다 . 
 Bi - directional Demand - Driven Set - Based Analysis [ . PDF 3122 KB ] 
 저자 : 최웅식 , 이광근 
 In this paper , we present a bi - directional demand - driven set - based analysis which solves only those constraints affecting program points one wants to analyze . To achieve this goal , we incorporate the notion of demands on set constraints and analyze programs in two directions : forward to know which values flow into a given point , and backward to know which program points that a given value flows into . We prove that for interested program points , our analysis gives exactly the same results as whole - program set - based analysis . As an experiment of our approach , we analyzed each program point separately using our demand - driven formulation . We report the efficiency of our analysis as percentage of constraints solved for each program point compared with the whole - program analysis . 
 PSAML 를 기반 으로 한 단백질 구조 비교 [ . PDF 2958 KB ] 
 저자 : 김진홍 , 안 건태 , 조민수 , 이수현 , 이명준 
 PSAML 은 단백질 의 2 차 구조 구성 요소 와 그 들 사이 의 관계 를 이용 하 여 단백질 구조 를 기술 하 는 PSA 라는 단백질 구조 모델 과 표준 화 된 문서 표현 양식 인 XML 을 이용 하 여 단백질 구조 를 표현 하 는 언어 이 다 . 대부분 의 단백질 구조 비교 하 는 방법 은 단백질 구조 의 분류 및 공통 부분 구조 를 파악 하 는 데 효과 적 으로 활용 되 고 있 으나 , 단백질 구조 를 비교 하 기 위하 여 자신 의 알고리즘 에 맞 는 고유 한 형식 의 데이터 를 사용 하 고 있 어 상호 호환 성 이 부족 하 다 . 본 논문 에서 는 단백질 구조 비교 도구 를 효율 적 으로 개발 하 기 위한 단백질 구조 표현 언어 인 PSAML 과 이 를 활용 하 여 단백질 구조 를 효과 적 으로 비교 하 는 방법 에 대하 여 기술 한다 . PSAML 기반 의 단백질 구조 비교 방법 은 두 단백질 구조 사이 의 유사 성 그래프 를 생성 한 후 , 최대 유사 부분 그래프 를 찾 는 방법 을 이용 하 여 유사 한 부분 구조 를 찾 는다 . 
 불완전 연결 프로그램 실행 을 위한 예외 처리 기법 [ . PDF 2887 KB ] 
 저자 : 한 경숙 , 표창우 
 응용 프로그램 개발자 는 편집 , 컴파일 , 링 킹 , 다운로드 , 테스 팅 과정 을 반복 하 며 프로그램 을 개발 한다 . 이러 한 개발 과정 에서 프로그램 의 초기 테스트 를 가능 하 게 하 고 프로그램 처리 과정 의 과부하 를 줄이 기 위하 여 점진 적 링 킹 방법 을 사용 할 수 있 다 . 프로그램 개발 초기 단계 에 테스 팅 하 거나 프로그래머 가 다른 프로그래머 의 모듈 과 연결 하 지 않 은 상태 에서 테스 팅 할 수 있 기 위해서 는 불 완전 연결 프로그램 의 실행 이 가능 해야 한다 . 내장 형 응용 프로그램 개발자 의 경우 시스템 이 완성 되 기 전 에 개별 적 인 프로그램 에 대한 테 스팅 을 필요 로 하 는 경우 가 많 으므로 불 완전 연결 프로그램 의 실행 방법 이 유용 하 게 사용 된다 . 또한 불완전 연결 프로그램 의 실행 과정 에서 정의 되 지 않 은 심벌 에 대한 참조 가 발생 하 더라도 시스템 의 안정 성 을 유지 해야 한다 . 불완전 연결 프로그램 을 테스 팅 하 는 경우 재배치 가 이루어지 지 않 은 심벌 의 접근 으로 인하 여 문제 가 발생 할 수 있 다 . 이 문제 의 해결 을 위하 여 정의 되 지 않 은 심벌 을 예외 처리 함수 로 연결 하 여 부적절 한 메모리 접근 을 방지 하 였 다 . 예외 처리 함수 는 프로그램 을 안정 적 으로 종료 시키 며 사용 자 에게 예외 상황 발생 원인 을 보 고 하 는 기능 을 수행 한다 . 
 바이트코드 정보 흐름 분석기 의 구현 [ . PDF 2230 KB ] 
 저자 : 조순희 , 신승철 , 도경구 
 프로그램 은 실행 을 통해서 작성자 가 알아채 지 못하 는 사이 에 정보 의 누출 이 발생 할 수 있 는데 , 정보 의 누출 이 없 는 프로그램 을 정보 흐름 이 안전 한 프로그램 이 라고 한다 . 본 논문 에서 는 프로그램 에서 의 정보 누출 여부 를 검증 하 기 위해 , 실험 대상 이 되 는 While 프로그램 을 바이트코드 JVML 0 로 바꾸 고 , 이것 을 요약 해석 을 통하 여 프로그램 의 정보 흐름 이 안전 한 지 를 검사 한다 . 
 컴파일러 수업 에서 레고 마인드 스톰 의 활용 [ . PDF 3788 KB ] 
 저자 : 이수현 
 컴파일러 교과목 은 인간 중심 의 프로그래밍 언어 기술 과 기계 중심 의 하드웨어 기술 이 모두 적용 되 는 이수 난이도 가 높 은 교과목 이 며 , 컴파일러 제작 실습 이 수반 되 어야 하 는 교과목 이 다 . 컴파일러 제작 실습 에 있 어 가상 기계 를 타 겟 ( 목적 기계 ) 으로 이용 하 는 방법 을 많 은 대학 에서 채용 하 고 있 으나 , 가상 기계 의 동작 을 시뮬레이션 으로 보여 줄 수 밖에 없 어서 현실 감 이 떨어지 는 단점 이 있 다 . 레고 의 고 수준 장난감 인 마인드 스톰 은 컴퓨터 를 내장 한 로봇 조립 용 키트 이 며 , 간단 한 명령어 만 으로 로봇 을 동작 시킬 수 있 다 . 로봇 을 제어 하 는 간단 한 언어 를 설계 하 고 마인드 스톰 을 타 겟 으로 하 는 컴파일러 를 제작 해 본다면 컴파일러 의 동작 을 직접 눈 으로 확인 하 고 느낄 수 있 어 컴파일러 교육 의 효과 를 높일 수 있 다 . 본 논문 에서 는 레고 마인드 스톰 을 제어 하 는 언어 인 LegoC 를 설계 하 고 LegoC 언어 의 컴파일러 를 제작 한 경험 을 기술 한다 . 또한 마인드 스톰 을 컴파일러 수업 에서 활용 할 수 있 는 방안 을 제시 한다 . 
 G - machine 과 ZG - machine 의 그래프 합동 [ . PDF 933 KB ] 
 저자 : 우균 , 한태숙 
 이 논문 은 자연 함수 형 언어 를 위한 추상 기계 G - machine 과 ZG - machine 의 동작 이 동등 함 에 대하 여 논한다 . ZG - machine 은 공간 효율 을 높이 기 위해 태그 옮김 이 라는 기법 을 통해 G - machine 을 변형 한 추상 기계 이 다 . ZG - machine 에서 는 그래프 생성 방법 을 변경 하 였으므로 해석 방법 도 G - machine 과 다르 게 되 는데 , 그럼에도 불구 하 고 G - machine 과 ZG - machine 은 같 은 의미 의 동작 을 수행 한다는 것 을 보이 고자 한다 . 이 를 위해 이 논문 에서 는 두 추상 기계 수행 시 메모리 에 저장 되 는 그래프 형태 를 의미 도메인 상 의 원소 로 기술 하 고 , 같 은 프로그램 에 대하 여 두 추상 기계 에서 상태 변환 과정 중 의 그래프 형태 가 같 은 의미 라는 것 을 , 즉 그래프 합동 이 라는 것 을 보인다 .