http://chineseinput.net/에서 pinyin(병음)방식으로 중국어를 변환할 수 있습니다.
변환된 중국어를 복사하여 사용하시면 됩니다.
재목적 코드 생성 기법을 이용한 자바 Bytecode에서 SPARC 코드로의 번역
오세만(Seman Oh),정찬성(Chansung Jung) 한국정보과학회 2000 정보과학회 컴퓨팅의 실제 논문지 Vol.6 No.3
자바 프로그래밍 언어는 인터넷 및 분산 네트워크 환경에서 효과적으로 수행될 수 있도록 설계된 언어이다. 그러나 각 플랫폼에서 인터프리터 방식으로 실행된다는 단점을 가지고 있기 때문에, 자바 프로그램을 효율적으로 실행하기 위해서는 Bytecode를 목적 기계 코드인 SPARC 코드로 변환하는 코드 생성 시스템이 개발되어야 한다. 본 논문에서는 재목적 코드 생성 기법을 이용하여 Bytecode를 SPARC 코드로 변환하는 코드 생성 시스템을 구현하였다. 이를 위해 Bytecode로부터 SPARC 코드 생성 규칙을 기술한 Bytecode 테이블을 작성하였고, 클래스 파일을 입력으로 받아 Bytecoed를 코드 확장시에 적합한 형태로 변환하는 정보추출기를 구현하였다. 정보추출기가 Bytecode 명령어의 피연산자에 대한 상수 기억장소의 엔트리를 결정한 후, 코드 확장기가 변경된 Bytecode를 Bytecode 테이블에 따라 SPARC 코드로 변환한다. 또한, 재목적 코드 생성 시스템은 다양한 목적 기계 코드를 생성하기 위해 체계적으로 재구성될 수 있다. Java programming language is designed to run effectively on internet and distributed network environments. However, because it has a deficit to be executed by the interpreter method on each platform, to execute Java programs efficiently the code generation system which transforms Bytecode into SPARC code as target machine code must be developed. In this paper, we implement a code generation system which translates Bytecode into SPARC code using the retargetable code generating techniques. For the sake of code expander, we wrote a Bytecode table describing a rule of SPARC code generation from Bytecode, and implemented the information extractor transforming Bytecode to suitable form during expanding of source code from class file. The information extractor determines constant pool entry of each Bytecode instruction operand and then the code expander translates the Bytecode into SPARC code accoring to the Bytecode table. Also, the retargetable code generation system can be systematically reconfigured to generate code for a variety of distinct target computers.
고광만(Kwangman Ko),오세만(Seman Oh) 한국정보과학회 1998 정보과학회논문지(B) Vol.25 No.10
패턴매칭 코드 생성기는 전단부에서 생성된 중간 코드와 목적기계 표현 테이블에 기술된 패턴사이에 동일 패턴을 찾기 위해 패턴매칭 코드 생성 알고리즘을 이용한다. 패턴매칭 코드 생성 알고리즘은 중간 코드 및 패턴의 형식에 따라 크게 스트링 패턴매칭 기법과 트리 패턴매칭 기법으로 구분된다. 하지만 스트링 패턴매칭 알고리즘은 중간 코드에 해당하는 목적 코드를 찾기 위해 많은 비교 동작을 수행하므로 비효율적이다. 본 논문에서는 빠른 시간에 효과적인 목적 코드를 생성하기 위해 ACK 스트링 패턴매칭 알고리즘을 개선하여 트리 패턴매칭 알고리즘을 설계하고 구현하였다. 트리 패턴 매칭기는 EM 트리를 Top-down 방식으로 순회하면서 트리 패턴 매칭 알고리즘을 이용하여 EM 트리와 동일한 트리 패턴을 찾는다. 코드 출력기는 패턴 매칭이 완료된 EM 트리를 Bottom-up 방식으로 순회하면서 SPARC 코드를 출력한다. Pattern matching code generator uses pattern matching code generation algorithm to find the same pattern between the intermediate code generated by the Front-End and the patterns in the machine description table. Pattern matching code generation algorithms are divided largely into a string pattern matching method and a tree pattern matching method, depending on the structure of the intermediate code and pattern. The string pattern matching algorithm, however, is not efficient because it requires many comparing operations in determining a target code. In this paper, we have designed and implemented, by improving the string pattern matching algorithm of ACK, a tree pattern matching code generation algorithm which yields a faster and more efficient target code. The tree pattern matcher traverses an EM tree in top-down order and, using the tree pattern matching algorithm, searches the same pattern as that of EM tree. And then the code emitter generates a SPARC code as it traverses in bottom-up order the EM tree in which the pattern matching has been completed.
자바에서 프로파일에 기초한 세대기반 가비지 콜렉터 설계
김일부호(Ilbooho Kim),오세만(Seman Oh) 한국정보과학회 1999 한국정보과학회 학술발표논문집 Vol.26 No.2Ⅰ
자바는 자동 메모리 회수(garbage collection) 방식을 채택한 범용 프로그래밍 언어로 자바 가상머신(JVM)이 설치된 다양한 플랫폼에서 사용되어지고 있다. 현재 자바에서 사용되는 가비지 콜렉터는 휴지(pause) 시간이 상당히 길어 짧은 응답시간을 요구하는 서버 및 실시간 응용 프로그램에는 적합하지 않은 표시-압축 기법을 사용한다. 이를 보완하기 위해 자바 HotSpot™ 성능 엔진에서 세대기반(generational) 복사 기법에 기반을 둔 혼성(hybrid) 가비지 콜렉터를 사용하고 있으나, 상당히 큰 오버헤드를 보이고 있어 다양한 응용 프로그램의 특성을 수용하기에는 개선의 여지가 많다. 본 논문에서는 세대기반 기법을 기반으로, 자바와 자바 가상머신이 가진 특성들과 실행시간 객체의 타입 및 스택 정보를 이용하는 가비지 콜렉터를 설계한다. 또한, 힙 프로파일 분석기를 구현하고, 이를 통해 응용 프로그램에 적합한 메모리 구조를 분석하고, 가비지 콜렉터에 적용할 수 있도록 한다.
손윤식 ( Yunsik Son ),오세만 ( Seman Oh ) 한국정보처리학회 2004 한국정보처리학회 학술대회논문집 Vol.11 No.2
EVM(Embedded Virtual Machine)은 임베디드 시스템을 위한 가상기계로서 플랫폼에 독립적이며, 모바일 디바이스와 디지털 TV 등에 탑재할 수 있는 핵심 기술로 다운로드 솔루션에서는 꼭 필요한 기술이다. SIL(Standard Intermediate Language)은 임베디드 시스템을 위한 가상기계의 표준 중간 언어로 객체지향 프로그래밍 언어와 순차 적인 프로그래밍언어를 모두 수용할 수 있다. SIL 로 기술된 프로그램이 EVM 에서 실행되기 위해서는 EFF(Executable File Format)형태로 변환되어야 한다. 임베디드 시스템을 위한 실행 파일 포맷인 EFF 는 구조가 간결하며 확장이 용이한 특징을 지닌다. 또한 메타 데이터와 표준 중간 언어가 서로 독립적으로 구성되어 분석이 쉽고 타입 체크가 편리한 구조이다. 본 논문에서는 가상기계를 위한 표준 중간 언어인 SIL 을 EVM 에서 실행 가능한 형태로 변환시켜주는 실행 파일 포맷 생성기(EFF Generator)를 설계하고 구현한다. 먼저, SIL 구조를 위한 SIL 문법을 설계하고 파서 생성기(PGS)를 사용하여 SIL 프로그램을 위한 어휘분석기와 구문분석기를 구현한다. 그리고 AST 를 생성한 후, 포맷 생성기를 통하여 AST 를 운행하며 EFF 를 생성한다.
이창환(Changhwan Yi),오세만(Seman Oh) 한국멀티미디어학회 2006 멀티미디어학회논문지 Vol.9 No.9
가상 기계란 하드웨어로 이루어진 물리적 시스템과는 달리 소프트웨어로 제작되어 논리적인 시스템 구성을 갖는 개념적인 컴퓨터이다. 그러나 가상 기계는 실제 프로세서로 처리하는 것보다 실행 속도가 매우 느리기 때문에 실행되는 코드의 최적화가 매우 중요하다. 본 논문은 가상 기계 코드 최적화기의 실험대상으로 EVM(Embedded Virtual Machine)의 중간 코드인 SIL(Standard Intermediate Language)을 이용하였다. 현존하는 최적화 방법론에 관한 연구를 통하여 가상 기계 코드 특성을 고려한 최적화 방법론을 제시하고, 최적화된 코드를 생성하기 위한 코드 최적화기를 설계하고 구현하였다. 가상 기계 코드 최적화기는 주어진 패턴을 찾아서 패턴에 해당하는 부분을 최적화 코드로 바꾸어, 전체 코드의 크기를 줄이고 실행 속도의 개선효과를 가진다. 또한, 구현된 최적화기의 실험 결과를 도출하였다. VM(Virtual Machine) can be considered as a software processor which interprets the abstract machine code. Also, it is considered as a conceptional computer that consists of logical system configuration. But, the execution speed of VM system is much slower than that of a real processor system. So, it is very important to optimize the code for virtual machine to enhance the execution time. In this paper, we designed and implemented the optimizer for the virtual(or abstract) machine code(VMC) which is actually SIL(Standard Intermediate Language) that is an intermediate code of EVM(Embedded Virtual Machine). The optimizer uses the pattern matching optimization techniques reflecting the characteristics of the VMC as well as adopting the existing optimization methodology. Also, we tried a benchmark test for the VMC optimizer and obtained reasonable results.
황순명(Soonmyung Hwang),오세만(Seman Oh) 한국정보과학회 2000 한국정보과학회 학술발표논문집 Vol.27 No.1A
자바 클래스 파일은 각 플랫폼에 독립적인 중간 코드 형태의 바이트코드와 자료 구조로 구성됨으로서 네트워크를 통하여 플랫폼에 독립적으로 인터프리티브 컴파일링 시스템에서 실행된다. 그러나 클래스 파일을 생성하는 자바 컴파일러는 각 플랫폼에 독립적인 바이트코드 표현에 제약을 받기 때문에 효율적인 코드를 생성하는데 한계가 있다. 또한, 자바 가상 기계에서 동적 링킹을 지원하기 위하여 고안된 상수 풀(constant pool)의 크기가 상대적으로 큰 특징을 갖는다. 따라서 자바 클래스 파일이 네트워크와 같은 실행 환경에서 효과적으로 실행되기 위해서는 작은 크기와 효율적인 코드에 대한 변환이 요구된다. 본 논문에서는 자바 클래스 파일이 인터넷 및 분산환경 시스템에서 효율적으로 실행되기 위해서 클래스 파일의 크기를 줄이는 방법과 자바 컴파일러가 생성한 바이트코드에 대해 최적화를 수행하는 최적화 방법론을 제시하고, 코드 최전화기를 설계한다. 최적화된 클래스 파일은 코드 크기를 줄이고, 효율적인 코드를 생성함으로서 네트워크상의 전송 속도뿐만 아니라 가상 기계에서 좀 더 빠르게 실행할 수 있다.
이창환(Changhwan Yi),오세만(Seman Oh) 한국멀티미디어학회 2007 멀티미디어학회논문지 Vol.10 No.4
컴퓨터 기술 발전에 따라 컴퓨터는 복잡하고 다양한 작업을 실행하고 있다. 또한 프로그램 복잡도 증가와 사용 언어의 한계 때문에 둘 이상의 프로그래밍 언어를 사용하여 응용 프로그램을 구현되고 있다. 그러나 현재 여러 언어를 동시에 사용하여 프로그램을 작성하거나 이를 구현하는 일반적인 방법론은 없는 상태이다. 본 논문에서는 위와 같은 문제점을 해결하기 위하여 여러 언어의 혼합 사용 형태와 구현 방식을 이종 언어 결합도(Heterogeneous Language Integration Degree)를 통해 분류하였다. 또한 이종 언어 결합도를 통해, 현재 구현된 객체지향 언어인 자바와 절차형 언어인 C 언어를 동시에 사용하는 방법인 JNI(Java Native Interface)를 이종 언어 결합도 측면에서 개선한 자바 전처리기를 설계하고 구현하였다. According evolution of computer technology, computers execute complex and several tasks. Because of the complexity of program and restriction of programming language, applications are implemented using one more programming language. But it is no general methodology for using several languages and implementing it. This paper classified usages of programming language integration and methodology for implements programming languages integration through HLID(Heterogeneous Language Integration Degree) for solving above problem. And using HLID, it designed and implemented Java Preprocessor that improvement JNI - current implementation for integration between object-oriented language java and procedural language C.