KR20140109066A - Method for transforming intermediate language using range of values of operator, system and computer-readable recording medium with program therefor - Google Patents

Method for transforming intermediate language using range of values of operator, system and computer-readable recording medium with program therefor Download PDF

Info

Publication number
KR20140109066A
KR20140109066A KR1020130023270A KR20130023270A KR20140109066A KR 20140109066 A KR20140109066 A KR 20140109066A KR 1020130023270 A KR1020130023270 A KR 1020130023270A KR 20130023270 A KR20130023270 A KR 20130023270A KR 20140109066 A KR20140109066 A KR 20140109066A
Authority
KR
South Korea
Prior art keywords
platform
intermediate language
operator
language code
code
Prior art date
Application number
KR1020130023270A
Other languages
Korean (ko)
Other versions
KR101449657B1 (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 KR1020130023270A priority Critical patent/KR101449657B1/en
Publication of KR20140109066A publication Critical patent/KR20140109066A/en
Application granted granted Critical
Publication of KR101449657B1 publication Critical patent/KR101449657B1/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/30Creation or generation of source code
    • G06F8/31Programming languages or programming paradigms

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Devices For Executing Special Programs (AREA)
  • Stored Programmes (AREA)

Abstract

A method for transforming an intermediate language comprises the steps of: generating a C-language-based source file including a predetermined operator; transforming the source file into a platform-independent intermediate language code including a string corresponding to the operator; and detecting a platform-dependent syntax error from the platform-independent intermediate language code, using a predetermined range of values for the operator. The method can previously check whether syntax including an operator causes a problem on a specific platform without compiling into a platform-dependent intermediate language code by representing the operator, which has different values for different platforms, as a string on a platform-independent intermediate language code and by checking syntax errors using the range of values of the operator pre-stored in the compiler (e.g., maximum and minimum values).

Description

연산자의 값의 범위를 이용한 중간 언어 변환 방법과 그를 위한 시스템 및 컴퓨터로 읽을 수 있는 기록매체{METHOD FOR TRANSFORMING INTERMEDIATE LANGUAGE USING RANGE OF VALUES OF OPERATOR, SYSTEM AND COMPUTER-READABLE RECORDING MEDIUM WITH PROGRAM THEREFOR}BACKGROUND OF THE INVENTION 1. Field of the Invention The present invention relates to an intermediate language conversion method using a range of values of an operator, a system therefor, and a computer readable recording medium. 2. Description of the Related Art [0002]

실시예들은 연산자의 값의 범위를 이용한 중간 언어 변환 방법과 그를 위한 시스템 및 컴퓨터로 읽을 수 있는 기록매체에 관한 것이다. 더욱 상세하게는, 미리 결정된 연산자를 포함하는 C 언어(C-language) 기반의 소스 코드를 플랫폼(platform) 독립적인 중간 언어(intermediate language) 코드로 컴파일(compile)하는 과정에서, 플랫폼에 따라 연산자가 가질 수 있는 값의 범위(예컨대, 최대값 및 최소값)을 이용하여 플랫폼 종속적인 문법 오류를 검출할 수 있는 중간 언어 변환 방법과, 그를 위한 시스템 및 컴퓨터로 읽을 수 있는 기록매체에 관한 것이다. Embodiments relate to an intermediate language conversion method using a range of values of an operator, a system therefor, and a computer-readable recording medium. More particularly, in a process of compiling C language source code including a predetermined operator into an intermediate language code independent of a platform, The present invention relates to an intermediate language conversion method capable of detecting a platform-dependent grammar error using a range of possible values (e.g., a maximum value and a minimum value), and a system therefor and a computer readable recording medium.

프로그램(program)은 프로그래밍 언어(programming language)로 기입된다. 프로그래밍 언어는 컴퓨터에 의해 처리 및 실행될 수 있는 명령의 시퀀스(sequence)를 정의하는데 사용될 수 있는 임의의 인공 언어이다. 그러나, 프로그래밍 언어는 프로그래밍 언어를 사용하여 표현된 소스(source) 코드로부터 컴퓨터 또는 데이터 처리 시스템이 작업하는데 필요한 기계 코드로의, 컴파일러(compiler)와 같은 또 다른 프로그램에 의한 번역 절차를 필요로 한다.A 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 requires 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++ 언어가 있다.These programming languages are typically considered to belong to one of three different concept classes: a low-level language, a high-level language, or a mid-level language. Examples of common low-level programming languages are assembly language, high-level programming languages include COBOL, FORTRAN, Pascal, and intermediate-level programming languages C and C ++ .

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

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

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

본 발명의 일 측면에 따르면, C언어(C-language) 기반의 소스(source) 코드를 플랫폼(platform)에 의존적이지 않은 독립적 중간 언어(intermediate language) 코드로 변환한 후 이로부터 각각의 플랫폼에 해당하는 종속적 중간 언어 코드로 변환하되, 독립적 중간 언어 코드로의 변환 과정에서 연산자에 관련된 문법 체크를 수행할 수 있는 중간 언어 변환 방법과 그를 위한 시스템 및 컴퓨터로 읽을 수 있는 기록매체를 제공할 수 있다. According to an aspect of the present invention, a C-language-based source code is converted into an independent intermediate language code that is not dependent on a platform, And a grammar check related to an operator in the process of converting into an independent intermediate language code, and a system and a computer readable recording medium therefor can be provided.

일 실시예에 따른 중간 언어(intermediate language) 변환 방법은, 미리 결정된 연산자를 포함하는, C 언어(C-language) 기반의 소스(source) 파일을 생성하는 단계; 상기 소스 파일을, 상기 연산자에 대응되는 문자열을 포함하는 플랫폼(platform) 독립적인 중간 언어 코드로 변환하는 단계; 및 상기 연산자에 대해 미리 결정된 값의 범위를 이용하여, 상기 플랫폼 독립적인 중간 언어 코드로부터 플랫폼 종속적인 문법 오류를 검출하는 단계를 포함할 수 있다. According to an exemplary embodiment, an intermediate language conversion method includes: generating a C-language based source file including a predetermined operator; Converting the source file into platform independent intermediate language code including a string corresponding to the operator; And detecting platform-dependent grammar errors from the platform independent intermediate language code using a range of predetermined values for the operator.

일 실시예에 따른 중간 언어 변환 시스템은, 미리 결정된 연산자를 포함하는 C 언어 기반의 소스 파일을 생성하는 소스 파일 생성부; 및 상기 소스 파일을, 상기 연산자에 대응되는 문자열을 포함하는 플랫폼 독립적인 중간 언어 코드로 변환하는 독립적 컴파일부를 포함할 수 있다. 또한, 상기 독립적 컴파일부는, 상기 연산자에 대해 미리 결정된 값의 범위를 이용하여, 상기 플랫폼 독립적인 중간 언어 코드로부터 플랫폼 종속적인 문법 오류를 검출하는 문법 체크부를 포함할 수 있다. An intermediate language conversion system according to an embodiment includes: a source file generation unit for generating a C language-based source file including a predetermined operator; And an independent compiler for converting the source file into platform independent intermediate language code including a string corresponding to the operator. In addition, the independent compiler may include a grammar checker for detecting a platform-dependent grammar error from the platform-independent intermediate language code using a predetermined range of values for the operator.

일 실시예에 따른 컴퓨터로 판독 가능한 기록 매체에는, 전술한 중간 언어 변환 방법을 수행하도록 데이터 처리 기기를 제어하기 위한 프로그램이 기록될 수 있다. In a computer-readable recording medium according to an embodiment, a program for controlling the data processing device to perform the above-described intermediate language conversion method may be recorded.

본 발명의 일 측면에 따르면, C언어(C-language) 기반의 소스(source) 코드를 특정 플랫폼(platform)에 의존적이지 않은 독립적인 중간 언어 코드로 컴파일(compile)한 후 이로부터 각각의 플랫폼에 해당하는 종속적인 중간 언어 코드로 변환하는 과정에 있어, 플랫폼에 따라 값이 달라지는 특정 연산자를 플랫폼 독립적인 중간 언어 코드상에 상수가 아닌 문자열로 표현하고, 컴파일러에 미리 저장된 해당 연산자의 값의 범위(예컨대, 최대값 및 최소값)을 이용하여 문법 체크를 수행할 수 있다. According to an aspect of the present invention, a C language-based source code is compiled into an independent intermediate language code that is not dependent on a specific platform, A specific operator whose value varies depending on the platform is expressed as a string not in a constant on the platform independent intermediate language code and the range of values of the corresponding operator stored in advance in the compiler For example, a maximum value and a minimum value).

따라서, 개발자는 타겟 플랫폼에 대응되는 플랫폼 종속적인 중간 언어 코드로의 컴파일을 거치지 않고도 해당 연산자가 포함된 구문이 특정 플랫폼에서 문제를 발생시키는지 여부를 알 수 있으며, 그 결과 프로그램을 컴파일하는데 소요되는 시간을 줄일 수 있다. Thus, the developer can know whether the syntax containing the operator causes a problem on a particular platform without compiling to the platform-dependent intermediate language code corresponding to the target platform, and as a result, Time can be reduced.

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

이하에서, 도면을 참조하여 본 발명의 실시예들에 대하여 상세히 살펴본다.Hereinafter, embodiments of the present invention will be described in detail with reference to the drawings.

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

본 실시예에 따른 중간 언어 변환 시스템은 개발자 단말기(110), 중간 언어(intermediate language) 변환 장치(120) 및 플랫폼(130)을 포함할 수 있다. 본 실시예에서는 중간 언어 변환 시스템이 개발자 단말기(110), 중간 언어 변환 장치(120) 및 플랫폼(130)만을 포함하는 것으로 기재하고 있으나, 이는 본 발명의 일 실시예의 기술 사상을 예시적으로 설명한 것에 불과한 것으로서, 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자라면 본 발명의 본질적인 특성에서 벗어나지 않는 범위에서 중간 언어 변환 시스템에 포함되는 구성 요소에 대하여 다양한 수정 및 변형이 적용 가능함이 용이하게 이해될 것이다.The intermediate language conversion system according to the present embodiment may include a developer terminal 110, an intermediate language conversion apparatus 120, and a platform 130. In the present embodiment, the intermediate language conversion system includes only the developer terminal 110, the intermediate language conversion apparatus 120, and the platform 130. However, it should be understood that the description of the technical idea of an embodiment of the present invention It will be understood by those skilled in the art that various modifications and variations can be applied to the elements included in the intermediate language conversion system without departing from the essential characteristics of the present invention will be.

도 1에서의 제 1 실시예에 따른 전반적인 흐름을 설명하면, 개발자 단말기(110)는 탑재된 개발자 툴을 이용하여 C 언어(C-language) 기반의 소스 파일(source file)을 생성한다. 중간 언어 변환 장치(120)는 탑재된 컴파일러(complier)를 이용하여 소스 파일을 컴파일함으로써 소스 파일을 중간 언어(intermediate language) 코드로 변환한다. 또한, 중간 언어 변환 장치(120)는 링커(linker) 프로그램으로 중간 언어 코드를 연결시켜 실행 파일을 만든다. 만들어진 실행 파일은 플랫폼(130)에서 실행될 수 있다. The overall flow according to the first embodiment of FIG. 1 will now be described. The developer terminal 110 generates a C-language based source file using the embedded developer tool. The intermediate language conversion apparatus 120 converts the source file into an intermediate language code by compiling the source file using a mounted complier. In addition, the intermediate language conversion apparatus 120 links an intermediate language code with a linker program to create an executable file. The created executable file can be executed in the platform 130.

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

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

한편, 도 1에서의 제 4 실시예에 따른 전반적인 흐름을 설명하면, 개발자 단말기(110)는 개발자의 조작 또는 명령에 의해 작성된 C 언어 소스 코드를 읽어 들이고 전처리 과정을 수행한 후 플랫폼 독립적인 중간 언어 코드를 생성한다. 또한, 개발자 단말기(110)는 이를 타겟 플랫폼(130)에 맞게 플랫폼 독립적인 중간 언어 코드로 변환하며 또한 타겟 플랫폼(130)에 맞게 실행파일로 변환한다. 이에, 각 플랫폼(130)은 개발자 단말기(110)로부터 실행파일을 전송받아 구동한다. 본 실시예에서, 중간 언어 변환 장치(120)는 생략될 수도 있다. 1, the developer terminal 110 reads the C language source code created by a developer's operation or command, performs a preprocessing process, and then generates a platform independent intermediate language Generate the code. In addition, the developer terminal 110 converts the intermediate language code into a platform independent intermediate language code corresponding to the target platform 130, and converts the middle language code into an executable file according to the target platform 130. Each platform 130 receives and executes an executable file from the developer terminal 110. In this embodiment, the intermediate language conversion apparatus 120 may be omitted.

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

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

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

'C 언어'란 프로그램을 만드는 프로그램으로서, C 언어는 타 기종간의 이식성이 높고 고정적인 형식이 없으며, 퀵 베이직(Quick Basic)처럼 퀵C, 터보C 등의 처리계가 있다. 또한, 오브젝트(object) 지향적인 요소가 첨가된 C++이 개발되었는데, C++는 시스템의 저급 부분을 제어할 수 있어 사용하기 쉽고 능률적인 프로그램을 작성할 수 있는 프로그래밍 언어이다. 본 명세서에서, 'C 언어 기반의 프로그래밍 언어'란 C 언어 자체, C 언어를 확장한 객체 지향형 언어인 C++언어, C 프로그래밍 언어에 스몰토크(Smalltalk) 스타일의 메시지 구문을 추가한 객체 지향형 언어인 오브젝티브-C(Objective-C) 언어, 또는 C/C++언어에 기반하여 이를 수정 또는 변형하여 구성되는 임의의 프로그래밍 언어를 지칭한다.'C language' is a program to create a program. C language has high portability between other types and it does not have a fixed format. It has a processing system such as Quick C and Turbo C like Quick Basic. In addition, C ++ with object-oriented elements has been developed, and C ++ is a programming language that allows you to write programs that are easy to use and efficient, because you can control the lower parts of the system. In this specification, 'C language based programming language' refers to C language itself, a C ++ language that is an object-oriented language that extends C language, and an object-oriented language that adds a smalltalk- C (Objective-C) language, or a C / C ++ language.

또한, 본 명세서에서 '중간 언어 코드'란 플랫폼(130)의 CPU 종류(예컨대, x86, x64, ARM 등) 또는 운영체제의 종류(예컨대, 윈도우(Windows), 리눅스(Linux), OSX, iOS, 안드로이드(Android), 윈도우 모바일, 윈도우 폰 등)와 같은 플랫폼의 특성에 의존하지 않으며, 플랫폼에 대해 독립적인 형태의 코드를 의미한다. 즉, 중간 언어 코드는 추후 컴파일 시에 특정 플랫폼에 대응되는 바이너리(binary) 코드로 변환하여 실행하는 것이 가능하다. 예를 들어, 중간 언어 코드는 소정 규격의 가상머신(Virtual Machine; VM)에 의하여 실행될 수 있다.In this specification, the term 'intermediate language code' refers to a type of a CPU 130 (eg, x86, x64, ARM, etc.) or a type of an operating system (eg, Windows, Linux, OSX, iOS, (Android), Windows Mobile, Windows Phone, etc.) and is platform independent code. That is, the intermediate language code can be converted into a binary code corresponding to a specific platform at a later compile time and executed. For example, the intermediate language code can be executed by a virtual machine (VM) of a predetermined standard.

개발자 단말기(110)는 애플리케이션(application) 개발자 측의 플랫폼으로서, 개발자 단말기(110)에서 C 언어 기반의 프로그래밍 언어로 작성된 소스 코드(source code)의 형태의 소스 파일을 생성할 수 있다. 개발자 단말기(110)는 사용자의 조작 또는 명령에 의해 개발자 툴을 구동하며, 개발자 툴을 통해 C 언어 기반의 소스 파일을 생성할 수도 있다. 한편, 도 1에서는 개발자 단말기(110), 중간 언어 변환 장치(120) 및 플랫폼(130)이 각각 별도의 장치로 구현된 것으로 기재하고 있으나, 실제 실시예의 구현에 있어서, 개발자 단말기(110), 중간 언어 변환 장치(120) 및 플랫폼(130)을 모두 포함하는 형태의 자립형(stand alone) 장치로 구현될 수도 있다. The developer terminal 110 can generate a source file in the form of a source code written in a C language based programming language at the developer terminal 110 as a platform of an application developer. The developer terminal 110 drives the developer tool by a user's operation or command, and may generate a C language-based source file through the developer tool. 1, the developer terminal 110, the intermediate language conversion apparatus 120, and the platform 130 are each implemented as a separate device. In actual implementation, however, the developer terminal 110, Alone apparatus of the type including both the language conversion apparatus 120 and the platform 130. [

제 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 a developer's operation or command, preprocesses it, and then generates a platform independent intermediate language code.

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

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

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

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

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

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

제1 실시예에 따른 중간 언어 변환 장치(120)는 C 언어 기반의 소스 파일을 생성하거나, 개발자 단말기(110)로부터 C 언어 기반의 소스 파일을 수신한다. 또한, 중간 언어 변환 장치(120)는 소스 파일에 대한 전처리를 수행하며, 전처리가 수행된 소스 파일을 플랫폼 독립적인 중간 언어 코드로 변환한다. 이때, 중간 언어 변환 장치(120)는 소스 파일 내의 특정 연산자가 플랫폼에 따라 가질 수 있는 값의 범위(예컨대, 최소값 및 최대값)을 미리 저장하고 있으며, 이를 이용하여 플랫폼 독립적인 중간 언어 코드로부터 플랫폼 종속적인 문법 오류를 검출한다. 또한, 중간 언어 변환 장치(120)는 플랫폼 독립적인 중간 언어 코드를 타겟 플랫폼(130)에 종속적인 중간 언어 코드로 변하고, 이어서 실행 파일을 생성한다.The intermediate language conversion apparatus 120 according to the first embodiment generates a C language-based source file or receives a C language-based source file from the developer terminal 110. In addition, the intermediate language conversion apparatus 120 performs preprocessing on the source file, and converts the preprocessed source file into platform independent intermediate language code. At this time, the intermediate language conversion apparatus 120 previously stores a range of values (for example, a minimum value and a maximum value) that a specific operator in the source file can have according to the platform, and uses the platform independent intermediate language code Detects dependent grammatical errors. In addition, the intermediate language conversion apparatus 120 converts the platform independent intermediate language code into an intermediate language code dependent on the target platform 130, and then generates an executable file.

먼저, 제1 실시예에 따른 중간 언어 변환 장치(120)에서의 전처리 과정에 대해 구체적으로 설명한다. 중간 언어 변환 장치(120)는 소스 파일에 대한 전처리를 수행할 수 있는데, 본 명세서에서 '전처리'란 컴파일 이전에 특정한 부분을 치환하는 작업을 의미한다. 예컨대, '#'으로 정의된 라인을 전처리 구문이라 하며, 전처리 구문 끝에는 명령의 끝을 의미하는 세미콜론(;)을 붙이지 않는다. 또한, 라이브러리(library)에 있는 함수들을 호출하기 위하여, 전처리 과정에서 소스 파일에 사용된 함수들의 원형을 수정하거나 정의할 수도 있다.First, the preprocessing process in the intermediate language conversion apparatus 120 according to the first embodiment will be described in detail. The intermediate language conversion apparatus 120 may perform preprocessing on the source file. In this specification, 'preprocessing' means replacing a specific part before compilation. For example, a line defined as '#' is called a preprocessing syntax, and a semicolon (;) at the end of a preprocessing statement is not added. You can also modify or define the prototype of the functions used in the source file during the preprocessing to call the functions in the library.

다음으로, 제 1 실시예에 따른 중간 언어 변환 장치(120)에서의 컴파일 과정에 대해 설명한다. 중간 언어 변환 장치(120)는 전처리가 수행된 소스 파일을 플랫폼 독립적인 중간 언어 코드로 컴파일하는 독립적 컴파일 과정을 수행하며, 또한 플랫폼 독립적인 중간 언어 코드를 타겟 플랫폼(130)에 따라 플랫폼 종속적인 중간 언어 코드로 컴파일하는 종속적 컴파일 과정을 수행한다. Next, the compiling process in the intermediate language conversion apparatus 120 according to the first embodiment will be described. The intermediate language conversion apparatus 120 performs an independent compilation process of compiling the preprocessed source file into the platform independent intermediate language code, and also performs a platform independent intermediate language code to the platform dependent intermediate language code according to the target platform 130 And compiles it into a language code.

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

이때, 제 1 실시예에 따른 중간 언어 변환 장치(120)는 독립적 컴파일 과정을 수행하기 위해 C 언어 기반의 프로그래밍 언어로 작성된 소스 파일을 플랫폼 독립적인 중간 언어 코드로 컴파일하되, 소스 파일에서 미리 결정된 특정 연산자가 플랫폼 독립적인 중간 언어 코드에서 문자열로 표현되도록 한다. 예컨대, 상기 연산자는 C 언어의 'sizeof ()' 연산자일 수 있으며, 'sizeof ()'란 괄호 안에 들어가는 변수의 크기를 바이트 단위로 계산해서 출력하는 연산자이다. 'sizeof ()' 연산자의 값은 "int" 와 같은 변수의 타입(type)에 따라 상수로 결정되는데, 이 상수는 플랫폼의 종류에 따라 상이하다. 여기서, '상수'는 한번 값을 저장하면 변경이 불가능한 값을 말하며, 변수와 마찬가지로 상수도 값을 저장할 수 있는 메모리 공간을 가지나, 변수와 다르게 데이터의 변경은 불가능하다. In order to perform the independent compilation process, the intermediate language conversion apparatus 120 according to the first embodiment compiles a source file written in a C language based programming language into a platform independent intermediate language code, Allow operators to be represented as strings in platform-independent intermediate language code. For example, the operator may be a 'sizeof ()' operator in C language, and 'sizeof ()' is an operator that calculates the size of a variable enclosed in parentheses in units of bytes. The value of the 'sizeof ()' operator is determined by the type of the variable, such as "int", which depends on the platform type. Here, 'constant' refers to a value that can not be changed once the value is stored. Like the variable, the variable has a memory space for storing the constant value, but data can not be changed unlike the variable.

본 실시예에서, 중간 언어 변환 장치(120)는 플랫폼 독립적인 중간 언어 코드에서 'sizeof ()' 연산자를 타겟 플랫폼(130)에 대응되는 상수로 변환하지 않고, 특정 문자열로 변환한다. 변환된 문자열은 소스 파일에서와 마찬가지로 'sizeof ()' 연산자를 그대로 기재한 것일 수도 있으며, 또는 미리 결정된 다른 특정 문자열로 대체한 것일 수도 있다. 또한, 중간 언어 변환 장치(120)에는 플랫폼에 따라 달라지는 'sizeof ()' 연산자의 값의 범위(예컨대, 최소값 및 최대값)이 미리 저장되어 있으며, 중간 언어 변환 장치(120)는 저장된 'sizeof ()' 연산자의 값의 범위를 이용하여 플랫폼 종속적인 컴파일을 수행하지 않고도 플랫폼 독립적인 중간 언어 코드로부터 플랫폼 종속적인 문법 오류를 체크할 수 있다. 이에 대해서는 상세히 후술한다. In this embodiment, the intermediate language conversion apparatus 120 does not convert the 'sizeof ()' operator in the platform independent intermediate language code into a constant corresponding to the target platform 130, but converts it into a specific character string. The converted string may be the same as the 'sizeof ()' operator in the source file, or it may be replaced with another predetermined string. The intermediate language conversion apparatus 120 stores in advance a range (e.g., a minimum value and a maximum value) of a value of a 'sizeof ()' operator that varies depending on the platform, ) 'Operator can be used to check for platform-dependent syntax errors from platform-independent intermediate language code without performing platform-dependent compilation. This will be described in detail later.

플랫폼 독립적인 중간 언어 코드의 변환 및 문법 오류 체크가 수행된 후, 중간 언어 변환 장치(120)는 플랫폼 독립적인 중간 언어 코드를 타겟 플랫폼(130)에 대응되는 플랫폼 종속적인 중간 언어 코드로 컴파일할 수 있다. 이때, 플랫폼 독립적인 중간 언어 코드에 포함된, 'sizeof ()' 연산자에 대응되는 문자열은 타겟 플랫폼(130)의 종류에 상응되는 특정 상수로 변환된다. 또한, 중간 언어 변환 장치(120)는 컴파일된 플랫폼 종속적인 중간 언어 코드로부터 실행 파일을 생성한다. After the platform independent intermediate language code translation and grammar error checking are performed, the intermediate language translation device 120 may compile the platform independent intermediate language code into the platform dependent intermediate language code corresponding to the target platform 130 have. At this time, the string corresponding to the 'sizeof ()' operator included in the platform independent intermediate language code is converted into a specific constant corresponding to the type of the target platform 130. In addition, the intermediate language conversion apparatus 120 generates an executable file from the compiled platform-dependent intermediate language code.

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

한편, 제 2 실시예에 따른 중간 언어 변환 장치(120)는 개발자 단말기(110)로부터 생성된 플랫폼 독립적인 중간 언어 코드를 읽어 들이고 이를 타겟 플랫폼(130)에 맞게 플랫폼 종속적인 중간 언어 코드로 변환한다. 또한, 중간 언어 변환 장치(120)는 플랫폼 종속적인 중간 언어 코드를 타겟 플랫폼(130)에 맞는 실행 파일로 변환한다. 한편, 제 3 실시예에 따른 중간 언어 변환 장치(120)는 개발자 단말기(110)로부터 생성된 플랫폼 독립적인 중간 언어 코드를 읽어 들이고 이를 타겟 플랫폼(130)에 맞게 플랫폼 독립적인 중간 언어 코드로 변환한다.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 it into an intermediate language code that is platform-dependent in accordance with the target platform 130 . In addition, the intermediate language conversion apparatus 120 converts the platform-dependent intermediate language code into an executable file suitable for the target platform 130. [ Meanwhile, the intermediate language conversion apparatus 120 according to the third embodiment reads platform-independent intermediate language codes generated from the developer terminal 110 and converts the intermediate language codes into platform-independent intermediate language codes according to the target platform 130 .

플랫폼(130)은 중앙처리장치의 아키텍쳐(architecture) 및 운영체제(Operating System; OS) 중 적어도 하나 이상이 조합된 장치를 말한다. 예컨대, 중앙처리장치의 아키텍처는 ARM의 ARMv5, ARMv7, ARMv8, X86 또는 X64 등이 될 수 있으며, 운영체제는 윈도우, 리눅스, 윈도우 모바일, 안드로이드, OSX 또는 iOS 등이 될 수 있으나 반드시 이에 한정되는 것은 아니다. 이러한, 플랫폼(130)이란 하나 또는 복수 개의 처리장치(예컨대, CPU 등)를 포함하는 하드웨어, 하드웨어를 이용하여 동작하는 OS, 또는 하드웨어 및 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 of an architecture and an operating system (OS) of a central processing unit is combined. For example, the architecture of the central processing unit may be ARMv5, ARMv7, ARMv8, X86 or X64 of ARM, and the operating system may be, but is not limited to, Windows, Linux, Windows Mobile, Android, OSX or iOS . Such a platform 130 refers to hardware including one or more processing units (e.g., CPUs), an OS that operates using hardware, or both hardware and OS. For example, the platform 130 may be a desktop device, a notebook computer, a mobile device such as a cellular phone, a PDA (Personal Digital Assistant), or the like, but is not limited thereto. On the other hand, the platform 130 may include one or more devices (first platform, second platform to Nth platform) that are the same or different from each other.

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

이하에서 제 1 내지 제 4 실시예 각각에 대하여 상세히 후술한다. 그러나, 본 발명의 범위가 후술하는 실시예들로 한정되는 것은 아니다. Each of the first to fourth embodiments will be described in detail below. However, the scope of the present invention is not limited to the following embodiments.

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

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

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

중간 언어 변환 장치(120)에 포함된 컴파일부(230)는 전처리가 수행된 소스 파일을 중간 언어 코드로 변환한다. 여기서, 소스 파일은 미리 결정된 연산자를 포함한다. 본 명세서에서는, C 언어의 연산자 중 'sizeof ()' 연산자를 기준으로 본 발명의 실시예들의 동작을 설명한다. 그러나, 이는 예시적인 것으로서, 다른 실시예에에서 실시예들의 동작은 'sizeof ()' 연산자 외에 그 결과 값이 플랫폼에 따라 상이하게 결정되는 다른 연산자를 포함한 소스 파일을 대상으로 수행될 수도 있다. The compiling unit 230 included in the intermediate language conversion apparatus 120 converts the preprocessed source file into an intermediate language code. Here, the source file includes a predetermined operator. In the present specification, operations of embodiments of the present invention will be described based on the 'sizeof ()' operator among the C language operators. However, this is illustrative, and the operation of the embodiments in other embodiments may be performed on a source file that includes other operators whose result values are determined differently by platform, in addition to the 'sizeof ()' operator.

제 1 실시예에서, 컴파일부(230)는 독립적 컴파일부(232) 및 종속적 컴파일부(234)를 포함한다. 독립적 컴파일부(232)와 종속적 컴파일부(234)에 대해 각각 설명하면 다음과 같다. 독립적 컴파일부(232)는 소스 파일을 플랫폼 독립적인 중간 언어 코드로 컴파일한다. 이때, 독립적 컴파일부(232)는 소스 파일의 'sizeof ()' 연산자를 플랫폼 독립적인 중간 언어 코드에서 특정 문자열로 변환한다. 변환된 문자열은 소스 파일의 'sizeof ()' 연산자를 그대로 기재한 것일 수도 있으며, 또는 다른 미리 결정된 다른 특정 문자열일 수도 있다. In the first embodiment, the compiling unit 230 includes an independent compiling unit 232 and a dependent compiling unit 234. [ The independent compiling unit 232 and the dependent compiling unit 234 are described below. The independent compiling unit 232 compiles the source file into platform independent intermediate language code. At this time, the independent compiler 232 converts the 'sizeof ()' operator of the source file from the platform independent intermediate language code to a specific string. The converted string may be the same as the 'sizeof ()' operator of the source file, or it may be another specific predetermined other string.

본 실시예에서, 독립적 컴파일부(232)는 문법 체크부(2320)를 포함하며, 문법 체크부(2320)에는 'sizeof ()' 연산자가 플랫폼에 따라 가질 수 있는 값의 범위, 예컨대, 최소값 및 최대값이 미리 저장되어 있다. 예를 들어, 'sizeof(int)'의 값은 16비트 머신에서는 상수 2이며, 32비트 머신에서는 상수 4이다. 이때, 문법 체크부(2320)에는 'sizeof(int)'의 최소값 2 및 최대값 4가 미리 저장되어 있을 수 있다. 플랫폼 독립적인 중간 언어 코드의 컴파일 과정에서, 문법 체크부(2320)는 미리 저장된 'sizeof()' 연산자의 최대값 및 최소값을 이용하여 플랫폼 종속적인 문법 오류를 검사한다. 즉, 플랫폼 독립적인 중간 언어 코드를 특정 플랫폼에 종속적인 중간 언어 코드로 변환하지 않고도, 소스 파일의 'sizeof()' 연산자가 사용된 구문이 어떤 종류의 플랫폼에서 오류를 일으키는지 미리 확인할 수 있다. In the present embodiment, the independent compiling unit 232 includes a grammar check unit 2320, and the grammar check unit 2320 checks whether the 'sizeof ()' operator has a range of values that the operator can have, The maximum value is stored in advance. For example, the value of 'sizeof (int)' is a constant 2 on a 16-bit machine and a constant 4 on a 32-bit machine. At this time, the grammar check unit 2320 may store the minimum value 2 and the maximum value 4 of 'sizeof (int)' in advance. In the process of compiling the platform independent intermediate language code, the grammar checker 2320 checks a platform-dependent grammar error using the maximum value and the minimum value of the pre-stored 'sizeof ()' operator. That is, without having to convert the platform-independent intermediate language code to intermediate language code that is platform-specific, you can see in advance what type of platform the syntax used by the 'sizeof ()' operator in the source file causes errors on the platform.

종속적 컴파일부(234)는, 전술한 문법 체크부(2320)에 의한 문법 오류 체크 결과 문법 오류가 발견되지 않은 플랫폼(130)(즉, 타겟 머신)을 대상으로 하여, 플랫폼 독립적인 중간 언어 코드를 해당 플랫폼(130)에 종속적인 중간 언어 코드로 컴파일할 수 있다. 이때, 플랫폼 독립적인 중간 언어 코드에 포함된, 'sizeof()' 연산자에 대응되는 문자열은 타겟 플랫폼(130)에 따른 값을 갖는 상수로 변환된다. 예컨대, 타겟 플랫폼(130)이 16비트 머신일 경우, 'sizeof(int)'에 대응되는 문자열은 플랫폼 종속적인 중간 언어 코드에서는 상수 2로 기재될 수 있다. The dependent compiling unit 234 compiles a platform independent intermediate language code for a platform 130 (i.e., a target machine) in which a grammar check result by the grammar check unit 2320 is not found It can be compiled into an intermediate language code dependent on the platform 130. At this time, the string corresponding to the 'sizeof ()' operator included in the platform independent intermediate language code is converted into a constant having a value according to the target platform 130. For example, if the target platform 130 is a 16-bit machine, the string corresponding to 'sizeof (int)' may be written as a constant 2 in the platform-dependent intermediate language code.

중간 언어 변환 장치(120)에 포함된 실행 파일 생성부(240)는, 컴파일된 플랫폼 종속적인 중간 언어 코드에 대응되는 대한 실행 파일을 생성한다. 또한, 플랫폼(130)에 포함된 실행 파일 구동부(250)는 실행 파일이 플랫폼(130)에서 구동되도록 한다. 실행 파일 구동부(250)는 하나 이상의 동일하거나 또는 서로 상이한 종류의 플랫폼(130)과 통신할 수 있으며, 플랫폼(130)의 CPU 또는 운영체제 정보 등과 같은 플랫폼의 프로파일을 수신할 수 있다. 실행 파일 구동부(250)에서 중간 언어 코드가 플랫폼(130)에 대응되는 실행 파일의 형태로 변환되므로, 플랫폼(130)에서는 애플리케이션을 플랫폼(130)에 최적화된 실행파일 등의 형태로 다운로드 또는 실행할 수 있다. The executable file generation unit 240 included in the intermediate language conversion apparatus 120 generates an executable file corresponding to the compiled platform-dependent intermediate language code. In addition, the executable file driver 250 included in the platform 130 causes the executable file to be run on the platform 130. [ The executable file driver 250 may communicate with one or more of the same or different types of platforms 130 and may receive a profile of the platform such as the CPU or operating system information of the platform 130. [ The intermediate language code is converted into an executable file corresponding to the platform 130 in the executable file driver 250 so that the platform 130 can download or execute the application in the form of an executable file optimized for the platform 130 have.

이하에서 도 3 내지 도 5를 참조하여 설명하는 제 2 내지 제 4 실시예에서, 소스 파일 생성부(210), 전처리 수행부(232), 독립적 컴파일부(232), 종속적 컴파일부(234), 실행 파일 생성부(240) 및 실행 파일 구동부(250)의 각 구성요소는 도 2를 참조하여 전술한 제 1 실시예의 대응되는 구성요소와 동일하며, 다만 각각의 구성요소가 개발자 단말기(110), 중간 언어 변환 장치(120) 및 플랫폼(130) 중 어느 것에 포함되는지에 대해서만 차이점이 있다. 따라서, 제 2 내지 제 4 실시예는 각각의 구성요소에 의해 처리되는 데이터의 송신 및/또는 수신 주체를 중심으로 기술되며, 각각의 구성요소의 구체적인 구성은 전술한 제 1 실시예와 동일하므로 자세한 설명을 생략한다. 3 to 5, the source file generator 210, the preprocessor 232, the independent compiler 232, the dependent compiler 234, Each component of the executable file generator 240 and executable file driver 250 is the same as the corresponding component of the first embodiment described above with reference to Figure 2 except that each component is associated with the developer terminal 110, The intermediate language conversion apparatus 120, and the platform 130. [0050] FIG. Therefore, the second to fourth embodiments are described mainly on the transmission and / or reception subject of data processed by each component, and the specific configuration of each component is the same as that of the first embodiment described above, The description will be omitted.

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

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

개발자 단말기(110)에 포함된 소스 파일 생성부(210)는 C 언어 기반의 소스 파일을 생성한다. 개발자 단말기(110)에 포함된 전처리 수행부(220)는 소스 파일에 대한 전처리를 수행한다. 개발자 단말기(110)에 포함된 독립적 컴파일부(232)는 중간 언어 코드를 플랫폼 독립적인 중간 언어 코드로 컴파일한다. 이때, 독립적 컴파일부(232)의 문법 체크부(2320)는, 미리 저장되어 있는 'sizeof ()' 연산자의 값의 범위(예컨대, 최소값 및 최대값)를 이용하여 플랫폼 독립적인 중간 언어 코드에 플랫폼 종속적인 문법 오류가 있는지 여부를 검출한다.The source file generation unit 210 included in the developer terminal 110 generates a C language based source file. The preprocessing unit 220 included in the developer terminal 110 performs preprocessing on the source file. The independent compiler 232 included in the developer terminal 110 compiles the intermediate language code into platform independent intermediate language code. At this time, the grammar checker 2320 of the independent compiler 232 compares the platform-independent intermediate language code with the platform (e.g., the minimum value and the maximum value) of the value of the 'sizeof Detects whether there are any grammatical errors that are dependent.

문법 체크부(2320)에 의한 체크 결과 문법 오류가 없을 경우, 중간 언어 변환 장치(120)에 포함된 종속적 컴파일부(234)는 플랫폼 독립적인 중간 언어 코드를 타겟 플랫폼(130)에 종속적인 중간 언어 코드로 컴파일한다. 또한. 중간 언어 변환 장치(120)에 포함된 실행 파일 생성부(240)는 컴파일된 플랫폼 종속적인 중간 언어 코드에 대한 실행 파일을 생성한다. 또한, 플랫폼(130)에 포함된 실행 파일 구동부(250)는 실행 파일이 플랫폼(130)에서 구동되도록 한다.If there is no grammatical error as a result of the check by the grammar check unit 2320, the dependent compiling unit 234 included in the intermediate language conversion apparatus 120 compiles the platform independent intermediate language code into an intermediate language Compile with code. Also. The executable file generator 240 included in the intermediate language conversion apparatus 120 generates an executable file for the compiled platform-dependent intermediate language code. In addition, the executable file driver 250 included in the platform 130 causes the executable file to be run on the platform 130. [

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

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

개발자 단말기(110)에 포함된 소스 파일 생성부(210)는 C 언어 기반의 소스 파일을 생성한다. 개발자 단말기(110)에 포함된 전처리 수행부(220)는 소스 파일에 대한 전처리를 수행한다. 개발자 단말기(110)에 포함된 독립적 컴파일부(232)는 중간 언어 코드를 플랫폼 독립적인 중간 언어 코드로 컴파일한다. 이때, 독립적 컴파일부(232)의 문법 체크부(2320)는, 미리 저장되어 있는 'sizeof ()' 연산자의 값의 범위(예컨대, 최소값 및 최대값)를 이용하여 플랫폼 독립적인 중간 언어 코드에 플랫폼 종속적인 문법 오류가 있는지 여부를 검출한다.The source file generation unit 210 included in the developer terminal 110 generates a C language based source file. The preprocessing unit 220 included in the developer terminal 110 performs preprocessing on the source file. The independent compiler 232 included in the developer terminal 110 compiles the intermediate language code into platform independent intermediate language code. At this time, the grammar checker 2320 of the independent compiler 232 compares the platform-independent intermediate language code with the platform (e.g., the minimum value and the maximum value) of the value of the 'sizeof Detects whether there are any grammatical errors that are dependent.

문법 체크부(2320)에 의한 체크 결과 문법 오류가 없을 경우, 중간 언어 변환 장치(120)에 포함된 종속적 컴파일부(234)는 플랫폼 독립적인 중간 언어 코드를 타겟 플랫폼(130)에 종속적인 중간 언어 코드로 컴파일한다. 한편, 플랫폼(130)에 포함된 실행 파일 생성부(240)는 컴파일된 플랫폼 종속적인 중간 언어 코드에 대한 실행 파일을 생성한다. 또한, 플랫폼(130)에 포함된 실행 파일 구동부(250)는 실행 파일이 플랫폼(130)에서 구동되도록 한다.If there is no grammatical error as a result of the check by the grammar check unit 2320, the dependent compiling unit 234 included in the intermediate language conversion apparatus 120 compiles the platform independent intermediate language code into an intermediate language Compile with code. On the other hand, the executable file generator 240 included in the platform 130 generates an executable file for the compiled platform-dependent intermediate language code. In addition, the executable file driver 250 included in the platform 130 causes the executable file to be run on the platform 130. [

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

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

개발자 단말기(110)에 포함된 소스 파일 생성부(210)는 C 언어 기반의 소스 파일을 생성한다. 개발자 단말기(110)에 포함된 전처리 수행부(220)는 소스 파일에 대한 전처리를 수행한다. 개발자 단말기(110)에 포함된 독립적 컴파일부(232)는 중간 언어 코드를 플랫폼 독립적인 중간 언어 코드로 컴파일한다. 이때, 독립적 컴파일부(232)의 문법 체크부(2320)는, 미리 저장되어 있는 'sizeof ()' 연산자의 값의 범위(예컨대, 최소값 및 최대값)를 이용하여 플랫폼 독립적인 중간 언어 코드에 플랫폼 종속적인 문법 오류가 있는지 여부를 검사한다.The source file generation unit 210 included in the developer terminal 110 generates a C language based source file. The preprocessing unit 220 included in the developer terminal 110 performs preprocessing on the source file. The independent compiler 232 included in the developer terminal 110 compiles the intermediate language code into platform independent intermediate language code. At this time, the grammar checker 2320 of the independent compiler 232 compares the platform-independent intermediate language code with the platform (e.g., the minimum value and the maximum value) of the value of the 'sizeof Checks for any grammatical errors.

문법 체크부(2320)에 의한 체크 결과 문법 오류가 없을 경우, 마찬가지로 개발자 단말기(110)에 포함된 종속적 컴파일부(234)는 플랫폼 독립적인 중간 언어 코드를 타겟 플랫폼(130)에 종속적인 중간 언어 코드로 컴파일한다. 또한, 개발자 단말기(110)에 포함된 실행 파일 생성부(240)는 컴파일된 플랫폼 종속적인 중간 언어 코드에 대응되는 실행 파일을 생성한다. 한편, 플랫폼(130)에 포함된 실행 파일 구동부(250)는 실행 파일이 플랫폼(130)에서 구동되도록 한다.If there is no grammatical error as a result of the check by the grammar check unit 2320, the dependent compiling unit 234 included in the developer terminal 110 similarly outputs the platform independent intermediate language code to the intermediate language code . In addition, the executable file generator 240 included in the developer terminal 110 generates an executable file corresponding to the compiled platform-dependent intermediate language code. On the other hand, the executable file driver 250 included in the platform 130 causes the executable file to be run on the platform 130.

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

먼저, C 언어 기반의 프로그래밍 언어로 작성된 소스 파일을 생성한다(S610). 단계 S610에서 생성되는 소스 파일에는, 미리 결정된 C 언어의 특정 연산자가 포함될 수 있다. 본 실시예에서는, C 언어의 'sizeof ()' 연산자를 기준으로 중간 언어 변환 방법에 대하여 설명하나, 이에 한정되는 것은 아니다. 일 실시예에서는, 생성된 소스 파일에 대한 전처리를 수행할 수 있다(S620). 그러나, 전처리 과정(S620)은 실시예에 따라서는 생략될 수도 있다. First, a source file written in a C language-based programming language is generated (S610). The predetermined C language specific operator may be included in the source file generated in step S610. In the present embodiment, the intermediate language conversion method will be described based on the 'sizeof ()' operator of the C language, but is not limited thereto. In one embodiment, preprocessing may be performed on the generated source file (S620). However, the preprocessing process (S620) may be omitted depending on the embodiment.

생성된 소스 파일은 플랫폼 독립적인 중간 언어 코드로 컴파일된다(S630). 단계 S630에서 독립적 중간 언어 코드로의 컴파일 과정은, 미리 저장된 C 언어 기반의 프로그래밍 언어와 중간 언어 코드 사이의 매칭 정보를 이용하여 수행될 수 있다. 그 결과 애플리케이션의 소스 파일을, 특정 CPU 또는 운영 체제에 의존적이지 않은 중간 언어 코드로 변환할 수 있는 것이다. 이때, 플랫폼 독립적인 중간 언어 코드로 컴파일하는 단계(S630)는, 연산자의 값의 범위를 이용하여 문법 오류를 체크하는 단계(S640)를 포함할 수 있다.The generated source file is compiled into platform independent intermediate language code (S630). In step S630, the compiling process into the independent intermediate language code can be performed using matching information between the pre-stored C language-based programming language and the intermediate language code. As a result, the application's source files can be translated into intermediate language code that is not dependent on a particular CPU or operating system. In this case, the step S630 of compiling into the platform-independent intermediate language code may include a step S640 of checking a grammar error using the range of the value of the operator.

즉, 단계 S630에서, 소스 파일의 'sizeof ()' 연산자는 플랫폼 독립적인 중간 언어 코드에서 특정 문자열로 변환될 수 있다. 이때, 컴파일러에는 'sizeof ()' 연산자가 플랫폼에 따라 가질 수 있는 값의 범위(예컨대, 최소값 및 최대값)가 미리 저장된다. 컴파일된 플랫폼 독립적인 중간 언어 코드가 해당 문자열을 포함하는 경우, 컴파일러는 미리 저장되어 있는 'sizeof ()' 연산자의 최소값 및 최대값을 이용하여 문법 오류를 체크한다(S640). 단계 S640의 문법 체크란, 플랫폼 독립적인 중간 언어 코드에 플랫폼 종속적인 문법 오류가 있는지 여부를 검출하는 것을 지칭한다. 보다 구체적으로는, 플랫폼 독립적인 중간 언어 코드에서 해당 문자열을 타겟 플랫폼에 대응되는 상수로 변환하였을 경우 문법 오류가 발생되는 플랫폼을 결정하는 것을 의미한다. That is, in step S630, the 'sizeof ()' operator of the source file can be converted to a specific string in the platform independent intermediate language code. At this time, the compiler stores in advance a range of values (for example, a minimum value and a maximum value) that the 'sizeof ()' operator can have according to the platform. If the compiled platform-independent intermediate language code includes the string, the compiler checks the grammar error using the minimum and maximum values of the 'sizeof ()' operator (S640). The grammar check in step S640 refers to detecting whether there is a platform-dependent grammar error in the platform independent intermediate language code. More specifically, when a platform-independent intermediate language code converts a corresponding string into a constant corresponding to a target platform, it determines a platform on which a syntax error occurs.

다음으로 단계 S640에서, 플랫폼 종속적인 문법 오류가 없는 것으로 결정된 타겟 플랫폼을 대상으로 하여, 플랫폼 독립적인 중간 언어 코드를 해당 플랫폼에 종속적인 중간 언어 코드로 컴파일한다(S650). 이때, 플랫폼 독립적인 중간 언어 코드에 포함된, 'sizeof ()' 연산자에 대응되는 문자열은 플랫폼 종속적인 중간 언어 코드에서는 해당 플랫폼에 대응되는 특정 상수로 변환된다. Next, in step S640, the platform independent intermediate language code is compiled into an intermediate language code dependent on the platform, targeting the target platform determined as having no platform-dependent grammar error (S650). At this time, the string corresponding to the 'sizeof ()' operator included in the platform independent intermediate language code is converted into a specific constant corresponding to the platform in the platform-dependent intermediate language code.

다음으로, 컴파일된 플랫폼에 종속적인 중간 언어 코드에 대응되는 실행 파일을 생성한다(S660). 실행 파일은, 자동으로 또는 하나 이상의 플랫폼으로부터의 다운로드 요청에 대한 응답으로, 중간 언어 코드 형태로 되어 있는 애플리케이션을 해당 플랫폼에 대응되도록 변환함으로써 생성된다. 생성된 실행 파일은 이를 다운로드 또는 다른 방식으로 수신한 타겟 플랫폼에 의하여 구동될 수 있다(S670). Next, an executable file corresponding to the intermediate language code dependent on the compiled platform is generated (S660). An executable file is created by automatically translating an application in intermediate language code form into a corresponding platform, in response to a download request from one or more platforms. The generated executable file can be driven by the target platform that receives it or otherwise receives it (S670).

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

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

도 7a 및 7b는 일 실시예에 따른 중간 언어 변환 과정을 종래 기술과 비교하여 설명하기 위한 예시도이다. 도 7a는 종래의 중간 언어 변환 과정을 나타내며, 도 7b는 일 실시예에 따른 중간 언어 변환 과정을 나타낸다. FIGS. 7A and 7B illustrate an intermediate language conversion process according to an embodiment of the present invention, in comparison with a conventional technology. FIG. 7A shows a conventional intermediate language conversion process, and FIG. 7B shows an intermediate language conversion process according to an embodiment.

C 언어의 'sizeof()' 연산자는 타겟 머신에 따라 그 값이 달라지는데, 종래에는 컴파일 시에 타겟 머신에 따라 해당 값이 결정되기 때문에 중간 언어 코드로 변환 시 'sizeof()' 연산자는 상수로 표현된다. 즉, 도 7a에 도시된 바와 같이, 'sizeof(int)' 연산자는 16비트 타겟 머신을 대상으로 컴파일된 중간 언어 코드에서는 2로 표현되며, 32비트 타겟 머신을 대상으로 컴파일된 중간 언어 코드에서는 4로 표현된다. 그러나, 이는 C 언어 기반의 소스 파일을 플랫폼 독립적인 중간 언어 코드로 변환하는데 문제점으로 작용한다. 즉, 종래의 컴파일러를 이용하여 'sizeof(int)' 연산자를 컴파일하는 과정에서 이를 상수로 변환(예컨대, 2 또는 4)하고, 이러한 상수로 인해 발생할 수 있는 문법 오류들을 컴파일 과정에서 체크한 후 에러가 발생되지 않는 경우 중간 언어 코드로 생성한다. 하지만, 이는 C 언어로부터 특정 플랫폼에 의존적이지 않은 독립적인 중간 언어 코드를 생성하는데 문제점으로 작용할 수 있다.Since the 'sizeof ()' operator in C differs depending on the target machine, conventionally, the value is determined according to the target machine at compilation. Therefore, when converting into intermediate language code, 'sizeof ()' operator is expressed as a constant do. That is, as shown in FIG. 7A, the 'sizeof (int)' operator is expressed as 2 in the intermediate language code compiled for the 16-bit target machine, and 4 in the intermediate language code compiled for the 32- Lt; / RTI > However, this is a problem in converting C language based source files into platform independent intermediate language codes. That is, in a process of compiling a 'sizeof (int)' operator using a conventional compiler, it is converted into a constant (for example, 2 or 4), and grammatical errors that may be caused by these constants are checked in a compilation process, If there is no occurrence, an intermediate language code is generated. However, this can cause problems in generating independent intermediate language code that is not dependent on a particular platform from the C language.

반면, 본 실시예에서는 타겟 머신에 따라 상이한 값을 갖는 'sizeof()' 연산자를 플랫폼 독립적인 중간 언어로의 컴파일 과정에서 상수가 아닌 소정의 문자열로 표현하되, 컴파일러가 미리 가지고 있는 'sizeof()' 연산자의 최소값 및 최대값을 이용하여 'sizeof()' 연산자가 특정 상수로 변환될 경우(즉, 특정 타겟 머신에 대한 종속적 컴파일될 경우) 오류가 발생하는지를 검출할 수 있다. 즉, 도 7b를 참조하면, 소스 파일의 'sizeof(int)' 연산자는 플랫폼 독립적인 중간 언어 코드에서도 'sizeof(int)' 라는 문자열로 표현되는데, 이때 컴파일러에는 'sizeof(int)'가 16비트 타겟 머신에서 최소값 2를, 32비트 타겟 머신에서 최대값 4를 갖는다는 정보가 미리 저장되어 있다. 컴파일러는 중간 언어 코드의 컴파일 과정에서 문자열 'sizeof(int)'에 최소값 및 최대값을 미리 대입하여, 'sizeof(int)'의 값이 4가 될 경우 괄호 안에 기재된 "char" 타입의 어레이(array)의 차원이 음수(3 - 4 = -1)이므로 문법 오류임을 알 수 있다. 즉, 'sizeof(int)'의 값이 4일 경우 문법 오류가 발생하는 것이므로, 플랫폼 종속적인 컴파일 과정을 거치지 않고도 'sizeof(int)'가 포함된 구문이 'sizeof(int)'의 값이 4인 플랫폼(즉, 32비트 타겟 머신)에서 오류를 발생시키는 것으로 결정할 수 있다. In the present embodiment, the 'sizeof ()' operator having a different value according to the target machine is expressed as a predetermined character string instead of a constant during compilation into a platform independent intermediate language, Operator may be used to detect whether an error occurs when the 'sizeof ()' operator is converted to a particular constant (ie, if it is compiled dependent on a particular target machine) using the minimum and maximum values of the 'operator'. 7B, the 'sizeof (int)' operator of the source file is represented by the string 'sizeof (int)' in the platform independent intermediate language code. In this case, Information indicating that the target machine has the minimum value of 2 and the maximum value of 4 in the 32-bit target machine is stored in advance. The compiler preliminarily sets the minimum and maximum values in the string 'sizeof (int)' during compilation of the intermediate language code, and if the value of 'sizeof (int)' is 4, ) Is a negative number (3 - 4 = -1), which is a grammatical error. That is, if the value of 'sizeof (int)' is 4, a syntax error occurs. Therefore, syntax without 'sizeof (int) (I.e., a 32-bit target machine).

본 실시예의 구현에 있어서, 컴파일러(예컨대, 도 2 내지 도 5의 컴파일부(230))는 'sizeof()' 연산자의 값을 변수 타입 별로 저장하며, 또한 그 값을 모든 타겟 머신 별로 저장할 수 있다. 컴파일러는 플랫폼 독립적인 중간 언어 코드로의 컴파일 과정에서 'sizeof()' 연산자가 가질 수 있는 모든 값들 중 최소값 및 최대값을 이용하여 문법 오류를 체크하며, 어느 하나의 값(즉, 타겟 머신)에 대하여 오류가 발생할 경우 'sizeof()' 연산자가 포함된 구문이 오류를 갖는 것으로 출력할 수 있다. 또는, 컴파일러는 개발자의 입력 등에 의하여 사전에 결정된 특정 종류의 타겟 머신에서 'sizeof()' 연산자가 가질 수 있는 최소값 및 최대값을 이용하여 문법 오류를 체크하고, 특정된 종류의 타겟 머신 중에서 문법 오류가 발생하는 것만을 체크할 수도 있다. In the implementation of this embodiment, a compiler (e.g., the compiler 230 of FIGS. 2 through 5) stores the value of the 'sizeof ()' operator by variable type and may store the value for every target machine . The compiler checks grammar errors using the minimum and maximum values of all the values that the 'sizeof ()' operator can have during compilation into platform independent intermediate language code, If the error occurs, the statement containing the 'sizeof ()' operator can be output as having an error. Alternatively, the compiler may check grammatical errors using the minimum and maximum values that the 'sizeof ()' operator can have on a predetermined type of target machine determined by a developer's input or the like, It is possible to check only what occurs.

이상에서 설명한 본 발명의 실시예들에 의하면, 개발자는 타겟 머신이 정하여 지지 않은 플랫폼 독립적인 중간 언어 코드로의 컴파일 과정에서 문법 오류를 체크할 수 있으며, 플랫폼 독립적인 중간 언어 코드가 향후 변환될 수 있는 모든 종류의 타겟 머신을 고려하여 에러가 발생할 수 있는 코드를 미리 찾을 수 있다. 따라서, 개발자는 플랫폼 종속적인 중간 언어 코드로의 변환을 거치지 않고도 특정 연산자로부터 발생할 수 있는 플랫폼 종속적인 문법 오류를 체크할 수 있어, 프로그램을 컴파일하는데 소요되는 시간을 감소시킬 수 있는 이점이 있다. According to the embodiments of the present invention described above, the developer can check grammatical errors during compilation into a platform independent intermediate language code that is not defined by the target machine, and the platform independent intermediate language code can be converted Consider all possible types of target machines, and you can find code that can cause errors. Thus, a developer can check for platform-dependent syntax errors that may arise from a particular operator without having to convert to platform-dependent intermediate language code, thereby reducing the time required to compile the program.

이상에서 살펴본 본 발명은 도면에 도시된 실시예들을 참고로 하여 설명하였으나 이는 예시적인 것에 불과하며 당해 분야에서 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 실시예의 변형이 가능하다는 점을 이해할 것이다. 그러나, 이와 같은 변형은 본 발명의 기술적 보호범위 내에 있다고 보아야 한다. 따라서, 본 발명의 진정한 기술적 보호범위는 첨부된 특허청구범위의 기술적 사상에 의해서 정해져야 할 것이다.While the invention has been shown and described with reference to certain embodiments thereof, it will be understood by those skilled in the art that various changes and modifications may be made therein without departing from the spirit and scope of the invention as defined by the appended claims. However, it should be understood that such modifications are within the technical scope of the present invention. Accordingly, the true scope of the present invention should be determined by the technical idea of the appended claims.

Claims (15)

미리 결정된 연산자를 포함하는, C 언어 기반의 소스 파일을 생성하는 단계;
상기 소스 파일을, 상기 연산자에 대응되는 문자열을 포함하는 플랫폼 독립적인 중간 언어 코드로 변환하는 단계; 및
상기 연산자에 대해 미리 결정된 값의 범위를 이용하여, 상기 플랫폼 독립적인 중간 언어 코드로부터 플랫폼 종속적인 문법 오류를 검출하는 단계를 포함하는 것을 특징으로 하는 중간 언어 변환 방법.
Generating a C language based source file including a predetermined operator;
Converting the source file into platform independent intermediate language code including a string corresponding to the operator; And
Detecting a platform dependent grammar error from the platform independent intermediate language code using a predetermined range of values for the operator.
제 1 항에 있어서,
상기 연산자에 대해 미리 결정된 값의 범위는, 타겟 플랫폼에 따라 상기 연산자가 가질 수 있는 값들 중 최소값 및 최대값을 포함하는 것을 특징으로 하는 중간 언어 변환 방법.
The method according to claim 1,
Wherein a range of a predetermined value for the operator includes a minimum value and a maximum value of values that the operator can have according to the target platform.
제 2 항에 있어서,
상기 플랫폼 종속적인 문법 오류를 검출하는 단계는, 상기 플랫폼 독립적인 중간 언어 코드에서 상기 문자열을 상기 최소값 또는 상기 최대값으로 변환하였을 경우 오류가 발생하는지 여부를 결정하는 단계를 포함하는 것을 특징으로 하는 중간 언어 변환 방법.
3. The method of claim 2,
Wherein detecting the platform dependent grammar error comprises determining whether an error occurs if the string is converted to the minimum value or the maximum value in the platform independent intermediate language code. Language conversion method.
제 3 항에 있어서,
상기 플랫폼 독립적인 중간 언어 코드를, 문법 오류가 검출되지 않은 타겟 플랫폼에 대응되는 플랫폼 종속적인 중간 언어 코드로 변환하는 단계를 더 포함하는 것을 특징으로 하는 중간 언어 변환 방법.
The method of claim 3,
Further comprising the step of translating the platform independent intermediate language code into platform dependent intermediate language code corresponding to a target platform for which no grammar errors have been detected.
제 4 항에 있어서,
상기 플랫폼 종속적인 중간 언어 코드를, 문법 오류가 검출되지 않은 타겟 플랫폼에 대응되는 실행 파일로 변환하는 단계를 더 포함하는 것을 특징으로 하는 중간 언어 변환 방법.
5. The method of claim 4,
Further comprising the step of translating the platform dependent intermediate language code into an executable file corresponding to a target platform for which no grammar error has been detected.
제 1 항에 있어서,
상기 플랫폼 독립적인 중간 언어 코드에서, 상기 연산자에 대응되는 문자열은 상기 연산자와 동일한 것을 특징으로 하는 중간 언어 변환 방법.
The method according to claim 1,
Wherein in the platform independent intermediate language code, the string corresponding to the operator is the same as the operator.
제 1 항에 있어서,
상기 미리 결정된 연산자는 'sizeof ()'인 것을 특징으로 하는 중간 언어 변환 방법.
The method according to claim 1,
Wherein the predetermined operator is 'sizeof ()'.
미리 결정된 연산자를 포함하는 C 언어 기반의 소스 파일을 생성하는 소스 파일 생성부; 및
상기 소스 파일을, 상기 연산자에 대응되는 문자열을 포함하는 플랫폼 독립적인 중간 언어 코드로 변환하는 독립적 컴파일부를 포함하되,
상기 독립적 컴파일부는,
상기 연산자에 대해 미리 결정된 값의 범위를 이용하여, 상기 플랫폼 독립적인 중간 언어 코드로부터 플랫폼 종속적인 문법 오류를 검출하는 문법 체크부를 포함하는 것을 특징으로 하는 중간 언어 변환 시스템.
A source file generation unit for generating a C language based source file including a predetermined operator; And
And an independent compiler for converting the source file into platform independent intermediate language code including a string corresponding to the operator,
The independent compiling unit,
And a grammar checker for detecting a platform-dependent grammar error from the platform independent intermediate language code using a predetermined range of values for the operator.
제 8 항에 있어서,
상기 연산자에 대해 미리 결정된 값의 범위는, 타겟 플랫폼에 따라 상기 연산자가 가질 수 있는 값들 중 최소값 및 최대값을 포함하는 것을 특징으로 하는 중간 언어 변환 시스템.
9. The method of claim 8,
Wherein the predetermined range of values for the operator includes a minimum value and a maximum value of values that the operator can have according to the target platform.
제 8 항에 있어서,
상기 문법 체크부는, 상기 플랫폼 독립적인 중간 언어 코드에서 상기 문자열을 상기 최소값 또는 상기 최대값으로 변환하였을 경우 오류가 발생하는지 여부를 결정하도록 구성된 것을 특징으로 하는 중간 언어 변환 시스템.
9. The method of claim 8,
Wherein the grammar checker is configured to determine whether an error occurs when the character string is converted into the minimum value or the maximum value in the platform independent intermediate language code.
제 10 항에 있어서,
상기 플랫폼 독립적인 중간 언어 코드를, 문법 오류가 검출되지 않은 타겟 플랫폼에 대응되는 플랫폼 종속적인 중간 언어 코드로 변환하는 종속적 컴파일부를 더 포함하는 것을 특징으로 하는 중간 언어 변환 시스템.
11. The method of claim 10,
Further comprising a dependent compiling unit for converting said platform independent intermediate language code into platform dependent intermediate language code corresponding to a target platform for which no grammar error has been detected.
제 11 항에 있어서,
상기 플랫폼 종속적인 중간 언어 코드를, 문법 오류가 검출되지 않은 타겟 플랫폼에 대응되는 실행 파일로 변환하는 실행파일 생성부를 더 포함하는 것을 특징으로 하는 중간 언어 변환 시스템.
12. The method of claim 11,
Further comprising an executable file generation unit for converting the platform dependent intermediate language code into an executable file corresponding to a target platform for which no grammar error is detected.
제 8 항에 있어서,
상기 플랫폼 독립적인 중간 언어 코드에서, 상기 연산자에 대응되는 문자열은 상기 연산자와 동일한 것을 특징으로 하는 중간 언어 변환 시스템.
9. The method of claim 8,
Wherein in the platform independent intermediate language code, the character string corresponding to the operator is the same as the operator.
제 8 항에 있어서,
상기 미리 결정된 연산자는 'sizeof ()'인 것을 특징으로 하는 중간 언어 변환 시스템.
9. The method of claim 8,
Wherein the predetermined operator is 'sizeof ()'.
데이터 처리 기기가,
미리 결정된 연산자를 포함하는, C 언어 기반의 소스 파일을 생성하는 단계;
상기 소스 파일을, 상기 연산자에 대응되는 문자열을 포함하는 플랫폼 독립적인 중간 언어 코드로 변환하는 단계; 및
상기 연산자에 대해 미리 결정된 값의 범위를 이용하여, 상기 플랫폼 독립적인 중간 언어 코드로부터 플랫폼 종속적인 문법 오류를 검출하는 단계를 수행하도록 상기 데이터 처리 기기를 제어하기 위한 프로그램이 기록된 컴퓨터로 판독 가능한 기록매체.
A data processing device,
Generating a C language based source file including a predetermined operator;
Converting the source file into platform independent intermediate language code including a string corresponding to the operator; And
Readable record in which a program for controlling said data processing device to perform a step of detecting a platform dependent grammar error from said platform independent intermediate language code using a range of predetermined values for said operator media.
KR1020130023270A 2013-03-05 2013-03-05 Method for transforming intermediate language using range of values of operator, system and computer-readable recording medium with program therefor KR101449657B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020130023270A KR101449657B1 (en) 2013-03-05 2013-03-05 Method for transforming intermediate language using range of values of operator, system and computer-readable recording medium with program therefor

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020130023270A KR101449657B1 (en) 2013-03-05 2013-03-05 Method for transforming intermediate language using range of values of operator, system and computer-readable recording medium with program therefor

Publications (2)

Publication Number Publication Date
KR20140109066A true KR20140109066A (en) 2014-09-15
KR101449657B1 KR101449657B1 (en) 2014-10-13

Family

ID=51755868

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020130023270A KR101449657B1 (en) 2013-03-05 2013-03-05 Method for transforming intermediate language using range of values of operator, system and computer-readable recording medium with program therefor

Country Status (1)

Country Link
KR (1) KR101449657B1 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113703779A (en) * 2021-09-06 2021-11-26 武汉市字节码科技有限公司 Cross-platform multi-language compiling method and ultra-light Internet of things virtual machine

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5748966A (en) * 1994-12-30 1998-05-05 The Trustees Of The University Of Pennsylvania Type error checker for type-free or polymorphic computer language
JPWO2008072334A1 (en) * 2006-12-14 2010-03-25 富士通株式会社 Compiling method and compiler
KR101142322B1 (en) * 2009-03-31 2012-05-17 (재)국토연구원 ASN.1 Compiler
KR101242479B1 (en) * 2011-07-01 2013-03-18 한국과학기술연구원 System and Method for Providing Application

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113703779A (en) * 2021-09-06 2021-11-26 武汉市字节码科技有限公司 Cross-platform multi-language compiling method and ultra-light Internet of things virtual machine
CN113703779B (en) * 2021-09-06 2024-04-16 王喆 Cross-platform multi-language compiling method and ultra-light Internet of things virtual machine

Also Published As

Publication number Publication date
KR101449657B1 (en) 2014-10-13

Similar Documents

Publication Publication Date Title
US9134966B2 (en) Management of mixed programming languages for a simulation environment
JP6122493B2 (en) Adaptively portable library
CN110096338A (en) Intelligent contract executes method, apparatus, equipment and medium
US20140123119A1 (en) Cobol to bytecode translation
US9928042B2 (en) Automatic classification of compilers
EP2754044A2 (en) Profile guided jit code generation
US6934940B2 (en) Source code transformation-temporary object reduction
CN104134039A (en) Virus checking and killing method, virus checking and killing client, virus checking and killing server and virus checking and killing system
US20060070043A1 (en) System and method for analyzing computer code
US11599478B2 (en) Reduced instructions to generate global variable addresses
US9672015B2 (en) Automatic determination of compiler configuration
KR101349631B1 (en) Method For Transforming Intermediate Language, System And Computer-Readable Recording Medium with Program Therefor
US6895579B2 (en) Method and apparatus for maintaining exception reporting for register promotion
KR20200071413A (en) Machine learning data generating apparatus, apparatus and method for analyzing errors in source code
KR101449657B1 (en) Method for transforming intermediate language using range of values of operator, system and computer-readable recording medium with program therefor
US20170083298A1 (en) Resilient format for distribution of ahead-of-time compiled code components
KR101277145B1 (en) Method For Transforming Intermediate Language by Using Common Representation, System And Computer-Readable Recording Medium with Program Therefor
KR102341137B1 (en) Code converting method based on intermediate language and electronic device including the same
KR101349628B1 (en) Method For Transforming Intermediate Language by Using Operator, System And Computer-Readable Recording Medium with Program Therefor
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
WO2022068559A1 (en) Code processing method and apparatus, and device
CN115545136B (en) Method for managing RAID card in domestic processor platform firmware
JP2023057721A (en) Verification program, verification method, and information processing device
US20240134666A1 (en) Hybrid just in time load module compiler with performance optimizations

Legal Events

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

Payment date: 20170928

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20181001

Year of fee payment: 5