KR20030018720A - Method for generating source code browser for software maintenance and system therefor - Google Patents
Method for generating source code browser for software maintenance and system therefor Download PDFInfo
- Publication number
- KR20030018720A KR20030018720A KR1020010053227A KR20010053227A KR20030018720A KR 20030018720 A KR20030018720 A KR 20030018720A KR 1020010053227 A KR1020010053227 A KR 1020010053227A KR 20010053227 A KR20010053227 A KR 20010053227A KR 20030018720 A KR20030018720 A KR 20030018720A
- Authority
- KR
- South Korea
- Prior art keywords
- source code
- function
- character
- macro
- twenty
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Ceased
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/70—Software maintenance or management
- G06F8/74—Reverse engineering; Extracting design information from source code
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
- G06F8/37—Compiler construction; Parser generation
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/70—Software maintenance or management
- G06F8/75—Structural analysis for program understanding
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
Abstract
1. 청구범위에 기재된 발명이 속한 기술분야1. TECHNICAL FIELD OF THE INVENTION
소프트웨어 유지보수를 위한 소스 코드 브라우저 자동 생성방법에 관한 것임.It is about automatic generation of source code browser for software maintenance.
2. 발명이 해결하고자 하는 기술적 과제2. Technical problem to be solved by the invention
사용자에게 소스 코드를 하이라이팅(highlighting)하여 디스플레이 함은 물론, 사용자 정의 변수의 정보에 대해 하이퍼(hyper)기능을 제공함으로써 사용자로 하여금 프로그램 이해도를 높일수 있도록 하고, 소스 코드 블록의 시작과 끝을 쉽게 구분할수 있도록 실시간적으로 검색하여 디스플레이 함으로써 프로그램을 유지 보수 하는데 있어 시각적으로 이해도를 높일 수 있도록 함.In addition to highlighting and displaying the source code to the user, it also provides a hyper function for the information of user-defined variables, so that the user can easily understand the program and easily distinguish the beginning and end of the source code block. Search and display in real time so that you can visually understand the program.
3. 발명의 해결 방법의 요지3. Summary of the Solution of the Invention
소스 코드에 대해 컴파일 및 번역을 수행하고 상기 소스 코드 브라우저 생성에 필요한 파일 및 함수 정보를 추출하는 제1단계, 상기 소스 코드를 파싱(parsing)하는 제2단계, 상기 파싱된 소스 코드로부터 키워드를 추출하여 하이라이팅하는 제3단계, 상기 파싱된 소스 코드로부터 주석문을 추출하여 하이라이팅하는 제4단계, 상기 추출된 파일 및 함수 정보를 기초로 상기 소스 코드의 전역변수/매크로/자료구조와 상기 전역변수/매크로/자료구조에 각각 대응하는 정보간에 하이퍼 링크를 생성하는 제5단계 및 사용자로부터 입력된 블럭의 시작점을 기초로 소스 코드의 블록 구조를 분석하는 제6단계를 포함함.A first step of compiling and translating the source code and extracting file and function information necessary for generating the source code browser, a second step of parsing the source code, and extracting a keyword from the parsed source code A third step of highlighting, a fourth step of extracting and highlighting comments from the parsed source code, and a global variable / macro / data structure of the source code and the global variable / macro based on the extracted file and function information And a fifth step of generating a hyperlink between the information corresponding to each of the data structures and a sixth step of analyzing the block structure of the source code based on the starting point of the block input from the user.
4. 발명의 중요한 용도4. Important uses of the invention
소프트웨어 유지 보수를 위한 소스 코드 브라우저에 사용됨.Used in source code browser for software maintenance.
Description
본 발명은 소프트웨어 유지보수를 위한 소스 코드 브라우저 자동 생성방법에 관한 것으로, 특히 코볼(COBOL), C, C++, 자바(JAVA) 등으로 작성된 소스 프로그램을 문서 브라우저로 분석하는 경우 제어문의 키워드나 특수 문자의 표현을 시각화할 뿐만 아니라, 사용자 정의 변수, 전역변수, 매크로, 기타 자료 구조에 대한 선언부에 대해서 하이퍼 기능을 제공하는 문서 브라우저의 프로그램 구조 검색/하이라이팅/실시간적인 블록의 위치 검색 및 디스플레이를 하는 방법 및 시스템과 상기 방법을 실현시키기 위한 프로그램을 기록한 기록 매체에 관한 것이다.The present invention relates to a method for automatically generating a source code browser for software maintenance. In particular, when a source program written in COBOL, C, C ++, JAVA, etc. is analyzed by a document browser, keywords or special characters of a control statement are analyzed. In addition to visualizing the representation of the program, the document browser provides a hyperfunction for declarations of user-defined variables, global variables, macros, and other data structures. A method and system and a recording medium having recorded thereon a program for realizing the method.
종래 기술로서, 소프트웨어 유지보수를 위한 문서 브라우저(편집기)는 소스 코드에 대해서 하이라이팅(highlighting)기능 만을 제공해 주는 경우가 대다수이며, 이러한 종래 기술에 의하면, 사용자가 정의한 변수나 자료구조을 찾기 위해서는 해당 파일을 열고 일일이 다 찾아봐야 하는 불편한 점이 있다.In the prior art, the document browser (editor) for software maintenance only provides a highlighting function for the source code, and according to the prior art, in order to find a user-defined variable or data structure, the corresponding file is edited. There is an inconvenience to open and look for everything.
또한 종래의 문서 브라우저(편집기)는 소스 코드의 블록을 그대로 보여줄 뿐이기 때문에 블럭이 어디에서 시작되고 어디에서 끝이 났는지를 사용자가 확인하기 위해서는 소스 코드를 일일이 분석해야 하는 불편한 점이 있다.In addition, the conventional document browser (editor) only shows the block of the source code as it is, it is inconvenient to analyze the source code manually to check where the block is started and where it ends.
종래의 기술인 프로그램 구조 표시 방법(출원번호 10-1997-0057879)은 소스 코드 화면상에서 일반적인 프로그램의 구조(중첩된 루프 또는 계층적 구조)를 표시하는 방법으로서 블록 또는 프로그램 구조를 검색하는 것이 아니기 때문에 상기 문제점을 해결할 수 없었다.The conventional method of displaying a program structure (Application No. 10-1997-0057879) is a method of displaying a general program structure (nested loop or hierarchical structure) on a source code screen. The problem could not be solved.
따라서, 본 발명은 상기와 같은 문제를 해결하기 위해 안출된 것으로서, 사용자에게 소스 코드를 하이라이팅(highlighting)하여 디스플레이 함은 물론, 사용자 정의 변수의 정보에 대해 하이퍼(hyper)기능을 제공함으로써 사용자로 하여금 프로그램 이해도를 높일수 있도록 하고, 소스 코드 블록의 시작과 끝을 쉽게 구분할수 있도록 실시간적으로 검색하여 디스플레이 함으로써 프로그램을 유지 보수 하는데 있어 시각적으로 이해도를 높일 수 있도록 하며, 각 파일 또는 함수내의 소스 크기(size)를 이용하여 토탈 라인/주석 라인/공백 라인/실행 라인 등의 소프트웨어메트릭(metric) 정보를 제공함으로써 유지보수되어야 할 소스 코드를 용이하게 분석할 수 있는 소스 코드 자동 생성 방법 및 시스템과 상기 방법을 실현시키기 위한 프로그램을 기록한 기록매체를 제공함에 그 목적이 있다.Accordingly, the present invention has been made to solve the above problems, and the user by highlighting and displaying the source code, as well as providing a hyper function for the information of the user-defined variable Improves program comprehension, visually improves maintenance of the program by searching and displaying in real time to easily distinguish the beginning and end of source code blocks, and the size of the source in each file or function. Method and system for automatically generating source code that can easily analyze source code to be maintained by providing software metric information such as total line / comment line / blank line / execution line. Record carrier recording program for realization It is an object to provide.
본 발명이 속한 기술 분야에서 통상의 지식을 가진 자는 본 명세서의 도면, 발명의 상세한 설명 및 특허청구범위로부터 본 발명의 다른 목적 및 장점을 쉽게 인식할 수 있다.Those skilled in the art to which the present invention pertains can easily recognize other objects and advantages of the present invention from the drawings, the detailed description of the invention, and the claims.
도1은 본 발명이 적용되는 소스 코드 브라우저 자동 생성 시스템의 일실시예 구성도,1 is a configuration diagram of an embodiment of a system for automatically generating a source code browser to which the present invention is applied;
도2는 본 발명에 따른 소프트웨어 유지보수를 위한 소스 코드 브라우저 자동 생성방법에 대한 일실시예 처리 흐름도,2 is a flowchart illustrating an embodiment of a method for automatically generating a source code browser for software maintenance according to the present invention;
도3은 도2의 소스 코드 파싱 서브루틴에 대한 일실시예 상세 흐름도,3 is a detailed flowchart of one embodiment of the source code parsing subroutine of FIG.
도4는 도2의 소스 코드 키워드 추출 서브루틴에 대한 일실시예 상세 흐름도,4 is a detailed flowchart of an embodiment of a source code keyword extraction subroutine of FIG.
도5는 도2의 소스 코드 주석문 추출 서브루틴에 대한 일실시예 상세 흐름도,FIG. 5 is a detailed flowchart of one embodiment of the source code comment extraction subroutine of FIG. 2; FIG.
도6은 도2의 소스 코드 전역변수/매크로 추출 서브루틴에 대한 일실시예 상세 흐름도,6 is a detailed flowchart of one embodiment of the source code global variable / macro extraction subroutine of FIG.
도7은 도2의 소스 코드 블록 구조 분석 서브루틴에 대한 일실시예 상세 흐름도이다.7 is a detailed flowchart of an embodiment of the source code block structure analysis subroutine of FIG.
<도면의 주요 부분에 대한 부호의 설명><Explanation of symbols for the main parts of the drawings>
10 : 모니터11 : 프린터10 monitor 11 printer
12 : 소스 코드 브라우저 자동 생성 장치13 : 소스 코드 분석 장치12: source code browser automatic generation device 13: source code analysis device
14 : 소스 프로그램 저장부15 : 매개 언어 저장부14: source program storage unit 15: intermediate language storage unit
16 : 역공학 통합 정보파일 저장부16: Reverse engineering integrated information file storage
20 : 인터페이스부21 : 소스 코드 자동 생성부20: interface unit 21: source code automatic generation unit
30 : 소스 코드 브라우저 생성기30: Source Code Browser Generator
31 : 소스 코드 정보모형 저장기31: source code information model storage
40 : 번역부41 : 추출부40: translation unit 41: extraction unit
상기와 같은 목적을 달성하기 위해 본 발명은, 소프트웨어 유지 보수를 위한 소스 코드 브라우저 생성 방법에 있어서, 소스 코드에 대해 컴파일 및 번역을 수행하고 상기 소스 코드 브라우저 생성에 필요한 파일 및 함수 정보를 추출하는 제1단계, 상기 소스 코드를 파싱(parsing)하는 제2단계, 상기 파싱된 소스 코드로부터 키워드를 추출하여 하이라이팅하는 제3단계, 상기 파싱된 소스 코드로부터 주석문을 추출하여 하이라이팅하는 제4단계, 상기 추출된 파일 및 함수 정보를 기초로 상기 소스 코드의 전역변수/매크로/자료구조와 상기 전역변수/매크로/자료구조에 각각 대응하는 정보간에 하이퍼 링크를 생성하는 제5단계 및 사용자로부터 입력된 블럭의 시작점을 기초로 소스 코드의 블록 구조를 분석하는 제6단계를 포함하는 소프트웨어 유지 보수를 위한 소스 코드 브라우저 생성 방법을 제공한다.In order to achieve the above object, the present invention provides a method for generating a source code browser for software maintenance, comprising: compiling and translating source code and extracting file and function information necessary for generating the source code browser; A first step of parsing the source code, a third step of extracting and highlighting a keyword from the parsed source code, a fourth step of extracting and highlighting comments from the parsed source code, and the extraction A fifth step of creating a hyperlink between the global variable / macro / data structure of the source code and the information corresponding to the global variable / macro / data structure based on the file and function information, and a starting point of a block input from the user For software maintenance, the sixth step of analyzing the block structure of the source code based on Provides a way to generate a source code browser.
또한 상기와 같은 목적을 달성하기 위해 본 발명은, 소프트웨어 유지 보수를 위한 소스 코드 브라우저 생성을 위해, 프로세서를 구비한 시스템에. 소스 코드에 대해 컴파일 및 번역을 수행하고 상기 소스 코드 브라우저 생성에 필요한 파일 및 함수 정보를 추출하는 제1기능, 상기 소스 코드를 파싱(parsing)하는 제2기능, 상기 파싱된 소스 코드로부터 키워드를 추출하여 하이라이팅하는 제3기능, 상기 파싱된 소스 코드로부터 주석문을 추출하여 하이라이팅하는 제4기능, 상기 추출된 파일 및 함수 정보를 기초로 상기 소스 코드의 전역변수/매크로/자료구조와 상기 전역변수/매크로/자료구조에 각각 대응하는 정보간에 하이퍼 링크를 생성하는 제5기능 및 사용자로부터 입력된 블럭의 시작점을 기초로 소스 코드의 블록 구조를 분석하는 제6기능을 실현시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체를 제공한다.In addition, to achieve the above object, the present invention provides a system having a processor for generating a source code browser for software maintenance. A first function of compiling and translating source code and extracting files and function information necessary for generating the source code browser, a second function of parsing the source code, and extracting keywords from the parsed source code A third function for highlighting, a fourth function for extracting and highlighting comments from the parsed source code, and a global variable / macro / data structure and the global variable / macro of the source code based on the extracted file and function information Computer-readable programs for realizing a fifth function for creating a hyperlink between information corresponding to each data structure and a sixth function for analyzing a block structure of the source code based on a start point of a block input from a user Provide a recording medium.
또한 상기와 같은 목적을 달성하기 위해 본 발명은, 소프트웨어 유지보수를 위한 소스 코드 브라우저 자동 생성 시스템에 있어서, 소스 코드, 상기 소스 코드가 컴파일 및 번역된 매개 언어 및 상기 매개 언어로부터 추출된 소스 코드 브라우저 생성에 필요한 함수 정보를 저장하는 저장부, 상기 저장부에 저장되어 있는 매개 언어로부터 상기 소스 코드에서 정의되어 있는 변수, 매크로 및 자료 구조와 상기 변수, 매크로 및 자료 구조에 관련된 정보가 포함된 상기 소스 코드 브라우저 생성에 필요한 함수 정보를 추출하여 상기 저장부로 저장하는 추출부, 상기 소스 코드 및 상기 소스 코드 브라우저 생성에 필요한 파일 및 함수 정보를 검색하여 당해 파일 및 함수의 소스 코드 정보를 저장하는 소스 코드 정보 모형 저장부, 상기 소스 코드에 포함된 키워드 및 주석문을 추출하여 하이라이팅하고, 상기 소스 코드 정보 모형 저장부에 저장된 데이터를 기초로 상기 소스 코드의 전역변수/매크로/자료구조와 상기 전역변수/매크로/자료구조에 각각 대응하는 정보간에 하이퍼 링크를 생성하며, 사용자로부터 입력된 블럭의 시작점을 기초로 소스 코드의 블록 구조를 분석하여 소스 코드 브라우저 및 콜 트리(call tree)를 디스플레이하는 소스 코드 브라우저 생성기를 포함하는 소프트웨어 유지보수를 위한 소스 코드 브라우저 자동 생성 시스템을 제공한다.In addition, in order to achieve the above object, the present invention, in the source code browser automatic generation system for software maintenance, source code, the source code browser, the source code is compiled and translated source code and extracted from the source language browser A storage unit for storing function information necessary for generation, the source including variables, macros, and data structures defined in the source code and information related to the variables, macros, and data structures from an intermediate language stored in the storage unit; Extractor for extracting function information necessary for generating a code browser and storing it in the storage unit, source code information for storing source code information of the file and function by searching for the source code and file and function information required for generating the source code browser Model storage unit, included in the source code And extracting and highlighting a comment, and hyperlinking between the global variable / macro / data structure of the source code and the information corresponding to the global variable / macro / data structure based on the data stored in the source code information model storage unit. Source code browser for software maintenance including a source code browser generator that generates a source code browser and a call tree by analyzing the block structure of the source code based on the starting point of the block input from the user Provide a generation system.
상술한 목적, 특징 및 장점들은 첨부된 도면과 관련한 다음의 상세한 설명을 통하여 보다 분명해 질 것이다. 우선 각 도면의 구성요소들에 참조 번호를 부가함에 있어서, 동일한 구성 요소들에 한해서는 비록 다른 도면상에 표시되더라도가능한 한 동일한 번호를 가지도록 하고 있음에 유의하여야 한다. 또한, 본 발명을 설명함에 있어서, 관련된 공지 기술에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우 그 상세한 설명을 생략한다. 이하, 첨부된 도면을 참조하여 본 발명에 따른 바람직한 실시예를 상세히 설명한다.The above objects, features and advantages will become more apparent from the following detailed description taken in conjunction with the accompanying drawings. First of all, in adding reference numerals to the components of each drawing, it should be noted that the same components have the same number as much as possible even if displayed on different drawings. In addition, in describing the present invention, when it is determined that the detailed description of the related known technology may unnecessarily obscure the subject matter of the present invention, the detailed description thereof will be omitted. Hereinafter, exemplary embodiments of the present invention will be described in detail with reference to the accompanying drawings.
도1은 본 발명이 적용되는 소프트웨어 유지보수를 위한 소스 코드 브라우저 자동 생성 장치의 일실시예 구성도이다.1 is a configuration diagram of an embodiment of a device for automatically generating a source code browser for software maintenance to which the present invention is applied.
도면에 도시된 바와 같이, 본 발명이 적용되는 소프트웨어 유지보수를 위한소스 코드 브라우저 자동 생성 시스템은, 소스 코드 브라우저 자동 생성 장치(12) 및 소스 코드 분석 장치(13)를 구비하고 있다. 소스 코드 분석 장치(13)는 소스 프로그램 저장부(14), 매개 언어 저장부(15) 및 역공학 통합 정보 파일 저장부(16)와 접속되어 있다.As shown in the figure, the source code browser automatic generation system for software maintenance to which the present invention is applied includes a source code browser automatic generation device 12 and a source code analysis device 13. The source code analysis device 13 is connected to a source program storage 14, an intermediate language storage 15, and a reverse engineering integrated information file storage 16.
한편, 소스 코드 분석 장치(13)는 소스 코드 브라우저를 생성하여 사용자에게 디스플레이 하거나 프린트할 수 있는 모니터(10) 및 프린터(11)와 접속되어 있으며, 역공학 통합 정보 파일 저장부(16) 및 소스 프로그램 저장부(14)와 접속되어 소스 코드 브라우저를 생성하는데 필요한 정보를 수신한다.On the other hand, the source code analysis device 13 is connected to the monitor 10 and the printer 11 that can generate a source code browser to display or print to the user, the reverse engineering integrated information file storage unit 16 and the source It is connected to the program storage unit 14 to receive information necessary to generate a source code browser.
소스 코드 분석 장치(13)는 번역부(40) 및 추출부(41)를 포함한다.The source code analysis apparatus 13 includes a translation unit 40 and an extraction unit 41.
번역부(40)는 코볼(COBOL), C, C++, 자바(JAVA) 등으로 작성된 소스 프로그램 저장부(14)에 저장되어 있는 소스 코드에 대해 컴파일 및 번역(translation)을 수행함으로써 독립적인 중간언어인 매개 언어를 추출하여 매개 언어 저장부(15)에 저장한다.The translator 40 compiles and translates the source code stored in the source program storage unit 14 written in COBOL, C, C ++, JAVA, and the like. Phosphorus intermediate language is extracted and stored in the intermediate language storage unit 15.
추출부(41)는 상기 매개 언어 저장부(15)에 저장된 매개 언어로부터 소스 코드 브라우저 생성에 필요한 함수 정보만을 추출하여 역공학 통합 정보파일 저장부(16)에 저장한다. 따라서 역공학 통합 정보파일 저장부(16)에는 소스 코드에서 정의되어 있는 전역 변수/매크로/자료 구조 및 당해 전역 변수/매크로/자료 구조에 관련된 정보가 저장되어 있다.The extraction unit 41 extracts only the function information necessary for generating the source code browser from the intermediate language stored in the intermediate language storage unit 15 and stores it in the reverse engineering integrated information file storage unit 16. Therefore, the reverse engineering integrated information file storage unit 16 stores global variables / macros / data structures defined in the source code and information related to the global variables / macros / data structures.
소스 코드 브라우저 자동 생성 장치(12)는 소스 코드 자동 생성부(21) 및 인터페이스부(20)를 포함한다.The automatic source code browser generation device 12 includes a source code automatic generation unit 21 and an interface unit 20.
소스 코드 자동 생성부(21)는, 소스 코드 브라우저 정보모형 저장기(31)와, 소스 코드 브라우저 생성기(30)를 구비한다.The source code automatic generation unit 21 includes a source code browser information model storage 31 and a source code browser generator 30.
소스 코드 브라우저 정보모형 저장기(31)는 소스 프로그램 저장부(14)에 저장되어 있는 원시 소스 코드 및 역공학 통합 정보파일 저장부(16)에 저장되어 있으며 당해 원시 소스 코드에 대응하는, 소스 코드 브라우저 생성에 필요한 파일 및 함수 정보를 검색하여 당해 파일 및 함수의 소스 코드 정보를 저장한다.The source code browser information model storage unit 31 is stored in the source code stored in the source program storage unit 14 and the reverse engineering integrated information file storage unit 16 and corresponds to the source code. File and function information required for browser generation is retrieved and source code information of the file and function is stored.
소스 코드 브라우저 생성기(30)는 상기 소스 코드 브라우저 정보모형 저장기(31)에 저장된 파일 및 함수와 소스 코드 정보를 이용하여 소스 코드 브라우저를 생성하고, 상기 인터페이스부(20)는 상기 소스 코드 브라우저로 생성된 파일 및 함수 정보를 이용하여 소스 코드 브라우저 및 콜 트리(call tree)를 자동 생성하여 모니터(10) 또는 프린터(11)로 디스플레이 한다.The source code browser generator 30 generates a source code browser using the files and functions stored in the source code browser information model storage 31 and the source code information, and the interface unit 20 sends the source code browser to the source code browser. Using the generated file and function information, a source code browser and a call tree are automatically generated and displayed on the monitor 10 or the printer 11.
도2는 본 발명에 따른 소프트웨어 유지보수를 위한 소스 코드 브라우저 자동 생성 방법에 대한 일실시예 처리 흐름도이다.2 is a flowchart illustrating an embodiment of a method for automatically generating a source code browser for software maintenance according to the present invention.
번역부(40)는 소스 프로그램 저장부(14)에 저장되어 있는 소스 코드를 컴파일 및 번역을 수행하여 매개 언어를 추출, 매개 언어 저장부(15)에 저장한다. 추출부(41)는 상기 매개 언어 저장부(15)에 저장된 매개 언어로부터 소스 코드 브라우저 생성에 필요한 파일 및 함수 정보를 추출하여 역공학 정보 통합 파일 저장부(16)에 저장한다. 이상의 프로세스가 역공학 통합 정보 파일로부터 소스 코드에 대한 정보를 추출하는 단계(100)이다.The translation unit 40 compiles and translates the source code stored in the source program storage unit 14 to extract and store the intermediate language in the intermediate language storage unit 15. The extractor 41 extracts a file and function information necessary for generating a source code browser from the intermediate language stored in the intermediate language storage 15 and stores the extracted file and function information in the reverse engineering information integrated file storage 16. The above process is extracting information about source code from the reverse engineering integrated information file (100).
다음으로, 소스 코드 브라우저 정보모형 저장기(31)는 소스 프로그램 저장부(14)에 저장되어 있는 원시 소스 코드 및 역공학 정보 통합 파일 저장부(16)로부터 당해 원시 소스 코드에 대응하는, 소스 코드 브라우저 생성에 파일 및 함수 정보를 탐색하여 당해 파일 및 함수의 소스 코드 위치 정보를 저장한다.Next, the source code browser information model storage unit 31 corresponds to the original source code from the source code stored in the source program storage unit 14 and the reverse engineering information integrated file storage unit 16. File and function information is retrieved in the browser generation to store source code location information of the file and function.
소스 코드 브라우저 생성기(30)는 추출된 소스 코드를 파싱(parsing)한다(102).The source code browser generator 30 parses the extracted source code (102).
또한 소스 코드 브라우저 생성기(30)는 소스 코드 정보 모형 저장기(31)에 저장되어 있는 데이터로부터 키워드를 추출하고(104), 주석문을 추출하며(106), 전역변수/매크로/자료구조와 관련 정보간에 하이퍼 링크를 생성하며(108), 소스 코드의 블록 구조를 분석한다(110).The source code browser generator 30 also extracts keywords 104 from the data stored in the source code information model store 31, extracts comments 106, and stores global variables / macro / data structures and related information. Create a hyperlink (108), and analyze the block structure of the source code (110).
마지막으로, 도면에는 도시되지 아니하였으나 상기 소스 코드로부터 추출된 정보를 이용하여 인터페이스부(20)가 모니터(10) 및 프린터(11)에 소스 코드 브라우저 및 콜 트리를 출력한다.Finally, although not shown in the drawing, the interface unit 20 outputs a source code browser and a call tree to the monitor 10 and the printer 11 by using the information extracted from the source code.
도3 내지 도7에서는 소스 코드 브라우저 생성기(30)가 수행하는 상기 단계104 내지 단계110의 소스 코드 브라우저 생성을 위한 처리 프로세스가 도시되어 있다.3 to 7 illustrate a processing process for generating the source code browser of steps 104 to 110 performed by the source code browser generator 30.
도3은 도2의 소스 코드 파싱 서브루틴에 대한 일실시예 상세 흐름도로서, 소스 코드의 문장을 토큰별로 분석하고, 타입(type)을 검사하는 과정이다.3 is a detailed flowchart illustrating an example of the source code parsing subroutine of FIG. 2, in which a sentence of the source code is analyzed for each token and a type is checked.
먼저, 소스 코드 문장을 파싱하기 위해서 '<' 문자인가를 판단한다(202).First, in order to parse a source code statement, it is determined whether it is a '<' character (202).
단계202의 판단 결과, '<'의 문자이면, 태그 유형인가를 판단한다(203). 즉 '<'의 문자가 연산자로서 사용되지 않고, 이후의 문자에 문자열 및 '>'이 존재하는지 여부를 인식함으로써 태그 유형인지 여부를 판단하는 것이다.If it is determined in step 202 that the character is '<', it is determined whether it is a tag type (203). In other words, the character of '<' is not used as an operator, and the character of the tag is determined by recognizing whether a string and '>' are present in subsequent characters.
단계203의 판단 결과 태그 유형이면, 태그를 토큰에 추가한다(204).If the determination in step 203 is a tag type, the tag is added to the token (204).
단계202의 판단 결과 '<'의 문자가 아니거나, 상기 단계203의 판단 결과 태그 유형이 아니면, '('의 문자인가를 판단한다(205).If the result of the determination in step 202 is not a character of '<' or if the result of the determination in step 203 is not a tag type, it is determined (205).
단계205의 판단 결과 '('의 문자이면, 괄호유형인가를 판단한다(206). 괄호 유형인가 여부의 판단은 상기 태그 유형인가 여부를 판단하는 단계203과 유사하다.If the determination result of step 205 is a character of '(', it is determined whether it is a parenthesis type (206). The determination of whether it is a parenthesis type is similar to step 203 of determining whether it is the tag type.
단계206의 판단 결과 괄호 유형이면, 괄호를 토큰에 추가한다(207).If the determination in step 206 is parenthesis type, parentheses are added to the token (207).
단계205의 판단 결과 '('의 문자가 아니거나, 단계206의 판단 결과 괄호 유형이 아니면, 파일의 끝인지를 판단한다(208).If the result of the determination in step 205 is not the character of '(' or the result of the determination in step 206 is not the parenthesis type, it is determined whether the file is the end (208).
단계208의 판단 결과 파일의 끝이 아니면 '-'의 문자 인지를 판단하고(209), 파일의 끝이면 리턴된다.As a result of the determination in step 208, it is determined whether the character is '-' if it is not the end of the file (209).
단계209의 판단 결과 '-'의 문자이면, 연산자 유형인가를 판단한다(210).If it is determined in step 209 that the character is '-', it is determined whether it is an operator type (210).
단계210의 판단 결과 연산자 유형이면 연산자를 토큰에 추가한다(211).If the result of the determination in step 210 is the operator type, the operator is added to the token (211).
단계209의 판단 결과 '-'의 문자가 아니거나, 단계210의 판단 결과 연산자 유형이 아니면, 특수 문자인가를 판단한다(212). 특수 문자는 소스 코드 프로그램(C, C++, JAVA 등)에서 예약어로 이미 정의되어 있는 문자를 의미한다.If the result of the determination in step 209 is not a character of '-' or the result of the determination in step 210 is not an operator type, it is determined whether the character is a special character (212). Special characters refer to characters that are already defined as reserved words in source code programs (C, C ++, JAVA, etc.).
단계212의 판단 결과 특수 문자이면, 특수 문자를 토큰에 추가한다(213).If the determination in step 212 is a special character, the special character is added to the token (213).
단계212의 판단 결과 특수 문자가 아니면 '/'의 문자인가를 판단한다(214).If it is determined in step 212 that it is not a special character, it is determined whether it is a character of '/' (214).
단계214의 판단 결과 '/'의 문자이면, 주석 유형인가를 판단한다(215). 주석은 '/*'로 시작하여 '*/'로 종료하므로 이후의 문자에 문자열 및 '*/'이 존재하는지 여부를 인식함으로써 주석 유형인지 여부를 판단하는 것이다.If it is determined in step 214 that the character is '/', it is determined whether it is an annotation type (215). A comment starts with '/ *' and ends with '* /', so it recognizes whether a string and '* /' are present in subsequent characters to determine whether it is a comment type.
단계215의 판단 결과 주석 유형이면 주석을 토큰에 추가한다(216).If the determination result of step 215 is a comment type, a comment is added to the token (216).
단계214의 판단 결과 '/'의 문자가 아니거나, 단계215의 판단 결과 주석 유형이 아니면 당해 문자를 토큰에 추가한다(217).If the determination result of step 214 is not a character of '/', or if the determination result of step 215 is not an annotation type, the character is added to the token (217).
한편, 상기 단계202 내지 단계217은 소스 파일의 모든 문장을 방문하여 수행됨으로써(201) 소스 파일의 모든 문장에 대해 분석된다.Meanwhile, the steps 202 to 217 are performed by visiting all sentences of the source file (201), and are analyzed for all sentences of the source file.
도4는 도2의 소스 코드 키워드 추출 서브루틴에 대한 일실시예 상세 흐름도이다.4 is a detailed flowchart of an embodiment of the source code keyword extraction subroutine of FIG.
소스 코드의 키워드를 검색하기 위해서 문자인가를 판단한다(302).In order to search for a keyword of the source code, it is determined whether it is a character (302).
단계302의 판단 결과 입력된 값이 문자이면, 이후의 문자들과 함께 문자열로 생성시켜 토큰을 생성한다(303).If the input value is a character as a result of the determination in step 302, a token is generated by generating a character string with subsequent characters (303).
단계302의 판단 결과 문자가 아니면, 태그문자열인가를 판단한다(304).If the determination result of step 302 is not a character, it is determined whether it is a tag string (304).
단계304의 판단 결과 태그문자열이면, 키워드인지를 판단하고(305), 태그문자열이 아니면 리턴된다. 키워드는 소스 코드 프로그램(C, C++, JAVA 등)에서 예약어로 이미 정의되어 있는 문자열을 의미한다.If it is determined in step 304 that it is a tag string, it is determined whether it is a keyword (305), and if it is not a tag string, it is returned. Keywords are strings that are already defined as reserved words in source code programs (C, C ++, JAVA, etc.).
단계305의 판단 결과 태그 문자열이 키워드이면, 하이라이팅한다(306).If the tag string is a keyword as a result of the determination in step 305, it is highlighted (306).
단계305의 판단 결과 태그 문자열이 키워드가 아니면 다음 문자에 대해 상기 프로세스를 반복하여 수행한다. 즉, 상기 단계302 내지 단계306은 소스 파일의 모든 문장을 방문하여 수행됨으로써(301) 소스 파일의 모든 문장에 대해 분석된다.If the tag string is not a keyword as a result of the determination in step 305, the above process is repeated for the next character. That is, the steps 302 to 306 are performed by visiting all the sentences of the source file (301) to analyze all the sentences of the source file.
도5는 도2의 소스 코드 주석문 추출 서브루틴에 대한 일실시예 상세 흐름도이다.FIG. 5 is a detailed flowchart of one embodiment of the source code comment extraction subroutine of FIG.
소스 코드의 주석문을 검색하기 위해서 '*'의 문자인가를 판단한다(402).In order to retrieve the comment of the source code, it is determined whether it is a character of '*' (402).
단계402의 판단 결과 '*'의 문자가 아니면, 이후의 문자들과 함께 문자열로 생성시켜 주석을 생성한다(403) 다음 문자에 대해 상기 단계402로 회귀시킨다.If it is determined in step 402 that the character is not a '*', an annotation is generated by generating a string together with subsequent characters (403). The next character is returned to the step 402.
단계402의 판단 결과 '*'의 문자이면, 주석의 끝인가를 판단한다(404).If it is determined in step 402 that the character is '*', it is determined whether or not the end of the comment is reached (404).
단계404의 판단 결과 주석의 끝이 아니면 다음 문자에 대해 상기 단계402로 회귀시킨다.If the result of the determination in step 404 is not the end of the comment, the process returns to step 402 for the next character.
단계404의 판단 결과(404) 주석의 끝이면 주석문으로 인식하여 하이라이팅한 후(405) 리턴된다. 즉, 상기 단계402 내지 단계405는 소스 파일의 모든 문장을 방문하여 수행됨으로써(401) 소스 파일의 모든 문장에 대해 분석된다.If the result of the determination in step 404 (404) is the end of the comment, it is recognized as a comment and highlighted (405). That is, the steps 402 to 405 are performed by visiting all sentences of the source file (401), and are analyzed for all sentences of the source file.
도6은 도2의 소스 코드 전역변수/매크로/자료구조 추출 서브루틴에 대한 일실시예 상세 흐름도이다.FIG. 6 is a detailed flowchart of one embodiment of the source code global variable / macro / data structure extraction subroutine of FIG.
소스 코드의 전역변수/매크로/자료구조를 검색하기 위해서 문자열이 키워드인가를 판단한다(502).In order to search the global variable / macro / data structure of the source code, it is determined whether the string is a keyword (502).
단계502의 판단 결과 키워드가 아니면 변수/매크로인가를 판단하고(203), 키워드이면 리턴된다.If it is determined that the keyword in step 502 is not a keyword, it is determined whether it is a variable / macro (203).
단계503의 판단 결과 문자열이 변수/매크로가 아니면, 다음 문자열에 대해 단계502로 회귀시킨다.If the determination result in step 503 is not a variable / macro, the process returns to step 502 for the next character string.
단계503의 판단 결과 문자열이 변수/매크로/자료구조이면 소스 코드 정보 모형 저장기(31)에 저장되어 있는 변수/매크로/자료구조에 대한 정보를 추출하고(504), 전역변수 인가를 판단한다(505).If the result of the determination in step 503 is a string / macro / data structure, information on the variable / macro / data structure stored in the source code information model storage unit 31 is extracted (504), and it is determined whether the global variable is present ( 505).
단계505의 판단 결과 전역변수이면 당해 전역 변수 속성에 하이퍼 기능을 추가하여 단계504에서 추출된 전역변수 정보에 링크시킨다(506).If the result of the determination in step 505 is a global variable, a hyper function is added to the global variable attribute and linked to the global variable information extracted in step 504 (506).
매크로 및 자료 구조에 대해서도 상기 전역 변수에 대한 프로세스(단계506)와 유사한 프로세스를 수행한다(단계507 내지 단계510). 그러나 단계509의 판단 결과 자료구조체가 아니면 즉 전역 변수/매크로/자료구조 중 어느 것도 아니면 리턴한다. 즉, 상기 단계502 내지 단계510은 소스 파일의 모든 문장을 방문하여 수행됨으로써(501) 소스 파일의 모든 문장에 대해 분석된다.A process similar to the process for global variables (step 506) is performed for macros and data structures (steps 507 to 510). However, if the determination result of step 509 is not a data structure, that is, none of the global variables / macro / data structures is returned. That is, steps 502 to 510 are performed by visiting all sentences of the source file (501) to analyze all the sentences of the source file.
도7은 도2의 소스 코드 블록 구조 분석 서브루틴에 대한 일실시예 상세 흐름도이다.7 is a detailed flowchart of an embodiment of the source code block structure analysis subroutine of FIG.
먼저, 사용자로부터 마우스의 위치를 입력 받아서 해당 문자열을 찾는다(601).First, a position of a mouse is input from a user and a corresponding string is found (601).
다음으로, 해당 문자열이 '{' 인가를 판단한다(602).Next, it is determined whether the corresponding string is '{' (602).
단계602의 판단 결과 해당 문자열이 '{' 이면, 검색 위치를 '{' 다음으로 인덱스를 변경하고(603), 인덱스 이루 모든 데이터를 방문하여(604), 이후의 단계608 내지 단계612를 수행한다.If the character string is '{' as a result of the determination in step 602, the index is changed to the search position next to '{' (603), all the data including the index is visited (604), and subsequent steps 608 to 612 are performed. .
단계602의 판단 결과 '{' 가 아니면, '}'인가를 판단한다(605).If it is determined in step 602 that it is not '{', it is determined whether it is '}' (605).
단계605의 판단 결과 해당 문자열이 '}' 가 아니면 리턴한다.If it is determined in step 605 that the string is not '}' is returned.
단계605의 판단 결과 해당 문자열이 '}' 이면, 검색 위치를 '}' 앞으로 인덱스를 변경하고(606), 인덱스 이전의 모든 데이터를 역으로 방문하여(607), 이후의 단계608 내지 단계612를 수행한다.If the corresponding string is '}' as a result of the determination in step 605, the index is changed to the search position '}' in advance (606), and all data before the index is visited in reverse (607), and subsequent steps 608 to 612 are performed. Perform.
단계608에서는 방문된 문자열이 '{'인가를 판단하여, 판단 결과 방문된 문자열이 '{' 이면, 증가치에 "1"을 증가시키고(609), 다음의 방문 문자열에 대해 단계608로 회귀시킨다.In step 608, it is determined whether the visited string is '{'. If the visited string is '{', as a result of the determination, the incremented value is "1" (609), and the next visited string is returned to step 608.
단계608의 판단 결과(608) '{' 가 아니면, '}'인가를 판단한다(610).If it is determined that the determination result 608 of step 608 is not '{', it is determined whether it is '}' (610).
단계610의 판단 결과(610), '}' 가 아니면 다음의 방문 문자열에 대해 단계608로 회귀시킨다.If the determination result 610 of step 610 is not '}', the next visit string is returned to step 608.
단계610의 판단 결과(610), 방문된 문자열이 '}' 이면, 증가치에 "1"을 감소시키고(611), 감소된 증가치가 "0"인가를 판단한다(612).As a result of the determination in step 610, if the visited character string is '}', it decreases (1) to the increment value (611), and determines whether the reduced increment value is "0" (612).
단계612의 판단 결과(612), 증가치가 "0"이 아니면 다음의 방문 문자열에 대해 단계608로 회귀시킨다.As a result of the determination 612 of step 612, if the increment is not " 0 ", the process returns to step 608 for the next visited string.
단계612의 판단 결과(612), 증가치가 "0"이면 증가치가 "0"일 때의 방문 문자열인 '{' 또는 '}'를 디스플레이하고 리턴한다. 디스플레이되는 방문 문자열인'{' 또는 '}'는 단계601에서 사용자가 마우스로 선택한 블럭 구조의 일단에 대응하는 타단을 의미하는 것이다.As a result of the determination 612 of step 612, if the increment value is "0", it displays and returns a visit character string "{" or "}" when the increment value is "0". '{' Or '}', which is the displayed visit string, means the other end corresponding to one end of the block structure selected by the user in step 601.
상술한 바와 같은 본 발명의 방법은 프로그램으로 구현되어 컴퓨터로 읽을 수 있는 기록매체(시디롬, 램, 롬, 플로피 디스크, 하드 디스크, 광자기 디스크 등)에 저장될 수 있다.The method of the present invention as described above may be implemented as a program and stored in a computer-readable recording medium (CD-ROM, RAM, ROM, floppy disk, hard disk, magneto-optical disk, etc.).
이상에서 설명한 본 발명은 전술한 실시예 및 첨부된 도면에 의해 한정되는 것이 아니고, 본 발명의 기술적 사상을 벗어나지 않는 범위 내에서 여러 가지 치환, 변형 및 변경이 가능하다는 것이 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에게 있어서 명백하다 할 것이다.The present invention described above is not limited to the above-described embodiments and the accompanying drawings, and various substitutions, modifications, and changes are possible in the technical field of the present invention without departing from the technical spirit of the present invention. It will be clear to those of ordinary knowledge.
상기와 같은 본 발명은, 소스 코드의 판독성 및 추적성이 용이한 고품질의 소스 코드 브라우저를 통해 프로그램 유지 보수자에게 소스 코드에 대한 하이라이팅(highlighting)기능뿐만 아니라, 사용자 정의 변수의 정보를 이용하여 보다 편리하게 하이퍼(hyper)기능을 제공할 수 있어 사용자의 프로그램 이해도를 높일수 있으며, 블록의 시작과 끝을 쉽게 구분할수 있도록 실시간적으로 검색해 줄수 있어 프로그램을 유지 보수 하는데 있어, 시각적으로 이해도를 높일 뿐만 아니라, 각 파일 또는 함수내의 소스 크기(size)를 이용하여 토탈 라인, 주석 라인, 공백 라인,실행 라인 등의 소프트웨어 메트릭(metric) 정보를 제공함으로써 유지보수되어야 할 소스 코드를 분석하는데 용이하게 사용됨으로써, 프로그램의 유지보수 작업에 필요한 시간과 노력 및 비용을 최소화할 수 있으며, 다양한 형태를 갖는 소스 코드 브라우저를 자동 생성할 수 있는 효과가 있다.The present invention as described above, by using a high-quality source code browser that is easy to read and trace the source code to the program maintainer using the information of the user-defined variables, as well as highlighting of the source code It can provide the hyper function conveniently to improve the user's understanding of the program, and can search in real time to easily distinguish the beginning and the end of the block to maintain the program. By using the source size in each file or function, it is easily used to analyze source code that must be maintained by providing software metric information such as total lines, comment lines, blank lines, and execution lines. Minimize the time, effort, and cost required to maintain the program It can hwahal, and there is an effect that it is possible to automatically create source code browser having a variety of forms.
Claims (19)
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| KR1020010053227A KR20030018720A (en) | 2001-08-31 | 2001-08-31 | Method for generating source code browser for software maintenance and system therefor |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| KR1020010053227A KR20030018720A (en) | 2001-08-31 | 2001-08-31 | Method for generating source code browser for software maintenance and system therefor |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| KR20030018720A true KR20030018720A (en) | 2003-03-06 |
Family
ID=27721826
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| KR1020010053227A Ceased KR20030018720A (en) | 2001-08-31 | 2001-08-31 | Method for generating source code browser for software maintenance and system therefor |
Country Status (1)
| Country | Link |
|---|---|
| KR (1) | KR20030018720A (en) |
Cited By (5)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| KR100932837B1 (en) * | 2008-06-04 | 2009-12-21 | 단국대학교 산학협력단 | Method and apparatus for identifying software structure |
| KR101403298B1 (en) * | 2012-11-14 | 2014-06-05 | (주)큐브젠소프트 | Method for recognizing program source character automatically |
| US9880842B2 (en) | 2013-03-15 | 2018-01-30 | Intel Corporation | Using control flow data structures to direct and track instruction execution |
| CN111061464A (en) * | 2019-11-24 | 2020-04-24 | 济南浪潮数据技术有限公司 | Analysis code generation method, device, equipment and storage medium |
| CN117406996A (en) * | 2023-10-20 | 2024-01-16 | 北京市辰至半导体科技有限公司 | Semantic analysis method and device for hardware description code |
Citations (6)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPH06124199A (en) * | 1992-10-13 | 1994-05-06 | Toshiba Corp | Source code / comment editor |
| KR19990038225A (en) * | 1997-11-04 | 1999-06-05 | 구자홍 | How to display the program structure in a text editor |
| KR19990047339A (en) * | 1997-12-03 | 1999-07-05 | 정선종 | Automatic object extraction method |
| KR20000026689A (en) * | 1998-10-22 | 2000-05-15 | 정선종 | Browsing device of the object intentional framework, and method |
| KR20000031432A (en) * | 1998-11-06 | 2000-06-05 | 정선종 | Analysis method for converting procedure oriented program into object oriented program |
| JP2000322295A (en) * | 1999-05-12 | 2000-11-24 | Nec Corp | Method and device for programming support for data base stored sub-program |
-
2001
- 2001-08-31 KR KR1020010053227A patent/KR20030018720A/en not_active Ceased
Patent Citations (6)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPH06124199A (en) * | 1992-10-13 | 1994-05-06 | Toshiba Corp | Source code / comment editor |
| KR19990038225A (en) * | 1997-11-04 | 1999-06-05 | 구자홍 | How to display the program structure in a text editor |
| KR19990047339A (en) * | 1997-12-03 | 1999-07-05 | 정선종 | Automatic object extraction method |
| KR20000026689A (en) * | 1998-10-22 | 2000-05-15 | 정선종 | Browsing device of the object intentional framework, and method |
| KR20000031432A (en) * | 1998-11-06 | 2000-06-05 | 정선종 | Analysis method for converting procedure oriented program into object oriented program |
| JP2000322295A (en) * | 1999-05-12 | 2000-11-24 | Nec Corp | Method and device for programming support for data base stored sub-program |
Cited By (7)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| KR100932837B1 (en) * | 2008-06-04 | 2009-12-21 | 단국대학교 산학협력단 | Method and apparatus for identifying software structure |
| KR101403298B1 (en) * | 2012-11-14 | 2014-06-05 | (주)큐브젠소프트 | Method for recognizing program source character automatically |
| US9880842B2 (en) | 2013-03-15 | 2018-01-30 | Intel Corporation | Using control flow data structures to direct and track instruction execution |
| CN111061464A (en) * | 2019-11-24 | 2020-04-24 | 济南浪潮数据技术有限公司 | Analysis code generation method, device, equipment and storage medium |
| CN111061464B (en) * | 2019-11-24 | 2022-04-22 | 济南浪潮数据技术有限公司 | Analysis code generation method, device, equipment and storage medium |
| CN117406996A (en) * | 2023-10-20 | 2024-01-16 | 北京市辰至半导体科技有限公司 | Semantic analysis method and device for hardware description code |
| CN117406996B (en) * | 2023-10-20 | 2024-04-16 | 北京市辰至半导体科技有限公司 | Semantic analysis method and device for hardware description code |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| KR101098718B1 (en) | System and method for creating, managing and using code segments | |
| US5946488A (en) | Method for selectively and incrementally displaying the results of preprocessing | |
| US7296223B2 (en) | System and method for structured document authoring | |
| JP3879350B2 (en) | Structured document processing system and structured document processing method | |
| US7761788B1 (en) | System and method for capturing document style by example | |
| US7707139B2 (en) | Method and apparatus for searching and displaying structured document | |
| US20100037130A1 (en) | Site mining stylesheet generator | |
| US20060015571A1 (en) | Computer evaluation of contents of interest | |
| CN111176650B (en) | Parser generation method, search method, server, and storage medium | |
| US20070033520A1 (en) | System and method for web page localization | |
| GB2312973A (en) | Programming aid enabling source code to be viewed with a general purpose document browser | |
| CN115509514B (en) | Front-end data simulation method, device, equipment and medium | |
| CN111639504A (en) | Multi-language translation method, device and equipment for webpage | |
| US20110087698A1 (en) | Search expression creating system, search expression creating method, search expression creating program, and recording medium | |
| CN113419721B (en) | Web-based expression editing method, apparatus, device and storage medium | |
| JPH11110384A (en) | Structured document search and display method and apparatus | |
| KR20030018720A (en) | Method for generating source code browser for software maintenance and system therefor | |
| JPH11272503A (en) | Device for automatically generating test data of program | |
| CN111459365B (en) | Customized consulting help application management method | |
| JP2004334382A (en) | Structured document summarizing apparatus, program, and recording medium | |
| Hammad et al. | Summarizing services of java packages | |
| JP4207992B2 (en) | Structured document processing system and structured document processing method | |
| Ball | {XML} Support For Tcl | |
| JP3003459B2 (en) | Program creation support device | |
| JP2004178011A (en) | Document conversion device and document conversion method |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| PA0109 | Patent application |
Patent event code: PA01091R01D Comment text: Patent Application Patent event date: 20010831 |
|
| PG1501 | Laying open of application | ||
| A201 | Request for examination | ||
| PA0201 | Request for examination |
Patent event code: PA02012R01D Patent event date: 20060831 Comment text: Request for Examination of Application Patent event code: PA02011R01I Patent event date: 20010831 Comment text: Patent Application |
|
| E902 | Notification of reason for refusal | ||
| PE0902 | Notice of grounds for rejection |
Comment text: Notification of reason for refusal Patent event date: 20071113 Patent event code: PE09021S01D |
|
| E601 | Decision to refuse application | ||
| PE0601 | Decision on rejection of patent |
Patent event date: 20080226 Comment text: Decision to Refuse Application Patent event code: PE06012S01D Patent event date: 20071113 Comment text: Notification of reason for refusal Patent event code: PE06011S01I |