KR101585044B1 - Integrated processing system for programming languages - Google Patents

Integrated processing system for programming languages Download PDF

Info

Publication number
KR101585044B1
KR101585044B1 KR1020140044525A KR20140044525A KR101585044B1 KR 101585044 B1 KR101585044 B1 KR 101585044B1 KR 1020140044525 A KR1020140044525 A KR 1020140044525A KR 20140044525 A KR20140044525 A KR 20140044525A KR 101585044 B1 KR101585044 B1 KR 101585044B1
Authority
KR
South Korea
Prior art keywords
language
parse tree
tree data
data
module
Prior art date
Application number
KR1020140044525A
Other languages
Korean (ko)
Other versions
KR20150118682A (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 KR1020140044525A priority Critical patent/KR101585044B1/en
Publication of KR20150118682A publication Critical patent/KR20150118682A/en
Application granted granted Critical
Publication of KR101585044B1 publication Critical patent/KR101585044B1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45504Abstract machines for programme code execution, e.g. Java virtual machine [JVM], interpreters, emulators

Abstract

본 발명은 프로그래밍 언어 통합 처리 시스템에 관한 것으로서, 보다 구체적으로는 소스코드 및 언어 정보를 이용해 파싱 프로세스(parsing process)를 수행하여 파스 트리 데이터(parse tree data)를 생성하는 데이터 임포트(data importer) 모듈; 상기 파스 트리 데이터를 실행하는 플레이어(player)를 포함하는 커널(kernel) 모듈; 및 상기 파스 트리 데이터를 미리 설정된 형태로 파일(file)에 저장하는 익스포터(exporter), 및 상기 익스포터로부터 파스 트리 데이터를 전달받아 미리 설정된 언어에 따른 변환 사전(dictionary)을 참조하여 변환된 코드를 생성하는 코드 제너레이터(code generator)를 포함하는 컨버전(conversion) 모듈을 포함하는 것을 그 구성상의 특징으로 한다.
본 발명에서 제안하고 있는 프로그래밍 언어 통합 처리 시스템에 따르면, 데이터 임포트 모듈이 언어 정보를 참고하여 다양한 소스 코드로부터 파스 트리 데이터(parse tree data)를 생성하고, 커널 모듈이 파스 트리 데이터를 실행함으로써, 다양한 언어에서 작업 되었던 계산 알고리즘을 하나의 통합된 환경에서 개발할 수 있으며, 특정 언어에 의존하지 않고도 사용자가 기존에 알고 있는 익숙한 언어로 알고리즘을 작성하고 실행할 수 있어 언어 습득에 따르는 개발 노력을 절감시킬 수 있다.
또한, 본 발명에 따르면, 컨버전 모듈이 파스 트리 데이터를 미리 설정된 언어별 변환 사전을 참조하여 변환된 코드를 생성함으로써, 특정 수치연산 소프트웨어에서 개발한 소스코드를 다른 언어로 변환하여 그 활용 범위를 넓힐 수 있다.
뿐만 아니라, 본 발명에 따르면, 언어별 변환 기능을 이용하여 특정 언어에 대한 지식 없이도 그 언어를 구사할 수 있도록 하고, 특정 언어를 배우고자 할 때에도 변환된 표현과 자신이 아는 언어의 문법이나 형식들을 비교해가며 학습해 볼 수 있다.
The present invention relates to a programming language integrated processing system, and more particularly, to a data importer module for generating parse tree data by performing a parsing process using source code and language information ; A kernel module including a player executing the parse tree data; And an exporter for storing the parse tree data in a file in a predetermined form and a conversion dictionary receiving a parse tree data from the exporter, And a conversion module including a code generator for converting the input signal into a digital signal.
According to the programming language integrated processing system proposed in the present invention, the data import module generates parse tree data from various source codes by referring to language information, and executes the parse tree data by the kernel module, It is possible to develop the calculation algorithms worked on the language in a single integrated environment and to write and execute the algorithm in the familiar language that the user already knows without relying on a specific language, .
Further, according to the present invention, the conversion module refers to the translation dictionary for each language in which the parse tree data is set in advance, and generates the converted code, so that the source code developed by the specific numerical calculation software is converted into another language .
In addition, according to the present invention, it is possible to use the language conversion function to speak the language without knowledge of a specific language, and to compare the converted expression with the grammar or form of the language that the user knows, You can learn to go.

Description

프로그래밍 언어 통합 처리 시스템{INTEGRATED PROCESSING SYSTEM FOR PROGRAMMING LANGUAGES}{INTEGRATED PROCESSING SYSTEM FOR PROGRAMMING LANGUAGES}

본 발명은 프로그래밍 언어 통합 처리 시스템에 관한 것으로서, 보다 구체적으로는 다양한 프로그래밍 언어들의 처리 및 이들의 변환 시스템에 관한 것이다.The present invention relates to a programming language integrated processing system, and more particularly, to processing of various programming languages and their conversion system.

컴퓨터 프로그램은 컴퓨터 또는 프로세서-기반 장치에 의해 수행될 동작들을 설명하는 명령어들의 목록이다. 컴퓨터 프로그램이 컴퓨터 하드웨어에 로드되어 실행될 때, 컴퓨터는 컴퓨터 프로그램의 명령어들을 따름으로써 미리 결정된 방식으로 동작할 것이다. 따라서 컴퓨터 프로그램은 컴퓨터를 명령어들에 의해 미리 정해진 동작들을 수행하는 특화된 기계로 만든다.
A computer program is a list of instructions describing operations to be performed by a computer or a processor-based device. When a computer program is loaded into computer hardware and executed, the computer will operate in a predetermined manner following instructions of the computer program. Thus, a computer program makes a computer a specialized machine that performs predetermined operations by instructions.

프로그래밍 언어는 통상적으로 언어의 특성 및 특징에 기초한 범주들로 분류된다. 예를 들어, C는 절차형(procedural) 프로그래밍 언어로 설명되는데, 이는 그것이 모듈성(modularity) 및 프로시져 호출의 개념에 기초하기 때문이다. C# 및 Java는 개체 클래스와 같은 프로그램 코드의 생성 및 조작 범위(Scope)에 맞춰진 개체지향 프로그래밍 언어들이다. SQL(Structured Query Language) 및 XPath를 포함하는 데이터 중심 언어들은 관계형 또는 XML(Extensible Markup Language) 데이터와 같은 저장된 데이터의 검색 및 조작에 맞춰진 것이다. 이러한 특화의 결과로서, 개별 프로그래밍 언어들은 응용 분야에 따라 장단점들을 갖는다.
Programming languages are typically categorized into categories based on language characteristics and characteristics. For example, C is described in a procedural programming language because it is based on the concept of modularity and procedure calls. C # and Java are object-oriented programming languages tailored to the creation and manipulation of program code, such as object classes. Data-centric languages, including Structured Query Language (SQL) and XPath, are tailored to the retrieval and manipulation of stored data such as relational or Extensible Markup Language (XML) data. As a result of this specialization, individual programming languages have advantages and disadvantages depending on the application.

현재의 프로그래머들은 종종 그들이 충분한 경험을 갖고 있는 특정 언어나 프로젝트의 가장 비중 있는 부분에 적합한 특정 언어로 컴퓨터 프로그램을 개발하는 것을 선호한다. 따라서 응용 분야에 따라 사용되는 언어는 다양할 수밖에 없다. 하지만, 어떤 알고리즘이 여러 응용 분야에서 동일하게 요구되고 이 알고리즘을 각 분야에 적합한 언어로 번역해야 한다면, 많은 시간과 노력을 필요로 하게 된다. 이 알고리즘을 업그레이드할 경우, 다른 언어로 매번 수작업 변환을 해야 한다면, 이는 상당히 비생산적이다. 따라서 프로그래밍 언어들 간의 통합된 자동 번역시스템이 필요하다.
Current programmers often prefer to develop computer programs in specific languages that are appropriate for the most specific part of a particular language or project for which they have sufficient experience. Therefore, the language used varies depending on the application field. However, if an algorithm is required equally in many applications and the algorithm needs to be translated into a language suitable for each field, it will take a lot of time and effort. If you upgrade this algorithm, you have to manually translate each language in another language, which is fairly counterproductive. Therefore, an integrated automatic translation system between programming languages is needed.

이와 관련된 기술로서, 변환대상 고수준 언어 코드에 대한 수정 없이도 모든 고수준 언어의 syntax 및 semantics를 변환 가능하여, 메인 컴파일러가 지원하는 모든 고수준 언어 코드를 HDL 코드로 변환하는 방법이 개시된바 있다(공개특허 제10-2011-0093965호).
As a related art, there has been disclosed a method for converting syntax and semantics of all high-level languages without converting the high-level language codes to be converted, and converting all high-level language codes supported by the main compiler into HDL codes 10-2011-0093965).

한편, 이학, 공학 분야에서는 다양한 수치연산 소프트웨어가 사용되며, 이와 같은 수치연산 소프트웨어에서 사용되는 언어와 함수들을 익히는 데 상당한 노력과 시간이 소요된다. 이미 다룰 줄 아는 소프트웨어 도구가 있었다 할지라도, 새로운 언어와 도구 사용법을 익혀야하는 상황이 얼마든지 발생하고, 이로 인해 효율적인 연구 및 알고리즘 개발에만 집중하지 못하는 경우가 많다. 따라서 이와 같은 문제를 해결하고 다양한 수치연산 소프트웨어를 통합적으로 사용할 수 있는 시스템의 개발이 시급히 필요한 실정이다.On the other hand, various numerical computation software are used in the fields of science and engineering, and it takes considerable effort and time to learn the languages and functions used in such numerical computation software. Even if you already have a software tool to deal with, there are a lot of situations where you need to learn new languages and tools, and often you can not concentrate on developing efficient research and algorithms. Therefore, there is an urgent need to develop a system capable of solving such problems and using various numerical computation software in an integrated manner.

본 발명은 기존에 제안된 방법들의 상기와 같은 문제점들을 해결하기 위해 제안된 것으로서, 데이터 임포트 모듈이 언어 정보를 참고하여 다양한 소스 코드로부터 파스 트리 데이터(parse tree data)를 생성하고, 커널 모듈이 파스 트리 데이터를 실행함으로써, 다양한 언어에서 작업되었던 계산 알고리즘을 하나의 통합된 환경에서 개발할 수 있으며, 특정 언어에 의존하지 않고도 사용자가 기존에 알고 있는 익숙한 언어로 알고리즘을 작성하고 실행할 수 있어 언어 습득에 따르는 개발 노력을 절감시킬 수 있는, 프로그래밍 언어 통합 처리 시스템을 제공하는 것을 그 목적으로 한다.
The present invention has been proposed in order to solve the above-mentioned problems of the previously proposed methods. The data import module generates parse tree data from various source codes with reference to language information, By executing the tree data, it is possible to develop the calculation algorithms worked on in various languages in one integrated environment, and it is possible to write and execute algorithms in a familiar language that the user knows without depending on a specific language, And to provide a programming language integrated processing system capable of reducing development effort.

또한, 본 발명은, 컨버전 모듈이 파스 트리 데이터를 미리 설정된 언어별 변환 사전을 참조하여 변환된 코드를 생성함으로써, 특정 수치연산 소프트웨어에서 개발한 소스코드를 다른 언어로 변환하여 그 활용 범위를 넓힐 수 있는, 프로그래밍 언어 통합 처리 시스템을 제공하는 것을 또 다른 목적으로 한다.Further, the present invention can convert the source code developed by a specific numerical computation software into another language by broadening the application range by generating a converted code by referring to the translation dictionary for each language in which the parse tree data is preset by the conversion module Another object of the present invention is to provide a programming language integrated processing system.

상기한 목적을 달성하기 위한 본 발명의 특징에 따른 프로그래밍 언어 통합 처리 시스템은,According to an aspect of the present invention,

소스코드 및 언어 정보를 이용해 파싱 프로세스(parsing process)를 수행하여 파스 트리 데이터(parse tree data)를 생성하는 데이터 임포트(data import) 모듈;A data import module for generating parse tree data by performing a parsing process using source code and language information;

상기 파스 트리 데이터를 실행하는 플레이어(player)를 포함하는 커널(kernel) 모듈; 및A kernel module including a player executing the parse tree data; And

상기 파스 트리 데이터를 미리 설정된 형태로 파일(file)에 저장하는 익스포터(exporter), 및 상기 익스포터로부터 파스 트리 데이터를 전달받아 미리 설정된 언어에 따른 변환 사전(dictionary)을 참조하여 변환된 코드를 생성하는 코드 제너레이터(code generator)를 포함하는 컨버전(conversion) 모듈을 포함하는 것을 그 구성상의 특징으로 한다.
An exporter for storing the parse tree data in a file in a predetermined form and a converted dictionary by referring to a dictionary in accordance with a predetermined language and receiving the parse tree data from the exporter And includes a conversion module including a code generator.

바람직하게는, 상기 익스포터는,Preferably, the above-

상기 파스 트리 데이터를 시리얼 데이터 형태로 상기 파일에 저장하는 시리얼라이저(serializer)를 더 포함할 수 있다.
And a serializer for storing the parse tree data in the file in the form of serial data.

바람직하게는, 상기 플레이어는, 외부 라이브러리를 이용하여 동작할 수 있다.
Advantageously, the player is operable using an external library.

바람직하게는, 상기 커널 모듈은,Advantageously, the kernel module further comprises:

상기 파스 트리 데이터에서 버그를 찾아내는 디버거(debugger)를 더 포함할 수 있다.
And a debugger for finding a bug in the parse tree data.

바람직하게는, 상기 데이터 임포트 모듈은,Preferably, the data import module includes:

미리 입력된 프리셋(preset) 정보에 포함된 언어 정보를 이용해 파싱 프로세스를 수행할 수 있다.
The parsing process can be performed using the language information included in the preset information that is input in advance.

바람직하게는,Preferably,

상기 파일에 저장된 변환된 코드를 컴파일(compile)하여 출력하는 컴파일러(compiler)를 더 포함할 수 있다.
And a compiler for compiling and outputting the converted code stored in the file.

바람직하게는, 상기 소스코드 또는 변환된 코드는,Advantageously, the source code or the transformed code comprises:

C/C++, 파스칼(PASCAL), 파이썬(Python), 매틀랩(MATLAB), 셈툴(CEMTool), 리스프(LISP), 아이엘(IL), 피엘시(PLC) 및 임베디드(embedded) 계열을 포함하는 군에서 선택된 언어로 작성될 수 있다.In the group including C / C ++, PASCAL, Python, MATLAB, CEMTool, LISP, IL, PLI and embedded, It can be written in the selected language.

본 발명에서 제안하고 있는 프로그래밍 언어 통합 처리 시스템에 따르면, 데이터 임포트 모듈이 언어 정보를 참고하여 다양한 소스 코드로부터 파스 트리 데이터(parse tree data)를 생성하고, 커널 모듈이 파스 트리 데이터를 실행함으로써, 다양한 언어에서 작업되었던 계산 알고리즘을 하나의 통합된 환경에서 개발할 수 있으며, 특정 언어에 의존하지 않고도 사용자가 기존에 알고 있는 익숙한 언어로 알고리즘을 작성하고 실행할 수 있어 언어 습득에 따르는 개발 노력을 절감시킬 수 있다.
According to the programming language integrated processing system proposed in the present invention, the data import module generates parse tree data from various source codes by referring to language information, and executes the parse tree data by the kernel module, It is possible to develop the calculation algorithms worked on the language in a single integrated environment and to write and execute the algorithm in the familiar language that the user already knows without relying on a specific language, .

또한, 본 발명에 따르면, 컨버전 모듈이 파스 트리 데이터를 미리 설정된 언어별 변환 사전을 참조하여 변환된 코드를 생성함으로써, 특정 수치연산 소프트웨어에서 개발한 소스코드를 다른 언어로 변환하여 그 활용 범위를 넓힐 수 있다.
Further, according to the present invention, the conversion module refers to the translation dictionary for each language in which the parse tree data is set in advance, and generates the converted code, so that the source code developed by the specific numerical calculation software is converted into another language .

뿐만 아니라, 본 발명에 따르면, 언어별 변환 기능을 이용하여 특정 언어에 대한 지식 없이도 그 언어를 구사할 수 있도록 하고, 특정 언어를 배우고자 할 때에도 변환된 표현과 자신이 아는 언어의 문법이나 형식들을 비교해가며 학습해 볼 수 있다.In addition, according to the present invention, it is possible to use the language conversion function to speak the language without knowledge of a specific language, and to compare the converted expression with the grammar or form of the language that the user knows, You can learn to go.

도 1은 본 발명의 일실시예에 따른 프로그래밍 언어 통합 처리 시스템의 구성을 도시한 도면.
도 2는 프로그래밍 언어의 계산 작업 영역을 도시한 도면.
도 3은 본 발명의 일실시예에 따른 프로그래밍 언어 통합 처리 시스템에서, 데이터 임포트 모듈의 세부적인 구성을 도시한 도면.
도 4는 프로그래밍 언어로 작성된 코드의 데이터 구조를 도시한 도면.
도 5는 본 발명의 일실시예에 따른 프로그래밍 언어 통합 처리 시스템에서, 커널 모듈의 세부적인 구성을 도시한 도면.
도 6은 본 발명의 일실시예에 따른 프로그래밍 언어 통합 처리 시스템에서, 컨버전 모듈 및 파일의 세부적인 구성을 도시한 도면.
1 is a diagram showing the configuration of a programming language integrated processing system according to an embodiment of the present invention;
Fig. 2 shows a calculation working area of a programming language; Fig.
3 is a diagram showing a detailed configuration of a data import module in a programming language integrated processing system according to an embodiment of the present invention;
4 is a diagram showing a data structure of a code written in a programming language;
5 is a diagram illustrating a detailed configuration of a kernel module in a programming language integrated processing system according to an embodiment of the present invention.
6 is a diagram showing a detailed configuration of a conversion module and a file in a programming language integrated processing system according to an embodiment of the present invention;

이하, 첨부된 도면을 참조하여 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자가 본 발명을 용이하게 실시할 수 있도록 바람직한 실시예를 상세히 설명한다. 다만, 본 발명의 바람직한 실시예를 상세하게 설명함에 있어, 관련된 공지 기능 또는 구성에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명을 생략한다. 또한, 유사한 기능 및 작용을 하는 부분에 대해서는 도면 전체에 걸쳐 동일한 부호를 사용한다.
Hereinafter, preferred embodiments of the present invention will be described in detail with reference to the accompanying drawings, in order that those skilled in the art can easily carry out the present invention. In the following detailed description of the preferred embodiments of the present invention, a detailed description of known functions and configurations incorporated herein will be omitted when it may make the subject matter of the present invention rather unclear. In the drawings, like reference numerals are used throughout the drawings.

덧붙여, 명세서 전체에서, 어떤 부분이 다른 부분과 ‘연결’ 되어 있다고 할 때, 이는 ‘직접적으로 연결’ 되어 있는 경우뿐만 아니라, 그 중간에 다른 소자를 사이에 두고 ‘간접적으로 연결’ 되어 있는 경우도 포함한다. 또한, 어떤 구성요소를 ‘포함’ 한다는 것은, 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라 다른 구성요소를 더 포함할 수 있다는 것을 의미한다.
In addition, in the entire specification, when a part is referred to as being 'connected' to another part, it may be referred to as 'indirectly connected' not only with 'directly connected' . Also, to "include" an element means that it may include other elements, rather than excluding other elements, unless specifically stated otherwise.

도 1은 본 발명의 일실시예에 따른 프로그래밍 언어 통합 처리 시스템의 구성을 도시한 도면이다. 도 1에 도시된 바와 같이, 본 발명의 일실시예에 따른 프로그래밍 언어 통합 처리 시스템은, 데이터 임포트 모듈(100), 커널 모듈(200), 컨버전 모듈(300) 및 파일(400)을 포함하여 구성될 수 있다.
1 is a diagram illustrating a configuration of a programming language integrated processing system according to an embodiment of the present invention. 1, a programming language integrated processing system according to an embodiment of the present invention includes a data import module 100, a kernel module 200, a conversion module 300, and a file 400, .

즉, 본 발명은, 데이터 임포트 모듈(100)이 소스코드(10) 및 언어 정보를 이용해 파스 트리 데이터(20)를 생성하고 커널 모듈(200)이 파스 트리 데이터(20)를 실행할 수 있으며, 컨버전 모듈(300)은 파스 트리 데이터(20)를 미리 설정된 언어에 따른 변환 사전(340)을 참조하여 변환된 코드(40)를 생성하여 파일(400)에 저장할 수 있다. 따라서 기존에 알고 있던 언어나 친숙한 언어로 코드를 작성하여 다른 언어로 된 소프트웨어에서 실행할 수 있으므로 개발 노력이 절약될 수 있고, 각 언어에서 사용되는 계산 작업을 하나의 통합된 환경에서 수행할 수 있으며, 특정 수치연산 소프트웨어에서 개발한 소스코드(10)를 변환하여 자유롭게 활용할 수 있다.
That is, the present invention can be applied to a case where the data import module 100 generates the parse tree data 20 using the source code 10 and the language information, the kernel module 200 can execute the parse tree data 20, The module 300 can generate the translated code 40 by referring to the translation dictionary 340 according to a predetermined language and store the parse tree data 20 in the file 400. [ As a result, you can save your development effort by writing code in a language you already know or in familiar languages, and running it in software in another language. You can perform the calculations used in each language in one integrated environment, The source code 10 developed by a specific numerical calculation software can be converted and used freely.

도 2는 프로그래밍 언어의 계산 작업 영역을 도시한 도면이다. 도 2에 도시된 바와 같이, 본 발명의 일실시예에 따른 프로그래밍 언어 통합 처리 시스템에서 처리하는 응용 영역은 계산 작업 영역에 국한한다. 다양한 프로그래밍 언어들은 응용 영역에 따라 특화되어 각자 독특한 문법과 특성을 갖고 있다. 특정 언어에서만 지원하는 알고리즘이나 명령어 체계들은 다른 언어로 변환될 수 없는 것이 사실이다. 그러나 도 2에 도시된 바와 같이, 거의 모든 대중적 프로그래밍 언어들은 공통적으로 수치적 계산 작업을 지원한다. 각 언어의 계산 작업 영역에는 공통적인 영역(빨간색 테두리 부분)이 존재하므로, 본 발명의 일실시예에 따른 프로그래밍 언어 통합 처리 시스템에서는 이러한 공통 영역을 이용해, 소스코드(10)의 언어에 관계없이 실행을 하거나, 언어 간 변환을 하는 등 통합적인 처리를 할 수 있다.
2 is a diagram showing a calculation work area of a programming language. As shown in FIG. 2, the application area to be processed by the programming language integrated processing system according to the embodiment of the present invention is limited to the calculation work area. Various programming languages have their own unique grammar and characteristics that are tailored to the application domain. It is true that algorithms and instructional schemes that are supported only in one language can not be translated into another language. However, as shown in Figure 2, almost all popular programming languages commonly support numerical computation operations. In the programming language integrated processing system according to the embodiment of the present invention, since there is a common area (red border part) in the calculation working area of each language, , Or can perform integrated processing such as conversion between languages.

이하에서는, 본 발명의 일실시예에 따른 프로그래밍 언어 통합 처리 시스템을 구성하는 각 구성요소에 대하여 상세히 설명하도록 한다.
Hereinafter, each component constituting the programming language integrated processing system according to an embodiment of the present invention will be described in detail.

데이터 임포트(data import) 모듈(100)은, 소스코드(10) 및 언어 정보를 이용해 파싱 프로세스(parsing process)를 수행하여 파스 트리 데이터(parse tree data)(20)를 생성할 수 있다. 이때, 언어 정보는 소스코드(10)의 언어의 종류일 수 있다. 이하에서는, 도 3을 참조하여 데이터 임포트 모듈(100)의 세부적인 구성에 대하여 설명하도록 한다.
The data import module 100 can generate parse tree data 20 by performing a parsing process using the source code 10 and the language information. At this time, the language information may be a kind of a language of the source code 10. Hereinafter, the detailed structure of the data import module 100 will be described with reference to FIG.

도 3은 본 발명의 일실시예에 따른 프로그래밍 언어 통합 처리 시스템에서, 데이터 임포트 모듈(100)의 세부적인 구성을 도시한 도면이다. 도 3에 도시된 바와 같이, 본 발명의 일실시예에 따른 프로그래밍 언어 통합 처리 시스템의 데이터 임포트 모듈(100)은, 임포터(110) 및 파서(parser)(120)를 포함하여 구성될 수 있다.
3 is a diagram showing a detailed configuration of the data import module 100 in the programming language integrated processing system according to an embodiment of the present invention. 3, the data import module 100 of the programming language integrated processing system according to an embodiment of the present invention may include an importer 110 and a parser 120. [

임포터(importer)(110)는, 소스코드(10) 및 언어 정보를 받아들일 수 있다. 도 3에 도시된 바와 같이, 소스코드(10)는, C/C++, 파스칼(PASCAL), 파이썬(Python), 매틀랩(MATLAB), 셈툴(CEMTool), 리스프(LISP), 아이엘(IL), 피엘시(PLC) 및 임베디드(embedded) 계열을 포함하는 군에서 선택된 언어로 작성된 것일 수 있다. 본 발명의 임포터(110)는 수치연산 소프트웨어에서 사용되는 다양한 언어를 수용할 수 있도록 구현될 수 있으며, 이를 통해 다양한 수치연산 소프트웨어의 통합 환경을 구성할 수 있다.
Importer 110 may accept source code 10 and language information. As shown in FIG. 3, the source code 10 may be stored in any one or more of C / C ++, PASCAL, Python, MATLAB, CEMTool, LISP, IL, And may be written in a language selected from the group including PLCs and embedded series. The importer 110 of the present invention can be implemented to accommodate various languages used in the numerical computation software, and thus can form an integrated environment of various numerical computation software.

파서(120)는, 파싱 프로세스(parsing process)를 수행하여 파스 트리 데이터(parse tree data)(20)를 생성할 수 있다. 파서(120)는 임포터(110)를 통해 입력된 소스코드(10)와 언어 정보를 이용해, 언어 정보에 부합하는 파싱 프로세스를 수행하여 소스코드(10)를 파싱(parsing)하고 파스 트리 데이터(20)를 생성할 수 있다.
The parser 120 may generate a parse tree data 20 by performing a parsing process. The parser 120 parses the source code 10 by performing a parsing process in accordance with the language information using the source code 10 and the language information input through the importer 110 and outputs the parse tree data 20 Can be generated.

도 4는 프로그래밍 언어로 작성된 코드의 데이터 구조를 도시한 도면이다. 도 4에 도시된 바와 같이, 본 발명의 일실시예에 따른 프로그래밍 언어 통합 처리 시스템의 파서(120)는, 파싱 프로세스를 통해 각 언어의 문법을 해석할 수 있다. 문법 해석을 통해, 도 4의 우측에 도시된 바와 같은 파스 트리(parse tree)로 변환할 수 있는데, 이 파스 트리 구조는 알고리즘 자체로서 모든 언어에서 공통적으로 표현 가능한 형태이다. 본 발명의 일실시예에 따른 프로그래밍 언어 통합 처리 시스템에서는, 이와 같은 동일한 파스 트리 구조에 근거하여 프로그래밍 언어 간의 계산 표현의 장벽을 허물고, 통합적인 처리를 할 수 있다.
4 is a diagram showing a data structure of a code written in a programming language. As shown in FIG. 4, the parser 120 of the programming language integrated processing system according to an embodiment of the present invention can interpret the grammar of each language through a parsing process. Through a grammar analysis, into a parse tree as shown in the right side of FIG. 4. This parse tree structure is a form that can be commonly expressed in all languages as an algorithm itself. In the programming language integrated processing system according to the embodiment of the present invention, the barrier of the calculation expression between the programming languages can be eliminated based on the same parse tree structure, and integrated processing can be performed.

한편, 데이터 임포트 모듈(100)은, 미리 입력된 프리셋(preset) 정보에 포함된 언어 정보를 이용해 파싱 프로세스를 수행할 수 있다. 즉, 사용자가 미리 언어 정보 등을 설정하는 프리셋 단계를 처리하고 데이터 임포트 모듈(100)을 통해 소스코드(10)를 입력함으로써, 파싱 프로세스가 원활하게 처리되도록 할 수 있다.
Meanwhile, the data import module 100 can perform a parsing process using language information included in preset information. That is, the user can process the preset step of setting language information and the like in advance, and input the source code 10 through the data import module 100, so that the parsing process can be smoothly processed.

커널 모듈(200)은, 데이터 임포트 모듈(100)로부터 파스 트리 데이터(20)를 전달받아 실행할 수 있다. 사용자는, 커널 모듈(200)을 통해 실행을 함으로써 소스코드(10)에 의한 계산 결과를 신속하게 확인해볼 수 있다. 이하에서는, 도 5를 참조하여 커널 모듈(200)의 세부적인 구성에 대해 상세히 설명하도록 한다.
The kernel module 200 can receive the parse tree data 20 from the data import module 100 and execute it. The user can quickly check the calculation result by the source code 10 by executing it through the kernel module 200. [ Hereinafter, the detailed configuration of the kernel module 200 will be described in detail with reference to FIG.

도 5는 본 발명의 일실시예에 따른 프로그래밍 언어 통합 처리 시스템에서, 커널 모듈(200)의 세부적인 구성을 도시한 도면이다. 도 5에 도시된 바와 같이, 본 발명의 일실시예에 따른 프로그래밍 언어 통합 처리 시스템의 커널 모듈(200)은, 플레이어(210)를 포함하여 구성될 수 있으며, 디버거(220)를 더 포함하여 구성될 수 있다.
5 is a diagram illustrating a detailed configuration of a kernel module 200 in a programming language integrated processing system according to an embodiment of the present invention. 5, the kernel module 200 of the programming language integrated processing system according to an exemplary embodiment of the present invention may include a player 210, and may further include a debugger 220, .

플레이어(210)는, 파스 트리 데이터(20)를 실행할 수 있다. 즉, 플레이어(210)는 데이터 임포트 모듈(100)로부터 파스 트리 데이터(20)를 전달받아 실행함으로써, 소스코드(10)의 계산 결과를 신속하게 확인해볼 수 있다. 한편, 플레이어(210)는, 외부 라이브러리(library)를 이용하여 동작할 수 있다.
The player 210 can execute the parse tree data 20. That is, the player 210 can receive the pastry data 20 from the data import module 100 and execute it, so that the calculation result of the source code 10 can be quickly checked. Meanwhile, the player 210 can operate using an external library.

이와 같이, 본 발명의 일실시예에 따른 프로그래밍 언어 통합 처리 시스템에서는, 서로 상이한 프로그래밍 언어에 의해 작성된 소스코드(10)를 파싱하더라도 궁극적으로는 동일한 구조를 갖는 파스 트리 데이터(20)로 생성함으로써, 소스코드(10)의 특정 언어 표현에 관계없이 플레이어(210)를 통해 동일한 실행 결과를 얻을 수 있다. 따라서 다양한 프로그래밍 언어를 단일 개발 환경에서 사용할 수 있게 된다.
As described above, in the programming language integrated processing system according to the embodiment of the present invention, even if the source code 10 generated by different programming languages is parsed, the parse tree data 20 having the same structure is ultimately generated, The same execution result can be obtained through the player 210 regardless of the specific language expression of the source code 10. [ Thus, various programming languages can be used in a single development environment.

디버거(debugger)(220)는, 파스 트리 데이터(20)에서 버그를 찾아낼 수 있다. 즉, 디버거(220)는, 알고리즘의 오류를 추적하기 위한 모듈이다. 플레이어(210)와 실행 기능은 동일하지만, 파스 트리 노드에 실행 중단점을 가진다. 따라서 디버거(220)는 사용자가 특정 트리 노드를 선택적으로 실행해 가면서 계산 오류 위치를 파악하도록 도울 수 있다.
A debugger 220 can find a bug in the parse tree data 20. That is, the debugger 220 is a module for tracking an error of the algorithm. The execution function is the same as that of the player 210, but has execution breakpoints in the parse tree node. Thus, the debugger 220 may help the user to identify the computational error location while selectively executing a particular tree node.

컨버전 모듈(300)은, 커널 모듈(200)로부터 파스 트리 데이터(20)를 전달받아 미리 설정된 언어로 변환하여 변환된 코드(40)를 생성할 수 있다. 이하에서는, 도 6을 참조하여 컨버전 모듈(300)의 세부적인 구성에 대하여 상세히 설명하도록 한다.
The conversion module 300 receives the parse tree data 20 from the kernel module 200 and converts the parse tree data 20 into a predetermined language to generate the converted code 40. [ Hereinafter, the detailed configuration of the conversion module 300 will be described in detail with reference to FIG.

도 6은 본 발명의 일실시예에 따른 프로그래밍 언어 통합 처리 시스템에서, 컨버전 모듈(300) 및 파일(400)의 세부적인 구성을 도시한 도면이다. 도 6에 도시된 바와 같이, 본 발명의 일실시예에 따른 프로그래밍 언어 통합 처리 시스템의 컨버전 모듈(300)은, 익스포터(310), 시리얼라이저(320), 코드 제너레이터(330) 및 변환 사전(340)을 포함하여 구성될 수 있으며, 컨버전 모듈(300) 외부에 컴파일러(350)를 더 포함하여 구성될 수 있다.
6 is a diagram showing a detailed configuration of the conversion module 300 and the file 400 in the programming language integrated processing system according to the embodiment of the present invention. 6, the conversion module 300 of the programming language integrated processing system according to an embodiment of the present invention includes an exporter 310, a serializer 320, a code generator 330, and a conversion dictionary 340 And may further include a compiler 350 on the outside of the conversion module 300.

익스포터(exporter)(310)는, 파스 트리 데이터(20)를 미리 설정된 형태로 파일(file)(400)에 저장할 수 있다. 즉, 도 6에 도시된 바와 같이, 커널 모듈(200)로부터 컨버전 모듈(300)에 전달된 파스 트리 데이터(20)는 사용자의 선택에 따라 익스포터(310)를 통해 미리 설정된 형태로 파일(400)에 저장될 수 있다. 파일(400)에 저장된 파스 트리 데이터(20)는 파싱 과정 없이 메모리 영역에 로드되어 커널 모듈(200)의 플레이어(210)를 통해 실행될 수 있다.
The exporter 310 may store the parse tree data 20 in a file 400 in a predetermined format. 6, the parse tree data 20 transferred from the kernel module 200 to the conversion module 300 is transferred to the file 400 in a predetermined form through the exporter 310 according to the user's selection, Lt; / RTI > The parse tree data 20 stored in the file 400 may be loaded into the memory area without being parsed and executed through the player 210 of the kernel module 200.

한편, 익스포터(310)는, 파스 트리 데이터(20)를 시리얼 데이터(32) 형태로 파일(400)에 저장하는 시리얼라이저(serializer)(320)를 더 포함할 수 있다. 즉, 도 6에 도시된 바와 같이, 익스포터(310)는 xml(31) 형태로 파일(400)에 파스 트리 데이터(20)를 저장할 수 있으나, 시리얼라이저(320)를 더 포함하여 시리얼 데이터(serial data)(32)의 형태로 파스 트리 데이터(20)를 파일(400)에 저장할 수 있다.
The exporter 310 may further include a serializer 320 for storing the parse tree data 20 in the form of the serial data 32 in the file 400. 6, the exporter 310 may store the parse tree data 20 in the file 400 in the form of xml 31, but it may further include a serializer 320 to store the serial data serial data (32) to the file (400).

코드 제너레이터(code generator)(330)는, 익스포터(310)로부터 파스 트리 데이터(20)를 전달받아 미리 설정된 언어에 따른 변환 사전(dictionary)(340)을 참조하여 변환된 코드(40)를 생성할 수 있다. 이때, 미리 설정된 언어에 따라 변환된 코드(40)는, C/C++, 파스칼(PASCAL), 파이썬(Python), 매틀랩(MATLAB), 셈툴(CEMTool), 리스프(LISP), 아이엘(IL), 피엘시(PLC) 및 임베디드(embedded) 계열을 포함하는 군에서 선택된 언어로 작성된 것일 수 있다. 코드 제너레이터(330)에 의해 생성된 변환된 코드(40)는 파일(400)에 저장될 수 있다.
The code generator 330 receives the parse tree data 20 from the exporter 310 and generates a converted code 40 by referring to a conversion dictionary 340 according to a predetermined language . At this time, the code 40 converted in accordance with a predetermined language is converted into a code in accordance with a predetermined language, such as C / C ++, PASCAL, Python, MATLAB, CEMTool, LISP, IL, And may be written in a language selected from the group including PLCs and embedded series. The converted code 40 generated by the code generator 330 may be stored in the file 400. [

사용자는 각종 수치연산을 위하여 특정 프로그래밍 언어로 소스코드(10)를 작성할 수 있는데, 작성된 소스코드(10)의 알고리즘을 다른 언어 환경에서도 동작시켜야 하는 경우가 있을 수 있다. 예를 들어, 파이썬과 같은 오픈소스 프로그램에서는 이미 작성된 다양한 스크립트가 공개되어 있는데, 본 발명에 따르면 이와 같이 파이썬에서 작성된 스크립트를 매틀랩 스크립트 파일과 혼합하여 활용할 수 있게 된다.
The user may write the source code 10 in a specific programming language for various numerical calculations. In some cases, the algorithm of the created source code 10 must be operated in a different language environment. For example, in an open source program such as Python, a variety of scripts have already been written, and according to the present invention, a script written in Python can be used in combination with a Malthle script file.

컴파일러(350)는, 파일(400)에 저장된 변환된 코드(40)를 컴파일(compile)하여 재사용할 수 있다. 예를 들어, 도 6에 도시된 바와 같이, 변환된 코드(40)가 C 또는 C++로 되어있는 경우, 외부 컴파일러(350)가 컴파일을 수행하여 DLL(Dynamic Linking Library)을 생성할 수 있다. 커널 모듈(200)의 플레이어(210) 및 디버거(220)는, 외부 라이브러리뿐 아니라 컨버전 모듈(300)의 컴파일러(350)에서 생성된 DLL을 포함하여 작동할 수 있다.
The compiler 350 can compile and reuse the translated code 40 stored in the file 400. [ For example, as shown in FIG. 6, when the converted code 40 is C or C ++, the external compiler 350 may compile to generate a dynamic linking library (DLL). The player 210 and the debugger 220 of the kernel module 200 can operate not only in the external library but also in the DLL generated in the compiler 350 of the conversion module 300. [

이와 같이, 본 발명의 일실시예에 따른 프로그래밍 언어 통합 처리 시스템에서는, 수치연산 시 사용되는 다양한 언어를 수용할 수 있는 임포터(110) 및 익스포터(310)를 구현함으로써, 각 언어에서 사용되는 계산 작업을 하나의 통합된 환경에서 수행할 수 있고, 기존에 알고 있던 언어나 친숙한 언어로 소스코드(10)를 작성할 수 있으므로 개발 노력이 절감되며, 개발된 소스코드(10)를 DLL과 같은 형태로 변환하여 활용 범위를 확장할 수 있다.
As described above, in the programming language integrated processing system according to the embodiment of the present invention, by implementing the importer 110 and the exporter 310 capable of accommodating various languages used in the numerical calculation, Can be performed in a single integrated environment and the source code 10 can be written in a known or familiar language so that the development effort is reduced and the developed source code 10 is converted into a DLL So that the application range can be extended.

이상 설명한 본 발명은 본 발명이 속한 기술분야에서 통상의 지식을 가진 자에 의하여 다양한 변형이나 응용이 가능하며, 본 발명에 따른 기술적 사상의 범위는 아래의 특허청구범위에 의하여 정해져야 할 것이다.The present invention may be embodied in many other specific forms without departing from the spirit or essential characteristics and scope of the invention.

10: 소스 코드 20: 파스 트리 데이터
31: xml 32: 시리얼 데이터
40: 변환된 코드 100: 데이터 임포트 모듈
110: 임포터 120: 파서
200: 커널 모듈 210: 플레이어
220: 디버거 300: 컨버전 모듈
310: 익스포터 320: 시리얼라이저
330: 코드 제너레이터 340: 변환 사전
350: 컴파일러 400: 파일
10: source code 20: parse tree data
31: xml 32: serial data
40: converted code 100: data import module
110: importer 120: parser
200: Kernel module 210: Player
220: Debugger 300: Conversion module
310: Exposer 320: Serializer
330: Code generator 340: Conversion dictionary
350: Compiler 400: Files

Claims (7)

프로그래밍 언어 통합 처리 시스템으로서,
소스코드(10) 및 언어 정보를 이용해 파싱 프로세스(parsing process)를 수행하여 파스 트리 데이터(parse tree data)(20)를 생성하는 데이터 임포트(data import) 모듈(100);
상기 파스 트리 데이터(20)를 실행하는 플레이어(player)(210)를 포함하는 커널 모듈(200); 및
상기 파스 트리 데이터(20)를 미리 설정된 형태로 파일(file)(400)에 저장하는 익스포터(exporter)(310), 및 상기 익스포터(310)로부터 파스 트리 데이터(20)를 전달받아 미리 설정된 언어에 따른 변환 사전(dictionary)(340)을 참조하여 변환된 코드(40)를 생성하는 코드 제너레이터(code generator)(330)를 포함하는 컨버전(conversion) 모듈(300)을 포함하며,
상기 익스포터(310)는,
상기 파스 트리 데이터(20)를 시리얼 데이터(32) 형태로 상기 파일(400)에 저장하는 시리얼라이저(serializer)(320)를 더 포함하는 것을 특징으로 하는, 프로그래밍 언어 통합 처리 시스템.
A programming language integrated processing system,
A data import module 100 for performing parse process using source code 10 and language information to generate parse tree data 20;
A kernel module 200 including a player 210 executing the parse tree data 20; And
An exporter 310 for storing the parse tree data 20 in a file 400 in a predetermined form and a parser for receiving the parse tree data 20 from the exporter 310, A conversion module 300 comprising a code generator 330 for generating a translated code 40 with reference to a translation dictionary 340 according to the present invention,
The exporter 310 may include:
Further comprising a serializer (320) for storing the parse tree data (20) in the file (400) in the form of serial data (32).
삭제delete 제1항에 있어서, 상기 플레이어(210)는,
외부 라이브러리를 이용하여 동작하는 것을 특징으로 하는, 프로그래밍 언어 통합 처리 시스템.
The game system according to claim 1, wherein the player (210)
Wherein the program language integrated processing system operates using an external library.
제1항에 있어서, 상기 커널 모듈(200)은,
상기 파스 트리 데이터(20)에서 버그를 찾아내는 디버거(debugger)(220)를 더 포함하는 것을 특징으로 하는, 프로그래밍 언어 통합 처리 시스템.
The apparatus of claim 1, wherein the kernel module (200)
Further comprising a debugger (220) for finding bugs in the parse tree data (20).
제1항에 있어서, 상기 데이터 임포트 모듈(100)은,
미리 입력된 프리셋(preset) 정보에 포함된 언어 정보를 이용해 파싱 프로세스를 수행하는 것을 특징으로 하는, 프로그래밍 언어 통합 처리 시스템.
The data import module according to claim 1, wherein the data import module (100)
Wherein the parsing process is performed using the language information included in the preset information previously input.
제1항에 있어서,
상기 파일(400)에 저장된 변환된 코드(40)를 컴파일(compile)하여 출력하는 컴파일러(compiler)(350)를 더 포함하는 것을 특징으로 하는, 프로그래밍 언어 통합 처리 시스템.
The method according to claim 1,
Further comprising a compiler (350) for compiling and outputting the converted code (40) stored in the file (400).
제1항에 있어서, 상기 소스코드(10) 또는 변환된 코드(40)는,
C/C++, 파스칼(PASCAL), 파이썬(Python), 매틀랩(MATLAB), 셈툴(CEMTool), 리스프(LISP), 아이엘(IL), 피엘시(PLC) 및 임베디드(embedded) 계열을 포함하는 군에서 선택된 언어로 작성된 것을 특징으로 하는, 프로그래밍 언어 통합 처리 시스템.
The method of claim 1, wherein the source code (10) or the converted code (40)
In the group including C / C ++, PASCAL, Python, MATLAB, CEMTool, LISP, IL, PLI and embedded, And the selected language is written in a selected language.
KR1020140044525A 2014-04-15 2014-04-15 Integrated processing system for programming languages KR101585044B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020140044525A KR101585044B1 (en) 2014-04-15 2014-04-15 Integrated processing system for programming languages

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020140044525A KR101585044B1 (en) 2014-04-15 2014-04-15 Integrated processing system for programming languages

Publications (2)

Publication Number Publication Date
KR20150118682A KR20150118682A (en) 2015-10-23
KR101585044B1 true KR101585044B1 (en) 2016-01-13

Family

ID=54427161

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020140044525A KR101585044B1 (en) 2014-04-15 2014-04-15 Integrated processing system for programming languages

Country Status (1)

Country Link
KR (1) KR101585044B1 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11636022B2 (en) 2019-04-16 2023-04-25 Samsung Electronics Co., Ltd. Server and control method thereof

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11636022B2 (en) 2019-04-16 2023-04-25 Samsung Electronics Co., Ltd. Server and control method thereof

Also Published As

Publication number Publication date
KR20150118682A (en) 2015-10-23

Similar Documents

Publication Publication Date Title
US7992140B2 (en) Compiler supporting programs as data objects
CN105164641B (en) Expand and develop environment
CN110149800B (en) Apparatus for processing abstract syntax tree associated with source code of source program
JP4157016B2 (en) Compiler apparatus and compiling method
US20130139137A1 (en) Systems and Methods for Customizing Optimization/Transformation/ Processing Strategies
US20180203676A1 (en) Removing library objects from a static library
CN108595334B (en) Method and device for calculating dynamic slices of Java program and readable storage medium
RU2347269C2 (en) System and method of declarative definition and use of subclasses in marking
US20150020051A1 (en) Method and apparatus for automated conversion of software applications
KR101585044B1 (en) Integrated processing system for programming languages
CN111158665B (en) Code generation method and device, electronic equipment and storage medium
JP6651974B2 (en) Information processing apparatus, compiling method and compiler program
Contrastin et al. Units-of-measure correctness in Fortran programs
US9304743B1 (en) Converting from incorrect program code to correct program code
CN109359055B (en) Data testing method and device
KR20220047928A (en) source modification engine
Bezzubikov et al. Automatic dynamic binary translator generation from instruction set description
JP2011129102A (en) Method and device for endian conversion
JPH0736680A (en) Parallelized program development aid device
Sharma et al. Finding substitutable binary code for reverse engineering by synthesizing adapters
Visser Understanding software through linguistic abstraction
CN109271237B (en) Simulation control method and device
Korenkov et al. Declarative target architecture definition for data-driven development toolchain
Porubän et al. Model-aware language specification with java
KR101585048B1 (en) Algorithm simulation system based on diagram

Legal Events

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

Payment date: 20181107

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20191205

Year of fee payment: 5