http://chineseinput.net/에서 pinyin(병음)방식으로 중국어를 변환할 수 있습니다.
변환된 중국어를 복사하여 사용하시면 됩니다.
주어진 프로그램에서 예외상황을 발생시키는 테스트 데이타 생성 방법
류석영(Sukyoung Ryu),이광근(Kwangkeun Yi) 한국정보과학회 2000 정보과학회논문지 : 소프트웨어 및 응용 Vol.27 No.4
주어진 프로그램에서 예외상황(exception)을 발생시키는 테스트 데이타를 자동으로 생성해주는 분석 방법을 제안한다. 분석 결과로 얻은 테스트 데이타를 사용하여, 프로그램 내에서 발생한 예외상황들이 프로그래머의 의도대로 처리되는지를 검사할 수 있다. 본 논문에서 제안하는 분석 방법은 입력으로 받은 프로그램에서 특정 예외상황이 발생한다는 조건을 시작으로 하여, 프로그램의 입력 값에 대한 제약식(constraints)을 만들어간다. 이 분석 방법이 옳다는 증명에 의해서, 분석 결과로 얻은 테스트 데이타를 입력으로 하여 프로그램을 수행시키면 지정한 예외상황이 항상 발생한다는 것을 보장할 수 있다. 함수를 인수나 결과값으로 전달하지 않고(first-order) ML 스타일의 예외상황 관리 방법을 제공하는 언어를 대상으로 하여 테스트 데이타 생성 방법을 제안하고, 이 분석 방법이 옳다는 것을 증명한 후 몇 가지 예를 사용하여 분석 과정을 설명한다. We present a static analysis method to automatically generate test data that raise exceptions in input programs. Using the test data from our analysis, a programmer can check whether the raised exceptions are correctly handled with respect to the program's specification. For a given program, starting from the initial constraint that a particular raise expression should be executed, our analysis derives necessary constraints for its input variable. Correctness of our analysis assures that any value that satisfies the derived constraints for the input variable will activate the designated raise expression. In this paper, we formally present such an analysis for a first-order language with the ML-style exception handling constructs and algebraic data values, prove its correctness, and show a set of examples.
Standard ML 프로그램의 실행 중 처리되지 않는 예외 상황을 예측하는 방법
류석영(Sukyoung Ryu),이광근(Kwangkeun Yi) 한국정보과학회 1996 한국정보과학회 학술발표논문집 Vol.23 No.2B
본 논문에서는 Standard ML(SML)[7, 6] 프로그램의 실행 중 처리되지 않는 예외 상황을 실행 전에 미리 예측하는 분석 방법을 제안한다. 이 분석 방법은 SML/NJ[2, 5] 컴파일러가 제공하는 타잎 정보를 이용하여 프로그램의 함수 흐름도를 먼저 예측하고, 이를 이용하여 예외 상황의 흐름을 방정식으로 표현한 후, 반복 부동점 방법으로 방정식을 풀어서 처리되지 않을 수 있는 예외 상황들을 예측한다. 이 방법의 속도는 현재 25 ~ 700 SML-lines/sec이고, 적절한 비용 대 성능비를 가지고 있는 것으로 밝혀졌다. 예를 들어, ML-Lex 프로그램을 분석하는데 약 23초가 걸렸고, 10개의 예외 상황 중에서 실제로 처리되지 않는 3개를 포함해서 4개의 예외 상황이 처리되지 않을 것으로 분석되었다. 이 분석으로 SML 프로그램의 갑작스런 중단을 미리 예측할 수 있으므로, SML 프로그램의 안전성을 한층 더 증가시킬 수 있다.
Standard ML 프로그램 실행 중 처리되지 않는 예외 상황을 효과적으로 예측하는 방법
류석영(Sukyoung Ryu),이광근(Kwangkeun Yi) 한국정보과학회 1997 정보과학회논문지(B) Vol.24 No.11
본 논문에서는 Standard ML 프로그램의 실행 중에 발생할 수 있는 예외 상황 처리의 허점을 미리 예측하는 정적 분석 방법을 제안한다. 이 분석 방법은 SML 프로그램의 안전에 유일하게 허점으로 작용할 수 있는 해제되지 못한 예외 상황을 예측한다. 프로그램의 함수 흐름도는 SML/NJ 컴파일러의 타입 유추를 통해 거의 비용을 들이지 않고 예측하고, 그것을 이용하여 예외 상황의 흐름을 표현하는 집합 제약식을 만든다. 이렇게 만들어진 제약식의 해가 바로 본 논문에서 제안하는 예외 상황 분석의 답이 된다. 이 방법을 구현하여 실제적인 SML 프로그램을 분석하는 데 실험해 본 결과, 기존의 방법보다 매우 향상된 비용 대 성능비를 가지고 있는 것으로 나타났다. 예를 들어, ML-lex.sml을 분석하는 데에 1.36초가 걸렸고, 실제로 발생해서 소멸되지 않는 3개의 예외 상황만을 정확하게 찾아낸다. We present a static analysis that detects potential runtime exceptions that are raised and never handled inside Standard ML(SML) programs. This analysis will predict abrupt termination of SML programs, which is SML's only one "safety hole." Program's control-flow is computed simply based on the expression types from the SML/NJ compiler. From this call-graph information, program's exception flow is derived as set-constraints, whose least model is computed using the conventional iterative fixpoint method (the solution space is finite). A prototype of this analysis has a promising cost-accuracy balance For the ML-lex program, for example, the analysis takes 1.36 seconds to finish and it reports 3 may-uncaught exceptions. (The ML-lex program has 10 exceptions, 19 raises. and 10 handlers.
다중 스레드 Java 프로그램의 실행 중 처리되지 않는 예외상황을 예측하는 방법
류석영(Sukyoung Ryu),이광근(Kwangkeun Yi) 한국정보과학회 2001 한국정보과학회 학술발표논문집 Vol.28 No.1A
본 논문에서는 다중 스레드 Java 프로그램의 실행 중 처리되지 않는 예외상황을 실행 전에 미리 예측하는 분석 방법을 제안한다. Java에서는 안전성 문제 때문에 다중 스레드 사이에서 예외 상황을 발생시키지 않도록 제한하고 있는데 반해, 본 연구에서는 프로그래머가 자유롭게 다중 스레드 사이에 예외상황을 발생시킬 수 있도록 언어를 확장한 후에 그 프로그램에서 처리되지 않는 예외상황을 예측해낸다. 이 분석 방법은 다중 스레드 Java 프로그램의 각 스레드에서 도시에 수행될 수 있는 부분들을 미리 예측해내고, 이 분석 정보를 이용하여 다중 스레드 사이에서 예외상황을 발생시킬 때 처리되지 않는 예외상황을 예측한다.