
http://chineseinput.net/에서 pinyin(병음)방식으로 중국어를 변환할 수 있습니다.
변환된 중국어를 복사하여 사용하시면 됩니다.
C2JNI : 내장 C 언어에서 JNI 코드를 생성하는 변환기
유재우(Chae-Woo Yoo),최종명(Jong-Myung Choi),김영철(Young-Chul Kim) 한국정보과학회 2004 정보과학회논문지 : 소프트웨어 및 응용 Vol.31 No.11
자바는 플랫폼에 독립적인 객체지향 프로그래밍 언어로서 널리 사용되고 있지만, 플랫폼에 의존적인 기능을 사용해야 하거나 혹은 유산 시스템(legacy system)을 재사용하기 위해서는 JNI를 이용해야 한다. JNI는 자바가 C/C++ 언어와 결합하기 위한 표준화된 규칙과 API를 제공하지만, 개발자가 JNI를 이용해서 프로그램을 개발하는 것은 매우 복잡하고, 번거롭다는 단점이 있다. 이러한 문제를 해결하기 위해서 본 논문에서는 자바 프로그램에 내장된 C 프로그램 코드를 자동적으로 JNI 명세에 맞는 C 언어로 변환할 수 있는 C2JNI라는 변환기를 소개한다. C2JNI를 사용하는 경우에 내장된 C 언어 프로그램은 JNI API를 사용하지 않고서도 C 언어와 자바 프로그램을 결합할 수 있기 때문에 개발자는 자바와 C 언어에 대한 지식만 있으면, 자바와 C 언어를 결합해서 사용할 수 있다. Java, a platform independent object-oriented programming language, is widely used, however it should be integrated with JNI to use system services or to reuse legacy systems. Though JNI provides the standard APIs which allow Java to be combined with C/C++, it is very hard and cumbersome for developers to use JNI APIs. In order to address this problem, we introduce a translator named C2JNI, which converts the embedded C program into a JNI compatible C program. With C2JNI, developers can integrate Java and C programs without JNI APIs, and it will reduce the complexity caused by JNI APIs
유재우(Chae-Woo Yoo),송후봉(Hoo-Bong Song),안희학(Heui-Hak Ahn),김상헌(Sang-Heon Kim) 한국정보과학회 1994 정보과학회논문지 Vol.21 No.11
언어 기반 프로그래밍 환경의 발전에 따라 점진적 파싱에 대한 연구는 핵심적인 분야가 되었다. 본 논문에서는 입력으로 비단말기호와 불완전한 문장을 허용하는 확장형 파싱 테이블을 제시하였다. 파싱 과정에서 이전의 파스 순서를 저장하고 검색하기 위하여 스택트리를 이용하였다. 확장형 파싱 테이블과 점진적 파서 구동기를 합쳐서 점진적 파서를 자동으로 생성하였다. SUN OS상에서 C 언어와 YACC를 이용하여 점진적 파서 생성기를 구현하였다. As the development of language-based programming environments, the techniques of incremental parsing became the essential part. In this paper, we present the extended parsing table to accept nonterminal symbols and incomplete sentences as input. To store and retrieve the previous parse sequences during the parsing, we use the stack tree. With the extended parsing table and incremental parser driver, we generate incremental parsers automatically. This paper implements the incremental parser generator using C language and YACC on SUN OS.
프로그램 유사도 평가를 이용한 유사 프로그램의 그룹 짓기
유재우(Chae-Woo Yoo),김영철(Young-Chul Kim) 한국정보과학회 2004 정보과학회논문지 : 소프트웨어 및 응용 Vol.31 No.1
프로그램 과제물과 같은 많은 프로그램을 모두 일일이 비교하는 것은 비용이 많이 든다. 더군다나 검수자가 과제물을 검사한다든가, 점수를 부여하고자 한다면 더욱 많은 시간이 요구된다. 물론 검수자가 많은 시간을 두고 평가해도 객관성이 떨어질 수도 있다. 이러한 문제점은 프로그램 과제물에 대해서 유사한 프로그램으로 서로 묶어 놓는다면 쉽게 해결할 수 있다. 즉, 유사한 프로그램으로 서로 묶어놓고 검사한다면 쉽게 검사나 평가가 가능하다. 본 논문에서는 많은 프로그램에 대해서 유사성이 높은 프로그램으로 그룹 짓기(grouping)를 수행하는 알고리즘을 제시하고 구현한다. 그룹 짓기 알고리즘은 [9]에서 제시한 프로그램 유사도 평가 알고리즘을 이용하여 유사도를 측정한 후, 유사성이 높은 프로그램을 그룹짓기를 수행한다. 이 그룹 짓기 알고리즘을 이용하면 n개의 프로그램에 대해서 최대 n(n-1)/2 번에서 최소 (n-1)번까지 비교 횟수를 줄일 수가 있다. 본 논문의 실험 및 평가 부분에서는 실제로 모 대학의 과제물 10개를 추출하여 유사성을 기준으로 실험 평가한 결과를 보여준다. Comparing many programs like programming assignments one by one requires many costs. Moreover, if the checker would evaluate or grade assignments, much more time will be required. Even through the checker invest much time, fairness is not always guaranteed. These problems can be solved easily by grouping similar programs. So, programs after grouping can be easily evaluated and graded. In this paper, we propose and implement algorithm performing grouping by similarity on many programs. The grouping algorithm evaluates similarity using algorithm proposed in [9], and performs a grouping following high similarity order. By using this grouping algorithm, the number of comparison among N programs can be reduced from N-1 times to N(N-1)/2 times. In the part of experiment and evaluation of this paper, we actually showed evaluation result by similarity using randomly 10 programming assignments at the university.
유재우(Chae-Woo Yoo),박호병(Ho-Byung Park),조용윤(Yong-Yoon Cho) 한국통신학회 2005 한국통신학회논문지 Vol.30 No.6B
XML은 다양한 분야에서 널리 사용되고 있지만, 일반 사용자가 XML 문서를 작성하기란 아직 많은 어려움이 있다. 본 논문에서는 일반 사용자도 손쉽게 XML 문서를 작성할 수 있는 XML 구문지향 편집기를 소개하고, 구문지향 편집기의 내부 자료구조인 추상구문을 정의하고, 정의된 추상구문 규칙으로 문서를 편집하기 위한 편집기의 구성요소를 설명한다. 또한 DTD로부터 추상구문 규칙을 자동 생성하는 방법을 제시함으로써 더욱 빠르고 정확하게 XML 구문지향 편집기를 생성하는 방안을 제안한다. 추상구문의 구조와 구문지향 편집기의 작성 절차를 통하여 더욱 용이하게 XML 구문지향 편집기 생성이 가능하다.
김영철,유재우,Kim, Young-Chul,Yoo, Chae-Woo 한국정보처리학회 2004 정보처리학회논문지 A Vol.11 No.2
기존의 트리 비교에 관한 연구는 대부분 노드에 가중치가 있거나 레이블이 있는 트리(장식이 있는 트리)에 대해서 연구되었다. 그러나 본 연구에서는 장식이 없는 서로 다른 두개의 트리를 비교하여 유사도를 평가하는 알고리즘을 제시하고 구현한다. 본 시스템에서 제시한 트리 유사도 평가 알고리즘은 비교할 두 개의 트리를 언파서에 의해 노드 스트링으로 변환된 후, 유사도 알고리즘에 의해서 평가되며, 0.0-1.0 사이의 유사 값을 돌려준다. 본 논문의 실험 부분에서는 여러 형태의 트리를 비교 분석하였으며, 두 트리 사이에 일치되는 노드와 불일치 되는 노드를 시각적으로 표현하였다. 본 연구를 활용하면, 특정한 프로그램이나 문서의 유사도 및 중복 코드 발견 등에 활용할 수가 있다. In the previous researches, tree comparison methods are almost studied in comparing weighted or labeled tree(decorated tree). But in this paper, we propose a tree comparison and similarity evaluation algorithm can be applied to comparison of two normal trees. The algorithm converts two trees into node string using unparser, evaluates similarity and finally return similarity value from 0.0 to 1.0. In the experiment part of this paper, we visually presented matched nodes and unmatched nodes between two trees. By using this tree similarity algorithm, we can not only evaluate similarity between two specific programs or documents but also detect duplicated code.
염세훈,유재우,Yeom Sae-Hun,Yoo Chae-Woo 한국정보과학회 2005 정보과학회논문지 : 기술교육 Vol.2 No.1
VoiceXML, a new approach to alternate the existing voice-input approaches for Automatic-Response System, has standardized by W3C and is widely being used as a voice-based web language. In this paper, we design and implement an editing environment for effective generation of VoiceXML documents. Our Suggested editing environment improves the efficiency of document generation so that it provides multi-paradigm concept for simultaneous presentation of various information in the VoiceXML documents. And it guarantees the transparency during the whole editing period by co-operating the common parse tree for these editors.
객체지향 속성 문법과 SML을 이용한 XML 컴파일러 생성기
최종명,유재우,Choi, Jong-Myung,Yoo, Chae-Woo 한국정보처리학회 2004 정보처리학회논문지 A Vol.11 No.2
XML은 데이터와 문서를 표현하기 위한 표준화된 메타언어고서 점차 많은 분야에서 사용되고 있지만, 각 분야에서 XML 문서론 올바르게 처리하기 위해서는 XML 컴파일러를 작성해야 한다. XML 컴파일러를 작성하는 많은 시간과 노력을 필요로 하기 때문에 XML 컴파일러를 자동적으로 생성할 수 있는 방법이 필요해진다. 논문에서는 XML 문서를 의미에 맞게 처리할 수 있는 XML 컴파일러를 자동으로 생성할 수 있는 XCC라는 XML 컴파일러 생성기를 소개한다. XCC는 XML문서의 DTD를 입력으로 받고, XML 원소(element)들 간의 관계를 이용해서 상속과 컴포지션 관계를 갖는 자바 클래스들을 생성한다. XCC는 또한 의미 규칙을 입력으로 받아서 XML 문서를 의미에 맞게 처리하기 위한 XML 컴파일러를 생성한다. XCC는 XML, 컴파일러를 자동적으로 생성함으로써 XML문서 처리를 위한 소프트웨어 개발에서 비용을 절감시킬 수 있다 XML as a standard for representing data and document structure is widely used in every area, and we have to write XML compilers which process the XML documents according to a user's intention. Because it takes time and costs to write XML compilers by hand, we need some generators that automatically generate XML compilers. In this paper, we introduce an XML compiler generator named XCC. It reads DTD and semantic rules, and it generates XML compiler and Java classes which correspond to the elements defined in the DTD.
결합 방식 멀티패러다임 프로그래밍을 지원하는 언어의 설계 및 구현
최종명,유재우,Choi, Jong-Myung,Yoo, Chae-Woo 한국정보처리학회 2003 정보처리학회논문지 A Vol.10 No.6
본 논문에서는 멀티패러다임 프로그래밍의 결합 방식(compositional approach)[20]을 프로그래밍 언어에 적용한 새로운 형태의 멀티패러다임 언어인 Argos를 소개한다. Argo는 자바 언어의 수퍼셋이고, Argos 언어의 메소드를 정의하는 문법은 다른 언어의 문법을 사용할 수 있는 확장점을 가지고 있다. 따라서 Argos 클래스의 각 메소드는 자바, C, Prolog, Python 등의 여러 프로그래밍 언어들 중에서 하나를 선택해서 구현할수 있도록 허용함으로써 객체지향과 멀티패러다임 프로그래밍을 동시에 지원한다. Argos의 메소드는 기존의 프로그래밍 언어로 작성할 수 있기 때문에 다른 멀티패러다임 언어에 비해 상대적으로 배우기 쉽고, 라이브러리 재사용성도 높은 장점을 가지고 있다. Argos 컴파일러는 입력 프로그램 을 사용된 언어에 따라 분할하고, 분할된 메소드 코드를 해당 언어의 처리기에 전달해서 컴파일하는 DCO(delegating compiler object) 모델[28,29]에 따라 구현된다. In this paper we introduce a new style multiparadigm language named Argos which applies a compositional approach [20] to multiparadigm programming. Argos is a superset of the Java, and its grammar has an extension point which allows other languages to be used in Argos programs. Therefore, Argos can support object-oriented programming and multiparadigm programming by enabling each method in a class to be implemented with one of the Java, C, Prolog, Python, and XML languages. Since Argos allows the existing languages to be used, it has advantages such as easiness of learning and high reusability. The Argos compiler is implemented according to the delegating compiler object (DCO) model[28,29]. The compiler partitions a program Into several parts according to the languages used in methods and delivers the parts the languages' processors which compile the parts.
최종명(Jong-Myung Choi),유재우(Chae-Woo Yoo) 한국정보과학회 2003 정보과학회논문지 : 소프트웨어 및 응용 Vol.30 No.11·12
스프레드시트는 사용하기 쉽기 때문에 가장 널리 사용되는 프로그래밍 도구이지만, 아직까지 스프레드시트 응용프로그램 개발에 객체지향 기술을 적용하려는 시도는 상대적으로 적었다. 일반적으로 스프레드시트 응용프로그램은 내부에 많은 오류를 포함하고 있으며, 재사용성이 낮고, 유지 보수가 어려운 단점을 가지고 있다. 이러한 문제를 해결하기 위해서 본 논문에서는 XCEL이라는 객체지향 스프레드시트를 소개한다. XCEL은 스프레드시트 응용프로그램을 체계적으로 개발하기 위한 데이타 모델링 방법과 스프레드시트에서 객체지향 프로그래밍을 표현하기 위한 방법을 지원한다. XCEL은 데이타 모델링에서 XML과 플로우차트를 이용해서 클래스를 정의하고, 스프레드시트에서는 연속된 셀들의 영역을 이용해서 객체들을 표현한다. XCEL을 이용하면 스프레드시트 응용프로그램 개발에 객체지향 기술들을 그대로 적용 할 수 있는 장점이 있다. Spreadsheet is one of the most widely used programming tool because of its ease of use, however there have been few researches on applying object-oriented techniques in developing spreadsheet applications. Generally, spreadsheet applications contain a lot of error, and spreadsheet has some drawbacks such as low reusability and hard maintenance. In order to solve these problems, we introduce an object-oriented spreadsheet system, named XCEL. It enables users to develop applications using systematic techniques with data modelling method, and allows users to apply object-oriented technologies to spreadsheet programming. The data modelling method allows to define classes using XML and flowchart, and the spreadsheet represents an object with contiguous cells. XCEL has advantage that users can apply object-oriented technology to spreadsheet programming.
최종명(Jong-Myung Choi),유재우(Chae-Woo Yoo) 한국정보과학회 2004 정보과학회논문지 : 소프트웨어 및 응용 Vol.31 No.5
현대적인 소프트웨어들은 모듈성과 확장성을 강조하고 있으며, 프로그래밍 언어와 컴파일러에서도 확장성에 관한 연구들이 수행되고 있다. 본 논문에서 소개하는 Argos 언어는 플러그인 언어라는 개념을 이용해서 언어와 컴파일러를 확장할 수 있는 방법을 제공한다. Argos에서 플러그인 언어는 클래스의 메소드를 정의하기 위해서 사용되며, 플러그인 언어 처리기는 동적으로 추가 및 교체될 수 있는 특징을 가지고 있다. Argos에서 플러그인 언어는 멀티패러다임 프로그래밍과 도메인 특정 언어를 지원하기 위해서 사용될 수 있다. The modern softwares have features of modularity and extensibility, and there are several researches on extensible programming languages and compilers. In this paper, we introduce Argos programming language, which provides the extensibility with the concept of plugin languages. A plugin language is used to define a method of a class, and the plugin language processors can be added and replaced dynamically. The plugin languages may be used to support multiparadigm programming or domain specific languages.