KR101349628B1 - Method For Transforming Intermediate Language by Using Operator, System And Computer-Readable Recording Medium with Program Therefor - Google Patents

Method For Transforming Intermediate Language by Using Operator, System And Computer-Readable Recording Medium with Program Therefor Download PDF

Info

Publication number
KR101349628B1
KR101349628B1 KR1020110130292A KR20110130292A KR101349628B1 KR 101349628 B1 KR101349628 B1 KR 101349628B1 KR 1020110130292 A KR1020110130292 A KR 1020110130292A KR 20110130292 A KR20110130292 A KR 20110130292A KR 101349628 B1 KR101349628 B1 KR 101349628B1
Authority
KR
South Korea
Prior art keywords
intermediate language
platform
language code
independent
executable file
Prior art date
Application number
KR1020110130292A
Other languages
Korean (ko)
Other versions
KR20130063758A (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 KR1020110130292A priority Critical patent/KR101349628B1/en
Publication of KR20130063758A publication Critical patent/KR20130063758A/en
Application granted granted Critical
Publication of KR101349628B1 publication Critical patent/KR101349628B1/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/447Target code generation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • G06F8/42Syntactic analysis
    • G06F8/423Preprocessors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • G06F8/43Checking; Contextual analysis

Abstract

연산자를 이용한 중간 언어 변환 방법과 그를 위한 시스템 및 컴퓨터로 읽을 수 있는 기록매체를 개시한다.
C 언어(C-Language) 기반의 소스(Source) 파일을 생성하는 소스 파일 생성 과정; 상기 소스 파일을 중간 언어 코드로 변환하고, 상기 중간 언어 코드를 플랫폼(Platform)에 따라 컴파일(Compile)할 때 특정 지시자가 특정 연산자를 경유하도록 하는 컴파일 과정; 상기 컴파일된 상기 중간 언어 코드에 대한 실행 파일을 생성하는 실행 파일 생성 과정; 및 상기 실행 파일이 상기 플랫폼에서 구동되도록 하는 실행 파일 구동 과정을 포함하는 것을 특징으로 하는 연산자를 이용한 중간 언어 변환 방법을 제공한다.
본 실시예에 의하면, 다양한 정보기기의 사용으로 인해 다양한 플랫폼이 이용됨에 따라 특정 플랫폼에 의존적이지 않은 독립적인 중간 언어 코드로 변환한 후 각각의 플랫폼에 해당하는 종속적인 중간 언어 코드로 변환되도록 하는 데 이때, C 언어 기반의 특정 지시자가 독립적인 중간 언어 코드 상에 특정 연산자로 표현되도록 하며, 특정 연산자가 종속적인 중간 언어 코드 상에 상수로 표현되도록 하는 효과가 있다.
Disclosed are an intermediate language conversion method using an operator, a system for the same, and a computer-readable recording medium.
A source file generation process of generating a C-Language-based source file; A compilation step of converting the source file into an intermediate language code and causing a specific indicator to pass through a specific operator when compiling the intermediate language code according to a platform; An executable file generation step of generating an executable file for the compiled intermediate language code; And an executable file driving process for allowing the executable file to be driven on the platform.
According to the present embodiment, as the various platforms are used due to the use of various information devices, they are converted into independent intermediate language codes that are not dependent on a specific platform, and then converted into independent intermediate language codes corresponding to the respective platforms. In this case, the C language-based specific indicator is expressed as a specific operator on the independent intermediate language code, and the specific operator is expressed as a constant on the dependent intermediate language code.

Description

연산자를 이용한 중간 언어 변환 방법과 그를 위한 시스템 및 컴퓨터로 읽을 수 있는 기록매체{Method For Transforming Intermediate Language by Using Operator, System And Computer-Readable Recording Medium with Program Therefor}Method for Transforming Intermediate Language by Using Operator, System And Computer-Readable Recording Medium with Program Therefor}

본 실시예는 연산자를 이용한 중간 언어 변환 방법과 그를 위한 시스템 및 컴퓨터로 읽을 수 있는 기록매체에 관한 것이다. 더욱 상세하게는, 다양한 정보기기의 사용으로 인해 다양한 플랫폼이 이용됨에 따라 특정 플랫폼에 의존적이지 않은 독립적인 중간 언어 코드로 변환한 후 각각의 플랫폼에 해당하는 종속적인 중간 언어 코드로 변환되도록 하는 데 이때, C 언어 기반의 특정 지시자가 독립적인 중간 언어 코드 상에 특정 연산자로 표현되도록 하며, 특정 연산자가 종속적인 중간 언어 코드 상에 상수로 표현되도록 하는 연산자를 이용한 중간 언어 변환 방법과 그를 위한 시스템 및 컴퓨터로 읽을 수 있는 기록매체에 관한 것이다.The present embodiment relates to an intermediate language conversion method using an operator, a system therefor, and a computer-readable recording medium. More specifically, as various platforms are used due to the use of various information devices, they are converted into independent intermediate language codes that are not dependent on a specific platform, and then converted into dependent intermediate language codes corresponding to each platform. , A method for converting intermediate languages using operators that allow specific C language-based indicators to be represented as independent operators on independent intermediate language codes, and specific operators to be represented as constants on dependent intermediate language codes, and systems and computers therefor. The present invention relates to a recording medium which can be read by.

이 부분에 기술된 내용은 단순히 본 실시예에 대한 배경 정보를 제공할 뿐 종래기술을 구성하는 것은 아니다.The contents described in this section merely provide background information on the present embodiment and do not constitute the prior art.

프로그램은 프로그래밍 언어로 기입된다. 프로그래밍 언어는 컴퓨터에 의해 처리 및 실행될 수 있는 명령의 시퀀스를 정의하는데 사용될 수 있는 임의의 인공 언어이다. 그러나, 프로그래밍 언어는 프로그래밍 언어를 사용하여 표현된 소스 코드로부터 컴퓨터 또는 데이터-처리 시스템이 작업하는데 필요한 기계 코드로의, 컴파일러와 같은 또 다른 프로그램에 의한 번역(Translate) 절차를 필요로 하는 것으로 의미한다.The program is written in a programming language. A programming language is any artificial language that can be used to define a sequence of instructions that can be processed and executed by a computer. However, a programming language is meant to require a translation procedure by another program, such as a compiler, from the source code expressed using a programming language to the machine code necessary for the computer or data-processing system to work .

이러한, 프로그래밍 언어는 전형적으로 3가지의 서로 다른 개념의 부류: 저-레벨 언어, 고-레벨 언어, 또는 중간-레벨 언어 중 하나에 속하는 것으로서 간주된다. 일반적인 저-레벨 프로그래밍 언어의 예로는 어셈블리 언어가 있으며, 고-레벨 프로그래밍 언어는 코볼(COBOL), 포트란(FORTRAN), 파스칼(Pascal)이 있으며, 중간 레벨 프로그래밍 언어로는 C 언어 및 C++ 언어가 있다.Such programming languages are typically considered to belong to one of three different classes of concepts: low-level languages, high-level languages, or mid-level languages. Examples of common low-level programming languages are assembly language, high-level programming languages include COBOL, FORTRAN, Pascal, and intermediate-level programming languages C and C ++ .

C 언어는 기술된 중간 레벨 특징을 갖는, 고레벨 언어보다 더 기계-독립형인 어셈블리 언어인 것으로 많은 사람이 생각하는 프로그래밍 언어이다. C++ 언어는 기술된 중간 레벨 특징을 또한 포함하는 C 프로그래밍 언어의 객체-지향 버전이다. 여기서, 'C 언어'는 C 언어 및 그의 C++ 언어의 구현 모두를 지칭한다. C 언어는 중간 레벨 프로그래밍 언어와 관련된 가능한 논리적 실수, 특유의 위험, 및 비효율성의 구체적인 예를 보여주는데 이용될 수 있다.C is a programming language that many people think is an assembly language that is more machine-independent than a high-level language, with the described intermediate-level features. The C ++ language is an object-oriented version of the C programming language that also includes the described mid-level features. Here, 'C language' refers to both the C language and its implementation of the C ++ language. The C language can be used to show concrete examples of possible logical mistakes, specific hazards, and inefficiencies associated with an intermediate level programming language.

이러한, 종래의 C 언어 또는 C++ 언어 등의 프로그래밍 언어(Programming Language)로 작성된 애플리케이션(Application)들은, 애플리케이션이 사용될 플랫폼(Platform)에 맞게 중간 언어나 실행파일의 형태로 변환될 수 있는데, 최근들어 다양한 정보기기의 사용에 따른 다양한 플랫폼이 이용됨에 따라 각각의 플랫폼에 따라 특정 플랫폼에 의존적이지 않은 독립적인 중간 언어나 실행파일의 형태로 변환하는 기술이 필요한 실정이다.Applications written in a programming language such as a conventional C language or a C ++ language may be converted into an intermediate language or an executable file according to a platform in which the application is to be used. As various platforms are used according to the use of information devices, technology for converting them into an independent intermediate language or executable file that is not dependent on a specific platform for each platform is needed.

공개특허공보 제10-2009-0089382호Published Patent Application No. 10-2009-0089382

전술한 문제점을 해결하기 위해 본 실시예는, 다양한 정보기기의 사용으로 인해 다양한 플랫폼이 이용됨에 따라 특정 플랫폼에 의존적이지 않은 독립적인 중간 언어 코드로 변환한 후 각각의 플랫폼에 해당하는 종속적인 중간 언어 코드로 변환되도록 하는 연산자를 이용한 중간 언어 변환 방법과 그를 위한 시스템 및 컴퓨터로 읽을 수 있는 기록매체를 제공하는 데 주된 목적이 있다.In order to solve the above-mentioned problems, the present embodiment converts into independent intermediate language codes that are not dependent on a specific platform as various platforms are used due to the use of various information devices, and then the dependent intermediate languages corresponding to each platform. Its main purpose is to provide an intermediate language conversion method using an operator to be converted into code, and a system and a computer-readable recording medium therefor.

전술한 목적을 달성하기 위해 본 실시예의 일 측면에 의하면, C 언어(C-Language) 기반의 소스(Source) 파일을 생성하는 소스 파일 생성 과정; 상기 소스 파일을 중간 언어 코드로 변환하고, 상기 중간 언어 코드를 플랫폼(Platform)에 따라 컴파일(Compile)할 때 특정 지시자가 특정 연산자를 경유하도록 하는 컴파일 과정; 상기 컴파일된 상기 중간 언어 코드에 대한 실행 파일을 생성하는 실행 파일 생성 과정; 및 상기 실행 파일이 상기 플랫폼에서 구동되도록 하는 실행 파일 구동 과정을 포함하는 것을 특징으로 하는 연산자를 이용한 중간 언어 변환 방법을 제공한다.According to an aspect of the present embodiment to achieve the above object, a source file generation process for generating a C-Language based source file; A compilation step of converting the source file into an intermediate language code and causing a specific indicator to pass through a specific operator when compiling the intermediate language code according to a platform; An executable file generation step of generating an executable file for the compiled intermediate language code; And an executable file driving process for allowing the executable file to be driven on the platform.

또한, 본 실시에의 다른 측면에 의하면, C 언어 기반의 소스 파일을 생성하는 소스 파일 생성부; 상기 소스 파일을 중간 언어 코드로 변환하고, 상기 중간 언어 코드를 플랫폼에 따라 컴파일할 때 특정 지시자가 특정 연산자를 경유하도록 하는 컴파일부; 상기 컴파일된 상기 중간 언어 코드에 대한 실행 파일을 생성하는 실행 파일 생성부; 및 상기 실행 파일이 상기 플랫폼에서 구동되도록 하는 실행 파일 구동부를 포함하는 것을 특징으로 하는 중간 언어 변환 장치를 제공한다.In addition, according to another aspect of the present embodiment, a source file generation unit for generating a C language-based source file; A compilation unit for converting the source file into an intermediate language code and allowing a specific indicator to pass through a specific operator when compiling the intermediate language code according to a platform; An executable file generator which generates an executable file for the compiled intermediate language code; And an executable file driver configured to allow the executable file to be driven on the platform.

또한, 본 실시에의 다른 측면에 의하면, 데이터 처리 기기에, C 언어 기반의 소스 파일을 생성하는 소스 파일 생성 과정; 상기 소스 파일을 중간 언어 코드로 변환하고, 상기 중간 언어 코드를 플랫폼에 따라 컴파일할 때 특정 지시자가 특정 연산자를 경유하도록 하는 컴파일 과정; 상기 컴파일된 상기 중간 언어 코드에 대한 실행 파일을 생성하는 실행 파일 생성 과정; 및 상기 실행 파일이 상기 플랫폼에서 구동되도록 하는 실행 파일 구동 과정을 실현시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체를 제공한다.In addition, according to another aspect of the present embodiment, a source file generation process for generating a C language-based source file in the data processing device; A compilation process of converting the source file into an intermediate language code and causing a specific indicator to pass through a specific operator when compiling the intermediate language code according to a platform; An executable file generation step of generating an executable file for the compiled intermediate language code; And a computer readable recording medium having recorded thereon a program for realizing an executable file driving process for allowing the executable file to be run on the platform.

이상에서 설명한 바와 같이 본 실시예에 의하면, 다양한 정보기기의 사용에 따라 다양한 플랫폼이 이용됨에 따라 특정 플랫폼에 의존적이지 않은 독립적인 중간 언어 코드로 변환한 후 각각의 플랫폼에 해당하는 종속적인 중간 언어 코드로 변환되도록 하는 데 이때, C 언어 기반의 특정 지시자가 독립적인 중간 언어 코드 상에 특정 연산자로 표현되도록 하며, 특정 연산자가 종속적인 중간 언어 코드 상에 상수로 표현되도록 하는 효과가 있다.As described above, according to the present embodiment, as various platforms are used according to the use of various information devices, the intermediate language codes corresponding to each platform are converted into independent intermediate language codes that are not dependent on a specific platform. In this case, the C language-based specific indicator is expressed as a specific operator on an independent intermediate language code, and the specific operator is expressed as a constant on the dependent intermediate language code.

또한, 본 실시예에 의하면, 플랫폼에 따라 값을 가지는 C 언어 기반의 특정 지시자(sizeof())를 특정 연산자로 독립적인 중간 언어 코드로 표현 가능하게 함으로써, 독립적인 중간 코드의 이식성(Portability)을 향상시킬 수 있는 효과가 있다.In addition, according to the present embodiment, portability of independent intermediate codes can be improved by enabling a specific operator (sizeof ()) having a value according to a platform to be expressed as an independent intermediate language code with a specific operator. There is an effect that can be improved.

도 1은 본 실시예에 따른 중간 언어 변환 시스템을 개략적으로 나타낸 블럭 구성도,
도 2는 제 1 실시예에 따른 중간 언어 변환 시스템을 개략적으로 나타낸 블럭 구성도,
도 3은 제 2 실시예에 따른 중간 언어 변환 시스템을 개략적으로 나타낸 블럭 구성도,
도 4는 제 3 실시예에 따른 중간 언어 변환 시스템을 개략적으로 나타낸 블럭 구성도,
도 5는 제 4 실시예에 따른 중간 언어 변환 시스템을 개략적으로 나타낸 블럭 구성도,
도 6은 본 실시예에 따른 중간 언어 변환 방법을 설명하기 위한 순서도,
도 7은 본 실시예에 따른 중간 언어 변환 과정을 설명하기 위한 예시도이다.
1 is a block diagram schematically illustrating an intermediate language conversion system according to an embodiment of the present invention;
FIG. 2 is a block diagram schematically showing an intermediate language conversion system according to the first embodiment;
3 is a block diagram schematically showing an intermediate language conversion system according to the second embodiment.
4 is a block diagram schematically showing an intermediate language conversion system according to the third embodiment,
5 is a block diagram schematically showing an intermediate language conversion system according to the fourth embodiment.
6 is a flowchart illustrating an intermediate language conversion method according to the present embodiment;
7 is an exemplary diagram for describing an intermediate language conversion process according to the present embodiment.

이하, 본 실시예를 첨부된 도면을 참조하여 상세하게 설명한다.Hereinafter, the present embodiment will be described in detail with reference to the accompanying drawings.

도 1은 본 실시예에 따른 중간 언어 변환 시스템을 개략적으로 나타낸 블럭 구성도이다.1 is a block diagram schematically showing an intermediate language conversion system according to the present embodiment.

본 실시예에 따른 중간 언어 변환 시스템은 개발자 단말기(110), 중간 언어 변환 장치(120) 및 플랫폼(130)을 포함한다. 본 실시예에서는 중간 언어 변환 시스템이 개발자 단말기(110), 중간 언어 변환 장치(120) 및 플랫폼(130)만을 포함하는 것으로 기재하고 있으나, 이는 본 발명의 일 실시예의 기술 사상을 예시적으로 설명한 것에 불과한 것으로서, 본 발명의 일 실시예가 속하는 기술 분야에서 통상의 지식을 가진 자라면 본 발명의 일 실시예의 본질적인 특성에서 벗어나지 않는 범위에서 중간 언어 변환 시스템에 포함되는 구성 요소에 대하여 다양하게 수정 및 변형하여 적용 가능할 것이다.The intermediate language conversion system according to the present embodiment includes a developer terminal 110, an intermediate language conversion device 120, and a platform 130. In this embodiment, the intermediate language conversion system is described as including only the developer terminal 110, the intermediate language conversion apparatus 120 and the platform 130, which is illustrative of the technical spirit of an embodiment of the present invention It should be noted that one of ordinary skill in the art to which an embodiment of the present invention belongs may variously modify and modify the components included in the intermediate language conversion system without departing from the essential characteristics of the embodiment of the present invention. Will be applicable.

한편, 도 1에서의 전반적인 흐름을 설명하자면, 개발자 단말기(110)는 탑재된 개발자 툴을 이용하여 C 언어 기반의 소스 파일을 생성하며, 중간 언어 변환 장치(120)는 탑재된 컴파일러를 이용하여 소스 파일을 컴파일(Compile)하여 중간 언어 코드로 변환한 후 링커(Linker) 프로그램으로 중간 언어 코드를 연결시켜 실행 파일을 만든 후 만들어진 실행 파일이 플랫폼(130)에서 실행된다.Meanwhile, to describe the overall flow in FIG. 1, the developer terminal 110 generates a C language-based source file by using a developer tool mounted thereon, and the intermediate language conversion device 120 uses a loaded compiler to After compiling the file and converting it into intermediate language code, the intermediate file is linked with the linker program to create an executable file, and then the executable file is executed on the platform 130.

한편, 도 1에서의 제 2 실시예에 따른 전반적인 흐름을 설명하자면, 개발자 단말기(110)는 개발자의 조작 또는 명령에 의해 작성된 C 언어 소스 코드를 읽어 들이고 전처리 과정을 수행한 후 플랫폼의 독립적인 중간 언어 코드를 생성한다. 이에, 중간 언어 변환 장치(120)는 개발자 단말기(110)로부터 생성된 플랫폼 독립적인 중간 언어 코드를 읽어 들이고 이를 특정 플랫폼에 맞게 플랫폼 종속적인 중간 언어 코드로 변환한다. 또한, 중간 언어 변환 장치(120)는 플랫폼의 종속적인 중간 언어 코드를 플랫폼(130)에 맞는 실행 파일로 변환한다. 이에, 각 플랫폼(130)은 중간 언어 변환 장치(120)로부터 실행파일을 전송받아 구동한다.Meanwhile, to describe the overall flow according to the second embodiment of FIG. 1, the developer terminal 110 reads the C language source code written by the developer's operation or command and performs a preprocessing process, and then performs an independent intermediate platform. Generate a language code. Accordingly, the intermediate language conversion apparatus 120 reads the platform independent intermediate language code generated from the developer terminal 110 and converts the intermediate language code into platform dependent intermediate language code according to a specific platform. In addition, the intermediate language conversion apparatus 120 converts the dependent intermediate language code of the platform into an executable file suitable for the platform 130. Each platform 130 receives an execution file from the intermediate language conversion apparatus 120 and drives the platform.

한편, 도 1에서의 제 3 실시예에 따른 전반적인 흐름을 설명하자면, 개발자 단말기(110)는 개발자의 조작 또는 명령에 의해 작성된 C 언어 소스 코드를 읽어 들이고 전처리 과정을 수행한 후 플랫폼의 독립적인 중간 언어 코드를 생성한다. 이에, 중간 언어 변환 장치(120)는 개발자 단말기(110)로부터 생성된 플랫폼 독립적인 중간 언어 코드를 읽어 들이고 이를 특정 플랫폼에 맞게 플랫폼 독립적인 중간 언어 코드로 변환한다. 이에, 각 플랫폼(130)은 중간 언어 변환 장치(120)로부터 플랫폼의 종속적인 중간 언어 코드를 전송받고 이를 플랫폼(130)에 맞게 실행파일로 변환 후 구동한다.Meanwhile, to describe the overall flow according to the third embodiment of FIG. 1, the developer terminal 110 reads the C language source code written by the developer's operation or command, performs a preprocessing process, and then performs an independent intermediate platform. Generate a language code. Accordingly, the intermediate language conversion apparatus 120 reads the platform independent intermediate language code generated from the developer terminal 110 and converts it into platform independent intermediate language code for a specific platform. Accordingly, each platform 130 receives a platform-dependent intermediate language code from the intermediate language conversion apparatus 120 and converts the platform-specific intermediate language code into an executable file for driving the platform 130.

한편, 도 1에서의 제 4 실시예에 따른 전반적인 흐름을 설명하자면, 개발자 단말기(110)는 개발자의 조작 또는 명령에 의해 작성된 C 언어 소스 코드를 읽어 들이고 전처리 과정을 수행한 후 플랫폼의 독립적인 중간 언어 코드를 생성한다. 또한, 개발자 단말기(110)는 이를 특정 플랫폼에 맞게 플랫폼의 독립적인 중간 언어 코드로 변환한 후 플랫폼에 맞게 실행파일로 변환한다. 이에, 각 플랫폼(130)은 개발자 단말기(110)로부터 실행파일을 전송받아 구동한다.Meanwhile, to describe the overall flow according to the fourth embodiment of FIG. 1, the developer terminal 110 reads the C language source code written by the developer's operation or command and performs a preprocessing process, and then performs an independent intermediate platform. Generate a language code. In addition, the developer terminal 110 converts it into an independent intermediate language code of the platform for a specific platform and then converts it into an executable file for the platform. Each platform 130 receives and executes an executable file from the developer terminal 110.

이하에서 개발자 단말기(110), 중간 언어 변환 장치(120) 및 플랫폼(130)에 대해 각각 설명하도록 한다.The developer terminal 110, the intermediate language conversion apparatus 120, and the platform 130 will be described below.

개발자 단말기(110)는 태블릿 PC(Tablet PC), 랩톱(Laptop), 개인용 컴퓨터(PC: Personal Computer), 스마트폰(Smart Phone), 개인휴대용 정보단말기(PDA: Personal Digital Assistant) 및 이동통신 단말기(Mobile Communication Terminal) 등 중 어느 하나일 수 있으며, 사용자의 조작 또는 명령에 의해 C 언어 기반의 소스 파일을 생성할 수 있으며, 사용자의 키 조작에 따라 통신망을 경유하여 각종 데이터를 송수신할 수 있는 단말기를 말한다.The developer terminal 110 may be a tablet PC, a laptop, a personal computer, a smart phone, a personal digital assistant (PDA), and a mobile communication terminal (PDA). Mobile communication terminal), and a terminal capable of generating a C language-based source file by a user's manipulation or command, and transmitting / receiving various data via a communication network according to a user's key manipulation. Say.

즉, 개발자 단말기(110)는 C 언어 기반의 소스 파일을 생성할 수 있는 프로그램(예컨대, 개발자 툴) 또는 프로토콜을 저장하기 위한 메모리, 해당 프로그램을 실행하여 연산 및 제어하기 위한 마이크로프로세서 등을 구비하고 있는 단말기를 의미한다. 또한, 개발자 단말기(110) 중간 언어 변환 장치(120)와 통신할 수 있는 단말기이며, 중간 언어 변환 장치(120)와 서버-클라이언트 통신이 가능하다면 그 어떠한 단말기도 가능하다. 한편, 개발자 단말기(110)는 통신망을 통하여 C 언어 기반의 소스 파일을 생성할 수 있는 클라우드 컴퓨팅(Cloud Computing)을 지원하는 클라우드 컴퓨팅 단말기가 될 수 있다.That is, the developer terminal 110 includes a memory for storing a program (for example, a developer tool) or a protocol capable of generating a C language-based source file, a microprocessor for executing and controlling the corresponding program, and the like. Means a terminal. In addition, the developer terminal 110 may be a terminal capable of communicating with the intermediate language conversion apparatus 120, and any terminal may be used as long as the intermediate language conversion apparatus 120 and the server-client communication are possible. Meanwhile, the developer terminal 110 may be a cloud computing terminal supporting cloud computing capable of generating a C language-based source file through a communication network.

본 실시예에 기재된 'C 언어'란 프로그램을 만드는 프로그램으로서, 타 기종간의 이식성이 높고 고정적인 형식이 없으며, 퀵 베이직처럼 퀵C, 터보C 등의 처리계가 있다. 또한, 오브젝트 지향적인 요소가 첨가된 C++이 개발되었으며, 시스템의 저급 부분을 제어할 수 있어 사용하기 쉽고 능률적인 프로그램을 작성할 수 있는 프로그래밍 언어이다.The "C language" described in the present embodiment is a program for making a program. The portability between the other models is high and there is no fixed format, and there are processing systems such as Quick C and Turbo C like Quick Basic. In addition, C ++ has been developed with the addition of object-oriented elements, and it is a programming language that allows you to write programs that are easy to use and streamlined because you can control the lower parts of the system.

개발자 단말기(110)는 사용자의 조작 또는 명령에 의해 개발자 툴을 구동하며, 개발자 툴을 통해 C 언어 기반의 소스 파일을 생성할 수 있다. 한편, 도 1에서는 개발자 단말기(110), 중간 언어 변환 장치(120) 및 플랫폼(130)이 각각 별도의 장치로 구현된 것으로 기재하고 있으나, 실제 실시예의 구현에 있어서, 개발자 단말기(110), 중간 언어 변환 장치(120) 및 플랫폼(130)을 모두 포함하는 형태의 자립형(Stand Alone) 장치로 구현될 수 있을 것이다.The developer terminal 110 drives the developer tool by a user's manipulation or command, and can generate a C language-based source file through the developer tool. Meanwhile, although FIG. 1 describes that the developer terminal 110, the intermediate language conversion apparatus 120, and the platform 130 are each implemented as separate devices, in the implementation of the actual embodiment, the developer terminal 110, the middle It may be implemented as a stand alone device having both a language conversion device 120 and a platform 130.

이러한, 개발자 단말기(110)는 애플리케이션 개발자 측의 플랫폼으로서, 개발자 단말기(110)에서 개발자 툴을 이용하여 소스 코드(Source Code)의 형태의 소스 파일을 생성할 수 있다. 여기서, 'C 언어 기반의 프로그래밍 언어'란 C 언어 자체, C 언어를 확장한 객체 지향형 언어인 C++언어, C 프로그래밍 언어에 스몰토크(Smalltalk) 스타일의 메시지 구문을 추가한 객체 지향형 언어인 오브젝티브-C(Objective-C) 언어, 또는 C/C++언어에 기반하여 이를 수정 또는 변형하여 구성되는 임의의 프로그래밍 언어를 지칭한다.The developer terminal 110 is a platform of an application developer, and may generate a source file in the form of source code using a developer tool in the developer terminal 110. Here, 'C language-based programming language' refers to C language itself, C ++ language, an object-oriented language that extends C language, and Objective-C, an object-oriented language that adds Smalltalk style message syntax to C programming language. (Objective-C) language, or any programming language constructed by modifying or modifying it based on the C / C ++ language.

또한, 본 실시예에 기재된 '중간 언어 코드'란 플랫폼(130)의 CPU 종류(예컨대, x86, x64, ARM 등) 또는 운영체제의 종류(예컨대, 윈도우(Windows), 리눅스(Linux), OSX, iOS, 안드로이드(Android), 윈도우 모바일, 윈도우 폰 등)와 같은 플랫폼의 특성에 의존하지 않으며, 플랫폼에 대해 독립적인 형태의 코드를 의미한다. 즉, 중간 언어 코드는 중간 언어 변환 장치(120)에 의해 추후 컴파일 시에 특정 플랫폼에 대응되는 바이너리(Binary) 코드로 변환하여 실행하는 것이 가능하다. 예를 들어, 중간 언어 코드는 소정 규격의 가상 머신(Virtual Machine)에 의하여 실행될 수 있다.In addition, the "intermediate language code" described in this embodiment means a CPU type (eg, x86, x64, ARM, etc.) or a type of operating system (eg, Windows, Linux, OSX, iOS) of the platform 130. , Android, Windows Mobile, Windows Phone, etc.) does not depend on the characteristics of the platform, but means a form of code independent of the platform. That is, the intermediate language code may be executed by converting the intermediate language code into binary code corresponding to a specific platform at a later compile time by the intermediate language conversion apparatus 120. For example, the intermediate language code may be executed by a virtual machine of a predetermined standard.

제 1 실시예에 따른 개발자 단말기(110)는 개발자의 조작 또는 명령에 의해 작성된 C 언어 소스 코드를 중간 언어 변환 장치(120)로 전송한다. 한편, 제 2 실시예에 따른 개발자 단말기(110)는 개발자의 조작 또는 명령에 의해 작성된 C 언어 소스 코드를 읽어 들이고 전처리 과정을 수행한 후 플랫폼의 독립적인 중간 언어 코드를 생성한다. The developer terminal 110 according to the first embodiment transmits the C language source code created by the developer's operation or command to the intermediate language conversion apparatus 120. [ Meanwhile, the developer terminal 110 according to the second embodiment reads the C language source code created by the developer's operation or command, performs the preprocessing process, and generates an intermediate language code independent of the platform.

제 3 실시예에 따른 개발자 단말기(110)는 개발자의 조작 또는 명령에 의해 작성된 C 언어 소스 코드를 읽어 들이고 전처리 과정을 수행한 후 플랫폼의 독립적인 중간 언어 코드를 생성한다. 한편, 제 4 실시예에 따른 개발자 단말기(110)는 개발자의 조작 또는 명령에 의해 작성된 C 언어 소스 코드를 읽어 들이고 전처리 과정을 수행한 후 플랫폼의 독립적인 중간 언어 코드를 생성한다. 또한, 제 4 실시예에 따른 개발자 단말기(110)는 이를 특정 플랫폼에 맞게 플랫폼의 독립적인 중간 언어 코드로 변환한 후 플랫폼에 맞게 실행파일로 변환한다. The developer terminal 110 according to the third embodiment reads the C language source code created by the developer's operation or command, performs a preprocessing process, and generates an intermediate language code independent of the platform. Meanwhile, the developer terminal 110 according to the fourth embodiment reads the C language source code created by the developer's operation or command, performs a preprocessing process, and generates an intermediate language code independent of the platform. In addition, the developer terminal 110 according to the fourth embodiment converts this into an independent intermediate language code of the platform for a specific platform and then converts it into an executable file for the platform.

한편, 제 1 실시예에 따른 중간 언어 변환 장치(120)는 C 언어 기반의 프로그래밍 언어와 플랫폼의 독립적인 중간 언어 사이의 변환 규칙이 정의되어 있는 매핑 정보를 저장할 수 있다. 예를 들어, 중간 언어 변환 장치(120)는 C 언어의 각 지시자를 이에 대응되는 중간 언어 코드와 매칭시킨 테이블(Table)의 형태의 매핑 정보를 저장할 수 있다. 즉, 중간 언어 변환 장치(120)는 이러한 매핑 정보를 이용하여, C 언어 기반의 소스 파일을 중간 언어 코드로 변환할 수 있다.Meanwhile, the intermediate language conversion apparatus 120 according to the first embodiment may store mapping information in which a conversion rule between a C language-based programming language and a platform independent intermediate language is defined. For example, the intermediate language conversion apparatus 120 may store mapping information in the form of a table in which each indicator of the C language is matched with an intermediate language code corresponding thereto. That is, the intermediate language conversion apparatus 120 can convert a C language-based source file into an intermediate language code using this mapping information.

예를 들어, C 언어에서 사용하는 "int" 라는 타입(Type) 지시자는 16비트(Bit) 머신 플랫폼에서는 16비트 크기를 의미하는 반면 32 비트 머신 플랫폼에서는 32 비트 크기를 의미한다. 이러한 이유 때문에 C 언어를 이용하여 애플리케이션을 작성하는 경우 애플리케이션이 사용될 플랫폼의 사양에 맞추어 "int" 지시자를 사용해야 한다. 본 실시예들에서는 C 언어의 "int" 지시자가 이에 대응되는 중간 언어 코드로 변환되어 배포되며, 추후 중간 언어 코드의 컴파일시에 플랫폼이 16비트 머신인지 또는 32비트 머신인지에 따라 중간 언어 코드를 적절한 비트 크기를 의미하는 바이너리 코드로 컴파일할 수 있다.For example, the type indicator "int" used in the C language means 16 bits on 16-bit machine platforms, and 32 bits on 32-bit machine platforms. For this reason, when writing an application using the C language, you must use the "int" directive in accordance with the specifications of the platform on which the application will be used. In the present exemplary embodiment, the "int" indicator of the C language is converted into the corresponding intermediate language code and distributed, and the intermediate language code is changed depending on whether the platform is a 16-bit machine or a 32-bit machine when compiling the intermediate language code. You can compile into binary code that means the appropriate bit size.

한편, 제 1 실시예에 따른 중간 언어 변환 장치(120)는 개발자 단말기(110)로부터 소스 파일을 수신(예컨대, 통신망 등을 이용하여)할 수 있으며, 플랫폼(130)과도 통신(예컨대, 통신망 등을 이용하여)할 수 있다. 이때, 개발자 단말기(110), 중간 언어 변환 장치(120) 및 플랫폼(130) 간에 통신 방식은 특정 방식으로 한정되지 않으며, 플랫폼(130)은 동일한 처리장치 또는 동일한 운영체제를 사용할 수도 있으나, 서로 상이한 처리장치 또는 운영체제를 사용할 수도 있다. 예를 들어, 중간 언어 변환 장치(120)가 자동으로 또는 플랫폼(130)의 다운로드(Download) 요청에 의해 하나의 플랫폼(130)에 애플리케이션을 전송하고자 하는 경우, 중간 언어 변환 장치(120)는 중간 언어 코드로 된 애플리케이션을 해당 플랫폼(130)에 대응되는 형태의 바이너리 코드로 변환할 수 있다. 이때, 변환된 바이너리 코드는 플랫폼(130)에서 실행 가능한 실행파일의 형태일 수 있다. 예컨대 플랫폼(130)이 윈도우(Windows) 운영체제를 이용하는 경우 바이너리 코드는 "exe" 확장자를 갖는 실행 파일일 수 있다. Meanwhile, the intermediate language conversion apparatus 120 according to the first embodiment can receive a source file (for example, using a communication network) from the developer terminal 110 and communicate with the platform 130 (for example, ). At this time, the communication method between the developer terminal 110, the intermediate language conversion apparatus 120, and the platform 130 is not limited to a specific method, and the platform 130 may use the same processing apparatus or the same operating system, Devices or operating systems may be used. For example, if the intermediate language conversion device 120 wants to send an application to one platform 130 automatically or by a download request of the platform 130, the intermediate language conversion device 120 is intermediate. An application in a language code may be converted into a binary code of a form corresponding to the corresponding platform 130. At this time, the converted binary code may be in the form of an executable file executable on the platform 130. For example, if the platform 130 uses a Windows operating system, the binary code may be an executable file with an "exe " extension.

또한, 제 1 실시예에 따른 중간 언어 변환 장치(120)는 중간 언어 코드를 다양한 형태의 실행 파일로 생성하기 위한 중간 언어 해석부를 포함할 수 있다. 이러한, 중간 언어 해석부는 플랫폼(130)의 독립적인 중간 언어 코드를 컴파일하여 각 플랫폼에 대해 최적화된 형태의 바이너리 코드로 변환할 수 있다. 이를 위하여, 중간 언어 해석부는 중간 언어 코드를 공지된 플랫폼의 유형별 바이너리 코드로 변환하기 위한 수단을 포함할 수 있다. 예컨대 가상머신 컴파일러(VM Compiler) 등이 이에 해당될 수 있다.In addition, the intermediate language conversion apparatus 120 according to the first embodiment may include an intermediate language analysis unit for generating intermediate language codes into various types of executable files. The intermediate language interpretation unit may compile the independent intermediate language code of the platform 130 and convert the intermediate language code into an optimized type of binary code for each platform. To this end, the intermediate language interpretation unit may comprise means for converting the intermediate language code into binary code for each type of known platform. For example, a virtual machine compiler may correspond to this.

한편, 제 1 실시예에 따른 중간 언어 변환 장치(120)는 중간 언어 변환 장치(120)에 접속한 플랫폼(130)의 프로파일(Profile)(예컨대, CPU 또는 운영 체제의 종류 등)이 전송된다. 따라서, 중간 언어 변환 장치(120)는 실행 파일을 전송할 해당 플랫폼(130)의 프로파일을 이용하여 코드 사이즈 최적화 및 변수 처리 등을 수행함으로써, 중간 언어 코드를 플랫폼(130)에 최적화된 바이너리 코드(예컨대, 실행파일)로 변환할 수 있다.Meanwhile, the intermediate language conversion apparatus 120 according to the first embodiment transmits a profile (for example, a type of CPU or an operating system) of the platform 130 connected to the intermediate language conversion apparatus 120. Accordingly, the intermediate language conversion apparatus 120 performs code size optimization, variable processing, and the like using the profile of the platform 130 to which the execution file is to be transmitted, thereby converting the intermediate language code into binary code optimized for the platform 130 , An executable file).

제 1 실시예에 따른 중간 언어 변환 장치(120)는 C 언어 기반의 소스 파일을 생성하거나, 개발자 단말기(110)로부터 C 언어 기반의 소스 파일을 수신한다. 소스 파일에 대한 전처리를 수행하며, 전처리가 수행된 소스 파일을 중간 언어 코드로 변환하고, 중간 언어 코드를 플랫폼(130)에 따라 컴파일할 때 특정 지시자가 특정 연산자를 경유하도록 하며, 컴파일된 중간 언어 코드에 대한 실행 파일을 생성하며, 실행 파일이 플랫폼(130)에서 구동되도록 한다.The intermediate language conversion apparatus 120 according to the first embodiment generates a C language based source file or receives a C language based source file from the developer terminal 110. Perform preprocessing of the source file, convert the preprocessed source file into intermediate language code, have certain directives pass through certain operators when compiling the intermediate language code according to platform 130, and the compiled intermediate language Generates an executable file for the code, and causes the executable file to run on the platform 130.

제 1 실시예에 따른 중간 언어 변환 장치(120)에서의 전처리 과정에 대해 설명하자면, 중간 언어 변환 장치(120)는 소스 파일에 대한 전처리를 수행할 수 있는데, '전처리'란 컴파일 이전에 특정한 부분을 치환하는 작업을 의미한다. 예컨대, '#'으로 정의된 라인을 전처리 구문이라 하며, 전처리 구문 끝에는 명령의 끝을 의미하는 세미콜론(;)을 붙이지 않는다. Referring to the preprocessing process in the intermediate language conversion apparatus 120 according to the first embodiment, the intermediate language conversion apparatus 120 may perform preprocessing on a source file. It means to replace the operation. For example, a line defined as '#' is called a preprocessing syntax, and a semicolon (;) at the end of a preprocessing statement is not added.

한편, 라이브러리는 소프트웨어를 만들 때 쓰이는 클래스나 서브루틴들의 모임으로서, 누구나 가져다 쓸 수 있도록 만들어져 있는 기본적으로 제공되는 함수를 포함한다. 이러한, 라이브러리는 '정적 라이브러리'와 '동적 라이브러리'를 포함하는데, 정적 라이브러리는 컴파일러가 소스 파일을 컴파일할 때 참조되는 프로그램 모듈이다. 즉, 정적 라이브러리(Statically-Linked Library)는 루틴(Routine) 외부 함수와 변수들의 집합으로, 컴파일러, 링커, 바인더 등에 의해 목표된 애플리케이션으로 복사되어 오브젝트 파일과 독립적으로 실행할 수 있는 실행 파일을 생성하는데 사용된다. 예컨대, 윈도우의 '.LIB' 파일과 같이 '.a'의 확장자를 갖고 있다. 한편, 동적 라이브러리는 프로그램 수행 도중 해당 모듈이 필요할 때 불러오는 프로그램 모듈이다. 즉, 윈도우에서는 주로 'DLL' 확장자를 가지며, 리눅스에서는 주로 'SO' 확장자를 가진다. Libraries, on the other hand, are a collection of classes or subroutines used to make software, and include built-in functions that are intended for anyone to use. These libraries include 'static libraries' and 'dynamic libraries', which are program modules that are referenced when the compiler compiles source files. In other words, a statically-linked library is a set of routine external functions and variables that can be copied to a target application by a compiler, linker, binder, etc. and used to create an executable file that can be run independently of the object file. do. For example, it has an extension of '.a' like a Windows '.LIB' file. On the other hand, a dynamic library is a program module that is loaded when a corresponding module is needed during program execution. That is, on Windows, it usually has a 'DLL' extension, and on Linux it has a 'SO' extension.

제 1 실시예에 따른 중간 언어 변환 장치(120)에서의 컴파일 과정에 대해 설명하자면, 중간 언어 변환 장치(120)는 전처리가 수행된 소스 파일을 플랫폼(130)의 독립적인 중간 언어 코드로 컴파일하는 독립적 컴파일 과정을 거치고, 독립적인 중간 언어 코드를 플랫폼(130)의 종속적인 중간 언어 코드로 컴파일하는 종속적 컴파일 과정을 거친다.Referring to the compilation process in the intermediate language conversion apparatus 120 according to the first embodiment, the intermediate language conversion apparatus 120 is used to compile a source file subjected to preprocessing into independent intermediate language code of the platform 130. After the independent compilation process, the independent intermediate language code is subjected to a dependent compilation process of compiling the intermediate language code of the platform 130 as a dependent.

본 실시예에 기재된, '컴파일'이란 사람이 이해할 수 있는 컴퓨터언어를 기계가 이해할 수 있는 기계어로 통역해주는 과정을 말한다. 일반적으로 컴퓨터언어 프로그램이라 부르는 터보C, 볼랜드C++, 비주얼베이직 등이 컴파일러 프로그램으로, 컴퓨터언어 프로그램을 이용해서 컴퓨터 프로그램을 만든다. 이러한, 컴파일 과정은 '컴파일러'를 이용하여 수행할 수 있는데, 컴파일러는 소스 파일을 기계어로 번역해주는 프로그램을 말한다. 이러한, C 언어 컴파일러는 C 언어 문법에 맞추어서 쓴 명령어들을 컴퓨터가 이해할 수 있는 기계어로 번역해주는 프로그램이다. 즉, 컴파일러는 사람들이 알아볼 수 있도록 숫자와 문자로 명령을 기록한 내용을 기계가 이해할 수 있는 언어인 기계어로 번역해준다.The term 'compilation' described in this embodiment refers to a process of translating a computer language that a person can understand into a machine language that can understand the machine. Generally, computer language programs called Turbo C, Borland C ++, and Visual Basic are compiler programs, and computer programs are created using computer language programs. This compilation process can be performed using a 'compiler', which refers to a program that translates a source file into a machine language. Such a C language compiler is a program that translates commands written in accordance with the C language grammar into machine-readable machine language. In other words, the compiler translates machine and machine instructions into a machine-readable language that allows people to read and write commands and numbers.

이때, 제 1 실시예에 따른 중간 언어 변환 장치(120)는 독립적 컴파일 과정을 수행하기 위해 특정 지시자를 갖는 소스 파일을 중간 언어 코드로 변환한 후 중간 언어 코드를 플랫폼(130)의 독립적인 중간 언어 코드로 컴파일할 때 특정 지시자를 특정 연산자로 변환한다. 또한, 제 1 실시예에 따른 중간 언어 변환 장치(120)는 종속적 컴파일 과정을 수행하기 위해 독립적인 중간 언어 코드를 플랫폼의 종속적인 중간 언어 코드로 컴파일할 때 독립적인 중간 언어 코드에 포함된 특정 연산자를 플랫폼(130)에 따른 값을 갖는 상수로 변환한다. 여기서, '상수'는 한번 값을 저장하면 변경이 불가능한 값을 말하며, 변수와 마찬가지로 상수도 값을 저장할 수 있는 메모리 공간을 가지나, 변수와 다르게 데이터의 변경은 불가능하다. 한편, 중간 언어 변환 장치(120)는 종속적인 컴파일 과정을 수행할 때 독립적인 중간 언어 코드를 종속적인 중간 언어 코드로 컴파일할 때 문법 오류 체크를 수행하며, 확인 결과, 문법 오류 체크에 오류가 없는 경우 실행 파일 생성 과정에서 실행 파일을 생성한다. 이때, 특정 지시자는 'sizeof ()'를 말하며, 'sizeof ()'란 피연자의 크기를 바이트 단위로 계산해서 변환하는 연산자를 말한다.In this case, the intermediate language conversion apparatus 120 according to the first embodiment converts a source file having a specific indicator into an intermediate language code to perform an independent compilation process, and then converts the intermediate language code into an independent intermediate language of the platform 130. When compiling to code, convert certain directives to specific operators. In addition, the intermediate language conversion apparatus 120 according to the first embodiment includes a specific operator included in the independent intermediate language code when compiling the independent intermediate language code into the platform dependent intermediate language code to perform the dependent compilation process. Is converted into a constant having a value according to the platform 130. Here, 'constant' refers to a value that can not be changed once the value is stored. Like the variable, the variable has a memory space for storing the constant value, but data can not be changed unlike the variable. Meanwhile, when the intermediate language conversion apparatus 120 performs the dependent compilation process, the intermediate language conversion apparatus 120 performs grammatical error check when compiling the independent intermediate language code into the dependent intermediate language code. In this case, an executable file is created during the executable file creation process. In this case, the specific indicator refers to 'sizeof ()', and 'sizeof ()' refers to an operator that calculates and converts the size of the operand in bytes.

한편, 제 1 실시예에 따른 중간 언어 변환 장치(120)가 적용될 여지가 많다고 여겨지는 분야에 대해 설명하자면, 중간 언어 변환 장치(120)는 일종에 '애플리케이션 스토어'에 적용될 수 있다. 즉, 중간 언어 변환 장치(120)가 적용된 애플리케이션 스토어는 개발자 단말기(110)로부터 소스 파일만을 수신한 후 이를 중간 언어 코드로 변환하고, 해당 애플리케이션 스토어에 접속한 플랫폼(130)에 해당하는 형태로 컴파일한 후 해당 플랫폼(130)으로 해당 애플리케이션을 전송하여 수익을 창출할 수 있을 것이다.Meanwhile, to describe a field in which the intermediate language conversion device 120 according to the first embodiment is considered to have much room to be applied, the intermediate language conversion device 120 may be applied to an application store. That is, the application store to which the intermediate language conversion apparatus 120 is applied receives only a source file from the developer terminal 110, converts it into an intermediate language code, compiles it into a form corresponding to the platform 130 connected to the application store, And then transfer the application to the corresponding platform 130 to generate revenue.

한편, 제 2 실시예에 따른 중간 언어 변환 장치(120)는 개발자 단말기(110)로부터 생성된 플랫폼 독립적인 중간 언어 코드를 읽어 들이고 이를 특정 플랫폼에 맞게 플랫폼 종속적인 중간 언어 코드로 변환한다. 또한, 중간 언어 변환 장치(120)는 플랫폼의 종속적인 중간 언어 코드를 플랫폼(130)에 맞는 실행 파일로 변환한다. 한편, 제 3 실시예에 따른 중간 언어 변환 장치(120)는 개발자 단말기(110)로부터 생성된 플랫폼 독립적인 중간 언어 코드를 읽어 들이고 이를 특정 플랫폼에 맞게 플랫폼 독립적인 중간 언어 코드로 변환한다.Meanwhile, the intermediate language conversion apparatus 120 according to the second embodiment reads the platform independent intermediate language code generated from the developer terminal 110 and converts the intermediate language code into platform dependent intermediate language code according to a specific platform. In addition, the intermediate language conversion apparatus 120 converts the dependent intermediate language code of the platform into an executable file suitable for the platform 130. Meanwhile, the intermediate language conversion apparatus 120 according to the third embodiment reads the platform independent intermediate language code generated from the developer terminal 110 and converts the intermediate language code into platform independent intermediate language code according to a specific platform.

플랫폼(130)은 중앙처리장치의 아키텍쳐(Architecture) 및 운영체제(Operating System; OS) 중 적어도 하나 이상이 조합된 장치를 말한다. 즉, 중앙처리장치의 아키텍처는 ARM의 ARMv5, ARMv7, ARMv8, X86 또는 X64 등이 될 수 있으며, 운영체제는 윈도우, 리눅스, 윈도우 모바일, 안드로이드, OSX 또는 iOS 등이 될 수 있으나 반드시 이에 한정되는 것은 아니다. 이러한, 플랫폼(130)이란 하나 또는 복수 개의 처리장치(예컨대, CPU 등)를 포함하는 하드웨어, 하드웨어를 이용하여 동작하는 운영체제(Operating System; OS), 또는 하드웨어 및 운영체제 모두를 지칭한다. 예컨대 플랫폼(130)은 데스크탑 컴퓨터(Desktop Computer), 노트북(Notebook) 컴퓨터, 휴대전화(Cellular Phone) 등의 이동 장치(Mobile Device), PDA(Personal Digital Assistant) 등일 수 있으나 이에 한정되는 것은 아니다. 한편, 플랫폼(130)은 다양한 장치(제 1 플랫폼, 제 2 플랫폼 내지 제 N 플랫폼)를 포함할 수 있다.The platform 130 refers to a device in which at least one or more of an architecture and an operating system (OS) of the central processing unit are combined. That is, the architecture of the central processing unit may be ARMv5, ARMv7, ARMv8, X86 or X64 of ARM, and the operating system may be Windows, Linux, Windows Mobile, Android, OSX or iOS, but is not limited thereto. . Such a platform 130 refers to hardware including one or a plurality of processing devices (eg, CPUs), an operating system (OS) operating using hardware, or both hardware and an operating system. For example, the platform 130 may be a desktop computer, a notebook computer, a mobile device such as a cellular phone, a personal digital assistant, or the like, but is not limited thereto. Meanwhile, the platform 130 may include various devices (first platform, second platform to Nth platform).

제 1 실시예 및 제 2 실시예에 따른 플랫폼(130)은 중간 언어 변환 장치(120)로부터 실행파일을 전송받아 구동한다. 한편, 제 3 실시예에 따른 플랫폼(130)은 중간 언어 변환 장치(120)로부터 플랫폼의 종속적인 중간 언어 코드를 전송받고 이를 플랫폼(130)에 맞게 실행파일로 변환 후 구동한다. 한편, 제 4 실시예에 따른 각 플랫폼(130)은 개발자 단말기(110)로부터 실행파일을 전송받아 구동한다.The platform 130 according to the first and second embodiments receives an executable file from the intermediate language conversion apparatus 120 and drives the same. Meanwhile, the platform 130 according to the third embodiment receives a platform-dependent intermediate language code from the intermediate language conversion apparatus 120 and converts the intermediate language code of the platform into an executable file according to the platform 130. Meanwhile, each platform 130 according to the fourth embodiment receives an executable file from the developer terminal 110 and drives the platform.

도 2는 본 실시예에 따른 중간 언어 변환 장치를 개략적으로 나타낸 블럭 구성도이다.2 is a block diagram schematically illustrating an intermediate language conversion apparatus according to the present embodiment.

제 1 실시예에 따른 중간 언어 변환 장치(120)는 전처리 수행부(220), 컴파일부(230), 실행 파일 생성부(240) 및 실행 파일 구동부(250)를 포함한다. 제 1 실시예에서는 중간 언어 변환 장치(120)가 소스 파일 생성부(210), 전처리 수행부(220), 컴파일부(230), 실행 파일 생성부(240) 만을 포함하는 것으로 기재하고 있으나, 이는 제 1 실시예의 기술 사상을 예시적으로 설명한 것에 불과한 것으로서, 제 1 실시예가 속하는 기술 분야에서 통상의 지식을 가진 자라면 제 1 실시예의 본질적인 특성에서 벗어나지 않는 범위에서 중간 언어 변환 장치(120)에 포함되는 구성 요소에 대하여 다양하게 수정 및 변형하여 적용 가능할 것이다. 여기서, 소스 파일 생성부(210)는 개발자 단말기(110)에 포함될 수 있으며, 실행 파일 구동부(250)는 플랫폼(130)에 포함될 수 있다.The intermediate language conversion apparatus 120 according to the first embodiment includes a preprocessor 220, a compiler 230, an executable file generator 240, and an executable file driver 250. The intermediate language conversion apparatus 120 includes only the source file generation unit 210, the preprocessing execution unit 220, the compiling unit 230 and the executable file generating unit 240. However, The technical idea of the first embodiment is merely illustrative and it is understood that those skilled in the art will understand that the intermediate language conversion apparatus 120 is not limited to the essential features of the first embodiment It will be understood that the invention may be varied in many ways. Here, the source file generation unit 210 may be included in the developer terminal 110, and the executable file driver 250 may be included in the platform 130.

개발자 단말기(110)에 포함된 소스 파일 생성부(210)는 C 언어 기반의 소스 파일을 생성한다. 이때, 중간 언어 변환 장치(120)에 포함된 전처리 수행부(220)는 소스 파일에 대한 전처리를 수행한다. The source file generation unit 210 included in the developer terminal 110 generates a C language based source file. At this time, the preprocessing unit 220 included in the intermediate language conversion apparatus 120 performs preprocessing on the source file.

중간 언어 변환 장치(120)에 포함된 컴파일부(230)는 전처리가 수행된 소스 파일을 중간 언어 코드로 변환하고, 중간 언어 코드를 플랫폼에 따라 컴파일할 때 특정 지시자가 특정 연산자를 경유하도록 한다. 여기서, 특정 지시자는 'sizeof ()'를 말한다. 이러한, 중간 언어 변환 장치(120)에 포함된 컴파일부(230)는 독립적 컴파일부(232)와 종속적 컴파일부(234)를 포함하는데, 이러한 독립적 컴파일부(232)와 종속적 컴파일부(234)에 대해 각각 설명하자면 다음과 같다. 독립적 컴파일부(232)는 중간 언어 코드를 플랫폼의 독립적인 중간 언어 코드로 컴파일한다. 또한, 독립적 컴파일부(232)는 특정 지시자를 갖는 소스 파일을 중간 언어 코드로 변환한 후 중간 언어 코드를 플랫폼(130)의 독립적인 중간 언어 코드로 컴파일할 때 특정 지시자를 특정 연산자로 변환한다. 한편, 종속적 컴파일부(234)는 독립적인 중간 언어 코드를 플랫폼(130)의 종속적인 중간 언어 코드로 컴파일한다. 또한, 종속적 컴파일부(234)는 독립적인 중간 언어 코드를 플랫폼(130)의 종속적인 중간 언어 코드로 컴파일할 때 독립적인 중간 언어 코드에 포함된 특정 연산자를 플랫폼(130)에 따른 값을 갖는 상수로 변환한다. 또한, 종속적인 컴파일부(230)는 독립적인 중간 언어 코드를 종속적인 중간 언어 코드로 컴파일할 때 문법 오류 체크를 수행하며, 확인 결과, 문법 오류 체크에 오류가 없는 경우 실행 파일 생성부(240)에서 실행 파일을 생성한다.The compiling unit 230 included in the intermediate language conversion apparatus 120 converts a source file in which preprocessing is performed into an intermediate language code, and allows a specific indicator to pass through a specific operator when compiling the intermediate language code according to a platform. Here, the specific indicator says 'sizeof ()'. The compiling unit 230 included in the intermediate language conversion apparatus 120 includes an independent compiling unit 232 and a dependent compiling unit 234, and the independent compiling unit 232 and the dependent compiling unit 234. Each of them is explained as follows. The independent compilation unit 232 compiles the intermediate language code into independent intermediate language code of the platform. In addition, the independent compiling unit 232 converts the source file having the specific indicator into the intermediate language code, and then converts the specific indicator into the specific operator when compiling the intermediate language code into the independent intermediate language code of the platform 130. Meanwhile, the dependent compiler 234 compiles the independent intermediate language code into the dependent intermediate language code of the platform 130. In addition, the dependent compiler 234 is a constant having a value according to the platform 130, the specific operator included in the independent intermediate language code when the independent intermediate language code is compiled into the dependent intermediate language code of the platform 130 Convert to In addition, the dependent compilation unit 230 performs a grammar error check when compiling the independent intermediate language code into the dependent intermediate language code, and if there is no error in the grammar error check, the execution file generator 240 Create an executable file in.

중간 언어 변환 장치(120)에 포함된 실행 파일 생성부(240)는 컴파일된 중간 언어 코드에 대한 실행 파일을 생성한다. 또한, 플랫폼(130)에 포함된 실행 파일 구동부(250)는 실행 파일이 플랫폼(130)에서 구동되도록 한다.The executable file generator 240 included in the intermediate language conversion apparatus 120 generates an executable file for the compiled intermediate language code. In addition, the executable file driver 250 included in the platform 130 causes the executable file to be run on the platform 130. [

도 3은 제 2 실시예에 따른 중간 언어 변환 시스템을 개략적으로 나타낸 블럭 구성도이다.3 is a block diagram schematically showing an intermediate language conversion system according to the second embodiment.

제 2 실시예에 따른 개발자 단말기(110)는 소스 파일 생성부(210), 전처리 수행부(220) 및 독립적 컴파일부(232)를 포함하고, 중간 언어 변환 장치(120)는 종속적 컴파일부(234) 및 실행 파일 생성부(240)를 포함하고, 플랫폼(130)은 실행 파일 구동부(250)를 포함한다. 제 2 실시예에서, 개발자 단말기(110), 중간 언어 변환 장치(120) 및 플랫폼(130)에 포함된 각 모듈은 제 2 실시예의 기술 사상을 예시적으로 설명한 것에 불과한 것으로서, 제 2 실시예가 속하는 기술 분야에서 통상의 지식을 가진 자라면 본질적인 특성에서 벗어나지 않는 범위에서 다양하게 수정 및 변형하여 적용 가능할 것이다.The developer terminal 110 according to the second embodiment includes a source file generation unit 210, a preprocessing execution unit 220, and an independent compilation unit 232, and the intermediate language conversion device 120 includes a dependent compilation unit 234. And an executable file generator 240, and the platform 130 includes an executable file driver 250. In the second embodiment, each module included in the developer terminal 110, the intermediate language conversion apparatus 120, and the platform 130 is merely an exemplary description of the technical idea of the second embodiment, It will be understood by those skilled in the art that various changes in form and details may be made therein without departing from the spirit and scope of the invention.

개발자 단말기(110)에 포함된 소스 파일 생성부(210)는 C 언어 기반의 소스 파일을 생성한다. 개발자 단말기(110)에 포함된 전처리 수행부(220)는 소스 파일에 대한 전처리를 수행한다. 개발자 단말기(110)에 포함된 독립적 컴파일부(232)는 중간 언어 코드를 플랫폼의 독립적인 중간 언어 코드로 컴파일한다. 또한, 개발자 단말기(110)에 포함된 독립적 컴파일부(232)는 특정 지시자를 갖는 소스 파일을 중간 언어 코드로 변환한 후 중간 언어 코드를 플랫폼(130)의 독립적인 중간 언어 코드로 컴파일할 때 특정 지시자를 특정 연산자로 변환한다. 여기서, 특정 지시자는 'sizeof ()'를 말한다. The source file generation unit 210 included in the developer terminal 110 generates a C language based source file. The preprocessing unit 220 included in the developer terminal 110 performs preprocessing on the source file. The independent compilation unit 232 included in the developer terminal 110 compiles the intermediate language code into an independent intermediate language code of the platform. In addition, the independent compilation unit 232 included in the developer terminal 110 converts a source file having a specific indicator into an intermediate language code and then compiles the intermediate language code into an independent intermediate language code of the platform 130. Convert the directive to a specific operator. Here, the specific indicator says 'sizeof ()'.

한편, 중간 언어 변환 장치(120)에 포함된 종속적 컴파일부(234)는 독립적인 중간 언어 코드를 플랫폼(130)의 종속적인 중간 언어 코드로 컴파일한다. 또한, 중간 언어 변환 장치(120)에 포함된 종속적 컴파일부(234)는 독립적인 중간 언어 코드를 플랫폼(130)의 종속적인 중간 언어 코드로 컴파일할 때 독립적인 중간 언어 코드에 포함된 특정 연산자를 플랫폼(130)에 따른 값을 갖는 상수로 변환한다. 또한, 중간 언어 변환 장치(120)에 포함된 종속적인 컴파일부(230)는 독립적인 중간 언어 코드를 종속적인 중간 언어 코드로 컴파일할 때 문법 오류 체크를 수행하며, 확인 결과, 문법 오류 체크에 오류가 없는 경우 실행 파일 생성부(240)에서 실행 파일을 생성한다. 중간 언어 변환 장치(120)에 포함된 실행 파일 생성부(240)는 컴파일된 중간 언어 코드에 대한 실행 파일을 생성한다. 또한, 플랫폼(130)에 포함된 실행 파일 구동부(250)는 실행 파일이 플랫폼(130)에서 구동되도록 한다.Meanwhile, the dependent compilation unit 234 included in the intermediate language conversion apparatus 120 compiles the independent intermediate language code into the dependent intermediate language code of the platform 130. In addition, the dependent compilation unit 234 included in the intermediate language conversion apparatus 120 may perform a specific operator included in the independent intermediate language code when compiling the independent intermediate language code into the dependent intermediate language code of the platform 130. Convert to a constant with a value according to platform 130. In addition, the dependent compilation unit 230 included in the intermediate language conversion apparatus 120 performs a grammatical error check when compiling the independent intermediate language code into the dependent intermediate language code. If there is no executable file generator 240 generates an executable file. The executable file generator 240 included in the intermediate language conversion apparatus 120 generates an executable file for the compiled intermediate language code. In addition, the executable file driver 250 included in the platform 130 causes the executable file to be run on the platform 130. [

도 4는 제 3 실시예에 따른 중간 언어 변환 시스템을 개략적으로 나타낸 블럭 구성도이다.4 is a block diagram schematically showing an intermediate language conversion system according to the third embodiment.

제 3 실시예에 따른 개발자 단말기(110)는 소스 파일 생성부(210), 전처리 수행부(220) 및 독립적 컴파일부(232)를 포함하고, 중간 언어 변환 장치(120)는 종속적 컴파일부(234)를 포함하고, 플랫폼(130)은 실행 파일 생성부(240) 및 실행 파일 구동부(250)를 포함한다. 제 3 실시예에서, 개발자 단말기(110), 중간 언어 변환 장치(120) 및 플랫폼(130)에 포함된 각 모듈은 제 3 실시예의 기술 사상을 예시적으로 설명한 것에 불과한 것으로서, 제 3 실시예가 속하는 기술 분야에서 통상의 지식을 가진 자라면 본질적인 특성에서 벗어나지 않는 범위에서 다양하게 수정 및 변형하여 적용 가능할 것이다.The developer terminal 110 according to the third exemplary embodiment includes a source file generator 210, a preprocessing processor 220, and an independent compiler 232, and the intermediate language converter 120 may be a dependent compiler 234. The platform 130 includes an executable file generator 240 and an executable file driver 250. In the third embodiment, each module included in the developer terminal 110, the intermediate language conversion apparatus 120, and the platform 130 is merely illustrative of the technical idea of the third embodiment, It will be understood by those skilled in the art that various changes in form and details may be made therein without departing from the spirit and scope of the invention.

개발자 단말기(110)에 포함된 소스 파일 생성부(210)는 C 언어 기반의 소스 파일을 생성한다. 개발자 단말기(110)에 포함된 전처리 수행부(220)는 소스 파일에 대한 전처리를 수행한다. 개발자 단말기(110)에 포함된 독립적 컴파일부(232)는 중간 언어 코드를 플랫폼의 독립적인 중간 언어 코드로 컴파일한다. 또한, 개발자 단말기(110)에 포함된 독립적 컴파일부(232)는 특정 지시자를 갖는 소스 파일을 중간 언어 코드로 변환한 후 중간 언어 코드를 플랫폼(130)의 독립적인 중간 언어 코드로 컴파일할 때 특정 지시자를 특정 연산자로 변환한다. 여기서, 특정 지시자는 'sizeof ()'를 말한다. The source file generation unit 210 included in the developer terminal 110 generates a C language based source file. The preprocessing unit 220 included in the developer terminal 110 performs preprocessing on the source file. The independent compilation unit 232 included in the developer terminal 110 compiles the intermediate language code into an independent intermediate language code of the platform. In addition, the independent compilation unit 232 included in the developer terminal 110 converts a source file having a specific indicator into an intermediate language code and then compiles the intermediate language code into an independent intermediate language code of the platform 130. Convert the directive to a specific operator. Here, the specific indicator says 'sizeof ()'.

한편, 중간 언어 변환 장치(120)에 포함된 종속적 컴파일부(234)는 독립적인 중간 언어 코드를 플랫폼(130)의 종속적인 중간 언어 코드로 컴파일한다. 또한, 중간 언어 변환 장치(120)에 포함된 종속적 컴파일부(234)는 독립적인 중간 언어 코드를 플랫폼(130)의 종속적인 중간 언어 코드로 컴파일할 때 독립적인 중간 언어 코드에 포함된 특정 연산자를 플랫폼(130)에 따른 값을 갖는 상수로 변환한다. 또한, 중간 언어 변환 장치(120)에 포함된 종속적인 컴파일부(230)는 독립적인 중간 언어 코드를 종속적인 중간 언어 코드로 컴파일할 때 문법 오류 체크를 수행하며, 확인 결과, 문법 오류 체크에 오류가 없는 경우 실행 파일 생성부(240)에서 실행 파일을 생성한다.Meanwhile, the dependent compilation unit 234 included in the intermediate language conversion apparatus 120 compiles the independent intermediate language code into the dependent intermediate language code of the platform 130. In addition, the dependent compilation unit 234 included in the intermediate language conversion apparatus 120 may perform a specific operator included in the independent intermediate language code when compiling the independent intermediate language code into the dependent intermediate language code of the platform 130. Convert to a constant with a value according to platform 130. In addition, the dependent compilation unit 230 included in the intermediate language conversion apparatus 120 performs a grammatical error check when compiling the independent intermediate language code into the dependent intermediate language code. If there is no executable file generator 240 generates an executable file.

또한, 플랫폼(130)에 포함된 실행 파일 생성부(240)는 컴파일된 중간 언어 코드에 대한 실행 파일을 생성한다. 플랫폼(130)에 포함된 실행 파일 구동부(250)는 실행 파일이 플랫폼(130)에서 구동되도록 한다.In addition, the executable file generator 240 included in the platform 130 generates an executable file for the compiled intermediate language code. The executable file driver 250 included in the platform 130 allows the executable file to be driven on the platform 130.

도 5는 제 4 실시예에 따른 중간 언어 변환 시스템을 개략적으로 나타낸 블럭 구성도이다.5 is a block diagram schematically showing an intermediate language conversion system according to the fourth embodiment.

제 4 실시예에 따른 개발자 단말기(110)는 소스 파일 생성부(210), 전처리 수행부(220), 독립적 컴파일부(232), 종속적 컴파일부(234) 및 실행 파일 생성부(240)를 포함하고, 플랫폼(130)은 실행 파일 구동부(250)를 포함한다. 제 4 실시예에서, 개발자 단말기(110) 및 플랫폼(130)에 포함된 각 모듈은 제 4 실시예의 기술 사상을 예시적으로 설명한 것에 불과한 것으로서, 제 4 실시예가 속하는 기술 분야에서 통상의 지식을 가진 자라면 본질적인 특성에서 벗어나지 않는 범위에서 다양하게 수정 및 변형하여 적용 가능할 것이다.The developer terminal 110 according to the fourth embodiment includes a source file generator 210, a preprocessor 220, an independent compiler 232, a dependent compiler 234, and an executable file generator 240 And the platform 130 includes an executable file driver 250. In the fourth embodiment, each module included in the developer terminal 110 and the platform 130 is merely an exemplary description of the technical idea of the fourth embodiment, and it is not limited to the module having the normal knowledge in the technical field to which the fourth embodiment belongs It will be understood that the invention may be varied in many ways without departing from the essential characteristics thereof.

개발자 단말기(110)에 포함된 소스 파일 생성부(210)는 C 언어 기반의 소스 파일을 생성한다. 개발자 단말기(110)에 포함된 전처리 수행부(220)는 소스 파일에 대한 전처리를 수행한다. 개발자 단말기(110)에 포함된 독립적 컴파일부(232)는 중간 언어 코드를 플랫폼의 독립적인 중간 언어 코드로 컴파일한다. 또한, 개발자 단말기(110)에 포함된 독립적 컴파일부(232)는 특정 지시자를 갖는 소스 파일을 중간 언어 코드로 변환한 후 중간 언어 코드를 플랫폼(130)의 독립적인 중간 언어 코드로 컴파일할 때 특정 지시자를 특정 연산자로 변환한다. 여기서, 특정 지시자는 'sizeof ()'를 말한다. The source file generation unit 210 included in the developer terminal 110 generates a C language based source file. The preprocessing unit 220 included in the developer terminal 110 performs preprocessing on the source file. The independent compilation unit 232 included in the developer terminal 110 compiles the intermediate language code into an independent intermediate language code of the platform. In addition, the independent compilation unit 232 included in the developer terminal 110 converts a source file having a specific indicator into an intermediate language code and then compiles the intermediate language code into an independent intermediate language code of the platform 130. Convert the directive to a specific operator. Here, the specific indicator says 'sizeof ()'.

한편, 개발자 단말기(110)에 포함된 종속적 컴파일부(234)는 독립적인 중간 언어 코드를 플랫폼(130)의 종속적인 중간 언어 코드로 컴파일한다. 또한, 개발자 단말기(110)에 포함된 종속적 컴파일부(234)는 독립적인 중간 언어 코드를 플랫폼(130)의 종속적인 중간 언어 코드로 컴파일할 때 독립적인 중간 언어 코드에 포함된 특정 연산자를 플랫폼(130)에 따른 값을 갖는 상수로 변환한다. 또한, 개발자 단말기(110)에 포함된 종속적인 컴파일부(230)는 독립적인 중간 언어 코드를 종속적인 중간 언어 코드로 컴파일할 때 문법 오류 체크를 수행하며, 확인 결과, 문법 오류 체크에 오류가 없는 경우 개발자 단말기(110)에 포함된 실행 파일 생성부(240)에서 실행 파일을 생성한다. 개발자 단말기(110)에 포함된 실행 파일 생성부(240)는 컴파일된 중간 언어 코드에 대한 실행 파일을 생성한다. 한편, 플랫폼(130)에 포함된 실행 파일 구동부(250)는 실행 파일이 플랫폼(130)에서 구동되도록 한다.Meanwhile, the dependent compiler 234 included in the developer terminal 110 compiles the independent intermediate language code into the dependent intermediate language code of the platform 130. In addition, the dependent compilation unit 234 included in the developer terminal 110 compiles a specific operator included in the independent intermediate language code when the independent intermediate language code is compiled into the dependent intermediate language code of the platform 130. Convert to a constant with a value according to 130). In addition, the dependent compilation unit 230 included in the developer terminal 110 performs a grammatical error check when compiling the independent intermediate language code into the dependent intermediate language code. In this case, the executable file generator 240 included in the developer terminal 110 generates an executable file. The executable file generator 240 included in the developer terminal 110 generates an executable file for the compiled intermediate language code. On the other hand, the executable file driver 250 included in the platform 130 causes the executable file to be run on the platform 130.

도 6은 본 실시예에 따른 중간 언어 변환 방법을 설명하기 위한 순서도이다.6 is a flowchart illustrating an intermediate language conversion method according to the present embodiment.

소스 파일 생성부(210)는 C 언어 기반의 소스 파일을 생성한다(S610). 단계 S610의 소스 파일 생성부(210)는 제 1 실시예 내지 제 4 실시예에 따라 개발자 단말기(110)에 포함될 수 있다. 전처리 수행부(220)는 소스 파일에 대한 전처리를 수행한다(S620). 단계 S620에서의 전처리 수행부(220)는 제 1 실시예에 따라 중간 언어 변환 장치(120)에 포함될 수 있고, 제 2 실시예 내지 제 4 실시예에 따라 개발자 단말기(110)에 포함될 수 있다.The source file generator 210 generates a source file based on the C language (S610). The source file generator 210 of step S610 may be included in the developer terminal 110 according to the first to fourth embodiments. The preprocessing execution unit 220 performs preprocessing on the source file (S620). The preprocessing processor 220 in operation S620 may be included in the intermediate language conversion apparatus 120 according to the first embodiment, or may be included in the developer terminal 110 according to the second to fourth embodiments.

독립적 컴파일부(232) 및 종속적 컴파일부(234)는 소스 파일을 중간 언어 코드로 변환하고, 중간 언어 코드를 플랫폼(130)에 따라 컴파일할 때 특정 지시자가 특정 연산자를 경유하도록 한다(S630). 단계 S630에서의 독립적 컴파일부(232)는 제 1 실시예에 따라 중간 언어 변환 장치(120)에 포함될 수 있고, 제 2 실시예 내지 제 4 실시예에 따라 개발자 단말기(110)에 포함될 수 있다. 한편, 종속적 컴파일부(234)는 제 1 실시예 내지 제 3 실시예에 따라 중간 언어 변환 장치(120)에 포함될 수 있고, 제 4 실시예에 따라 개발자 단말기(110)에 포함될 수 있다.The independent compiling unit 232 and the dependent compiling unit 234 convert the source file into the intermediate language code and allow the specific indicator to pass through the specific operator when compiling the intermediate language code according to the platform 130 (S630). The independent compilation unit 232 in step S630 may be included in the intermediate language conversion apparatus 120 according to the first embodiment, and may be included in the developer terminal 110 according to the second to fourth embodiments. The dependent compiling unit 234 may be included in the intermediate language conversion apparatus 120 according to the first to third embodiments, and may be included in the developer terminal 110 according to the fourth embodiment.

단계 S630에서 독립적 컴파일부(232)는 플랫폼(130)에 독립적인 중간 언어 코드로 변환할 수 있다. 이러한, 중간 언어 코드로의 변환은 미리 저장된 C 언어 기반의 프로그래밍 언어와 중간 언어 코드 사이의 매칭 정보를 이용하여 수행될 수 있다. 그 결과 애플리케이션의 소스 파일을, 특정 CPU 또는 운영 체제에 의존적이지 않은 중간 언어 코드로 변환할 수 있는 것이다. 한편, 단계 S630에서 독립적 컴파일부(232)에서 전처리가 수행된 소스 파일을 플랫폼(130)의 독립적인 중간 언어 코드로 컴파일하는 독립적 컴파일 과정을 거치고, 종속적 컴파일부(234)에서 독립적인 중간 언어 코드를 플랫폼(130)의 종속적인 중간 언어 코드로 컴파일하는 종속적 컴파일 과정을 거친다. 이때, 단계 S630에서, 독립적 컴파일부(232)는 독립적 컴파일 과정을 수행하기 위해 특정 지시자를 갖는 소스 파일을 중간 언어 코드로 변환한 후 중간 언어 코드를 플랫폼(130)의 독립적인 중간 언어 코드로 컴파일할 때 특정 지시자를 특정 연산자로 변환한다. In operation S630, the independent compilation unit 232 may convert the intermediate language code independent of the platform 130. This conversion to the intermediate language code may be performed using matching information between a pre-stored C language based programming language and the intermediate language code. As a result, the application's source files can be translated into intermediate language code that is not dependent on a particular CPU or operating system. On the other hand, the independent compilation process of compiling the source file subjected to the preprocessing in the independent compilation unit 232 to the independent intermediate language code of the platform 130 in step S630, the independent intermediate language code in the dependent compilation unit 234 Is subjected to a dependent compilation process to compile the dependent intermediate language code of the platform 130. In this case, in step S630, the independent compilation unit 232 converts the source file having a specific indicator into the intermediate language code and then compiles the intermediate language code into the independent intermediate language code of the platform 130 to perform the independent compilation process. To convert certain directives to specific operators.

또한, 종속적 컴파일부(234)는 종속적 컴파일 과정을 수행하기 위해 독립적인 중간 언어 코드를 플랫폼의 종속적인 중간 언어 코드로 컴파일할 때 독립적인 중간 언어 코드에 포함된 특정 연산자를 플랫폼(130)에 따른 값을 갖는 상수로 변환한다. 여기서, '상수'는 한번 값을 저장하면 변경이 불가능한 값을 말하며, 변수와 마찬가지로 상수도 값을 저장할 수 있는 메모리 공간을 가지나, 변수와 다르게 데이터의 변경은 불가능하다. 또한, 단계 S630에서 종속적 컴파일부(234)는 종속적인 컴파일 과정을 수행할 때 독립적인 중간 언어 코드를 종속적인 중간 언어 코드로 컴파일할 때 문법 오류 체크를 수행하며, 확인 결과, 문법 오류 체크에 오류가 없는 경우 실행 파일 생성 과정에서 실행 파일을 생성한다. 이때, 특정 지시자는 'sizeof ()'를 말하며, 'sizeof ()'란 피연자의 크기를 바이트 단위로 계산해서 변환하는 연산자를 말한다.In addition, the dependent compilation unit 234 may perform a specific operator included in the independent intermediate language code according to the platform 130 when compiling the independent intermediate language code into the platform dependent intermediate language code to perform the dependent compilation process. Convert to a constant with a value. Here, 'constant' refers to a value that can not be changed once the value is stored. Like the variable, the variable has a memory space for storing the constant value, but data can not be changed unlike the variable. In addition, in step S630, the dependent compilation unit 234 performs a grammar error check when compiling the independent intermediate language code into the dependent intermediate language code when performing the dependent compilation process. If it does not exist, the executable file is created during the executable file creation process. In this case, the specific indicator refers to 'sizeof ()', and 'sizeof ()' refers to an operator that calculates and converts the size of the operand in bytes.

실행 파일 생성부(240)는 컴파일된 중간 언어 코드에 대한 실행 파일을 생성한다(S640). 단계 S640에서 중간 언어 변환 장치(120)는 자동으로 또는 하나 이상의 플랫폼으로부터의 다운로드 요청에 의해, 중간 언어 코드의 형태로 되어 있는 애플리케이션을 해당 플랫폼에 대응되는 실행 파일을 생성할 수 있다. 단계 S640에서의 실행 파일 생성부(240)는 제 1 실시예 및 제 2 실시예에 따라 중간 언어 변환 장치(120)에 포함될 수 있고, 제 3 실시예에 따라 플랫폼(130)에 포함될 수 있고, 제 4 실시예에 따라 개발자 단말기(110)에 포함될 수 있다.The executable file generator 240 generates an executable file for the compiled intermediate language code (S640). In operation S640, the intermediate language conversion apparatus 120 may automatically generate an executable file corresponding to the platform of an application in the form of intermediate language code automatically or by a download request from one or more platforms. The executable file generator 240 in step S640 may be included in the intermediate language conversion apparatus 120 according to the first and second embodiments, and may be included in the platform 130 according to the third embodiment. According to the fourth embodiment, it may be included in the developer terminal 110.

실행 파일 구동부(250)는 실행 파일이 플랫폼(130)에서 구동되도록 한다(S650). 단계 S650에서, 실행 파일 구동부(250)는 하나 이상의 동일하거나 또는 서로 상이한 종류의 플랫폼(130)과 통신할 수 있으며, 플랫폼(130)의 CPU 또는 운영체제 정보 등과 같은 플랫폼의 프로파일을 수신할 수 있다. 즉, 실행 파일 구동부(250)에서 중간 언어 코드가 플랫폼(130)에 대응되는 실행 파일의 형태로 변환되므로, 플랫폼(130)에서는 애플리케이션을 플랫폼(130)에 최적화된 실행파일 등의 형태로 다운로드 또는 실행할 수 있다. 단계 S650에서의 실행 파일 구동부(250)는 제 1 실시예 및 제 4 실시예에 따라 플랫폼(130)에 포함될 수 있다.The executable file driver 250 causes the executable file to be driven on the platform 130 (S650). In operation S650, the executable file driver 250 may communicate with one or more of the same or different types of platforms 130, and may receive a profile of a platform such as CPU or operating system information of the platform 130. That is, since the intermediate language code is converted in the form of an executable file corresponding to the platform 130 in the executable file driver 250, the platform 130 downloads or downloads the application in the form of an executable file optimized for the platform 130 or the like. You can run The executable file driver 250 in operation S650 may be included in the platform 130 according to the first and fourth embodiments.

도 6에서는 단계 S610 내지 단계 S650을 순차적으로 실행하는 것으로 기재하고 있으나, 이는 본 실시예의 기술 사상을 예시적으로 설명한 것에 불과한 것으로서, 본 실시예가 속하는 기술 분야에서 통상의 지식을 가진 자라면 본 실시예의 본질적인 특성에서 벗어나지 않는 범위에서 도 3에 기재된 순서를 변경하여 실행하거나 단계 S610 내지 단계 S650 중 하나 이상의 단계를 병렬적으로 실행하는 것으로 다양하게 수정 및 변형하여 적용 가능할 것이므로, 도 3은 시계열적인 순서로 한정되는 것은 아니다.In FIG. 6, steps S610 to S650 are described as being sequentially executed. However, this is merely illustrative of the technical idea of the present embodiment. 3 may be modified and modified in various manners by changing the order described in FIG. 3 or executing one or more steps of steps S610 to S650 in parallel without departing from the essential characteristics thereof. It is not limited.

전술한 바와 같이 도 6에 기재된 본 실시예에 따른 중간 언어 변환 방법은 프로그램으로 구현되고 컴퓨터로 읽을 수 있는 기록매체에 기록될 수 있다. 본 실시예에 따른 중간 언어 변환 방법을 구현하기 위한 프로그램이 기록되고 컴퓨터가 읽을 수 있는 기록매체는 컴퓨터 시스템에 의하여 읽혀질 수 있는 데이터가 저장되는 모든 종류의 기록장치를 포함한다. 이러한 컴퓨터가 읽을 수 있는 기록매체의 예로는 ROM, RAM, CD-ROM, 자기 테이프, 플로피디스크, 광 데이터 저장장치 등이 있으며, 또한 캐리어 웨이브(예를 들어, 인터넷을 통한 전송)의 형태로 구현되는 것도 포함한다. 또한 컴퓨터가 읽을 수 있는 기록매체는 네트워크로 연결된 컴퓨터 시스템에 분산되어, 분산방식으로 컴퓨터가 읽을 수 있는 코드가 저장되고 실행될 수도 있다. 또한, 본 실시예를 구현하기 위한 기능적인(Functional) 프로그램, 코드 및 코드 세그먼트들은 본 실시예가 속하는 기술분야의 프로그래머들에 의해 용이하게 추론될 수 있을 것이다.As described above, the intermediate language conversion method according to the present embodiment described in FIG. 6 may be implemented in a program and recorded in a computer-readable recording medium. A program for implementing the intermediate language conversion method according to the present embodiment is recorded, and a computer-readable recording medium includes all kinds of recording devices for storing data that can be read by a computer system. Examples of such computer-readable recording media include ROM, RAM, CD-ROM, magnetic tape, floppy disk, optical data storage, etc., and also implemented in the form of a carrier wave (e.g., transmission over the Internet) . The computer readable recording medium may also be distributed over a networked computer system so that computer readable code is stored and executed in a distributed manner. In addition, functional programs, codes, and code segments for implementing the present embodiment can be easily inferred by programmers in the technical field to which the present embodiment belongs.

도 7은 본 실시예에 따른 중간 언어 변환 과정을 설명하기 위한 예시도이다.7 is an exemplary diagram for describing an intermediate language conversion process according to the present embodiment.

도 7의 (A)에 도시된 바와 같이, C 언어 기반의 'sizeof()'는 각각의 플랫폼에 따라 그 값이 달라질 수 있는데, 일반적으로 컴파일 타임에 따라 해당 값이 결정되기 때문에 중간 언어 코드로 변환 시 '상수'로 표현된다. 이는 C 언어 기반의 소스 파일을 독립적인 중간 언어 코드로 변환하는데 문제점으로 작용한다. 즉, 도 7의 (A)에 도시된 바와 같이, 일반적인 컴파일러를 이용하여 sizeof()를 컴파일하는 과정에서 '상수'로 변환(예컨대 'sizeof(a)→4')하고, 이러한 '상수'로 인해 발생할 수 있는 문법 에러들을 컴파일 과정에서 체크한 후 에러가 발생되지 않는 경우 중간 언어 코드로 생성한다. 하지만, 이는 C 언어로부터 특정 플랫폼에 의존적이지 않은 독립적인 중간 언어 코드를 생성하는데 문제점으로 작용할 수 있다.As shown in (A) of FIG. 7, the value of 'sizeof ()' based on the C language may vary according to each platform. In general, since the value is determined at compile time, the intermediate language code When converted, it is expressed as a 'constant'. This presents a problem in converting C language-based source files into independent intermediate language code. That is, as shown in (A) of FIG. 7, in the process of compiling sizeof () using a general compiler, converting to 'constant' (for example, 'sizeof (a) → 4'), and converting this to 'constant' Checks the grammar errors that may occur due to the compilation process and generates an intermediate language code if the error does not occur. However, this can cause problems in generating independent intermediate language code that is not dependent on a particular platform from the C language.

한편, 도 7의 (B)에 도시된 바와 같이, 플랫폼에 따라 값이 다른 값을 갖는 'sizeof()'를 컴파일 과정에서 '상수'가 아닌 '특정 연산자'로 표현한다. 또한, 컴파일 과정에서 관련된 문법 체크 없이 '특정 연산자'가 컴파일된 플랫폼의 독립적인 중간 언어 코드 내에 그대로 유지(예컨대, 'sizeof(a)→sizeof(a)')되며 플랫폼의 독립적인 중간 언어 코드가 플랫폼의 종속적인 중간 언어 코드로 변환될 때 '상수'로 변환(예컨대, 'sizeof(a)→4')된다. 이러한 '상수'로 변환된 후 해당 '상수'로 인해 문법적인 에러가 발생하였는지를 체크하는 과정을 통해 일반적인 컴파일러와 같이 문법 체크 기능을 수행할 수 있다.Meanwhile, as shown in FIG. 7B, 'sizeof ()' having a different value depending on the platform is expressed as a 'specific operator' rather than 'constant' during the compilation process. In addition, 'specific operators' remain within the platform's independent intermediate language code (eg, 'sizeof (a) → sizeof (a)') without the associated grammar check during compilation, and platform independent intermediate language code When converted to platform dependent intermediate language code, it is converted to 'constant' (eg, 'sizeof (a) → 4'). After converting to a 'constant', a process of checking whether a grammatical error has occurred due to the 'constant' may perform a grammar checking function like a general compiler.

이상의 설명은 본 실시예의 기술 사상을 예시적으로 설명한 것에 불과한 것으로서, 본 실시예가 속하는 기술 분야에서 통상의 지식을 가진 자라면 본 실시예의 본질적인 특성에서 벗어나지 않는 범위에서 다양한 수정 및 변형이 가능할 것이다. 따라서, 본 실시예들은 본 실시예의 기술 사상을 한정하기 위한 것이 아니라 설명하기 위한 것이고, 이러한 실시예에 의하여 본 실시예의 기술 사상의 범위가 한정되는 것은 아니다. 본 실시예의 보호 범위는 아래의 청구범위에 의하여 해석되어야 하며, 그와 동등한 범위 내에 있는 모든 기술 사상은 본 실시예의 권리범위에 포함되는 것으로 해석되어야 할 것이다.The foregoing description is merely illustrative of the technical idea of the present embodiment, and various modifications and changes may be made to those skilled in the art without departing from the essential characteristics of the embodiments. Therefore, the present embodiments are to be construed as illustrative rather than restrictive, and the scope of the technical idea of the present embodiment is not limited by these embodiments. The scope of protection of the present embodiment should be construed according to the following claims, and all technical ideas within the scope of equivalents thereof should be construed as being included in the scope of the present invention.

110: 개발자 단말기 120: 중간 언어 변환 장치
130: 플랫폼 210: 소스 파일 생성부
220: 전처리 수행부 230: 컴파일부
240: 실행 파일 생성부 250: 실행 파일 구동부
110: developer terminal 120: intermediate language conversion device
130: platform 210: source file generation unit
220: preprocessing unit 230: compilation unit
240: executable file generating unit 250: executable file driving unit

Claims (15)

C 언어(C-Language) 기반의 소스(Source) 파일을 생성하는 소스 파일 생성 과정;
상기 소스 파일을 중간 언어 코드로 변환하고 상기 중간 언어 코드를 플랫폼(Platform)에 따라 컴파일(Compile)하는 과정으로서, 상기 소스 파일의 특정 지시자를 특정 연산자로 변환하는 과정 및 상기 특정 연산자를 상기 플랫폼에 따른 값을 갖는 상수로 변환하는 과정을 포함하는, 컴파일 과정;
상기 컴파일된 상기 중간 언어 코드에 대한 실행 파일을 생성하는 실행 파일 생성 과정; 및
상기 실행 파일이 상기 플랫폼에서 구동되도록 하는 실행 파일 구동 과정을 포함하는 것을 특징으로 하는 연산자를 이용한 중간 언어 변환 방법.
A source file generation process of generating a C-Language-based source file;
Converting the source file into an intermediate language code and compiling the intermediate language code according to a platform, converting a specific indicator of the source file into a specific operator, and converting the specific operator to the platform A compilation process comprising the step of converting to a constant having a corresponding value;
An executable file generation step of generating an executable file for the compiled intermediate language code; And
Intermediate language conversion method using an operator, characterized in that it comprises an executable file driving process for driving the executable file on the platform.
제 1 항에 있어서,
상기 컴파일 과정은,
상기 중간 언어 코드를 상기 플랫폼의 독립적인 중간 언어 코드로 컴파일하는 독립적 컴파일 과정; 및
상기 독립적인 중간 언어 코드를 상기 플랫폼의 종속적인 중간 언어 코드로 컴파일하는 종속적 컴파일 과정을 포함하는 것을 특징으로 하는 연산자를 이용한 중간 언어 변환 방법.
The method of claim 1,
The compilation process,
An independent compilation process of compiling the intermediate language code into independent intermediate language code of the platform; And
And a dependent compilation process of compiling the independent intermediate language code into the dependent intermediate language code of the platform.
제 2 항에 있어서,
상기 독립적 컴파일 과정은,
상기 특정 지시자를 갖는 상기 소스 파일을 상기 중간 언어 코드로 변환한 후 상기 중간 언어 코드를 상기 플랫폼의 독립적인 중간 언어 코드로 컴파일할 때 상기 특정 지시자를 상기 특정 연산자로 변환하는 것을 특징으로 하는 연산자를 이용한 중간 언어 변환 방법.
3. The method of claim 2,
The independent compilation process,
And converting the source file having the specific indicator into the intermediate language code and then converting the specific indicator into the specific operator when compiling the intermediate language code into an independent intermediate language code of the platform. Intermediate language conversion method.
제 2 항에 있어서,
상기 종속적 컴파일 과정은,
상기 독립적인 중간 언어 코드를 상기 플랫폼의 종속적인 중간 언어 코드로 컴파일할 때 상기 독립적인 중간 언어 코드에 포함된 상기 특정 연산자를 상기 플랫폼에 따른 값을 갖는 상수로 변환하는 것을 특징으로 하는 연산자를 이용한 중간 언어 변환 방법.
3. The method of claim 2,
The dependent compilation process,
When compiling the independent intermediate language code into the dependent intermediate language code of the platform, using the operator, characterized in that for converting the specific operator included in the independent intermediate language code to a constant having a value according to the platform Intermediate language conversion method.
제 4 항에 있어서,
상기 종속적인 컴파일 과정은,
상기 독립적인 중간 언어 코드를 상기 종속적인 중간 언어 코드로 컴파일할 때 문법 오류 체크를 수행하며, 확인 결과, 상기 문법 오류 체크에 오류가 없는 경우 상기 실행 파일 생성 과정에서 상기 실행 파일을 생성하는 것을 특징으로 하는 연산자를 이용한 중간 언어 변환 방법.
5. The method of claim 4,
The dependent compilation process,
When compiling the independent intermediate language code into the dependent intermediate language code, a grammatical error check is performed, and if there is no error in the grammar error check, the executable file is generated during the execution file generation process. Intermediate language conversion method using operator.
제 1 항에 있어서,
상기 특정 지시자는 'sizeof ()'인 것을 특징으로 하는 연산자를 이용한 중간 언어 변환 방법.
The method of claim 1,
The specific indicator is an intermediate language conversion method using an operator, characterized in that 'sizeof ()'.
제 1 항에 있어서,
상기 소스 파일에 대한 전처리(Preprocessing)를 수행하는 전처리 수행 과정
을 추가로 포함하는 것을 특징으로 하는 연산자를 이용한 중간 언어 변환 방법.
The method of claim 1,
Preprocessing process for preprocessing the source file
Intermediate language conversion method using an operator characterized in that it further comprises.
C 언어 기반의 소스 파일을 생성하는 소스 파일 생성부;
상기 소스 파일을 중간 언어 코드로 변환하고 상기 중간 언어 코드를 플랫폼에 따라 컴파일하되, 상기 중간 언어 코드를 컴파일할 때 상기 소스 파일의 특정 지시자를 특정 연산자로 변환하고 상기 특정 연산자를 상기 플랫폼에 따른 값을 갖는 상수로 변환하는 컴파일부;
상기 컴파일된 상기 중간 언어 코드에 대한 실행 파일을 생성하는 실행 파일 생성부; 및
상기 실행 파일이 상기 플랫폼에서 구동되도록 하는 실행 파일 구동부를 포함하는 것을 특징으로 하는 중간 언어 변환 시스템.
A source file generator for generating a C language-based source file;
Convert the source file into an intermediate language code and compile the intermediate language code according to a platform, when converting the specific indicator of the source file into a specific operator and compiling the specific operator into a platform-specific value when compiling the intermediate language code. Compiler for converting to a constant having;
An executable file generator which generates an executable file for the compiled intermediate language code; And
And an executable file driver configured to allow the executable file to be run on the platform.
제 8 항에 있어서,
상기 컴파일부는,
상기 중간 언어 코드를 상기 플랫폼의 독립적인 중간 언어 코드로 컴파일하는 독립적 컴파일부; 및
상기 독립적인 중간 언어 코드를 상기 플랫폼의 종속적인 중간 언어 코드로 컴파일하는 종속적 컴파일부를 포함하는 것을 특징으로 하는 중간 언어 변환 시스템.
The method of claim 8,
The compilation unit,
An independent compiler for compiling the intermediate language code into independent intermediate language code of the platform; And
And a dependent compilation unit for compiling the independent intermediate language code into the dependent intermediate language code of the platform.
제 9 항에 있어서,
상기 독립적 컴파일부는,
상기 특정 지시자를 갖는 상기 소스 파일을 상기 중간 언어 코드로 변환한 후 상기 중간 언어 코드를 상기 플랫폼의 독립적인 중간 언어 코드로 컴파일할 때 상기 특정 지시자를 상기 특정 연산자로 변환하는 것을 특징으로 하는 중간 언어 변환 시스템.
The method of claim 9,
The independent compiling unit,
Converting the source file having the specific indicator into the intermediate language code and then converting the specific indicator into the specific operator when compiling the intermediate language code into an independent intermediate language code of the platform. Conversion system.
제 9 항에 있어서,
상기 종속적 컴파일부는,
상기 독립적인 중간 언어 코드를 상기 플랫폼의 종속적인 중간 언어 코드로 컴파일할 때 상기 독립적인 중간 언어 코드에 포함된 상기 특정 연산자를 상기 플랫폼에 따른 값을 갖는 상수로 변환하는 것을 특징으로 하는 중간 언어 변환 시스템.
The method of claim 9,
The dependent compilation unit,
When the independent intermediate language code is compiled into a dependent intermediate language code of the platform, converting the specific operator included in the independent intermediate language code into a constant having a value according to the platform. system.
제 11 항에 있어서,
상기 종속적인 컴파일부는,
상기 독립적인 중간 언어 코드를 상기 종속적인 중간 언어 코드로 컴파일할 때 문법 오류 체크를 수행하며, 확인 결과, 상기 문법 오류 체크에 오류가 없는 경우 상기 실행 파일 생성부에서 상기 실행 파일을 생성하는 것을 특징으로 하는 중간 언어 변환 시스템.
The method of claim 11,
The dependent compilation unit,
When compiling the independent intermediate language code into the dependent intermediate language code, a grammatical error check is performed, and if there is no error in the grammatical error check, the executable file generation unit generates the executable file. Intermediate language conversion system.
제 8 항에 있어서,
상기 특정 지시자는 'sizeof ()'인 것을 특징으로 하는 중간 언어 변환 시스템.
The method of claim 8,
And the specific indicator is 'sizeof ()'.
제 8 항에 있어서,
상기 소스 파일에 대한 전처리를 수행하는 전처리 수행부를 추가로 포함하는 것을 특징으로 하는 중간 언어 변환 시스템.
The method of claim 8,
And a preprocessing execution unit which performs preprocessing on the source file.
데이터 처리 기기에,
C 언어 기반의 소스 파일을 생성하는 소스 파일 생성 과정;
상기 소스 파일을 중간 언어 코드로 변환하고 상기 중간 언어 코드를 플랫폼에 따라 컴파일하는 과정으로서, 상기 소스 파일의 특정 지시자를 특정 연산자로 변환하는 과정 및 상기 특정 연산자를 상기 플랫폼에 따른 값을 갖는 상수로 변환하는 과정을 포함하는, 컴파일 과정;
상기 컴파일된 상기 중간 언어 코드에 대한 실행 파일을 생성하는 실행 파일 생성 과정; 및
상기 실행 파일이 상기 플랫폼에서 구동되도록 하는 실행 파일 구동 과정을 실현시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체.
In the data processing device,
A source file generation process of generating a source file based on the C language;
Converting the source file into an intermediate language code and compiling the intermediate language code according to a platform, converting a specific indicator of the source file into a specific operator, and converting the specific operator into a constant having a value according to the platform. A compilation process, including a process of converting;
An executable file generation step of generating an executable file for the compiled intermediate language code; And
A computer-readable recording medium having recorded thereon a program for realizing an executable file driving process for causing the executable file to be run on the platform.
KR1020110130292A 2011-12-07 2011-12-07 Method For Transforming Intermediate Language by Using Operator, System And Computer-Readable Recording Medium with Program Therefor KR101349628B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020110130292A KR101349628B1 (en) 2011-12-07 2011-12-07 Method For Transforming Intermediate Language by Using Operator, System And Computer-Readable Recording Medium with Program Therefor

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020110130292A KR101349628B1 (en) 2011-12-07 2011-12-07 Method For Transforming Intermediate Language by Using Operator, System And Computer-Readable Recording Medium with Program Therefor

Publications (2)

Publication Number Publication Date
KR20130063758A KR20130063758A (en) 2013-06-17
KR101349628B1 true KR101349628B1 (en) 2014-01-09

Family

ID=48860986

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020110130292A KR101349628B1 (en) 2011-12-07 2011-12-07 Method For Transforming Intermediate Language by Using Operator, System And Computer-Readable Recording Medium with Program Therefor

Country Status (1)

Country Link
KR (1) KR101349628B1 (en)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002024032A (en) * 2000-06-21 2002-01-25 Microsoft Corp Method and system for compiling plurality of languages
WO2003065179A2 (en) 2002-02-01 2003-08-07 John Fairweather A system and method for mining data
US7219338B2 (en) * 2003-03-25 2007-05-15 Microsoft Corporation Multi-language compilation

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002024032A (en) * 2000-06-21 2002-01-25 Microsoft Corp Method and system for compiling plurality of languages
WO2003065179A2 (en) 2002-02-01 2003-08-07 John Fairweather A system and method for mining data
US7219338B2 (en) * 2003-03-25 2007-05-15 Microsoft Corporation Multi-language compilation

Also Published As

Publication number Publication date
KR20130063758A (en) 2013-06-17

Similar Documents

Publication Publication Date Title
JP6122493B2 (en) Adaptively portable library
CN110096338A (en) Intelligent contract executes method, apparatus, equipment and medium
JP5415557B2 (en) User script code conversion for debugging
US6934940B2 (en) Source code transformation-temporary object reduction
CN110058861B (en) Source code processing method and device, storage medium and electronic equipment
KR101242479B1 (en) System and Method for Providing Application
CN101030241A (en) Method and system based on Keil C51 software protecting development
KR101092373B1 (en) System and method for generating software package and installing the same
US8930925B2 (en) Method for enabling compilation of a Cobol source program utilizing a two-stage compilation process, the Cobol source program including a mix of Cobol, C++ or JAVA statements, and optional OpenMP directives
KR101349631B1 (en) Method For Transforming Intermediate Language, System And Computer-Readable Recording Medium with Program Therefor
EP3738028B1 (en) Reduced instructions to generate global variable addresses
KR101277145B1 (en) Method For Transforming Intermediate Language by Using Common Representation, System And Computer-Readable Recording Medium with Program Therefor
KR101449657B1 (en) Method for transforming intermediate language using range of values of operator, system and computer-readable recording medium with program therefor
KR101349628B1 (en) Method For Transforming Intermediate Language by Using Operator, System And Computer-Readable Recording Medium with Program Therefor
US20170083298A1 (en) Resilient format for distribution of ahead-of-time compiled code components
US9098317B2 (en) Optional retargeting of library references
US20110099534A1 (en) Information processing apparatus, execution program operation modification method, and recording medium
KR101670726B1 (en) Method for code conversion using debugging information of intermediate language code, apparatus and computer-readable recording medium with program therefor
CN114253615B (en) Method and device for setting bootstrap program, electronic equipment and storage medium
KR101598819B1 (en) Method for code conversion using target-independent debugging information, apparatus and computer-readable recording medium with program therefor
KR20110110509A (en) System and method for remote programming
KR101598820B1 (en) Method for distribution of application using hyper text markup language document comprising java script, apparatus and computer-readable recording medium with program therefor
CN117667157A (en) Thermal updating method and system, updating method, medium and equipment for client application
CN113721975A (en) File construction method, system, device, electronic equipment and storage medium
CN112527392A (en) Static translation and static bridging android simulator instruction translation method

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20161226

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20171227

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20190102

Year of fee payment: 6