KR101317009B1 - Improved compiling method and apparatus - Google Patents

Improved compiling method and apparatus Download PDF

Info

Publication number
KR101317009B1
KR101317009B1 KR1020050015996A KR20050015996A KR101317009B1 KR 101317009 B1 KR101317009 B1 KR 101317009B1 KR 1020050015996 A KR1020050015996 A KR 1020050015996A KR 20050015996 A KR20050015996 A KR 20050015996A KR 101317009 B1 KR101317009 B1 KR 101317009B1
Authority
KR
South Korea
Prior art keywords
compilation
directory
directories
files
source files
Prior art date
Application number
KR1020050015996A
Other languages
Korean (ko)
Other versions
KR20060095091A (en
Inventor
문준규
Original Assignee
삼성전자주식회사
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by 삼성전자주식회사 filed Critical 삼성전자주식회사
Priority to KR1020050015996A priority Critical patent/KR101317009B1/en
Publication of KR20060095091A publication Critical patent/KR20060095091A/en
Application granted granted Critical
Publication of KR101317009B1 publication Critical patent/KR101317009B1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • G06F8/44Encoding
    • G06F8/443Optimisation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/14Details of searching files based on file metadata
    • G06F16/148File search processing

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Library & Information Science (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Devices For Executing Special Programs (AREA)

Abstract

본 발명은 다수의 서로 다른 디렉토리에 존재하는, 다수의 소스 파일의 컴파일에 필요한 컴파일 참조 파일을 하나의 디렉토리에 저장하여, 소스 파일 컴파일시 하나의 디렉토리만을 참조하여 컴파일을 수행함으로서, 전체 컴파일 속도를 향상시킬 수 있다. The present invention stores the compilation reference files required for compiling a plurality of source files in a plurality of different directories in one directory, and performs compilation by referring to only one directory when compiling the source file, thereby improving the overall compilation speed. Can be improved.

컴파일, 소스 파일, 패스트 헤더 디렉토리 Compilation, source files, fast header directory

Description

개선된 컴파일 방법 및 장치{IMPROVED COMPILING METHOD AND APPARATUS} Improved compilation method and device {IMPROVED COMPILING METHOD AND APPARATUS}

도1은 종래의 컴파일 과정을 나타낸 도면,1 is a view showing a conventional compilation process;

도2는 본 발명의 일 실시예에 따른 컴파일 장치의 구성을 나타낸 도면, 2 is a view showing the configuration of a compilation device according to an embodiment of the present invention;

도3은 본 발명의 일 실시예에 따른 컴파일 과정을 나타낸 도면, 3 is a diagram illustrating a compilation process according to an embodiment of the present invention;

도4는 본 발명의 일 실시예에 따른 컴파일 장치의 동작 흐름도. 4 is an operation flowchart of a compilation device according to an embodiment of the present invention;

본 발명은 프로그램의 컴파일 방식에 관한 것으로, 특히, 향상된 속도를 가지는 컴파일 방법 및 장치에 관한 것이다. The present invention relates to a compilation method of a program, and more particularly, to a compilation method and apparatus having an improved speed.

일반적으로 프로그램이 실행되기 위해서는 상기 프로그램과 관련된 다수의 소스파일에 대한 일련의 컴파일 과정이 필요하다. 컴파일은 고수준의 언어로 작성된 프로그램의 모든 원시 부호를 프로그램의 실행 전에 목적 부호로 변환해주는 것으로, 프로그램이 최적의 상태에서 최적의 속도를 가지고 실행되도록 변환해 주는 것이다.In general, in order for a program to be executed, a series of compilation processes for a plurality of source files associated with the program are required. Compilation is the conversion of all source codes of a program written in a high-level language to the target code before the program is executed, which translates the program so that it runs at optimal speed and at optimal speed.

컴파일 과정은 다음과 같다. 먼저 임의의 프로그램에 대한 실행 요구가 있으면, 관련 소스 파일을 검색한다. 소스파일은 프로그램들이 구비한 기능이 증가하면 그 수가 증가함에 따라 모듈별로 각각의 디렉토리를 가지고 구분한다. 그리고 각 소스 파일 컴파일에 필요한 데이터가 저장된 디렉토리에 대한 경로를 안내하는 인크루드 패스(Include path)를 참조하여, 해당 디렉토리를 검색하여 검색된 각 소스 파일을 컴파일한다. 이러한 컴파일 과정을 도1에 도시하였다. 도1은 종래의 컴파일 과정을 나타낸 도면이다. 도1에 도시된바와 같이, 임의의 프로그램과 관련된 첫 번째 소스 파일(101)부터 n 번째 소스 파일(105)의 컴파일을 위해서, 컴파일러는 각 소스 파일의 컴파일을 수행할 때 마다 다수개의 디렉토리(107)를 참조한다. The compilation process is as follows: First, if there is an execution request for any program, it retrieves the relevant source file. Source files are divided into separate directories for each module as the number of programs increases. In addition, referring to an include path that guides a path to a directory in which data necessary for compiling each source file is stored, the corresponding directory is searched to compile each retrieved source file. This compilation process is shown in FIG. 1 is a view showing a conventional compilation process. As shown in Fig. 1, in order to compile the first source file 101 to the nth source file 105 associated with an arbitrary program, the compiler generates a plurality of directories 107 for each compilation of each source file. ).

상기한 바와 같이 종래의 컴파일은 각 소스 파일을 컴파일 할 때 마다, 관련된 데이터가 저장된 모든 디렉토리를 참조해야한다. 그런데, 이러한 방식은 프로그램의 기능이 증가함에 따라 전체 컴파일 속도를 떨어뜨리는 문제점을 발생한다. 즉, 프로그램의 기능이 증가함에 따라 프로그램과 관련된 소스파일의 수도 증가하고, 상기한 과정에 따라 컴파일하는 컴파일러는 소스 파일이 증가함에 따라 각각의 소스 파일을 컴파일 하는데 기존에 비해 더 많은 디렉토리를 참조하게를 참조하게 된다. 이에 따라, 전체적인 컴파일 속도가 매우 느려진다. As mentioned above, a conventional compilation should refer to every directory where relevant data is stored each time a source file is compiled. However, this method causes a problem of slowing down the overall compilation speed as the function of the program increases. That is, as the function of the program increases, the number of source files related to the program increases, and the compiler that compiles according to the above process compiles each source file as the source files increase. Will be referenced. As a result, the overall compilation speed becomes very slow.

본 발명은, 상기한 문제점을 해결하기 위한 것으로, 향상된 속도를 가지는 컴파일 방법을 제공하는데 그 목적이 있다.The present invention has been made to solve the above problems, and an object thereof is to provide a compilation method having an improved speed.

그리고 본 발명은 효율적으로 개선된 컴파일 방법을 제공하는데 그 목적이 있다. Another object of the present invention is to provide an improved compilation method.

상기의 목적을 달성하기 위한 본 발명은 수행명령을 받은 임의의 프로그램과 관련된 다수의 소스 파일을 검색하는 과정과, 상기 다수의 소스 파일 컴파일시 참조할 컴파일 참조 파일이 존재하는 다수개의 디렉토리를 검색하는 과정과, 상기 검색된 다수의 디렉토리에 대응하여 저장된 다수의 컴파일 참조 파일을 하나의 디렉토리에 저장하는 과정과, 상기 다수의 소스 파일을 상기 하나의 디렉토리를 참조하여 컴파일하는 과정을 구비함을 특징으로 한다.In order to achieve the above object, the present invention provides a method of searching a plurality of source files associated with an arbitrary program that has received an execution command, and searching a plurality of directories in which a compilation reference file exists for reference when compiling the plurality of source files. And storing a plurality of compiled reference files stored in correspondence with the searched plurality of directories in one directory, and compiling the plurality of source files with reference to the one directory. .

그리고 본 발명은 입력되는 명령에 따라 임의의 프로그램을 수행에 따른 동작 과정을 제어하고, 상기 프로그램 수행시 필요한 컴파일 과정을 제어하는 제어부와, 상기 제어부의 제어하에, 상기 임의의 프로그램 수행에 따른 컴파일 요구 발생시, 상기 임의의 프로그램과 관련된 다수의 소스 파일을 검색하고, 상기 다수의 소스 파일 컴파일시 참조할 컴파일 참조 파일이 존재하는 다수의 참조 디렉토리를 검색하여 상기 컴파일 참조 파일을 검출하여 임의의 디렉토리에 저장하고, 상기 다수의 소스 파일을 상기 임의의 디렉토리를 참조하여 컴파일하는 컴파일러와, 상기 임의의 프로그램 데이터와, 상기 다수의 소스 파일과, 상기 다수의 참조 디렉토리와, 상기 임의의 디렉토리를 저장하는 메모리를 구비함을 특징으로 한다.According to the present invention, a control unit controls an operation process according to execution of an arbitrary program according to an input command, and controls a compilation process required for executing the program, and under the control of the control unit, a compilation request according to the execution of the arbitrary program. When generated, a plurality of source files related to the arbitrary program are searched, a plurality of reference directories in which a compiled reference file exists to be referenced when compiling the plurality of source files is searched, and the compiled reference file is detected and stored in an arbitrary directory. And a compiler for compiling the plurality of source files with reference to the arbitrary directory, a memory for storing the arbitrary program data, the plurality of source files, the plurality of reference directories, and the arbitrary directory. Characterized in having.

이하, 첨부된 도면을 참조하여 본 발명에 따른 바람직한 일실시예를 상세히 설명한다. 도면에서 동일한 구성요소들에 대해서는 비록 다른 도면에 표시되더라도 가능한 한 동일한 참조번호 및 부호로 나타내고 있음에 유의해야 한다. 또한, 본 발명을 설명함에 있어서, 관련된 공지기능 혹은 구성에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우 그 상세한 설명은 생략한다.Hereinafter, exemplary embodiments of the present invention will be described in detail with reference to the accompanying drawings. It is to be noted that the same components in the drawings are denoted by the same reference numerals and symbols as possible even if they are shown in different drawings. In the following description of the present invention, a detailed description of known functions and configurations incorporated herein will be omitted when it may make the subject matter of the present invention rather unclear.

먼저, 도2를 참조하여 본 발명의 일 실시예에 따른 컴파일 장치의 구성을 설명한다. 도2는 본 발명의 일 실시예에 따른 컴파일 장치의 구성을 나타낸 도면이다. 도2를 참조하여 컴파일 장치는 제어부(10)와, 컴파일러(20)와 메모리부(30)를 포함하여 구성된다. First, a configuration of a compilation device according to an embodiment of the present invention will be described with reference to FIG. 2. 2 is a view showing the configuration of a compilation device according to an embodiment of the present invention. Referring to FIG. 2, the compilation device includes a control unit 10, a compiler 20, and a memory unit 30.

상기 제어부(10)는 컴파일 장치의 전반적인 동작과 관련된 제어를 담당하며, 임의의 프로그램 실행 명령에 따라 상기 컴파일러(20)를 제어하여 상기 임의의 프로그램의 컴파일을 수행하여, 상기 임의의 프로그램을 실행한다.The controller 10 is responsible for the control related to the overall operation of the compilation device, and controls the compiler 20 according to an arbitrary program execution command to compile the arbitrary program to execute the arbitrary program. .

상기 메모리(30)는 상기 제어부(10)의 처리 및 제어를 위한 프로그램, 참조 데이터, 갱신 가능한 각종 보관용 데이터, 다수의 프로그램 데이터 등을 저장하며, 제어부(10)의 워킹 메모리(working memory)로 제공된다. 그리고 본 발명의 일 실시예에 따라 패스트 헤더 디렉토리 저장영역(31)과, 참조 디렉토리 저장영역(33)과, 소스 파일 저장 영역(35)을 포함하여 이루어진다. The memory 30 stores a program for processing and control of the controller 10, reference data, various kinds of updatable storage data, a plurality of program data, and the like, and a working memory of the controller 10. Is provided. And a fast header directory storage area 31, a reference directory storage area 33, and a source file storage area 35 according to an embodiment of the present invention.

상기 참조 디렉토리 저장영역(33)은 컴파일에 필요한 컴파일 참조 파일이 저장된 다수의 디렉토리를 저장하는 저장 영역이다. The reference directory storage area 33 is a storage area for storing a plurality of directories in which compilation reference files required for compilation are stored.

상기 소스 파일 저장영역(30)은 각종 프로그램과 관련되는 다수의 소스 파일 이 저장되는 영역이다. The source file storage area 30 is an area in which a plurality of source files associated with various programs are stored.

상기 패스트 헤더 디렉토리 저장영역(31)은 본 발명에 따라 생성되는 패스트 헤더 데이터가 저장되는 디렉토리의 저장 영역(33)이다. 상기 패스트 헤더 데이터란 본 발명에 따라 임의의 소스 파일의 컴파일시 생성되며, 상기 소스 파일의 컴파일에 필요한 컴파일 참조 파일로 이루어지는 데이터로서, 각 소스 파일 컴파일시 참조된다. The fast header directory storage area 31 is a storage area 33 of a directory in which fast header data generated according to the present invention is stored. The fast header data is generated when compiling an arbitrary source file according to the present invention, and is data consisting of a compilation reference file required for compiling the source file, and is referred to when compiling each source file.

상기 컴파일러(20)는 상기 제어부(10)의 제어하에 동작하며, 본 발명의 일 실시예에 따라, makefile부(21)와 패스트 헤더 유틸리티(23)를 포함하여 이루어진다. The compiler 20 operates under the control of the control unit 10, and includes a makefile unit 21 and a fast header utility 23 according to an embodiment of the present invention.

상기 makefile부(21)는 컴파일과 관련된 일반적인 컴파일 기능을 수행하며, 소스 파일과 관련된 각 컴파일 참조 파일의 저장 경로를 구비한다. The makefile unit 21 performs a general compilation function related to compilation and includes a storage path of each compilation reference file related to a source file.

상기 패스트 헤더 유틸리티(23)는 본 발명에 따라 생성된 상기 패스트 헤더 데이터를 상기 패스트 헤더 디렉토리 저장영역(31)에 저장한다. The fast header utility 23 stores the fast header data generated in accordance with the present invention in the fast header directory storage area 31.

상기한 구성으로 이루어진 컴파일러 장치의 대략적인 컴파일 과정을 도3에 도시하였다. 도3은 본 발명의 일 실시예에 따른 컴파일 과정을 나타낸 도면이다. 도3을 참조하여, 컴파일 장치는 n 개의 소스 파일을 컴파일 하기 위해 200단계에서 패스트 헤더 디렉토리를 생성한다. 상기 패스트 헤더 디렉토리의 생성은 210단계와 220단계의 동작을 수행에 따라 이루어진다. 컴파일장치는 210단계에서 다수개의 참조 디렉토리를 검색하고, 220단계에서 검색된 다수개의 참조 디렉토리를 한 개의 패스트 헤더 디렉토리로 취합하여, 패스트 헤더 디렉토리를 생성한다. 이후, 컴파 일러 장치는 첫 번째 소스 파일(101)부터 n 개의 소스 파일(105)까지 패스트 헤더 디렉토리(230)를 참조하여 컴파일을 수행한다.  3 shows an approximate compilation process of the compiler device having the above-described configuration. 3 illustrates a compilation process according to an embodiment of the present invention. Referring to FIG. 3, the compilation device generates a fast header directory in step 200 to compile n source files. The creation of the fast header directory is performed by performing operations 210 and 220. The compilation apparatus searches for a plurality of reference directories in step 210, and collects the plurality of reference directories found in step 220 into one fast header directory to generate a fast header directory. The compiler apparatus then compiles with reference to the fast header directory 230 from the first source file 101 to the n source files 105.

이러한 과정의 컴파일에 따른 각 구성 요소의 동작 과정은 다음과 같다. 먼저 제어부(10)는 임의의 프로그램 실행 명령이 있으면, 상기 컴파일러(20)를 제어하여 상기 임의의 프로그램과 관련된 컴파일을 수행한다. 컴파일러(20)는 제어부(10)의 제어하에, 임의의 프로그램 실행에 필요한 다수개의 소스 파일을 상기 소스 파일 저장 영역(35)에서 검색한다. 그리고 makefile부(21)에 구비된 인크루드 패스를 참조하여 컴파일시 필요한 컴파일 참조 파일이 저장된 디렉토리의 경로 정보를 검색하여 참조 디렉토리 목록을 검출한다. 그리고 컴파일러(20)는 참조 디렉토리 저장영역(33)에 저장된 다수개의 디렉토리 중 상기 참조 디렉토리 목록에 포함되는 디렉토리를 검색하여 필요한 컴파일 참조 파일들을 검출한다. 컴파일러(20)는 검출한 컴파일 참조 파일을 패스트 헤더 데이터로 생성하여 상기 패스트 헤더 유틸리티(23)를 이용해 상기 패스트 헤더 디렉토리 저장 영역(31)의 패스트 헤더 디렉토리에 저장한다. 그리고, 컴파일러(20)는 다수개의 소스 파일을 상기 패스트 해더 디렉토리를 참조하여 각각 컴파일 한다. The operation process of each component according to the compilation of these processes is as follows. First, if there is an arbitrary program execution command, the controller 10 controls the compiler 20 to perform compilation related to the arbitrary program. Under the control of the control unit 10, the compiler 20 searches the source file storage area 35 for a plurality of source files necessary for executing any program. The list of reference directories is detected by searching path information of a directory in which a compile reference file necessary for compilation is stored by referring to an include path included in the makefile unit 21. The compiler 20 searches a directory included in the reference directory list among the plurality of directories stored in the reference directory storage 33 to detect necessary compilation reference files. The compiler 20 generates the detected compiled reference file as fast header data and stores the compiled reference file in the fast header directory of the fast header directory storage area 31 by using the fast header utility 23. The compiler 20 compiles a plurality of source files with reference to the fast header directory.

상기한 과정에 따라 동작하는 컴파일 장치의 제어부(10)의 컴파일 동작 과정을 도4에 도시하였다. 도4는 본 발명의 일 실시예에 따른 컴파일 장치의 동작 흐름도이다. 도4를 참조하여, 제어부(10)는 301단계에서 임의의 프로그램 실행 명령이 있으면 303단계로 진행한다. 303단계에서 제어부(10)는 상기 임의의 프로그램과 관련되는 다수의 소스 파일에 대한 컴파일 요구 발생을 감지하고 305단계로 진행한 다. 305단계에서 제어부(10)는 makefile의 인크루드 패스를 참조하여 필요한 참조 디렉토리 목록을 검출하고 307단계로 진행한다. 307단계에서 제어부(10)는 검출된 참조 디렉토리 목록에 포함되는 디렉토리에서 컴파일 참조 파일을 검출하고 309단계로 진행한다. 309단계에서 제어부(10)는 검출된 컴파일 참조 파일을 패스트 헤더 데이터로 생성하고 311단계로 진행한다. 311단계에서 제어부(10)는 생성된 패스트 헤더 데이터를 패스트 헤더 디렉토리에 저장하고 313단계로 진행한다. 313단계에서 제어부(10)는 패스트 헤더 디렉토리를 참조하여 컴파일이 요구된 각 소스 파일을 컴파일 하고 컴파일 동작과정을 종료한다. 4 illustrates a compilation operation of the control unit 10 of the compilation device operating according to the above process. 4 is an operation flowchart of a compilation device according to an embodiment of the present invention. Referring to FIG. 4, if there is a program execution command in step 301, the controller 10 proceeds to step 303. In step 303, the controller 10 detects occurrence of compilation requests for a plurality of source files related to the arbitrary program, and proceeds to step 305. In step 305, the controller 10 refers to the include path of the makefile to detect a list of necessary reference directories and proceeds to step 307. In step 307, the controller 10 detects a compiled reference file from a directory included in the detected reference directory list, and proceeds to step 309. In step 309, the controller 10 generates the detected compiled reference file as fast header data, and proceeds to step 311. The controller 10 stores the generated fast header data in the fast header directory in step 311, and proceeds to step 313. In step 313, the control unit 10 compiles each source file that is required to be compiled with reference to the fast header directory and ends the compilation operation.

상기와 같이 본 발명은 다수의 서로 다른 디렉토리에 존재하는 다수의 소스 파일의 컴파일에 필요한 컴파일 참조 파일을 하나의 디렉토리에 저장하여, 소스 파일 컴파일시 하나의 디렉토리만을 참조하여 컴파일을 수행함으로서, 전체 컴파일 속도를 향상시킬 수 있다. 이는 종래에 소스 파일을 컴파일 할 때 마다 관련된 모든 디렉토리를 검색하는 과정을 생략할 수 있기 때문이다.As described above, the present invention stores a compilation reference file required for compiling a plurality of source files existing in a plurality of different directories in a single directory, and compiles the entire file by referring to only one directory when compiling the source file. Can improve speed. This is because the process of searching all relevant directories every time when compiling a source file can be omitted.

본 발명은 소스 파일의 개수나 컴파일시 참조하는 컴파일 참조 파일이 존재하는 디렉토리의 수가 많아질수록 더 큰 효과를 발생시킬 수 있다. 예를 들어, 컴파일 해야할 소스 파일의 개수가 2300개이고, 참조 디렉토리의 수가 200개인 경우, 종래의 방식에 따라 컴파일을 수행할 때보다 약 250% 정도 처리 속도가 향상된다. 상기와 같은 조건에서 디버그 옵션을 적용시키지 않았을 때 종래의 방식에 따라 컴파일을 수행하면 한 시간 삼십분 정도의 시간이 소요되는 것에 비하여, 본 발명에 따라 컴파일을 수행하면 삼십오분 정도의 시간이 소요된다. 그리고 디버그 옵션을 적용시키고 때 종래의 방식에 따라 컴파일을 수행하면 두 시간 삼십 분 정도의 시간이 소요되었던것에 비하여, 본 발명에 따라 컴파일을 수행하면 한 시간 십 분정도의 시간이 소요된다. According to the present invention, the larger the number of source files or the number of directories in which a compile reference file referred to when compiling is present, the greater the effect can be. For example, when the number of source files to be compiled is 2300 and the number of reference directories is 200, the processing speed is improved by about 250% compared to when compiling according to the conventional method. When the debug option is not applied under the above conditions, the compilation takes about one hour and thirty minutes when the compilation is performed according to the conventional method. The compilation takes about thirty five minutes when the compilation is performed according to the present invention. In addition, when the debug option is applied and the compilation is performed according to the conventional method, it takes about two hours and thirty minutes, whereas the compilation takes about one hour and ten minutes.

이와 같이 본 발명에 따라 컴파일을 수행하면 컴파일 소요 시간이 감소된다. As described above, when the compilation is performed according to the present invention, the compilation time is reduced.

상술한 본 발명의 설명에서는 구체적인 실시 예에 관해 설명하였으나, 여러 가지 변형이 본 발명의 범위에서 벗어나지 않고 실시할 수 있다. 따라서 본 발명의 범위는 설명된 실시 예에 의하여 정할 것이 아니고 특허청구범위와 특허청구범위의 균등한 것에 의해 정해 져야 한다. While the present invention has been described in connection with what is presently considered to be practical exemplary embodiments, it is to be understood that the invention is not limited to the disclosed embodiments. Therefore, the scope of the present invention should not be defined by the described embodiments, but should be determined by the equivalent of claims and claims.

상술한 바와 같이 본 발명은 다수의 서로 다른 디렉토리에 존재하는, 다수의 소스 파일의 컴파일에 필요한 컴파일 참조 파일을 하나의 디렉토리에 저장하여, 소스 파일 컴파일시 하나의 디렉토리만을 참조하여 컴파일을 수행함으로서, 전체 컴파일 속도를 향상시킬 수 있다. As described above, the present invention stores a compilation reference file required for compiling a plurality of source files in a plurality of different directories in one directory, and performs compilation by referring to only one directory when compiling the source file. This can speed up the overall compilation.

Claims (4)

컴파일 장치의 컴파일 방법에 있어서, In the compilation method of the compilation device, 수행명령을 받은 임의의 프로그램과 관련된 다수의 소스 파일을 검색하는 과정과, Retrieving a plurality of source files associated with any program that receives a command to run, 전체 디렉토리 중, 상기 관련된 다수의 소스 파일 컴파일시 참조할 컴파일 참조 파일이 존재하는 복수의 디렉토리를 검색하는 과정과, Retrieving a plurality of directories in which all of the related directories exist, a compilation reference file to be referred to when compiling the related plurality of source files; 상기 검색된 복수의 디렉토리에 대응하여 저장된 복수의 컴파일 참조 파일을 하나의 디렉토리에 저장하는 과정과, Storing a plurality of compiled reference files stored in correspondence with the searched plurality of directories in one directory; 상기 관련된 다수의 소스 파일을 상기 하나의 디렉토리를 참조하여 컴파일하는 과정을 구비함을 특징으로 하는 컴파일 방법. And compiling the related plurality of source files with reference to the one directory. 컴파일 장치의 컴파일 방법에 있어서, In the compilation method of the compilation device, 수행명령을 받은 임의의 프로그램과 관련된 다수의 소스 파일을 검색하는 과정과, Retrieving a plurality of source files associated with any program that receives a command to run, 미리 저장된 makefile의 인크루드 패스 정보를 참조하여, 전체 디렉토리 중, 상기 다수의 소스 파일 컴파일시 참조할 컴파일 참조 파일이 존재하는 복수의 디렉토리를 검색하는 과정과, Searching for a plurality of directories in which there are compilation reference files to be referred to when compiling the plurality of source files among all directories, by referring to the include path information of the prestored makefile, 상기 검색된 복수의 디렉토리에 대응하여 저장된 복수의 컴파일 참조 파일을 검출하는 과정과, Detecting a plurality of compiled reference files stored corresponding to the searched plurality of directories; 상기 검출된 복수의 컴파일 참조 파일을 패스트헤더 데이터로 생성하는 과정과, Generating the detected plurality of compiled reference files as fast header data; 상기 패스트 헤더 데이터를 특정 디렉토리에 저장하는 과정과, Storing the fast header data in a specific directory; 상기 다수의 소스 파일을 상기 특정 디렉토리를 참조하여 컴파일하는 과정을 구비함을 특징으로 하는 컴파일 방법. And compiling the plurality of source files with reference to the specific directory. 컴파일 장치에 있어서, In the compilation device, 입력되는 명령에 따라 임의의 프로그램을 수행에 따른 동작 과정을 제어하고, 상기 프로그램 수행시 필요한 컴파일 과정을 제어하는 제어부와, A control unit for controlling an operation process according to executing an arbitrary program according to an input command and controlling a compilation process required for executing the program; 상기 제어부의 제어하에, 상기 임의의 프로그램 수행에 따른 컴파일 요구 발생시, 상기 임의의 프로그램과 관련된 다수의 소스 파일을 검색하고, 전체 디렉토리 중, 상기 관련된 다수의 소스 파일 컴파일시 참조할 컴파일 참조 파일이 존재하는 복수의 참조 디렉토리를 검색하고, 상기 검출된 복수의 참조 디렉토리에 대응하여 저장된 복수의 컴파일 참조 파일을 검출하여 임의의 디렉토리에 저장하고, 상기 관련된 다수의 소스 파일을 상기 임의의 디렉토리를 참조하여 컴파일하는 컴파일러와, Under the control of the controller, when a compilation request is generated according to the execution of the arbitrary program, a plurality of source files related to the arbitrary program are searched, and among the entire directories, there are compilation reference files to be referred to when compiling the related plurality of source files. Search a plurality of reference directories, detect a plurality of compiled reference files stored corresponding to the detected plurality of reference directories, store them in an arbitrary directory, and compile the related plurality of source files with reference to the arbitrary directory. With the compiler, 상기 임의의 프로그램 데이터와, 상기 다수의 소스 파일과, 상기 전체 디렉토리와, 상기 임의의 디렉토리를 저장하는 메모리를 구비함을 특징으로 하는 컴파일 장치. And a memory for storing the arbitrary program data, the plurality of source files, the entire directory, and the arbitrary directory. 제3항에 있어서, 상기 컴파일러는 미리 저장된 makefile의 인크루드 패스 정보를 참조하여 상기 복수의 참조 디렉토리를 검색함을 특징으로 하는 컴파일 장치.The compilation device of claim 3, wherein the compiler searches the plurality of reference directories by referring to include path information of a prestored makefile.
KR1020050015996A 2005-02-25 2005-02-25 Improved compiling method and apparatus KR101317009B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020050015996A KR101317009B1 (en) 2005-02-25 2005-02-25 Improved compiling method and apparatus

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020050015996A KR101317009B1 (en) 2005-02-25 2005-02-25 Improved compiling method and apparatus

Publications (2)

Publication Number Publication Date
KR20060095091A KR20060095091A (en) 2006-08-30
KR101317009B1 true KR101317009B1 (en) 2013-10-11

Family

ID=37602661

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020050015996A KR101317009B1 (en) 2005-02-25 2005-02-25 Improved compiling method and apparatus

Country Status (1)

Country Link
KR (1) KR101317009B1 (en)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101522881B1 (en) * 2008-06-12 2015-05-26 엘지전자 주식회사 System and method for distributed compiling

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030093420A1 (en) 2001-10-02 2003-05-15 Ramme Kay P. Method and system for retrieving sharable information using a hierarchically dependent directory structure
KR20060092728A (en) * 2005-02-18 2006-08-23 엘지전자 주식회사 Method for elevating compile speed through reduction of file searching time in pre-process

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030093420A1 (en) 2001-10-02 2003-05-15 Ramme Kay P. Method and system for retrieving sharable information using a hierarchically dependent directory structure
KR20060092728A (en) * 2005-02-18 2006-08-23 엘지전자 주식회사 Method for elevating compile speed through reduction of file searching time in pre-process

Also Published As

Publication number Publication date
KR20060095091A (en) 2006-08-30

Similar Documents

Publication Publication Date Title
US9274771B1 (en) Automated adaptive compiler optimization
CA2672337C (en) Compiler instrumentation infrastructure to facilitate multiple pass and multiple purpose dynamic analysis
US8522220B2 (en) Post-pass binary adaptation for software-based speculative precomputation
US5966539A (en) Link time optimization with translation to intermediate program and following optimization techniques including program analysis code motion live variable set generation order analysis, dead code elimination and load invariant analysis
US7725883B1 (en) Program interpreter
US5606697A (en) Compiler system for language processing program
US9672133B2 (en) Systems and methods for debugging applications using dual code generation
US6253373B1 (en) Tracking loop entry and exit points in a compiler
US7725885B1 (en) Method and apparatus for trace based adaptive run time compiler
US7698697B2 (en) Transforming code to expose glacial constants to a compiler
JP2013504124A (en) A lightweight service-based dynamic binary rewriter framework
WO2013165461A1 (en) Recompiling with generic to specific replacement
JP2011198363A (en) Program compiler, apparatus and method for installing program
US20040015918A1 (en) Program optimization method and compiler using the program optimization method
Duesterwald Design and engineering of a dynamic binary optimizer
KR101317009B1 (en) Improved compiling method and apparatus
Sathyanathan et al. Incremental whole program optimization and compilation
KR100597414B1 (en) Data processing device and register allocation method using data processing device
JP2003177924A (en) Device and method for program conversion, and program realizing program conversion device
US7774767B2 (en) System and method for compiler interprocedural optimization having support for object files in libraries
KR100763199B1 (en) Method for calling a method in virtual machine environment and system including a virtual machine processing the method
WO2001013223A1 (en) Method and apparatus for operating virtual computer
US10140135B2 (en) Method for executing a computer program with a parameterised function
WO2002065284A1 (en) An optimized dynamic bytecode interpreter
KR100216533B1 (en) The event history recording method for the deterministic replay of concurrent chill program

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
AMND Amendment
E601 Decision to refuse application
J201 Request for trial against refusal decision
AMND Amendment
B601 Maintenance of original decision after re-examination before a trial
J301 Trial decision

Free format text: TRIAL DECISION FOR APPEAL AGAINST DECISION TO DECLINE REFUSAL REQUESTED 20120305

Effective date: 20130731

S901 Examination by remand of revocation
GRNO Decision to grant (after opposition)
GRNT Written decision to grant
LAPS Lapse due to unpaid annual fee