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

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

Info

Publication number
KR101277145B1
KR101277145B1 KR1020110130293A KR20110130293A KR101277145B1 KR 101277145 B1 KR101277145 B1 KR 101277145B1 KR 1020110130293 A KR1020110130293 A KR 1020110130293A KR 20110130293 A KR20110130293 A KR 20110130293A KR 101277145 B1 KR101277145 B1 KR 101277145B1
Authority
KR
South Korea
Prior art keywords
intermediate language
platform
language code
independent
constant
Prior art date
Application number
KR1020110130293A
Other languages
Korean (ko)
Other versions
KR20130063759A (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 KR1020110130293A priority Critical patent/KR101277145B1/en
Publication of KR20130063759A publication Critical patent/KR20130063759A/en
Application granted granted Critical
Publication of KR101277145B1 publication Critical patent/KR101277145B1/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

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)

Abstract

공통 표현을 이용한 중간 언어 변환 방법과 그를 위한 시스템 및 컴퓨터로 읽을 수 있는 기록매체를 개시한다.
C 언어(C-Language) 기반의 소스(Source) 파일을 생성하는 소스 파일 생성 과정; 상기 소스 파일을 중간 언어 코드로 변환하고, 상기 중간 언어 코드를 플랫폼(Platform)에 따라 컴파일(Compile)할 때 특정 타입을 갖는 상수를 공통 상수를 경유하여 상기 플랫폼에 따른 값을 갖는 상수로 변환되도록 하는 컴파일 과정; 상기 컴파일된 상기 중간 언어 코드에 대한 실행 파일을 생성하는 실행 파일 생성 과정; 및 상기 실행 파일이 상기 플랫폼에서 구동되도록 하는 실행 파일 구동 과정을 포함하는 것을 특징으로 하는 공통 표현을 이용한 중간 언어 변환 방법을 제공한다.
본 실시예에 의하면, 다양한 정보기기의 사용으로 인해 다양한 플랫폼이 이용됨에 따라 특정 플랫폼에 의존적이지 않은 독립적인 중간 언어 코드로 변환한 후 각각의 플랫폼에 해당하는 종속적인 중간 언어 코드로 변환하는 데 이때, C 언어 기반의 특정 타입을 갖는 상수가 독립적인 중간 언어 코드 상에 공통 상수로 표현되도록 하며, 공통 상수가 종속적인 중간 언어 코드 상에 각 플랫폼에 따른 상수로 표현되도록 하는 효과가 있다.
Disclosed are an intermediate language conversion method using a common expression, a system for the same, and a computer-readable recording medium.
A source file generation process of generating a C-Language-based source file; Converting the source file into an intermediate language code and converting the constant language having a specific type into a constant having a value according to the platform via a common constant when compiling the intermediate language code according to a platform. The compilation process; 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 run on the platform.
According to the present embodiment, as a variety of platforms are used due to the use of various information devices, converting into independent intermediate language codes that are not dependent on a specific platform, and then converting into independent intermediate language codes corresponding to each platform. As a result, constants having a specific type based on C language can be expressed as common constants on independent intermediate language codes, and common constants can be expressed as constants for each platform on dependent intermediate language codes.

Description

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

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

이 부분에 기술된 내용은 단순히 본 실시예에 대한 배경 정보를 제공할 뿐 종래기술을 구성하는 것은 아니다.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 include assembly language, and high-level programming languages include COBOL, FORTRAN, Pascal, and intermediate level programming languages include C and C ++ languages. .

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

이러한, 종래의 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호Patent Publication 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. It is a main object to provide an intermediate language conversion method using a common expression for converting to 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; Converting the source file into an intermediate language code and converting the constant language having a specific type into a constant having a value according to the platform via a common constant when compiling the intermediate language code according to a platform. The compilation process; 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 run 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 compiling unit for converting the source file into an intermediate language code and converting a constant having a specific type into a constant having a value corresponding to the platform via a common constant 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 for allowing the executable file to be driven on the platform.

또한, 본 실시에의 다른 측면에 의하면, 데이터 처리 기기에, C 언어(C-Language) 기반의 소스(Source) 파일을 생성하는 소스 파일 생성 과정; 상기 소스 파일을 중간 언어 코드로 변환하고, 상기 중간 언어 코드를 플랫폼(Platform)에 따라 컴파일(Compile)할 때 특정 타입을 갖는 상수를 공통 상수를 경유하여 상기 플랫폼에 따른 값을 갖는 상수로 변환되도록 하는 컴파일 과정; 상기 컴파일된 상기 중간 언어 코드에 대한 실행 파일을 생성하는 실행 파일 생성 과정; 및 상기 실행 파일이 상기 플랫폼에서 구동되도록 하는 실행 파일 구동 과정을 실현시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체를 제공한다.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; Converting the source file into an intermediate language code and converting the constant language having a specific type into a constant having a value according to the platform via a common constant when compiling the intermediate language code according to a platform. The compilation process; 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 due 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, a constant having a specific type based on C language is expressed as a common constant on an independent intermediate language code, and a common constant is expressed as a constant for each platform on a dependent intermediate language code. There is.

또한, 본 실시예에 의하면, 플랫폼에 따라 값을 가지는 C 언어 기반의 특정 타입(type())을 갖는 상수를 공통 상수로 독립적인 중간 언어 코드로 표현 가능하게 함으로써, 독립적인 중간 코드의 이식성(Portability)을 향상시킬 수 있는 효과가 있다.In addition, according to the present embodiment, the portability of the independent intermediate code can be expressed by allowing a constant having a specific type (type ()) based on the C language having a value according to the platform to be expressed as an independent intermediate language code as a common constant. It has the effect of improving portability.

도 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;
2 is a block diagram schematically illustrating an intermediate language conversion system according to a first embodiment;
3 is a block diagram schematically illustrating an intermediate language conversion system according to a second embodiment;
4 is a block diagram schematically illustrating an intermediate language conversion system according to a third embodiment;
5 is a block diagram schematically illustrating an intermediate language conversion system according to a 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. Accordingly, each platform 130 receives and executes an executable file from the intermediate language conversion apparatus 120 to drive.

한편, 도 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. Accordingly, each platform 130 receives and executes an executable file from the developer terminal 110 to drive the platform.

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

개발자 단말기(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 언어 기반의 프로그래밍 언어와 플랫폼의 독립적인 중간 언어 사이의 변환 규칙이 정의되어 있는 매핑 정보를 저장할 수 있다. 예를 들어, 제 1 실시예에 따른 중간 언어 변환 장치(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 according to the first embodiment 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 may convert the C language-based source file into the intermediate language code using this mapping information.

예를 들어, C 언어에서 사용하는 "int" 라는 타입(Type) 지시자는 16비트(Bit) 머신 플랫폼에서는 16비트 크기를 의미하는 반면 32 비트 머신 플랫폼에서는 32 비트 크기를 의미한다. 이러한 이유 때문에 C 언어를 이용하여 애플리케이션을 작성하는 경우 애플리케이션이 사용될 플랫폼의 사양에 맞추어 "int" 지시자를 사용해야 한다. 또한, C 언어에서 사용하는 "long double" 이라는 타입(Type) 지시자는 각 아키텍쳐 별로 다른 인코딩 방법을 가지고 있다. 이러한 이유로 인해 C 언어를 이용하여 애플리케이션을 작성하는 경우 애플리케이션이 사용될 플랫폼의 사양에 맞추어 "long double" 지시자를 사용해야 한다. 본 실시예들에서는 C 언어의 "int", "long double" 같은 지시자들이 이에 대응되는 중간 언어 코드로 변환되어 배포되며, 추후 중간 언어 코드의 컴파일시에 플랫폼이 16비트 머신인지 또는 32비트 머신인지 또는 어떤 "long double" 인코딩 방법을 사용하는지에 따라 중간 언어 코드를 적절한 비트 크기 및 적절한 인코딩 방법을 의미하는 바이너리 코드로 컴파일할 수 있다.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 addition, the type indicator "long double" used in C language has a different encoding method for each architecture. For this reason, when writing an application using the C language, you must use the "long double" directive in accordance with the specifications of the platform on which the application will be used. In the present embodiments, indicators such as "int" and "long double" of the C language are converted into corresponding intermediate language codes and distributed, and when the intermediate language code is compiled, the platform is a 16-bit machine or a 32-bit machine. Alternatively, depending on which "long double" encoding method is used, the intermediate language code can be compiled into binary code, which means the appropriate bit size and the appropriate encoding method.

한편, 제 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 may receive a source file from the developer terminal 110 (eg, using a communication network, etc.), and also communicate with the platform 130 (eg, a communication network, etc.). Can be used). 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, the platform 130 may use the same processing device or the same operating system, but different processing You can also use a device or operating system. 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. In this case, the converted binary code may be in the form of an executable file executable on the platform 130. For example, when the platform 130 uses a Windows operating system, the binary code may be an executable file having 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 interpreter for generating intermediate language codes into various types of executable files. The intermediate language interpreter may compile independent intermediate language code of the platform 130 and convert the intermediate language code into binary code of an optimized form for each platform. To this end, the intermediate language interpreter may include means for converting the intermediate language code into binary code for each type of a 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 and variable processing by using the profile of the platform 130 to transmit the executable file, thereby converting the intermediate language code into the binary code optimized for the platform 130 (eg, , Executable files).

제 1 실시예에 따른 중간 언어 변환 장치(120)는 C 언어 기반의 소스 파일을 생성하거나, 개발자 단말기(110)로부터 C 언어 기반의 소스 파일을 수신한다. 소스 파일에 대한 전처리를 수행하며, 전처리가 수행된 소스 파일을 중간 언어 코드로 변환하고, 중간 언어 코드를 플랫폼(130)에 따라 컴파일할 때 특정 타입을 갖는 상수를 공통 상수를 경유하여 플랫폼(130)에 따른 값을 갖는 상수로 변환되도록 하며, 컴파일된 중간 언어 코드에 대한 실행 파일을 생성하며, 실행 파일이 플랫폼(130)에서 구동되도록 한다. 여기서, 본 실시예에 따른 '공통 상수'란 각각의 플랫폼에 따라 다른 값을 갖는 변수에 대한 초기화 값으로 이용되는 상수를 어떠한 플랫폼으로 변환 가능하도록 공통적인 표현법으로 표현한 상수를 일컫는다. 예컨대, 제 1 플랫폼이 x86-32bit를 지원하고, 제 2 플랫폼이 x86-64bit 또는 x64-64bit를 지원할 때 '공통 상수'는 제 1 플랫폼과 제 2 플랫폼으로 모두 변환 가능한 포맷(Format)을 갖는다.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. Performs preprocessing on the source file, converts the preprocessed source file into the intermediate language code, and when compiling the intermediate language code according to the platform 130, the constant having a specific type is passed through the platform 130 through the common constant. It is converted into a constant having a value according to), generates an executable file for the compiled intermediate language code, and causes the executable file to run on the platform 130. Here, the 'common constant' according to the present embodiment refers to a constant expressed by a common expression so that the constant used as an initialization value for a variable having a different value according to each platform can be converted to any platform. For example, when the first platform supports x86-32bit and the second platform supports x86-64bit or x64-64bit, the 'common constant' has a format convertible to both the first platform and the second platform.

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

한편, 라이브러리는 소프트웨어를 만들 때 쓰이는 클래스나 서브루틴들의 모임으로서, 누구나 가져다 쓸 수 있도록 만들어져 있는 기본적으로 제공되는 함수를 포함한다. 이러한, 라이브러리는 '정적 라이브러리'와 '동적 라이브러리'를 포함하는데, 정적 라이브러리는 컴파일러가 소스 파일을 컴파일할 때 참조되는 프로그램 모듈이다. 즉, 정적 라이브러리(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 'compile' described in this embodiment refers to a process of interpreting a computer language that can be understood by a person and a machine language that can be understood by a machine. Turbo C, Borland C ++, and Visual Basic, which are generally called computer language programs, are compiler programs that make computer programs using computer language programs. This compilation process can be performed using a 'compiler', which is a program that translates source files into machine language. The C language compiler is a program that translates instructions written according to the C language syntax into machine language that can be understood by a computer. In other words, the compiler translates what is written in numbers and letters into machine language, a language that the machine can understand so that people can recognize it.

이때, 제 1 실시예에 따른 중간 언어 변환 장치(120)는 독립적 컴파일 과정을 수행하기 위해 특정 타입을 갖는 소스 파일을 중간 언어 코드로 변환한 후 중간 언어 코드를 플랫폼(130)의 독립적인 중간 언어 코드로 컴파일할 때 특정 타입을 갖는 상수를 공통 상수로 변환한다. 또한, 제 1 실시예에 따른 중간 언어 변환 장치(120)는 종속적 컴파일 과정을 수행하기 위해 독립적인 중간 언어 코드를 플랫폼의 종속적인 중간 언어 코드로 컴파일할 때 독립적인 중간 언어 코드에 포함된 공통 상수를 플랫폼(130)에 따른 값을 갖는 상수로 변환한다. 여기서, '상수'는 한번 값을 저장하면 변경이 불가능한 값을 말하며, 변수와 마찬가지로 상수도 값을 저장할 수 있는 메모리 공간을 가지나, 변수와 다르게 데이터의 변경은 불가능하다. 한편, 중간 언어 변환 장치(120)는 종속적인 컴파일 과정을 수행할 때 독립적인 중간 언어 코드를 종속적인 중간 언어 코드로 컴파일할 때 문법 오류 체크를 수행하며, 확인 결과, 문법 오류 체크에 오류가 없는 경우 실행 파일 생성 과정에서 실행 파일을 생성한다. 이때, 특정 타입이란 'type ()'를 말하며, 'type ()'란 인수의 형을 지정하는 일종의 지시자를 말한다.In this case, the intermediate language conversion apparatus 120 according to the first embodiment converts a source file having a specific type 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 with code, convert a constant with a specific type into a common constant. In addition, the intermediate language conversion apparatus 120 according to the first embodiment includes a common constant included in the independent intermediate language code when compiling the independent intermediate language code into the dependent intermediate language code of the platform to perform the dependent compilation process. Is converted into a constant having a value according to the platform 130. Here, 'constant' means a value that cannot be changed once a value is stored. Like a variable, a constant has a memory space for storing a value, but unlike a variable, data cannot be changed. 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 type refers to 'type ()', and 'type ()' refers to a kind of indicator that specifies the type of the argument.

한편, 제 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 the source file from the developer terminal 110, converts it into the intermediate language code, and compiles it into a form corresponding to the platform 130 connected to the corresponding application store. Afterwards, the application may be transferred to the 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 and runs an executable file from the intermediate language conversion apparatus 120. 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. On the other hand, each platform 130 according to the fourth embodiment is driven by receiving the executable file from the developer terminal 110.

도 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 preprocessing unit 220, a compiling unit 230, an executable file generator 240, and an executable file driver 250. In the first embodiment, the intermediate language conversion apparatus 120 is described as including only the source file generator 210, the preprocessing processor 220, the compiler 230, and the executable file generator 240. The technical ideas of the first exemplary embodiment are merely described by way of example, and those of ordinary skill in the art to which the first exemplary embodiment belongs may be included in the intermediate language conversion apparatus 120 without departing from the essential characteristics of the first exemplary embodiment. Various modifications and variations to the components to be applied will be applicable. Here, the source file generator 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 generator 210 included in the developer terminal 110 generates a source file based on the C language. At this time, the preprocessing unit 220 included in the intermediate language conversion apparatus 120 performs preprocessing on the source file.

중간 언어 변환 장치(120)에 포함된 컴파일부(230)는 전처리가 수행된 소스 파일을 중간 언어 코드로 변환하고, 중간 언어 코드를 플랫폼에 따라 컴파일할 때 특정 타입을 갖는 상수를 공통 상수를 경유하여 플랫폼(130)에 따른 값을 갖는 상수로 변환되도록 한다. 여기서, 특정 타입이란 'type ()'를 말한다. 이러한, 중간 언어 변환 장치(120)에 포함된 컴파일부(230)는 독립적 컴파일부(232)와 종속적 컴파일부(234)를 포함하는데, 이러한 독립적 컴파일부(232)와 종속적 컴파일부(234)에 대해 각각 설명하자면 다음과 같다. 독립적 컴파일부(232)는 중간 언어 코드를 플랫폼의 독립적인 중간 언어 코드로 컴파일한다. 또한, 독립적 컴파일부(232)는 특정 타입을 갖는 소스 파일을 중간 언어 코드로 변환한 후 중간 언어 코드를 플랫폼(130)의 독립적인 중간 언어 코드로 컴파일할 때 특정 타입을 갖는 상수를 공통 상수로 변환한다. 한편, 종속적 컴파일부(234)는 독립적인 중간 언어 코드를 플랫폼(130)의 종속적인 중간 언어 코드로 컴파일한다. 또한, 종속적 컴파일부(234)는 독립적인 중간 언어 코드를 플랫폼(130)의 종속적인 중간 언어 코드로 컴파일할 때 독립적인 중간 언어 코드에 포함된 공통 상수를 플랫폼(130)에 따른 값을 갖는 상수로 변환한다. 또한, 종속적인 컴파일부(230)는 독립적인 중간 언어 코드를 종속적인 중간 언어 코드로 컴파일할 때 문법 오류 체크를 수행하며, 확인 결과, 문법 오류 체크에 오류가 없는 경우 실행 파일 생성부(240)에서 실행 파일을 생성한다.Compiler 230 included in the intermediate language conversion apparatus 120 converts the source file subjected to preprocessing into intermediate language code, and when the intermediate language code is compiled according to the platform, the constant having a specific type is passed through the common constant. To be converted into a constant having a value according to platform 130. Here, the specific type refers to 'type ()'. 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 compilation unit 232 converts a source file having a specific type into an intermediate language code and then compiles the constant having a specific type into a common constant when compiling the intermediate language code into an independent intermediate language code of the platform 130. Convert. 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 compiling unit 234 is a constant having a value according to the platform 130 a common constant 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 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 allows the executable file to be driven on the platform 130.

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

제 2 실시예에 따른 개발자 단말기(110)는 소스 파일 생성부(210), 전처리 수행부(220) 및 독립적 컴파일부(232)를 포함하고, 중간 언어 변환 장치(120)는 종속적 컴파일부(234) 및 실행 파일 생성부(240)를 포함하고, 플랫폼(130)은 실행 파일 구동부(240)를 포함한다. 제 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 240. In the second 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 second embodiment, and the second embodiment belongs to the present invention. Those skilled in the art will be able to apply various modifications and variations without departing from the essential characteristics.

개발자 단말기(110)에 포함된 소스 파일 생성부(210)는 C 언어 기반의 소스 파일을 생성한다. 개발자 단말기(110)에 포함된 전처리 수행부(220)는 소스 파일에 대한 전처리를 수행한다. 개발자 단말기(110)에 포함된 독립적 컴파일부(232)는 중간 언어 코드를 플랫폼의 독립적인 중간 언어 코드로 컴파일한다. 또한, 개발자 단말기(110)에 포함된 독립적 컴파일부(232)는 특정 타입을 갖는 소스 파일을 중간 언어 코드로 변환한 후 중간 언어 코드를 플랫폼(130)의 독립적인 중간 언어 코드로 컴파일할 때 특정 타입을 갖는 상수를 공통 상수로 변환한다. 여기서, 특정 타입은 'type ()'를 말한다. The source file generator 210 included in the developer terminal 110 generates a source file based on the C language. 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 type into an intermediate language code and then compiles the intermediate language code into an independent intermediate language code of the platform 130. Convert a constant with a type to a common constant. Here, the specific type refers to 'type ()'.

한편, 중간 언어 변환 장치(120)에 포함된 종속적 컴파일부(234)는 독립적인 중간 언어 코드를 플랫폼(130)의 종속적인 중간 언어 코드로 컴파일한다. 또한, 중간 언어 변환 장치(120)에 포함된 종속적 컴파일부(234)는 독립적인 중간 언어 코드를 플랫폼(130)의 종속적인 중간 언어 코드로 컴파일할 때 독립적인 중간 언어 코드에 포함된 공통 상수를 플랫폼(130)에 따른 값을 갖는 상수로 변환한다. 또한, 종속적인 컴파일부(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 compiling unit 234 included in the intermediate language conversion apparatus 120 may generate a common constant 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 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. 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 allows the executable file to be driven on the platform 130.

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

제 3 실시예에 따른 개발자 단말기(110)는 소스 파일 생성부(210), 전처리 수행부(220) 및 독립적 컴파일부(232)를 포함하고, 중간 언어 변환 장치(120)는 종속적 컴파일부(234)를 포함하고, 플랫폼(130)은 실행 파일 생성부(240) 및 실행 파일 구동부(240)를 포함한다. 제 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 240. 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, and the third embodiment belongs to. Those skilled in the art will be able to apply various modifications and variations without departing from the essential characteristics.

개발자 단말기(110)에 포함된 소스 파일 생성부(210)는 C 언어 기반의 소스 파일을 생성한다. 개발자 단말기(110)에 포함된 전처리 수행부(220)는 소스 파일에 대한 전처리를 수행한다. 개발자 단말기(110)에 포함된 독립적 컴파일부(232)는 중간 언어 코드를 플랫폼의 독립적인 중간 언어 코드로 컴파일한다. 또한, 개발자 단말기(110)에 포함된 독립적 컴파일부(232)는 특정 타입을 갖는 소스 파일을 중간 언어 코드로 변환한 후 중간 언어 코드를 플랫폼(130)의 독립적인 중간 언어 코드로 컴파일할 때 특정 타입을 갖는 상수를 공통 상수로 변환한다. 여기서, 특정 타입은 'type ()'를 말한다. The source file generator 210 included in the developer terminal 110 generates a source file based on the C language. 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 type into an intermediate language code and then compiles the intermediate language code into an independent intermediate language code of the platform 130. Convert a constant with a type to a common constant. Here, the specific type refers to 'type ()'.

한편, 중간 언어 변환 장치(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 compiling unit 234 included in the intermediate language conversion apparatus 120 may generate a common constant 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 illustrating an intermediate language conversion system according to a fourth embodiment.

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

개발자 단말기(110)에 포함된 소스 파일 생성부(210)는 C 언어 기반의 소스 파일을 생성한다. 개발자 단말기(110)에 포함된 전처리 수행부(220)는 소스 파일에 대한 전처리를 수행한다. 개발자 단말기(110)에 포함된 독립적 컴파일부(232)는 중간 언어 코드를 플랫폼의 독립적인 중간 언어 코드로 컴파일한다. 또한, 개발자 단말기(110)에 포함된 독립적 컴파일부(232)는 특정 타입을 갖는 소스 파일을 중간 언어 코드로 변환한 후 중간 언어 코드를 플랫폼(130)의 독립적인 중간 언어 코드로 컴파일할 때 특정 타입을 갖는 상수를 공통 상수로 변환한다. 여기서, 특정 타입은 'type ()'를 말한다.The source file generator 210 included in the developer terminal 110 generates a source file based on the C language. 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 type into an intermediate language code and then compiles the intermediate language code into an independent intermediate language code of the platform 130. Convert a constant with a type to a common constant. Here, the specific type refers to 'type ()'.

한편, 개발자 단말기(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 the common constants 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. Meanwhile, the executable file driver 250 included in the platform 130 allows the executable file to be driven 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)에 따라 컴파일할 때 특정 타입을 갖는 상수가 공통 상수를 경유하여 플랫폼(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 when the intermediate language code is compiled according to the platform 130, a constant having a specific type is passed through the platform via a common constant. 130 to be converted to a constant having a value according to (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. The result is that the application's source files can be converted into intermediate language code that is not dependent on any 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 a source file having a specific type into an intermediate language code and then compiles the intermediate language code into an independent intermediate language code of the platform 130 to perform an independent compilation process. When converting a constant with a specific type to a common constant.

또한, 종속적 컴파일부(234)는 종속적 컴파일 과정을 수행하기 위해 독립적인 중간 언어 코드를 플랫폼의 종속적인 중간 언어 코드로 컴파일할 때 독립적인 중간 언어 코드에 포함된 공통 상수를 플랫폼(130)에 따른 값을 갖는 상수로 변환한다. 여기서, '상수'는 한번 값을 저장하면 변경이 불가능한 값을 말하며, 변수와 마찬가지로 상수도 값을 저장할 수 있는 메모리 공간을 가지나, 변수와 다르게 데이터의 변경은 불가능하다. 또한, 단계 S630에서 종속적 컴파일부(234)는 종속적인 컴파일 과정을 수행할 때 독립적인 중간 언어 코드를 종속적인 중간 언어 코드로 컴파일할 때 문법 오류 체크를 수행하며, 확인 결과, 문법 오류 체크에 오류가 없는 경우 실행 파일 생성 과정에서 실행 파일을 생성한다. 이때, 특정 타입은 'type ()'를 말하며, 'type ()'란 인수의 형을 지정하는 일종의 지시자를 말한다.In addition, the dependent compiling unit 234 compiles the common constants 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' means a value that cannot be changed once a value is stored. Like a variable, a constant has a memory space for storing a value, but unlike a variable, data cannot be changed. 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 type refers to 'type ()', and 'type ()' refers to a kind of indicator that specifies the type of the argument.

실행 파일 생성부(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.

실행 파일 구동부(240)는 실행 파일이 플랫폼(130)에서 구동되도록 한다(S650). 단계 S650에서, 실행 파일 구동부(240)는 하나 이상의 동일하거나 또는 서로 상이한 종류의 플랫폼(130)과 통신할 수 있으며, 플랫폼(130)의 CPU 또는 운영체제 정보 등과 같은 플랫폼의 프로파일을 수신할 수 있다. 즉, 실행 파일 구동부(240)에서 중간 언어 코드가 플랫폼(130)에 대응되는 실행 파일의 형태로 변환되므로, 플랫폼(130)에서는 애플리케이션을 플랫폼(130)에 최적화된 실행파일 등의 형태로 다운로드 또는 실행할 수 있다. 단계 S650에서의 실행 파일 구동부(240)는 제 1 실시예 및 제 4 실시예에 따라 플랫폼(130)에 포함될 수 있다.The executable file driver 240 allows the executable file to be driven on the platform 130 (S650). In operation S650, the executable file driver 240 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 240, 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 240 in operation S650 may be included in the platform 130 according to the first and fourth embodiments.

도 3에서는 단계 S610 내지 단계 S650을 순차적으로 실행하는 것으로 기재하고 있으나, 이는 본 실시예의 기술 사상을 예시적으로 설명한 것에 불과한 것으로서, 본 실시예가 속하는 기술 분야에서 통상의 지식을 가진 자라면 본 실시예의 본질적인 특성에서 벗어나지 않는 범위에서 도 3에 기재된 순서를 변경하여 실행하거나 단계 S610 내지 단계 S650 중 하나 이상의 단계를 병렬적으로 실행하는 것으로 다양하게 수정 및 변형하여 적용 가능할 것이므로, 도 3은 시계열적인 순서로 한정되는 것은 아니다.In FIG. 3, steps S610 to S650 are described as being sequentially executed. However, this is merely illustrative of the technical idea of the present embodiment, and those of ordinary skill in the art to which the present embodiment pertains will be described. 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. The computer-readable recording medium having recorded thereon a program for implementing the intermediate language conversion method according to the present embodiment 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. Also, functional programs, codes, and code segments for implementing the present embodiment may be easily inferred by programmers in the art 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 언어에서 제공하는 '변수'에 대한 초기화 값들로 이용되는 '상수'들은 각각의 플랫폼에 따른 다른 크기 또는 인코딩(Encording) 값을 가질 수 있다. 예컨대, 'long type 변수'의 초기화값에 이용되는 '상수'는 x86-32bit에서는 32bit 크기를 가지며, x86-64bit 또는 x64-64bit에서는 64bit 크기를 가진다. 또한, 이러한 크기에 따라 '상수'의 인코딩 값도 달라지는데, 이렇게 변할 수 있는 '상수'들은 플랫폼의 독립적인 중간 언어 코드를 형성하는데 문제점으로 작용한다. 즉, 도 4의 (A)에 도시된 바와 같이, 일반적인 컴파일러는 '변수'에 대한 초기화 값들로 이용되는 '상수(oxffffffff)'들로 인해 발생할 수 있는 문법 에러들을 컴파일 과정에서 체크한 후 에러가 발생되지 않은 경우 중간 언어 코드로 생성한다.As shown in FIG. 7A, 'constants' used as initialization values for 'variables' provided by the C language may have different sizes or encoding values according to respective platforms. For example, the 'constant' used for the initialization value of the 'long type variable' has a size of 32 bits in x86-32bit and a size of 64bit in x86-64bit or x64-64bit. In addition, depending on the size, the encoding value of the 'constant' is also changed. The 'constant', which can be changed, is a problem in forming an intermediate language code independent of the platform. That is, as shown in (A) of FIG. 4, the general compiler checks grammatical errors that may occur due to 'oxffffffff' used as initialization values for 'variables' in the compilation process. If not generated, the intermediate language code is generated.

한편, 도 7의 (B)에 도시된 바와 같이, 플랫폼에 따라 다른 값을 갖는 '변수'에 대한 초기화 값들로 이용되는 '특정 타입을 갖는 상수(oxffffffff)'들을 위해 모든 플랫폼의 '상수'들로 변환 가능한 공통적인 표현법의 상수인 '공통 상수(oxffffffff→oxffffffffffffffff)'를 플랫폼의 독립적인 중간 코드에 이용한다. 본 실시예에 따른 '공통 상수'란 각각의 플랫폼에 따라 다른 값을 갖는 변수에 대한 초기화 값으로 이용되는 상수를 어떠한 플랫폼으로 변환 가능하도록 공통적인 표현법으로 표현한 상수를 일컫는다. 예컨대, 제 1 플랫폼이 x86-32bit를 지원하고, 제 2 플랫폼이 x86-64bit 또는 x64-64bit를 지원할 때 '공통 상수'는 제 1 플랫폼과 제 2 플랫폼으로 모두 변환 가능한 포맷(Format)을 갖는다. 또한, 컴파일 과정에서 관련된 문법체크 없이 '공통 상수(oxffffffffffffffff)'는 컴파일된 플랫폼의 독립적인 중간 언어 코드 내에 그대로 유지되며, 플랫폼의 독립적인 중간 언어 코드가 플랫폼의 종속적인 중간 언어 코드로 변환될 때 각 플랫폼에 맞는 크기와 인코딩으로 변환된다. 변환이 완료된 후 변환된 '플랫폼(130)에 따른 값을 갖는 상수(oxffffffffffffffff→oxffffffff)'로 인해 문법적인 에러가 발생하였는지를 체크하는 과정을 통해 일반적인 컴파일러와 같이 문법 체크 기능을 수행할 수 있다.Meanwhile, as shown in (B) of FIG. 7, 'constants' of all platforms for 'oxffffffff' having specific types used as initialization values for 'variables' having different values depending on the platform. We use the common constant (oxffffffff → oxffffffffffffffff), which is a constant of the common notation that can be transformed into. The 'common constant' according to the present embodiment refers to a constant expressed by a common expression so that the constant used as an initialization value for a variable having a different value according to each platform can be converted to any platform. For example, when the first platform supports x86-32bit and the second platform supports x86-64bit or x64-64bit, the 'common constant' has a format convertible to both the first platform and the second platform. In addition, the common constant (oxffffffffffffffff) remains intact within the compiled platform's independent intermediate language code without any grammar checks involved in the compilation process. It is converted to the size and encoding for each platform. After the conversion is completed, the syntax check function may be performed like a general compiler by checking whether a grammatical error occurs due to the constant 'oxffffffffffffffff → oxffffffff' having a value according to the converted platform 130.

이상의 설명은 본 실시예의 기술 사상을 예시적으로 설명한 것에 불과한 것으로서, 본 실시예가 속하는 기술 분야에서 통상의 지식을 가진 자라면 본 실시예의 본질적인 특성에서 벗어나지 않는 범위에서 다양한 수정 및 변형이 가능할 것이다. 따라서, 본 실시예들은 본 실시예의 기술 사상을 한정하기 위한 것이 아니라 설명하기 위한 것이고, 이러한 실시예에 의하여 본 실시예의 기술 사상의 범위가 한정되는 것은 아니다. 본 실시예의 보호 범위는 아래의 청구범위에 의하여 해석되어야 하며, 그와 동등한 범위 내에 있는 모든 기술 사상은 본 실시예의 권리범위에 포함되는 것으로 해석되어야 할 것이다.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 (13)

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 converting the constant language having a specific type into a constant having a value according to the platform via a common constant when compiling the intermediate language code according to a platform. The compilation process;
An executable file generation step of generating an executable file for the compiled intermediate language code; And
Intermediate language conversion method using a common expression comprising the step of driving the executable file to run 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,
Converting the source file having the specific type into the intermediate language code and then converting the constant having the specific type into the common constant when compiling the intermediate language code into an independent intermediate language code of the platform. Intermediate language conversion method using a common expression.
제 2 항에 있어서,
상기 종속적 컴파일 과정은,
상기 독립적인 중간 언어 코드를 상기 플랫폼의 종속적인 중간 언어 코드로 컴파일할 때 상기 독립적인 중간 언어 코드에 포함된 상기 공통 상수를 상기 플랫폼에 따른 값을 갖는 상수로 변환하는 것을 특징으로 하는 공통 표현을 이용한 중간 언어 변환 방법.
3. The method of claim 2,
The dependent compilation process,
When the independent intermediate language code is compiled into a dependent intermediate language code of the platform, the common expression included in the independent intermediate language code is converted into a constant having a value according to the platform. Intermediate language conversion method used.
제 4 항에 있어서,
상기 종속적인 컴파일 과정은,
상기 독립적인 중간 언어 코드를 상기 종속적인 중간 언어 코드로 컴파일할 때 문법 오류 체크를 수행하며, 확인 결과, 상기 문법 오류 체크에 오류가 없는 경우 상기 실행 파일 생성 과정에서 상기 실행 파일을 생성하는 것을 특징으로 하는 공통 표현을 이용한 중간 언어 변환 방법.
The method of claim 4, wherein
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 a common expression.
제 1 항에 있어서,
상기 소스 파일에 대한 전처리(Preprocessing)를 수행하는 전처리 수행 과정을 추가로 포함하는 것을 특징으로 하는 공통 표현을 이용한 중간 언어 변환 방법.
The method of claim 1,
The intermediate language conversion method using a common expression, characterized in that it further comprises a preprocessing step of performing a preprocessing for the source file.
C 언어 기반의 소스 파일을 생성하는 소스 파일 생성부;
상기 소스 파일을 중간 언어 코드로 변환하고, 상기 중간 언어 코드를 플랫폼에 따라 컴파일할 때 특정 타입을 갖는 상수를 공통 상수를 경유하여 상기 플랫폼에 따른 값을 갖는 상수로 변환되도록 하는 컴파일부;
상기 컴파일된 상기 중간 언어 코드에 대한 실행 파일을 생성하는 실행 파일 생성부; 및
상기 실행 파일이 상기 플랫폼에서 구동되도록 하는 실행 파일 구동부를 포함하는 것을 특징으로 하는 중간 언어 변환 시스템.
A source file generator for generating a C language-based source file;
A compiling unit for converting the source file into an intermediate language code and converting a constant having a specific type into a constant having a value corresponding to the platform via a common constant 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
And an executable file driver configured to allow the executable file to be run on the platform.
제 7 항에 있어서,
상기 컴파일부는,
상기 중간 언어 코드를 상기 플랫폼의 독립적인 중간 언어 코드로 컴파일하는 독립적 컴파일부; 및
상기 독립적인 중간 언어 코드를 상기 플랫폼의 종속적인 중간 언어 코드로 컴파일하는 종속적 컴파일부를 포함하는 것을 특징으로 하는 중간 언어 변환 시스템.
The method of claim 7, wherein
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.
제 8 항에 있어서,
상기 독립적 컴파일부는,
상기 특정 타입을 갖는 상기 소스 파일을 상기 중간 언어 코드로 변환한 후 상기 중간 언어 코드를 상기 플랫폼의 독립적인 중간 언어 코드로 컴파일할 때 상기 특정 타입을 갖는 상수를 상기 공통 상수로 변환하는 것을 특징으로 하는 중간 언어 변환 시스템.
The method of claim 8,
The independent compilation unit,
Converting the source file having the specific type into the intermediate language code and then converting the constant having the specific type into the common constant when compiling the intermediate language code into an independent intermediate language code of the platform. Intermediate language conversion system.
제 8 항에 있어서,
상기 종속적 컴파일부는,
상기 독립적인 중간 언어 코드를 상기 플랫폼의 종속적인 중간 언어 코드로 컴파일할 때 상기 독립적인 중간 언어 코드에 포함된 상기 공통 상수를 상기 플랫폼에 따른 값을 갖는 상수로 변환하는 것을 특징으로 하는 중간 언어 변환 시스템.
The method of claim 8,
The dependent compilation unit,
When compiling the independent intermediate language code into the dependent intermediate language code of the platform, converting the common constant included in the independent intermediate language code into a constant having a value according to the platform. system.
제 10 항에 있어서,
상기 종속적인 컴파일부는,
상기 독립적인 중간 언어 코드를 상기 종속적인 중간 언어 코드로 컴파일할 때 문법 오류 체크를 수행하며, 확인 결과, 상기 문법 오류 체크에 오류가 없는 경우 상기 실행 파일 생성부에서 상기 실행 파일을 생성하는 것을 특징으로 하는 중간 언어 변환 시스템.
11. The method of claim 10,
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.
제 7 항에 있어서,
상기 소스 파일에 대한 전처리를 수행하는 전처리 수행부를 추가로 포함하는 것을 특징으로 하는 중간 언어 변환 시스템.
The method of claim 7, wherein
And a preprocessing execution unit which performs preprocessing on the source file.
데이터 처리 기기에,
C 언어(C-Language) 기반의 소스(Source) 파일을 생성하는 소스 파일 생성 과정;
상기 소스 파일을 중간 언어 코드로 변환하고, 상기 중간 언어 코드를 플랫폼(Platform)에 따라 컴파일(Compile)할 때 특정 타입을 갖는 상수를 공통 상수를 경유하여 상기 플랫폼에 따른 값을 갖는 상수로 변환되도록 하는 컴파일 과정;
상기 컴파일된 상기 중간 언어 코드에 대한 실행 파일을 생성하는 실행 파일 생성 과정; 및
상기 실행 파일이 상기 플랫폼에서 구동되도록 하는 실행 파일 구동 과정을 실현시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체.
In the data processing device,
A source file generation process of generating a C-Language-based source file;
Converting the source file into an intermediate language code and converting the constant language having a specific type into a constant having a value according to the platform via a common constant when compiling the intermediate language code according to a platform. The compilation process;
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.
KR1020110130293A 2011-12-07 2011-12-07 Method For Transforming Intermediate Language by Using Common Representation, System And Computer-Readable Recording Medium with Program Therefor KR101277145B1 (en)

Priority Applications (1)

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

Applications Claiming Priority (1)

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

Publications (2)

Publication Number Publication Date
KR20130063759A KR20130063759A (en) 2013-06-17
KR101277145B1 true KR101277145B1 (en) 2013-06-20

Family

ID=48860987

Family Applications (1)

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

Country Status (1)

Country Link
KR (1) KR101277145B1 (en)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102152136B1 (en) * 2013-10-08 2020-09-04 에스케이플래닛 주식회사 Apparatus and Method for creating web application

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2003065179A2 (en) 2002-02-01 2003-08-07 John Fairweather A system and method for mining data
KR20050000328A (en) * 2003-06-23 2005-01-03 마이크로소프트 코포레이션 Query optimizer system and method
KR20090089382A (en) * 2006-12-14 2009-08-21 후지쯔 가부시끼가이샤 Compile method and compiler

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2003065179A2 (en) 2002-02-01 2003-08-07 John Fairweather A system and method for mining data
KR20050000328A (en) * 2003-06-23 2005-01-03 마이크로소프트 코포레이션 Query optimizer system and method
KR20090089382A (en) * 2006-12-14 2009-08-21 후지쯔 가부시끼가이샤 Compile method and compiler

Also Published As

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

Similar Documents

Publication Publication Date Title
US10402208B2 (en) Adaptive portable libraries
JP5415557B2 (en) User script code conversion for debugging
CN102637136B (en) For the method and apparatus merging the Debugging message from the different compiler stages
CN103218294B (en) A kind of adjustment method of embedded system, debugging conversion equipment and system
US6934940B2 (en) Source code transformation-temporary object reduction
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
KR101092373B1 (en) System and method for generating software package and installing the same
KR20130003836A (en) System and method for providing application
KR101349631B1 (en) Method For Transforming Intermediate Language, System And Computer-Readable Recording Medium with Program Therefor
US10452364B2 (en) Method and system for preparing code to be executed by programmable control devices
US10656926B2 (en) Compact type layouts
KR101277145B1 (en) Method For Transforming Intermediate Language by Using Common Representation, System And Computer-Readable Recording Medium with Program Therefor
CN112148283A (en) Implementation method of cross-platform ABI compatible C + + component framework
KR101349628B1 (en) Method For Transforming Intermediate Language by Using Operator, 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
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
KR101598819B1 (en) Method for code conversion using target-independent debugging information, apparatus and computer-readable recording medium with program therefor
Joseph et al. Software Framework Of An All-In-One Transpiler For Development Of WORA Applicatons
bin Uzayr Mastering Flutter: A Beginner's Guide
Nellaiyapen Practical WebAssembly: Explore the fundamentals of WebAssembly programming using Rust
CN113900631A (en) Code generator design method based on antlr4
CN117667157A (en) Thermal updating method and system, updating method, medium and equipment for client application
CN112527392A (en) Static translation and static bridging android simulator instruction translation method

Legal Events

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

Payment date: 20160601

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20170601

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20180409

Year of fee payment: 6