KR100771057B1 - Device and method for transforming WIPI into intermediate language - Google Patents

Device and method for transforming WIPI into intermediate language Download PDF

Info

Publication number
KR100771057B1
KR100771057B1 KR1020050129519A KR20050129519A KR100771057B1 KR 100771057 B1 KR100771057 B1 KR 100771057B1 KR 1020050129519 A KR1020050129519 A KR 1020050129519A KR 20050129519 A KR20050129519 A KR 20050129519A KR 100771057 B1 KR100771057 B1 KR 100771057B1
Authority
KR
South Korea
Prior art keywords
intermediate language
code
mobile platform
interpreter
language
Prior art date
Application number
KR1020050129519A
Other languages
Korean (ko)
Other versions
KR20070067953A (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 KR1020050129519A priority Critical patent/KR100771057B1/en
Publication of KR20070067953A publication Critical patent/KR20070067953A/en
Application granted granted Critical
Publication of KR100771057B1 publication Critical patent/KR100771057B1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/76Adapting program code to run in a different environment; Porting

Landscapes

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

Abstract

본 발명은 모바일 플랫폼의 중간 언어 변환 장치 및 그 방법에 관한 것으로, 특히 본 발명의 장치는 C 또는 C++ 언어로 개발된 모바일 플랫폼 소스 코드를 이동통신 단말기의 인터프리터에서 요구하는 중간 언어 코드로 변환하는 C/C++ 컴파일러와, 중간 언어 코드를 이동통신 단말기의 인터프리터에서 실행되는 포맷으로 변환하는 중간 언어 어셈블러와, 중간 언어의 실행 파일을 저장하는 메모리를 포함한다. 그러므로, 본 발명은 위피(WIPI) 모바일 플랫폼의 C, C++ 소스 코드를 스택 기반의 가상 기계인 중간 언어 인터프리터에서 직접 실행되는 중간 언어(SIL) 코드로 변환하기 때문에 이동통신 단말기에서 중간 언어(SIL) 코드로 변환된 위피(WIPI) 모바일 플랫폼에 대한 아무런 수정이나 재구현 없이 위피(WIPI) 모바일 플랫폼 및 이의 컨텐츠를 실행시킬 수 있다.The present invention relates to an intermediate language conversion apparatus and method thereof for a mobile platform, and more particularly, to an intermediate language code required by an interpreter of a mobile terminal, the apparatus of the present invention converting a mobile platform source code developed in a C or C ++ language. / C ++ compiler, an intermediate language assembler for converting the intermediate language code into a format executed in the interpreter of the mobile communication terminal, and a memory for storing the intermediate language executable. Therefore, the present invention converts the C and C ++ source code of the WIPI mobile platform into intermediate language (SIL) code that is executed directly in the intermediate language interpreter, which is a stack-based virtual machine. It is possible to run the WIPI mobile platform and its contents without any modification or reimplementation of the converted WIPI mobile platform.

이동통신 단말기, 모바일 플랫폼, C 언어 Mobile terminal, mobile platform, C language

Description

모바일 플랫폼의 중간 언어 변환 장치 및 그 방법{Device and method for transforming WIPI into intermediate language} Device and method for transforming WIPI into intermediate language on mobile platforms

도 1은 일반적인 모바일 표준 플랫폼 규격을 나타낸 도면,1 is a view showing a general mobile standard platform standard,

도 2는 본 발명에 따른 위피(WIPI) 모바일 플랫폼을 중간 언어로 변환하는 장치를 개략적으로 나타낸 도면,FIG. 2 is a schematic diagram of an apparatus for converting a WIPI mobile platform into an intermediate language according to the present invention; FIG.

도 3은 본 발명에 따라 위피(WIPI) 모바일 플랫폼이 변환되는 중간 언어(SIL)의 연산 코드를 분류하는 카테고리를 나타낸 도면,FIG. 3 is a diagram illustrating a category for classifying operation codes of an intermediate language (SIL) to which a WIPI mobile platform is converted according to the present invention; FIG.

도 4는 본 발명에 따라 위피(WIPI) 모바일 플랫폼을 변환한 중간 언어(SIL) 연산코드 정의 테이블을 나타낸 도면.4 is a diagram illustrating an intermediate language (SIL) opcode definition table for converting a WIPI mobile platform in accordance with the present invention.

<도면의 주요부분에 대한 부호의 설명><Description of the code | symbol about the principal part of drawing>

10 : C 또는 C++ 언어로 개발된 위피(WIPI)10: WIPI developed in C or C ++ language

20 : C/C++ 컴파일러20: C / C ++ Compiler

30 : 중간 언어 어셈블러30: Intermediate Language Assembler

40 : 로더40: loader

50 : 메모리50: memory

본 발명은 모바일 플랫폼에 관한 것으로서, 특히 모바일 플랫폼인 위피(WIPI : Wireless Internet Platform for Interoperability)의 하드웨어 및 운영체제 종속성을 제거할 수 있는 모바일 플랫폼의 중간 언어 변환 장치 및 그 방법에 관한 것이다.BACKGROUND OF THE INVENTION 1. Field of the Invention The present invention relates to a mobile platform, and more particularly, to an intermediate language conversion device and a method of a mobile platform capable of eliminating hardware and operating system dependencies of a mobile platform, WIPI.

일반적으로 위피(WIPI)는 이동통신 단말기에 탑재되어 응용 프로그램(application)을 수행할 수 있는 환경을 제공하는 모바일 표준 플랫폼 규격으로서, 이동통신 단말기용 응용 프로그램 개발자에게 이 기종 단말기 간 컨텐츠 호환성을 보장하고 다양한 컨텐츠를 개발할 수 있는 환경을 제공한다.In general, WIPI is a mobile standard platform standard that provides an environment for executing applications by being mounted on a mobile communication terminal. It provides an environment for developing various contents.

도 1은 일반적인 모바일 표준 플랫폼 규격을 나타낸 도면이다. 도 1과 같이, 일반적인 모바일 플랫폼 규격은 이동통신 단말기 핸드세트의 하드웨어와, 단말기의 기본 소프트웨어(OS : Operating System)와, HAL(Handset Adaptation Layer)와, 모바일 표준 플랫폼과, 응용프로그램 개발자를 위한 C 언어와 JAVA 언어를 모두 지원하는 기본 API와, CLDC(Connected Limited Device Configuration)/MIDP(Mobile Information Device Profile)를 지원하는 확장 API, 그리고 응용 프로그램으로 구성되어 있다.1 illustrates a general mobile standard platform specification. As shown in FIG. 1, a general mobile platform standard includes hardware of a mobile terminal handset, an operating system (OS) of a terminal, a handset adaptation layer (HAL), a mobile standard platform, and C for application developers. It consists of a basic API that supports both the language and the JAVA language, an extension API that supports the Connected Limited Device Configuration (CLDC) / Mobile Information Device Profile (MIDP), and an application.

모바일 플랫폼인 위피(WIPI)는 플랫폼의 이식성을 높이기 위하여 HAL을 정의하고 있다. HAL은 단말기의 핸드셋트를 추상화하기 위한 계층으로써 위피(WIPI)를 탑재하기 위한 단말기 제조사들은 HAL 계층을 직접 구현함으로써 위피(WIPI) 모바일 플랫폼을 단말기에 포팅(porting)한다. 예를 들어, 국내 CDMA 단말기의 경우 퀄컴 OS(REX) 위에 HAL 계층을 포팅하면 단말기용 플랫폼이 되고, HAL 계층만을 윈도우즈(windows) 환경에 포팅하면 윈도우즈용 에뮬레이터가 된다.The mobile platform WIPI defines HAL to make the platform more portable. HAL is a layer to abstract the handset of the terminal, and handset manufacturers to mount the WIPI port port the WIPI mobile platform to the terminal by directly implementing the HAL layer. For example, in the case of a domestic CDMA terminal, porting the HAL layer on the Qualcomm OS (REX) becomes a platform for the terminal, and porting only the HAL layer to the Windows environment becomes an emulator for Windows.

따라서 모바일 플랫폼은 HAL 계층의 하드웨어 및 운영체제 종속성이 필연적이기 때문에 모바일 플랫폼을 갖는 이동통신 단말기 제조업체에서는 새로운 단말기가 나올 때마다 HAL 계층을 새롭게 수정하거나 이를 구현하는 작업을 반복해야 하는 문제점이 있었다.Therefore, since the mobile platform is inevitably dependent on the hardware and operating system of the HAL layer, a mobile terminal manufacturer having a mobile platform has a problem in that the new HAL layer needs to be newly modified or repeated to implement the new terminal.

본 발명의 목적은 상기와 같은 종래 기술의 문제점을 해결하기 위하여, C 또는 C++ 언어로 개발된 모바일 표준 플랫폼을 HAL 계층의 하드웨어 및 운영체제 종속성을 제거하기 위한 중간 언어로 변환하는 컴파일러를 구비함으로써 모바일 플랫폼의 HAL 계층에 대한 수정 또는 재구현하지 않고서도 이동통신 단말기에서 모바일 플랫폼을 그대로 실행할 수 있는 모바일 플랫폼의 중간 언어 변환 장치를 제공하는데 있다.An object of the present invention is to solve the problems of the prior art, the mobile platform by providing a compiler for converting the mobile standard platform developed in C or C ++ language into an intermediate language to remove the hardware and operating system dependency of the HAL layer It is an object of the present invention to provide an intermediate language conversion apparatus for a mobile platform that can run the mobile platform as it is without modifying or reimplementing the HAL layer of the mobile communication terminal.

본 발명의 다른 목적은, C 또는 C++ 언어로 개발된 모바일 표준 플랫폼을 중간 언어로 변환함으로써 모바일 표준 플랫폼의 HAL 계층에 대한 수정 또는 재구현하지 않고서도 이동통신 단말기에서 모바일 플랫폼을 그대로 실행할 수 있는 모바일 플랫폼의 중간 언어 변환 방법을 제공하는데 있다.Another object of the present invention, by converting the mobile standard platform developed in the C or C ++ language into an intermediate language, a mobile that can run the mobile platform as it is in the mobile terminal without modification or reimplementation of the HAL layer of the mobile standard platform It is to provide an intermediate language conversion method of the platform.

상기 목적을 달성하기 위하여 본 발명은, C 또는 C++ 언어로 개발된 모바일 플랫폼을 변환하는 장치에 있어서, C 또는 C++ 언어로 개발된 모바일 플랫폼 소스 코드를 이동통신 단말기의 인터프리터에서 요구하는 중간 언어 코드로 변환하는 C 또는 C++ 언어 컴파일러와, 중간 언어 코드의 파일을 이동통신 단말기의 인터프리터에서 실행되는 파일로 변환하는 중간 언어 어셈블러와, 중간 언어의 실행 파일을 메모리에 적재하는 로더를 포함한다.In order to achieve the above object, the present invention provides a device for converting a mobile platform developed in the C or C ++ language, the mobile platform source code developed in the C or C ++ language as an intermediate language code required by the interpreter of the mobile communication terminal A C or C ++ language compiler for converting, an intermediate language assembler for converting a file of an intermediate language code into a file executed by an interpreter of a mobile communication terminal, and a loader for loading an executable file of the intermediate language into a memory.

상기 다른 목적을 달성하기 위하여 본 발명은, C 또는 C++ 언어로 개발된 모바일 플랫폼을 변환하는 방법에 있어서, C 또는 C++ 언어로 개발된 모바일 플랫폼 소스 코드를 이동통신 단말기의 인터프리터에서 요구하는 중간 언어 코드로 변환하는 단계와, 중간 언어 코드를 이동통신 단말기의 인터프리터에서 실행되는 포맷으로 변환하는 단계와, 중간 언어의 실행 파일을 메모리에 적재하고 이를 이동통신 단말기의 인터프리터에 제공하는 단계를 포함한다.In order to achieve the above object, the present invention provides a method for converting a mobile platform developed in the C or C ++ language, the intermediate language code required by the interpreter of the mobile terminal source code developed in the C or C ++ language And converting the intermediate language code into a format executed in the interpreter of the mobile communication terminal, and loading the executable file of the intermediate language into a memory and providing the intermediate language code to the interpreter of the mobile communication terminal.

이하, 본 발명의 가장 바람직한 실시예를 첨부한 도면을 참조하여 본 발명의 기술분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있도록 더욱 상세히 설명하기로 한다.DETAILED DESCRIPTION Hereinafter, exemplary embodiments of the present invention will be described in detail with reference to the accompanying drawings so that those skilled in the art may easily implement the present invention.

도 2는 본 발명에 따른 위피(WIPI) 모바일 플랫폼을 중간 언어로 변환하는 장치를 개략적으로 나타낸 도면이다.FIG. 2 is a diagram schematically illustrating an apparatus for converting a WIPI mobile platform into an intermediate language according to the present invention.

도 2를 참조하면, 본 발명에 따른 모바일 플랫폼을 중간 언어로 변환하는 장 치는, C/C++ 컴파일러(20)와, 중간 언어 어셈블러(30)와, 로더(40)와, 메모리(50) 등을 포함한다.Referring to FIG. 2, a device for converting a mobile platform into an intermediate language according to the present invention includes a C / C ++ compiler 20, an intermediate language assembler 30, a loader 40, a memory 50, and the like. Include.

C/C++ 컴파일러(20)는 C 또는 C++ 언어로 개발된 모바일 플랫폼인 위피(WIPI)(10) 소스 코드를 이동통신 단말기에 탑재된 중간 언어 인터프리터(interpreter)를 통해 실행할 수 있는 중간 언어(SIL : Sinji Intermediate Language) 코드로 변환한다. The C / C ++ compiler 20 is an intermediate language (SIL) capable of executing the WiPI (10) source code, which is a mobile platform developed in the C or C ++ language, through an intermediate language interpreter mounted in a mobile communication terminal. Sinji Intermediate Language) code.

여기서, 본 발명의 모바일 플랫폼의 중간 언어(SIL)는 클래스 선언 등 특정 작업의 수행을 나타내는 의사 코드와, 실제 명령어에 대응되는 연산 코드로 이루어져 있어 C 또는 C++ 언어로 작성된 프로그램을 모두 실행할 수 있다. 이때, 이동통신 단말기에 탑재된 중간 언어 인터프리터는 스택 기반의 가상 기계(virtual machine)로써 의사 코드 및 연산 코드를 갖는 중간 언어를 해석하여 모바일 플랫폼 및 이의 컨텐츠를 실행한다. 또한 중간 언어(SIL)는 다수개의 최적화 코드가 정의되어 있어서 모바일 플랫폼 실행 성능을 최적화할 수 있다. Here, the intermediate language (SIL) of the mobile platform of the present invention is composed of pseudo code indicating execution of a specific task such as class declaration and operation code corresponding to an actual instruction, so that both programs written in C or C ++ language can be executed. In this case, the intermediate language interpreter mounted on the mobile communication terminal is a stack-based virtual machine, which interprets the intermediate language having the pseudo code and the operation code to execute the mobile platform and its contents. In addition, the intermediate language (SIL) has a number of optimization codes defined to optimize mobile platform execution performance.

중간 언어 어셈블러(30)는 C/C++ 컴파일러(20)에서 중간 언어(SIL)의 파일 포맷으로 변환된 SAF(SIL Assembly Format) 파일(*.saf)을 중간 언어 인터프리터의 실행 파일(SEF : SIL Executable Format)로 변환한다. 예를 들어, 중간 언어의 파일 포맷은 *.saf로, 그리고 중간 언어 인터프리터의 실행 파일 형태는 *.sef로 나타낸다.The intermediate language assembler 30 converts a SIL Assembly Format (SAF) file (* .saf) converted from a C / C ++ compiler 20 into a file format of an intermediate language (SIL) by an executable file (SEF: SIL Executable) of the intermediate language interpreter. Format). For example, the intermediate language file format is * .saf, and the intermediate language interpreter executable file type is * .sef.

로더(40)는 중간 언어 어셈블러(30)에서 중간 언어 인터프리터의 실행 파일(SEF 파일)을 메모리 로딩 형태(EMF : Executable Memory Format)로 변환하여 메모 리에 적재한다.The loader 40 converts an executable file (SEF file) of the intermediate language interpreter into an memory loading form (EMF: Executable Memory Format) in the intermediate language assembler 30 and loads it into memory.

메모리(50)는 로더(40)에 의해 적재된 중간 언어 인터프리터의 메모리 로딩 데이터를 저장하였다가 호출된 이동통신 단말기(미도시됨)의 중간 언어 인터프리터에 제공하도록 한다.The memory 50 stores the memory loading data of the intermediate language interpreter loaded by the loader 40 and provides it to the intermediate language interpreter of the called mobile communication terminal (not shown).

이와 같이 구성된 본 발명에 따른 모바일 플랫폼의 중간 언어 변환 장치는 다음과 같이 위피(WIPI) 모바일 플랫폼 소스 코드를 이동통신 단말기에 탑재된 중간 언어 인터프리터에서 실행하는 중간 언어(SIL) 코드로 변환한다.The intermediate language conversion apparatus of the mobile platform according to the present invention configured as described above converts the WIPI mobile platform source code into an intermediate language (SIL) code executed by the intermediate language interpreter mounted in the mobile communication terminal.

먼저, C 또는 C++ 언어로 개발된 모바일 플랫폼인 위피(WIPI)(10) 소스 코드는 C/C++ 컴파일러(20)를 통해 스택 기반의 가상 기계인 중간 언어 인터프리터에서 실행되도록 클래스 선언 등 특정 작업의 수행을 나타내는 의사 코드와, 실제 명령어에 대응되는 연산 코드를 포함하는 중간 언어(SIL) 파일 포맷의 SAF 파일(*.saf)로 변환된다.First, the WiPI (10) source code, a mobile platform developed in the C or C ++ language, performs specific tasks such as class declarations to be executed by the C / C ++ compiler (20) in the intermediate language interpreter, which is a stack-based virtual machine. Is converted into a SAF file (* .saf) in an intermediate language (SIL) file format that includes a pseudo code representing a symbol and an operation code corresponding to an actual instruction.

그리고 C/C++ 컴파일러(20)의 중간 언어(SIL) 파일 포맷의 SAF 파일(*.saf)은 중간 언어 어셈블러(30)를 통해 중간 언어 인터프리터의 실행 파일 포맷의 SEF 파일(*.sef)로 변환된다. The SAF file (* .saf) of the intermediate language (SIL) file format of the C / C ++ compiler 20 is converted into the SEF file (* .sef) of the executable file format of the intermediate language interpreter through the intermediate language assembler 30. do.

그 다음 중간 언어 어셈블러(30)의 중간 언어 인터프리터의 실행 파일 포맷의 SEF 파일(*.sef)은 로더(40)를 통해 메모리 로딩 형식인 EMF 형태로 변환되어 메모리(50)에 적재된다.The SEF file (* .sef) of the executable file format of the intermediate language interpreter of the intermediate language assembler 30 is then converted into the memory loading format EMF form by the loader 40 and loaded into the memory 50.

이후, 이동통신 단말기의 중간 언어 인터프리터에서는 메모리에 적재된 EMF 로부터 코드 데이터를 읽어 와서 이를 바로 스택 기반의 가상 기계에서 실행한다.After that, the intermediate language interpreter of the mobile communication terminal reads code data from the EMF loaded in the memory and executes it directly in the stack-based virtual machine.

보다 상세하게, 본 발명에 따라 위피(WIPI) 모바일 플랫폼이 변경된 중간 언어(SIL)의 의사 코드와 연산 코드에 대한 추가 설명은 다음과 같이 예를 들어 설명한다.More specifically, further description of the pseudo code and operation code of the intermediate language (SIL) in which the WIPI mobile platform has been changed according to the present invention will be described by way of example as follows.

위피(WIPI) 모바일 플랫폼이 변환되는 중간 언어(SIL)는 표 1과 같이 모두 14개의 기본 자료형을 지원한다.The Intermediate Language (SIL) to which the WIPI mobile platform is translated supports all 14 basic data types, as shown in Table 1.

symbolsymbol typetype descriptiondescription cc charchar 1byte signed integer1 byte signed integer ucuc unsigned charunsigned char 1byte unsigned integer1 byte unsigned integer ss shortshort 2byte signed integer2byte signed integer usus unsigned shortunsigned short 2byte unsigned integer 2byte unsigned integer ii intint 4byte signed integer4byte signed integer uiui unsigned intunsigned int 4byte unsigned integer 4byte unsigned integer ll longlong 8byte signed integer8byte signed integer ulul unsigned longunsigned long 8byte unsigned integer8byte unsigned integer pp pointerpointer 4byte unsigned integer4byte unsigned integer ff floatfloat 4byte floating point data4 byte floating point data dd doubledouble 8byte floating point data8byte floating point data vv voidvoid -- tt structstruct User defined typeUser defined type nn unionunion User defined typeUser defined type

중간 언어(SIL)는 사용자 정의 타입(User defined type)을 표현하기 위한 두 개의 심볼(예를 들어, t, n)과 미 정의 형(void type)을 표현하기 위한 한 개 심볼(예를 들어, v)을 포함한다. 그리고 부동 소수점 데이터(floating point data) 타입을 표현하기 위한 두 개의 심볼(예를 들어, f, d)과 메모리의 주소 값을 표현하기 위한 한 개 심볼(예를 들어, p)을 포함한다. 또한 1바이트, 2바이트, 4바이트, 8바이트 등의 부호/부호없는 정수(signed integer/unsigned integer) 타입을 표현하기 위한 총 여덟 개의 심볼(예를 들어, c, uc, s, us, i, ui, l, ul)을 포함한다.Intermediate language (SIL) has two symbols (e.g. t, n) for representing user defined types and one symbol (e.g. for undefined types). v). And two symbols (eg, f, d) for representing a floating point data type and one symbol (eg, p) for representing an address value of a memory. In addition, a total of eight symbols (e.g., c, uc, s, us, i, etc.) to represent signed / unsigned integer types such as 1 byte, 2 bytes, 4 bytes, 8 bytes, etc. ui, l, ul).

그리고, 중간 언어(SIL)를 구성하는 의사 코드는 다음 표 2와 같다.In addition, pseudo codes constituting the intermediate language (SIL) are shown in Table 2 below.

지시자indicator 의미meaning .literal.literal 리터럴 상수 선언Literal constant declaration .sym.sym 내부 변수 선언Internal variable declaration .symx.symx 외부 변수 선언External variable declaration .struct.struct 구조체 선언Struct declaration .func.func 함수 선언Function declaration .class.class 생성되는 클래스 이름과 접근 수정자를 정의Define generated class name and access modifier .field.field 클래스의 필드를 선언Declare field of class .method.method 클래스의 메소드를 선언Declare a method of a class .maxstack.maxstack 해당 메소드(함수)의 operand stack sizeOperand stack size of the method .throws.throws 해당 메소드에서 발생하는 예외를 선언Declare exceptions raised by that method .catch.catch 해당 메소드에서 예외 검사를 위한 구역을 설정Set a section for exception checking in that method .end.end class, method 등 블록의 끝을 표시Mark end of block, such as class or method

위와 같이 중간 언어(SIL)의 의사 코드는 심볼 선언, 클래스 선언 등 특정 작업의 수행을 의미하며 총 12개의 지시자를 정의하고 있다. As described above, the pseudo code of the intermediate language (SIL) signifies the execution of a specific task such as symbol declaration or class declaration, and defines 12 directives in total.

중간 언어(SIL) 의사 코드의 각 지시자는 ‘.’으로 시작하고, 하나의 지시자는 한 줄만을 정의한다. 예외적으로 .end 지시자는 .class, .method 지시자와 함께 사용하여 여러 줄을 정의하게 된다. 이때 중간 언어(SIL)의 의사 코드에 대한 주석은 ‘//’으로 시작하여 해당 행의 끝까지를 주석으로 처리한다.Each directive in the intermediate language (SIL) pseudo code begins with a '.' And one directive defines only one line. The exception is that the .end directive is used with the .class and .method directives to define multiple lines. Comments for pseudo code in the intermediate language (SIL) begin with ‘//’ and comment out the end of the line.

본 발명의 중간 언어(SIL)를 구성하는 연산 코드는 중간 언어 인터프리터 명령어에 대응되는 코드로써 연산의 종류에 따라 도 3과 같이 6개의 기본 카테고리와 1개의 최적화 카테고리로 분류된다.The operation code constituting the intermediate language (SIL) of the present invention is a code corresponding to the intermediate language interpreter instruction, and is classified into six basic categories and one optimization category as shown in FIG. 3 according to the type of operation.

중간 언어(SIL)의 연산 코드는 연산 기호(mnemonic)로 정의되며 이는 SAF(SIL Assembly Format) 파일에서 각 코드를 표시하는 기호이다. 중간 언어(SIL)의 열거형(enumeration) 표현인 opcode는 하나의 코드를 2바이트(2byte)로 나타내며 이 값은 중간 언어(SIL) 인터프리터 구현에 따라 가변적이다. 이때, 중간 언어(SIL)의 연산 코드는 필요에 따라 명령어 인자(instruction parameter)를 포함할 수 있다.The operation code of the intermediate language (SIL) is defined as an operation symbol (mnemonic), which is a symbol that represents each code in a SIL Assembly Format (SAF) file. The opcode, an enumeration representation of an intermediate language (SIL), represents one code as two bytes, and this value is variable depending on the implementation of the intermediate language (SIL) interpreter. In this case, the operation code of the intermediate language SIL may include an instruction parameter if necessary.

중간 언어(SIL) 연산 코드의 연산 기호는 코드의 가독성을 위해 오퍼레이션(operation)을 의미하는 알파벳과 정수의 조합으로 정의하고, 연산 코드의 종류에 따라 타입 정보가 필요한 경우 '.’(dot) 기호를 사용하여 타입 심볼(표 1 참조)을 패딩한다.The operation symbol of the intermediate language (SIL) operation code is defined as a combination of alphabets and integers that mean operations for code readability, and a '.' (Dot) symbol when type information is needed according to the type of operation code. Pad the type symbol (see Table 1).

그리고, 중간 언어(SIL) 연산 코드는 기본적으로 스택기반 코드로써 연산에 사용하는 피연산자를 오퍼랜드 스택(operand stack)에서 가져오며 연산의 결과를 오퍼랜드 스택에 저장한다. 이때 중간 언어(SIL) 연산 코드 중에서 최적화 카테고리의 연산 코드 등 일부 코드의 경우에는 스택을 사용하지 않고 직접 데이터가 저장된 메모리에 접근하여 연산을 수행한다.The intermediate language (SIL) operation code is basically stack-based code, and the operands used in the operation are taken from the operand stack, and the result of the operation is stored in the operand stack. In this case, some of the intermediate language (SIL) opcodes, such as opcodes of the optimization category, are operated by directly accessing a memory where data is stored without using a stack.

보다 상세하게, 중간 언어(SIL) 연산 코드는 다음과 같이 6개의 기본 카테고리와 1개의 최적화 카테고리 구성을 갖는다.More specifically, the intermediate language (SIL) opcode has six basic categories and one optimization category configuration as follows.

첫째, 스택 오퍼레이션(stack operations) 카테고리(100)는 기본적인 스택 제어 연산 코드와 저장장소에 따른 push/load 및 pop/store 연산 코드를 포함한다. 둘째, 산술 오퍼레이션(arithmetic operations) 카테고리(110)는 수학적 연산과 비교연산, 비트연산, 그리고 논리연산에 관련된 연산 코드를 포함한다. 셋째, 흐름 제어 오퍼레이션(flow control operations) 카테고리(120)는 분기(branch)와 메소드 호출에 관한 연산 코드를 포함한다. 넷째, 타입 변환 오퍼레이션(type conversion operations) 카테고리(130)는 스택 탑(top)에 있는 데이터의 타입을 변환하는 연산 코드를 포함한다. 다섯째, 객체 오퍼레이션(object operations) 카테고리(140)는 객체 생성과 필드에 관련된 연산 코드를 포함한다. 여섯째, 그 외 연산코드는 Misc. operations 카테고리(150) 안에 포함된다. 마지막의 최적화 오퍼레이션(optimization operations) 카테고리(160)는 최적화 코드 카테고리로써 여러 개의 기본 코드로 이루어진 일련의 연산을 하나로 최적화한 코드들이 여기에 포함된다.First, the stack operations category 100 includes basic stack control operation code and push / load and pop / store operation codes depending on the storage location. Second, the arithmetic operations category 110 includes mathematical codes and operation codes related to comparison operations, bit operations, and logical operations. Third, the flow control operations category 120 includes operation codes for branches and method calls. Fourth, the type conversion operations category 130 includes an operation code for converting the type of data on the stack top. Fifth, the object operations category 140 includes operation codes related to object creation and fields. Sixth, other operation codes are Misc. It is contained within the operations category 150. The last optimization operation category 160 is an optimization code category, which includes codes that optimize a series of operations consisting of several basic codes into one.

다음은 도 4에 도시된 중간 언어(SIL) 연산 코드를 정의하는 테이블 형식에 대한 기본 사항들에 대해 설명한다.The following describes the basics of the table format that defines the intermediate language (SIL) operation code shown in FIG.

도 4에 도시된 바와 같이, 위피(WIPI) 모바일 플랫폼이 변환되는 중간 언어(SIL) 연산 코드에 대한 정의 테이블은 연산 기호(Mnemonic)(200)와, 파라메터(210)와, 오퍼랜드 스택(220)과, 연산코드의 길이(Len)(230) 등을 포함한다. 미 설명된 Description은 각 연산 코드가 수행하는 일을 설명한다.As shown in FIG. 4, the definition table for the intermediate language (SIL) operation code to which the WIPI mobile platform is transformed includes an operation symbol (Mnemonic) 200, a parameter 210, and an operand stack 220. And the length (Len) 230 of the operation code. Unexplained Description describes what each operation code does.

여기서, 중간 언어(SIL) 연산 코드 정의 테이블의 연산 기호(200)는 연산 코드의 가독성을 위해 연산코드를 각 연산코드의 기능을 나타내는 심볼 형태로 정의한 것으로, SAF(SIL Assembly Format) 파일에서 사용된다.Here, the operation symbol 200 of the intermediate language (SIL) opcode definition table defines an opcode in the form of a symbol representing the function of each opcode for readability of the opcode, and is used in a SAF (SIL Assembly Format) file. .

상기 연산 코드 정의 테이블의 파라메터(210)는 연산 코드의 명령어 인자(instruction parameter)의 목록으로서, 인자 개수의 제한은 없다. 이러한 중간 언어(SIL) 연산 코드의 파라메터(210)는 다음 표 3과 같은 심볼 형태를 사용하여 해당 인자의 타입으로 표현한다.The parameter 210 of the operation code definition table is a list of instruction parameters of the operation code, and there is no limit on the number of arguments. The parameter 210 of the intermediate language (SIL) operation code is expressed as a type of a corresponding argument using a symbol form as shown in Table 3 below.

중간 언어(SIL) 연산 코드 테이블의 오퍼랜드 스택(220)은 pop, push, sp 등으로 구성된다. pop은 중간 언어(SIL) 인터프리터에서 연산코드를 실행할 경우 오퍼랜드 스택에서 팝(pop)하는 값의 목록이다. 목록의 순서는 실제로 이동통신 단말기에 탑재된 중간 언어 인터프리터에서 팝 연산을 하는 순서와 동일하고, 다음 표 3과 같은 심볼 형태를 사용하여 표현한다. 그리고 push는 연산코드 실행 시 연산의 결과 값으로 오퍼랜드 스택에 푸쉬(push)는 값의 목록이다. 목록의 순서는 실제 중간 언어 인터프리터에서 푸쉬 연산을 하는 순서와 동일하고, 다음 표 3과 같은 심볼 형태를 사용하여 표현한다. 또 sp는 중간 언어(SIL) 인터프리터에서 연산코드를 수행한 후에 오퍼랜드 스택의 스택 포인터 변화를 나타낸다. 이때, 정수로 가감을 표시한다.The operand stack 220 of the intermediate language (SIL) opcode table consists of pop, push, sp, and the like. pop is a list of values that pop on the operand stack when executing opcodes in the intermediate language (SIL) interpreter. The order of the list is actually the same as that of pop operation in the intermediate language interpreter installed in the mobile communication terminal, and is expressed using the symbol form as shown in Table 3 below. Push is a list of values that are pushed onto the operand stack as the result of the operation when the opcode is executed. The order of the list is the same as that of the push operation in the actual intermediate language interpreter, and it is expressed using the symbol form as shown in Table 3 below. Sp also indicates the change in the stack pointer of the operand stack after the opcode is executed by the intermediate language (SIL) interpreter. At this time, the acceleration and decrease is indicated by an integer.

중간 언어(SIL) 연산 코드의 길이(230)는 명령어 인자를 포함한 연산코드의 총 길이를 나타내고, 바이트 단위의 정수형 값을 갖는다.The length 230 of the intermediate language (SIL) opcode indicates the total length of the opcode including the instruction argument and has an integer value in bytes.

symbolsymbol description description cc CharacterCharacter ucuc Unsigned characterUnsigned character ss Short Short usus Unsigned shortUnsigned short ii Integer Integer uiui Unsigned integerUnsigned integer ll LongLong ulul Unsigned longUnsigned long pp Pointer Pointer ff FloatFloat dd Double Double ** Unspecified type or dataUnspecified type or data rr Object referenceObject reference BB Symbol base, 0:Global, 1:LocalSymbol base, 0: Global, 1: Local OO Offset from base: 4byte unsigned intOffset from base: 4byte unsigned int xx Array Index: unsigned shortArray Index: unsigned short <Label><Label> 프로그램 컨트롤을 이동할 위치의 레이블. SAF에서는 레이블 이름이 그대로 나오며, 어셈블러 출력인 SEF에서는 Code section의 시작점에서 Label까지의 byte 단위 offset으로 변환된다. Size: 4byte unsigned intThe label of where to move the program control. In SAF, the label name remains the same. In SEF, the assembler output is converted into a byte offset from the beginning of the code section to the Label. Size: 4byte unsigned int <Lib><Lib> -- <Class><Class> -- <Field><Field> -- <Method><Method> --

다음 표 4는 중간 언어(SIL) 연산 코드 테이블에서 사용되는 스택 데이터에 대한 심볼을 나타낸 것이다.Table 4 below shows the symbols for the stack data used in the intermediate language (SIL) opcode table.

symbol symbol descriptiondescription v0v0 Value of stack[top]Value of stack [top] v1v1 Value of stack[top-1]Value of stack [top-1] v2v2 Value of stack[top-2]Value of stack [top-2] v3v3 Value of stack[top-3]Value of stack [top-3]

본 발명에 따른 위피(WIPI) 모바일 플랫폼의 중간 언어 변환 장치 및 그 방법은 C 또는 C++ 언어로 작성된 위피(WIPI) 모바일 플랫폼의 소스 코드를 스택 기반의 가상 기계인 중간 언어 인터프리터에서 직접 실행되는 중간 언어(SIL) 코드로 변환한다. 이에 따라 중간 언어 인터프리터가 탑재된 이동통신 단말기에서는 위피(WIPI) 모바일 플랫폼의 HAL계층을 중간 언어 인터프리터(즉, 가상 기계)에 한번만 포팅하면 위피(WIPI) 소스 코드에 대한 아무런 수정이나 재 구현 없이도 모바일 플랫폼(WIPI) 및 이의 컨텐츠를 그대로 실행시킬 수 있다.Intermediate language conversion apparatus and method thereof of the WIPI mobile platform according to the present invention is an intermediate language that directly executes the source code of the WIPI mobile platform written in C or C ++ language in the intermediate language interpreter, which is a stack-based virtual machine. Convert to (SIL) code. Accordingly, in a mobile terminal equipped with an intermediate language interpreter, porting the HAL layer of the Wifi mobile platform to the intermediate language interpreter (ie, a virtual machine) once does not require any modification or reimplementation of the WiPI source code. The platform (WIPI) and its contents can be executed as is.

이상 설명한 바와 같이, 본 발명은 위피(WIPI) 모바일 플랫폼의 C, C++ 소스 코드를 스택 기반의 가상 기계인 중간 언어 인터프리터에서 직접 실행되는 중간 언어(SIL) 코드로 변환하여 이동통신 단말기에 제공하기 때문에 중간 언어(SIL)로 변환된 위피(WIPI)에 의해 HAL 계층을 하드웨어 및 운영체제와 완벽하게 분리할 수 있어 위피(WIPI) 모바일 플랫폼에 대한 아무런 수정이나 재구현없이 위피(WIPI) 모바일 플랫폼 및 이의 컨텐츠를 실행시킬 수 있다.As described above, the present invention converts the C and C ++ source code of the WIPI mobile platform into an intermediate language (SIL) code that is executed directly in the intermediate language interpreter, which is a stack-based virtual machine, and provides the same to the mobile communication terminal. The Wi-Fi (WIPI) transformed into intermediate language (SIL) allows the HAL layer to be completely separated from the hardware and operating system, allowing the Wi-Fi mobile platform and its contents without any modification or reimplementation of the Wi-Fi mobile platform. You can run

그러므로, 본 발명은 새로운 이동통신 단말기가 출시되거나 전혀 다른 종류의 임베디드 시스템이라고 해도 중간 언어(SIL) 인터프리터만 이동통신 단말기에 탑재되어 있으면 위피(WIPI) 모바일 플랫폼 및 이의 컨텐츠를 수정없이 그대로 실행시킬 수 있다.Therefore, even if a new mobile communication terminal is released or a completely different type of embedded system, if only the intermediate language (SIL) interpreter is installed in the mobile terminal, the WiPI mobile platform and its contents can be executed without modification. have.

한편, 본 발명은 상술한 실시 예에 국한되는 것이 아니라 후술되는 청구범위에 기재된 본 발명의 기술적 사상과 범주내에서 당업자에 의해 여러 가지 변형이 가능하다.On the other hand, the present invention is not limited to the above-described embodiment, various modifications are possible by those skilled in the art within the spirit and scope of the present invention described in the claims to be described later.

Claims (13)

C 또는 C++ 언어로 개발된 모바일 플랫폼을 변환하는 장치에 있어서,A device for converting a mobile platform developed in the C or C ++ language, 상기 C 또는 C++ 언어로 개발된 모바일 플랫폼 소스 코드를 이동통신 단말기의 인터프리터에서 요구하는 중간 언어 코드로 변환하는 C/C++ 컴파일러;A C / C ++ compiler for converting a mobile platform source code developed in the C or C ++ language into an intermediate language code required by an interpreter of a mobile communication terminal; 상기 중간 언어 코드의 파일을 상기 이동통신 단말기의 인터프리터에서 실행되는 파일로 변환하는 중간 언어 어셈블러; 및An intermediate language assembler for converting the file of the intermediate language code into a file executed in an interpreter of the mobile communication terminal; And 상기 중간 언어의 실행 파일을 저장하는 메모리를 포함하여 이루어진 것을 특징으로 하는 모바일 플랫폼의 중간 언어 변환 장치.The intermediate language conversion apparatus of the mobile platform, characterized in that it comprises a memory for storing the executable file of the intermediate language. 제 1항에 있어서, The method of claim 1, 상기 모바일 플랫폼의 중간언어 변환 장치는, The intermediate language conversion device of the mobile platform, 상기 중간 언어의 실행 파일을 상기 메모리에 저장하기 위한 형태로 변환하는 로더를 더 포함하는 것을 특징으로 하는 모바일 플랫폼의 중간 언어 변환 장치.And a loader for converting the executable file of the intermediate language into a form for storing in the memory. 제 1항 및 제 2항 중 어느 한 항에 있어서, The method according to any one of claims 1 and 2, 상기 중간 언어는 상기 이동통신 단말기의 인터프리터에서 실행되도록 특정 작업의 수행을 나타내는 의사 코드와, 명령어에 대응되는 연산 코드를 포함하는 것 을 특징으로 하는 모바일 플랫폼의 중간 언어 변환 장치.The intermediate language is an intermediate language conversion apparatus of the mobile platform, characterized in that it comprises a pseudo code indicating the execution of a specific task to be executed in the interpreter of the mobile communication terminal, the operation code corresponding to the instruction. 제 3항에 있어서, The method of claim 3, wherein 상기 인터프리터는 상기 의사 코드 및 상기 연산 코드를 갖는 중간 언어를 해독하여 실행하는 상기 이동통신 단말기의 모바일 플랫폼의 가상 기계인 것을 특징으로 하는 모바일 플랫폼의 중간 언어 변환 장치.And the interpreter is a virtual machine of a mobile platform of the mobile communication terminal which decodes and executes an intermediate language having the pseudo code and the operation code. 제 3항에 있어서, The method of claim 3, wherein 상기 연산 코드는 스택 오퍼레이션, 산술 오퍼레이션, 흐름 제어 오퍼레이션, 타입 변환 오퍼레이션, 객체 오퍼레이션, 또는 그 외 오퍼레이션 카테고리로 분류되는 연산 코드인 것을 특징으로 하는 모바일 플랫폼의 중간 언어 변환 장치.And said operation code is an operation code classified into a stack operation, an arithmetic operation, a flow control operation, a type conversion operation, an object operation, or another operation category. 제 3항에 있어서,The method of claim 3, wherein 상기 연산 코드는 스택 오퍼레이션, 산술 오퍼레이션, 흐름 제어 오퍼레이션, 타입 변환 오퍼레이션, 객체 오퍼레이션, 또는 그 외 오퍼레이션 카테고리로 분류되는 연산 코드들로 이루어진 일련의 연산을 하나의 코드로 최적화한 최적화 연산 코드인 것을 특징으로 하는 모바일 플랫폼의 중간 언어 변환 장치.The operation code is an optimization operation code that optimizes a series of operations consisting of operation codes classified into stack operation, arithmetic operation, flow control operation, type conversion operation, object operation, or other operation categories into one code. Intermediate language conversion device of the mobile platform. 제 3항에 있어서,The method of claim 3, wherein 상기 연산 코드는 연산 기호와, 파라메터와, 오퍼랜드 스택과, 연산코드의 길이 값을 포함하는 것을 특징으로 하는 모바일 플랫폼의 중간 언어 변환 장치.And the operation code comprises an operation symbol, a parameter, an operand stack, and a length value of the operation code. C 또는 C++ 언어로 개발된 모바일 플랫폼을 변환하는 방법에 있어서,In the method of converting mobile platform developed in C or C ++ language, 상기 C 또는 C++ 언어로 개발된 모바일 플랫폼 소스 코드를 이동통신 단말기의 인터프리터에서 요구하는 중간 언어 코드로 변환하는 단계;Converting the mobile platform source code developed in the C or C ++ language into an intermediate language code required by an interpreter of a mobile communication terminal; 상기 중간 언어 코드의 파일을 상기 이동통신 단말기의 인터프리터에서 실행되는 파일로 변환하는 단계; 및Converting the file of the intermediate language code into a file executed in an interpreter of the mobile communication terminal; And 상기 중간 언어의 실행 파일을 저장하고 이를 상기 이동통신 단말기의 인터프리터에 제공하는 단계를 포함하여 이루어진 것을 특징으로 하는 모바일 플랫폼의 중간 언어 변환 방법.And storing the executable file of the intermediate language and providing it to the interpreter of the mobile communication terminal. 제 8항에 있어서, The method of claim 8, 상기 중간 언어는 상기 이동통신 단말기의 인터프리터에서 실행되도록 특정 작업의 수행을 나타내는 의사 코드와, 명령어에 대응되는 연산 코드를 포함하는 것을 특징으로 하는 모바일 플랫폼의 중간 언어 변환 방법.The intermediate language is an intermediate language conversion method of the mobile platform, characterized in that it comprises a pseudo code indicating the execution of a specific task to be executed in the interpreter of the mobile communication terminal and the operation code corresponding to the instruction. 제 9항에 있어서, The method of claim 9, 상기 모바일 플랫폼의 중간 언어 변환 방법은, The intermediate language conversion method of the mobile platform, 상기 이동통신 단말기의 인터프리터에서 상기 의사 코드 및 상기 연산 코드를 갖는 중간 언어를 해독하여 상기 모바일 플랫폼 및 이의 컨텐츠를 실행하는 단계를 더 포함하는 것을 특징으로 하는 모바일 플랫폼의 중간 언어 변환 방법.And interpreting the intermediate language having the pseudo code and the operation code in the interpreter of the mobile communication terminal to execute the mobile platform and its contents. 제 9항 및 제 10항 중 어느 한 항에 있어서, The method according to any one of claims 9 and 10, 상기 연산 코드는 스택 오퍼레이션, 산술 오퍼레이션, 흐름 제어 오퍼레이션, 타입 변환 오퍼레이션, 객체 오퍼레이션, 또는 그 외 오퍼레이션 카테고리로 분류되는 연산 코드인 것을 특징으로 하는 모바일 플랫폼의 중간 언어 변환 방법.And the operation code is an operation code classified into a stack operation, an arithmetic operation, a flow control operation, a type conversion operation, an object operation, or another operation category. 제 9항 및 제 10항 중 어느 한 항에 있어서,The method according to any one of claims 9 and 10, 상기 연산 코드는 스택 오퍼레이션, 산술 오퍼레이션, 흐름 제어 오퍼레이션, 타입 변환 오퍼레이션, 객체 오퍼레이션, 또는 그 외 오퍼레이션 카테고리로 분류되는 연산 코드들로 이루어진 일련의 연산을 하나의 코드로 최적화한 최적화 연산 코드인 것을 특징으로 하는 모바일 플랫폼의 중간 언어 변환 방법.The operation code is an optimization operation code that optimizes a series of operations consisting of operation codes classified into stack operation, arithmetic operation, flow control operation, type conversion operation, object operation, or other operation categories into one code. Language translation method for mobile platforms. 제 9항 및 제 10항 중 어느 한 항에 있어서,The method according to any one of claims 9 and 10, 상기 연산 코드는 연산 기호와, 파라메터와, 오퍼랜드 스택과, 연산코드의 길이 값을 포함하는 것을 특징으로 하는 모바일 플랫폼의 중간 언어 변환 방법.And said operation code includes an operation symbol, a parameter, an operand stack, and a length value of the operation code.
KR1020050129519A 2005-12-26 2005-12-26 Device and method for transforming WIPI into intermediate language KR100771057B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020050129519A KR100771057B1 (en) 2005-12-26 2005-12-26 Device and method for transforming WIPI into intermediate language

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020050129519A KR100771057B1 (en) 2005-12-26 2005-12-26 Device and method for transforming WIPI into intermediate language

Publications (2)

Publication Number Publication Date
KR20070067953A KR20070067953A (en) 2007-06-29
KR100771057B1 true KR100771057B1 (en) 2007-10-29

Family

ID=38366463

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020050129519A KR100771057B1 (en) 2005-12-26 2005-12-26 Device and method for transforming WIPI into intermediate language

Country Status (1)

Country Link
KR (1) KR100771057B1 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101254756B1 (en) 2011-07-26 2013-04-15 김재식 Method of creating virtual machine compatible with multiple operating system, and program recording media for virtual machine

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101598820B1 (en) * 2013-12-02 2016-03-02 한국과학기술연구원 Method for distribution of application using hyper text markup language document comprising java script, apparatus and computer-readable recording medium with program therefor
KR101740134B1 (en) 2015-08-10 2017-05-26 라인 가부시키가이샤 System and method for application code obfuscation
US10255443B2 (en) 2016-02-11 2019-04-09 Line Corporation Method, apparatus, system and non-transitory computer readable medium for code protection
KR101832594B1 (en) 2016-02-18 2018-02-26 라인 가부시키가이샤 Method and system for enhancing loading velocity of intermediate language file

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07192034A (en) * 1993-12-27 1995-07-28 Nec Corp Interpreter type simulation method
KR20030063559A (en) * 2002-01-22 2003-07-31 주식회사 엠넷소프트 Method for converting data through extensible markup language
KR20040004619A (en) * 2001-05-11 2004-01-13 컴퓨터 어소시에이츠 싱크, 인코포레이티드 Method and system for transforming legacy software applications into modern object-oriented systems
US20040230958A1 (en) 2003-05-14 2004-11-18 Eyal Alaluf Compiler and software product for compiling intermediate language bytecodes into Java bytecodes
WO2005006120A2 (en) * 2003-06-26 2005-01-20 Microsoft Corporation An intermediate representation for multiple exception handling models
KR20050007901A (en) * 2003-07-12 2005-01-21 주식회사 지어소프트 Method and system for generating binary code executable in mobile terminal embedding mobile internet platform

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07192034A (en) * 1993-12-27 1995-07-28 Nec Corp Interpreter type simulation method
KR20040004619A (en) * 2001-05-11 2004-01-13 컴퓨터 어소시에이츠 싱크, 인코포레이티드 Method and system for transforming legacy software applications into modern object-oriented systems
KR20030063559A (en) * 2002-01-22 2003-07-31 주식회사 엠넷소프트 Method for converting data through extensible markup language
US20040230958A1 (en) 2003-05-14 2004-11-18 Eyal Alaluf Compiler and software product for compiling intermediate language bytecodes into Java bytecodes
WO2005006120A2 (en) * 2003-06-26 2005-01-20 Microsoft Corporation An intermediate representation for multiple exception handling models
KR20050007901A (en) * 2003-07-12 2005-01-21 주식회사 지어소프트 Method and system for generating binary code executable in mobile terminal embedding mobile internet platform

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101254756B1 (en) 2011-07-26 2013-04-15 김재식 Method of creating virtual machine compatible with multiple operating system, and program recording media for virtual machine

Also Published As

Publication number Publication date
KR20070067953A (en) 2007-06-29

Similar Documents

Publication Publication Date Title
US7380242B2 (en) Compiler and software product for compiling intermediate language bytecodes into Java bytecodes
US5923878A (en) System, method and apparatus of directly executing an architecture-independent binary program
Alves et al. Extracting and evolving mobile games product lines
AU764398B2 (en) Object-oriented instruction set for resource-constrained devices
US20070271553A1 (en) Method and system for translating assembler code to a target language
KR100763177B1 (en) Method for executing Java virtual machine instructions, and apparatus for the same
KR100771057B1 (en) Device and method for transforming WIPI into intermediate language
US10002010B2 (en) Multi-byte compressed string representation
JP2005537533A (en) Atomization of software
US20070169069A1 (en) Method and apparatus for using pre-translated files in a virtual machine
JP2007304840A (en) Compilation method, debugging method, compilation program, and debugging program
US6948156B2 (en) Type checking in java computing environments
EP0950947B1 (en) Static binding of dynamically dispatched calls in the presence of dynamic linking and loading
US7207036B2 (en) Preprocessing of interfaces to allow fast call through
JP2003202994A (en) Java COMPILER AND DEVICE FOR GENERATING COMPILER INFORMATION USED BY THE Java COMPILER
US20030005020A1 (en) Initialization of Java classes in Java virtual machine environments
Blagodarov et al. Tool demo: Raincode assembler compiler
Engelke et al. Using LLVM for optimized lightweight binary re-writing at runtime
US20020199169A1 (en) Representation of Java data types in virtual machines
US6961933B2 (en) Representation of Java data types in virtual machines
JP2002182926A (en) Compiling method and computer readable recording medium
Markstedter Blue Fox: Arm Assembly Internals and Reverse Engineering
KR20040044655A (en) Method of generating bytecodes for loop in java virtual machine and processing the bytecodes
Kågström et al. Cibyl: an environment for language diversity on mobile devices
Zeng et al. SC-xScript: An Embedded Script Language for Scientific Computation in Embedded Systems.

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
LAPS Lapse due to unpaid annual fee