KR20140056977A - 다중 언어 코드 동시 실행 장치와 그 방법 - Google Patents

다중 언어 코드 동시 실행 장치와 그 방법 Download PDF

Info

Publication number
KR20140056977A
KR20140056977A KR1020120123511A KR20120123511A KR20140056977A KR 20140056977 A KR20140056977 A KR 20140056977A KR 1020120123511 A KR1020120123511 A KR 1020120123511A KR 20120123511 A KR20120123511 A KR 20120123511A KR 20140056977 A KR20140056977 A KR 20140056977A
Authority
KR
South Korea
Prior art keywords
user
syntax
code
language
function
Prior art date
Application number
KR1020120123511A
Other languages
English (en)
Other versions
KR101422737B1 (ko
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 KR1020120123511A priority Critical patent/KR101422737B1/ko
Publication of KR20140056977A publication Critical patent/KR20140056977A/ko
Application granted granted Critical
Publication of KR101422737B1 publication Critical patent/KR101422737B1/ko

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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3885Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units

Landscapes

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

Abstract

다중 언어 코드 동시 실행 장치와 그 방법이 개시된다. 복수의 프로그래밍 언어가 혼재된 사용자 작성 코드를 해석하고 실행하는 다중 언어 코드 동시 실행 장치는, 상기 사용자 작성 코드를 입력받는 에디터; 상기 에디터에 의해 입력된 상기 사용자 작성 코드를 코딩 구획별로 구분하여 상기 코딩 구획에 상응하는 프로그래밍 언어 문법 구조에서 내부 통합 구문 구조로 변환하여 순차 실행하는 런타임 실행부; 및 상기 순차 실행 과정에서 필요한 함수 처리, 변수 처리 혹은 디버깅을 보조하는 실행 보조 엔진을 포함할 수 있다.

Description

다중 언어 코드 동시 실행 장치와 그 방법{Mixed language code simultaneous running device and method}
본 발명은 다중 언어 코드 동시 실행 장치와 그 방법에 관한 것이다.
기존의 프로그래밍 소프트웨어(IDE, 통합 개발 환경)는 하나의 프로그래밍 언어만을 인식함으로써 하나의 프로그래밍 언어로 작성된 소스 코드만을 처리할 수 있었다. 따라서, 예전부터 작성되어온 많은 오픈 코드들을 일일이 해당 프로그래밍 언어로 번역하여 사용하거나 독립적으로 개발하게 됨으로써, 코드 재활용성이 떨어지고, 중복 개발 비용이 소요되며, 번역 과정에서 생겨난 오류까지 문제가 되었다.
근래 들어 윈도우즈(Windows) 뿐만 아니라 안드로이드 OS, 맥 OS, iOS 등 여러 운영체제가 활용되고 있으며, 이로 인해 각 운영체제 상에서의 프로그램 개발에 필요한 새로운 프로그래밍 언어의 습득과 번역에 많은 비용이 발생하고 있다.
또한, 연구자의 경우에도 여러 연구자가 구현해 놓은 다양한 프로그래밍 코드를 사용하기 위해서는 일일이 해당 언어를 습득하여야 하는 부담이 존재하고 있다.
한국공개특허공보 제10-2006-0104505호에는 임의의 프로그래밍 언어로 작성된 제1 데이터 파일을 특정 중간 언어로 작성되는 제2 데이터 파일로 변환하는 중간 언어 변환단계를 가지는 종합 문자열 분석기 및 그 분석 방법이 개시되어 있지만, 여전히 하나의 언어로 작성된 범용 코드가 다른 상용의 프로그래밍 소프트웨어에 의해 실행되는 것에 불과한 한계가 있다.
한국공개특허공보 제10-2006-0104505호
본 발명은 과거에 다른 프로그래밍 언어로 구현한 코드를 변형없이 복사(copy)하여 사용할 수 있어 별도의 번역 과정이나 독립적인 재개발이 필요치 않아 개발 비용이 절감되고 재활용성 및 안전성이 높아지는 다중 언어 코드 동시 실행 장치 및 방법을 제공하기 위한 것이다.
본 발명은 운영체제별로 개별 프로그래밍 언어를 습득할 필요 없이 다른 운영체제 상의 프로그래밍 언어로 작성된 코드로 동일한 동작 수행이 가능하며, 이종 운영체제 간의 재개발 비용이 절감되는 다중 언어 코드 동시 실행 장치 및 방법을 제공하기 위한 것이다.
본 발명은 과거 연구자가 활용한 여러 가지 프로그래밍 언어의 코드를 가져와 복사하여 사용할 수 있게 되므로 연구자의 여러 프로그래밍 언어 습득에 대한 부담감이 줄어들어 연구 수행의 집중력과 효율을 높일 수 있는 다중 언어 코드 동시 실행 장치 및 방법을 제공하기 위한 것이다.
본 발명의 이외의 목적들은 하기의 설명을 통해 쉽게 이해될 수 있을 것이다.
본 발명의 일 측면에 따르면, 복수의 프로그래밍 언어가 혼재된 사용자 작성 코드를 해석하고 실행하는 다중 언어 코드 동시 실행 장치로서, 상기 사용자 작성 코드를 입력받는 에디터; 상기 에디터에 의해 입력된 상기 사용자 작성 코드를 코딩 구획별로 구분하여 상기 코딩 구획에 상응하는 프로그래밍 언어 문법 구조에서 내부 통합 구문 구조로 변환하여 순차 실행하는 런타임 실행부; 및 상기 순차 실행 과정에서 필요한 함수 처리, 변수 처리 혹은 디버깅을 보조하는 실행 보조 엔진을 포함하는 다중 언어 코드 동시 실행 장치가 제공된다.
상기 런타임 실행부는, 상기 사용자 작성 코드를 구문 작성에 이용된 프로그래밍 언어에 따라 복수의 코딩 구획으로 구분하고, 코딩 구획별로 구분된 구문들을 상기 내부 통합 구문 구조로 변환하는 변환기와; 상기 내부 통합 구문 구조로 변환된 변환 구문들을 순차 실행하는 순차 실행기를 포함할 수 있다.
상기 런타임 실행부는 상기 코딩 구획별로 구분된 구문들을 상기 코딩 구획에 상응하는 프로그래밍 언어의 문법에 기초하여 문법 검사를 수행하는 전처리기를 더 포함할 수 있다.
상기 내부 통합 구문 구조는 순차 실행 가능한 절차용 노드 구조로서 트리 노드 구조일 수 있다.
상기 트리 노드 구조는 임의의 코딩 구획 내의 구문들을 행 단위로 구문 트리로 변환하고, 상기 구문 트리의 차일드 노드는 독립적으로 순차 수행 가능한 서브 트리를 가질 수 있다.
상기 순차 실행기는 상기 구문 트리 및 상기 서브 트리의 노드에 해당하는 명령어를 트리 노드 구조에 따라 순차적으로 실행할 수 있다.
상기 런타임 실행부는 사용자 인터페이스 및 운영체제 장치와의 입출력을 담당하는 입출력기를 더 포함할 수 있다.
상기 실행 보조 엔진은, 수학 함수, 문자열 함수, 파일(File) 함수, 시간/날짜(Time/Date) 함수 중 적어도 하나를 포함하는 내장 함수와, 사용자에 의해 신규 정의된 사용자 정의 함수를 처리하는 함수 처리 엔진과; 상기 사용자 작성 코드에서 정의된 변수 값의 저장 및 출력 시 데이터 타입을 변환하고 검증하는 변수 처리 엔진과; 상기 순차 실행 과정 중에 발생한 오류에 대한 처리를 수행하는 디버깅 엔진 중 적어도 하나를 포함할 수 있다.
한편 본 발명의 다른 측면에 따르면, 복수의 프로그래밍 언어가 혼재된 사용자 작성 코드를 해석하고 실행하는 다중 언어 코드 동시 실행 장치에서의 다중 언어 코드 동시 실행 방법 및 이를 수행하기 위한 프로그램이 기록된 기록매체가 제공된다.
일 실시예에 따른 다중 언어 코드 동시 실행 방법은, (a) 에디터를 통해 상기 사용자 작성 코드를 입력받는 단계; (b) 상기 에디터에 의해 입력된 상기 사용자 작성 코드를 코딩 구획별로 구분하는 단계; (c) 상기 코딩 구획에 상응하는 프로그래밍 언어 문법 구조에서 내부 통합 구문 구조로 변환하는 단계; 및 (d) 상기 내부 통합 구문 구조로 변환된 변환 구문들을 순차 실행하는 단계를 포함할 수 있다. 상기 내부 통합 구문 구조는 순차 실행 가능한 절차용 노드 구조로서 트리 노드 구조일 수 있다. 상기 트리 노드 구조는 임의의 코딩 구획 내의 구문들을 행 단위로 구문 트리로 변환하고, 상기 구문 트리의 차일드 노드는 독립적으로 순차 수행 가능한 서브 트리를 가질 수 있다.
상기 단계 (c) 이전에, 상기 코딩 구획별로 구분된 구문들을 상기 코딩 구획에 상응하는 프로그래밍 언어의 문법에 기초하여 문법 검사를 수행하는 단계를 더 포함할 수 있다.
상기 단계 (d)는 상기 구문 트리 및 상기 서브 트리의 노드에 해당하는 명령어를 트리 노드 구조에 따라 순차적으로 실행할 수 있다.
상기 단계 (d)는 실행 보조 엔진을 통해 상기 순차 실행 과정에서 필요한 함수 처리, 변수 처리 혹은 디버깅을 보조받을 수 있다.
전술한 것 외의 다른 측면, 특징, 이점이 이하의 도면, 특허청구범위 및 발명의 상세한 설명으로부터 명확해질 것이다.
본 발명의 실시예에 따르면, 과거에 다른 프로그래밍 언어로 구현한 코드를 변형없이 복사하여 사용할 수 있어 별도의 번역 과정이나 독립적인 재개발이 필요치 않아 개발 비용이 절감되고 재활용성 및 안전성이 높아지는 효과가 있다.
또한, 운영체제별로 개별 프로그래밍 언어를 습득할 필요 없이 다른 운영체제 상의 프로그래밍 언어로 작성된 코드로 동일한 동작 수행이 가능하며, 이종 운영체제 간의 재개발 비용이 절감되는 효과가 있다.
또한, 과거 연구자가 활용한 여러 가지 프로그래밍 언어의 코드를 가져와 복사하여 사용할 수 있게 되므로 연구자의 여러 프로그래밍 언어 습득에 대한 부담감이 줄어들어 연구 수행의 집중력과 효율을 높일 수 있는 효과가 있다.
도 1은 본 발명의 일 실시예에 따른 다중 언어 코드 동시 실행 장치의 구성 블록도,
도 2는 복수의 프로그래밍 언어로 작성된 프로그래밍 코딩 구문의 일 예시를 나타낸 도면,
도 3은 내부 통합 구문 구조와 각종 프로그래밍 언어들 간의 포함 관계를 나타낸 벤다이어그램,
도 4는 내부 통합 구문 구조로 변환하기 위한 사용자 작성 코드의 예시를 나타낸 도면,
도 5은 도 4에 예시된 사용자 작성 코드를 내부 통합 구문 구조로 변환한 경우 실행의 구문 트리를 나타낸 도면,
도 6은 도 5의 기본 트리에 포함되는 서브 트리들에 대한 독립적 노드 구조를 나타낸 도면,
도 7은 본 발명의 일 실시예에 따른 다중 언어 코드 동시 실행 방법의 순서도.
본 발명은 다양한 변환을 가할 수 있고 여러 가지 실시예를 가질 수 있는 바, 특정 실시예들을 도면에 예시하고 상세한 설명에 상세하게 설명하고자 한다. 그러나, 이는 본 발명을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변환, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다. 본 발명을 설명함에 있어서 관련된 공지 기술에 대한 구체적인 설명이 본 발명의 요지를 흐릴 수 있다고 판단되는 경우 그 상세한 설명을 생략한다.
제1, 제2 등의 용어는 다양한 구성요소들을 설명하는데 사용될 수 있지만, 상기 구성요소들은 상기 용어들에 의해 한정되어서는 안 된다. 상기 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용된다.
본 출원에서 사용한 용어는 단지 특정한 실시예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 출원에서, "포함하다" 또는 "가지다" 등의 용어는 명세서상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
또한, 명세서에 기재된 "…부", "…기", "…엔진" 등의 용어는 적어도 하나의 기능이나 동작을 처리하는 단위를 의미하며, 이는 하드웨어나 소프트웨어 또는 하드웨어 및 소프트웨어의 결합으로 구현될 수 있다.
이하, 본 발명의 실시예를 첨부한 도면들을 참조하여 상세히 설명하기로 하며, 첨부 도면을 참조하여 설명함에 있어, 동일하거나 대응하는 구성 요소는 동일한 도면번호를 부여하고 이에 대한 중복되는 설명은 생략하기로 한다.
도 1은 본 발명의 일 실시예에 따른 다중 언어 코드 동시 실행 장치의 구성 블록도이고, 도 2는 복수의 프로그래밍 언어로 작성된 프로그래밍 코딩 구문의 일 예시를 나타낸 도면이며, 도 3은 내부 통합 구문 구조와 각종 프로그래밍 언어들 간의 포함 관계를 나타낸 벤다이어그램이다.
본 발명의 일 실시예에 따른 다중 언어 코드 동시 실행 장치는 하나의 프로그래밍 소프트웨어 작업용 소스 코드 내에 여러 프로그래밍 언어(예를 들어, 포트란(Fortran), 베이직(Basic), C, Lisp 등)를 이용한 구문을 혼합 기재하고 각 프로그래밍 언어로 작성된 사용자 정의 함수, 변수, 클래스 등을 상호 공유하면서 교차 호출하여 동시 실행함으로써 하나의 프로그래밍 언어로 작성된 것과 같이 프로그래밍 언어별로 구분없이 인식하여 수행하는 것이 가능한 것을 특징으로 한다.
도 1을 참조하면, 본 발명의 일 실시예에 따른 다중 언어 코드 동시 실행 장치(1)는 에디터(100), 런타임 실행부(200), 실행 보조 엔진(300)을 포함한다.
에디터(100)는 동시 실행하고자 하는 다중 언어 프로그래밍 코딩 소스의 입력 및 편집이 가능한 코드 작성 창이다. 예를 들어 키보드, 마우스 등과 같은 사용자 입력 장치를 통해 에디터(100) 상에서 사용자가 직접 소스 코드를 타이핑하거나 이미 구현된 코드 일부 혹은 전체를 복사 및 편집할 수 있다.
본 발명에서 에디터(100)에 입력되는 프로그래밍 코딩 소스는 복수의 프로그래밍 언어로 작성될 수 있다. 이 경우 프로그래밍 코딩 구문은 프로그래밍 언어별로 하나 이상의 코딩 구획으로 구분될 수 있다.
도 2를 참조하면, 복수의 프로그래밍 언어로 작성된 프로그래밍 코딩 구문의 일 예시가 도시되어 있다. 도 2에서는 프로그래밍 코딩 구문이 제1 코딩 구획(A1)과 제2 코딩 구획(A2)으로 구분되며, 제1 코딩 구획(A1)은 프로그래밍 언어 중 Basic에 관한 구획이고, 제2 코딩 구획(A2)은 프로그래밍 언어 중 Fortran에 관한 구획인 것으로 예시되어 있다.
제1 코딩 구획(A1) 내에 기재된 코딩 구문에 대해서는 명령어 및 문장 구조가 Basic을 따르고 있으며, 따라서 그 문법, 내부 변수 처리 등이 Basic 언어 포맷으로 해석된다. 제2 코딩 구획(A2) 내에 기재된 코딩 구문에 대해서는 명령어 및 문장 구조가 Fortran을 따르고 있으며, 따라서 그 문법, 내부 변수 처리 등이 Fortran 언어 포맷으로 해석된다.
각 코딩 구획(A1, A2)은 구획별 사용 언어 정의 명령어(C1, C2)에 의해 해당 코딩 구획 내의 명령어 및 문법 구조가 어떠한 프로그래밍 언어에 의해 작성되었고, 해석 과정에서 이용할 프로그래밍 언어 포맷이 무엇인지가 결정된다.
임의의 구획별 사용 언어 정의명령어가 선언된 이후 후순의 구획별 사용 언어 정의 명령어가 선언되기 전까지의 구문들이 하나의 코딩 구획으로 정의되며, 해당 코딩 구획 내에서는 먼저 선언된 사용 언어의 문법에 따라 코딩이 이루어진 것으로 판단한다.
도 2에서는 'Language Basic' 및 'Language Fortran'과 같이 Language 명령어 후단에 프로그래밍 언어 타입을 기재함으로써, 각 코딩 구획 내에서 해당 프로그래밍 언어 타입의 규칙에 따라 코딩 구문이 해석되도록 하고 있다.
즉, Language 명령어 이후에 프로그래밍 언어 타입을 선언함으로써 구획별 사용 언어를 정의하고 있으나, 이는 일 실시예에 불과하며, 본 발명의 권리범위가 이에 한정되는 것은 아니고, 각 구획을 구분할 수 있고 구획별 사용 언어의 인식이 가능한 명령어라면 구획별 사용 언어 정의 명령어로 이용될 수 있음은 물론이다.
또한, 구획별 사용 언어 정의 명령어를 이용한 프로그래밍 언어 타입의 선언 없이 코딩되는 경우에는 사용자 혹은 장치 제공자에 의해 기본적으로(default) 설정된 언어 타입의 문법을 따르는 것으로 결정할 수 있다. 여기서, 기본 설정된 언어 타입으로는 예를 들어 Basic 등과 같은 시스템 기본 언어가 이용될 수 있다.
이와 같이 에디터(100)에 입력된 다중 언어 코드는 구획별 사용 연어 정의 명령어에 의해 코딩 구획이 구분되며, 코딩 구획별로 해석에 이용할 프로그래밍 언어 타입을 구분함으로써 언어별 해석 문제가 용이하게 해결될 수 있다.
다시 도1을 참조하면, 런타임 실행부(200)는 에디터(100)에 입력된 다중 언어 코드를 동일 형태의 내부 통합 구문 구조로 변환하고 순차 실행 및 디버깅을 수행한다.
런타임 실행부(200)는 변환기(220), 순차 실행기(230), 입출력기(240)를 포함한다. 실시예에 따라 전처리기(210)를 더 포함할 수 있다.
변환기(220)는 에디터(100)에 입력된 사용자 작성 코드를 코딩 구획별로 구분하고 각 코딩 구획별로 적합한 프로그래밍 언어 타입으로 해석하여 동일 형태의 내부 통합 구문 구조를 가지도록 구문 변환을 수행한다.
에디터(100)에 입력된 사용자 작성 코드는 도 2에 예시된 것과 같은 다중 언어 코드로서, 하나의 프로그래밍 언어 문법만으로는 해석될 수 없는 특징을 가진다. 따라서, 변환기(220)는 사용자 작성 코드의 명령어 및 문법 구조를 코딩 구획별로 정의된 각 프로그래밍 언어 타입별로 후단의 순차 실행기(230)에서 인식 가능한 문법 구조로 변환할 필요가 있다.
변환기(220)에서의 구문 변환에 앞서, 변환기(220)의 전단에 배치된 전처리기(210)에서 코딩 구획별로 정의된 프로그래밍 언어 타입별로 각 코딩 구획 내의 구문들이 문법적으로 하자가 있는지 여부를 검사할 수 있다. 본 발명에서 전처리기(210)의 기능은 변환기(220)에 통합적으로 구현되어 있을 수도 있다.
이를 위해 런타임 실행부(200)에는 에디터(100)를 통해 입력될 수 있는 사용자 작성 코드에 적용될 수 있는 다양한 프로그래밍 언어 타입에 대한 명령어 및 문법 구조에 대한 정보가 별도의 메모리(예를 들어, 데이터베이스 등)에 미리 저장되어 있어, 코딩 구획별로 정의된 프로그래밍 언어 타입에 따라 명령어 및 문법 구조의 해석 방법을 달리 하여 사용자 작성 코드 전체에 대한 해석(필요에 따라서는 문법 검사도 포함함)을 완료할 수 있게 된다.
변환기(220)에서의 구문 변환 처리를 위해, 런타임 실행부(200)는 다양한 프로그래밍 언어 타입이 가진 기능 명령어, 데이터 구조를 모두 내부 통합 구문 구조로 미리 구현해 두어 변환기(220)에서의 구문 변환에 문제가 없도록 미리 처리해 둘 수 있다.
도 3을 참조하면, 내부 통합 구문 구조와 각종 프로그래밍 언어들 간의 포함 관계가 도시되어 있다.
에디터(100)를 통해 입력되는 사용자 작성 코드는 다양한 프로그래밍 언어로 작성된 코딩 구문이 혼재된 다중 언어 코드이다. 따라서, 내부 통합 구문 구조는 이들 프로그래밍 언어 각각이 가지는 기능 명령어, 데이터 구조를 모두 포함하고 있어야 변환기(220)에서 구문 변환이 원활히 수행될 수 있다.
예를 들어 도 3에 예시된 것과 같은 경우에는, 내부 통합 구문 구조(10)는 C 구조(21), Basic 구조(22), Lisp 구조(23)를 모두 포함하는 것이 바람직하다. 상세하게는 내부 통합 구문이 처리 가능한 기능은 Basic 언어의 기능, C 언어의 기능, Lisp 언어의 기능의 합집합을 부분집합으로 포함한다(수학식 1 참조). 또한, 내부 통합 구문에 가능한 데이터 구조 역시 Basic 언어의 데이터 구조, C 언어의 데이터 구조, Lisp 언어의 데이터 구조의 합집합을 부분집합으로 포함한다(수학식 2 참조).
[수학식 1]
내부 통합 구문이 처리 가능한 기능 ⊃ {(Basic 언어의 기능) ∪ (C 언어의 기능) ∪ (Lisp 언어의 기능) ∪ ...}
[수학식 2]
내부 통합 구문에 가능한 데이터 구조 ⊃ {(Basic 언어 데이터 구조) ∪ (C 언어 데이터 구조) ∪ (Lisp 언어 데이터 구조) ∪ ...}
즉, 내부 통합 구문 구조는 전체집합 U에 해당하며, 각종 프로그래밍 언어들이 전체집합 U의 부분집합으로 존재하게 된다.
본 실시예에서 내부 통합 구문 구조는 순차 실행 가능한 절차용 노드 구조로서 트리 노드(Tree Node) 구조가 적용되며, 이에 대해서는 추후 관련 도면을 참조하여 설명하기로 한다.
다시 도 1을 참조하면, 변환기(220)에서 사용자 작성 코드를 순차 실행기(230)에서 인식 가능한 내부 통합 구문 구조, 특히 트리 노드 구조로 해석하는 과정에는 사용자 작성 코드에서 정의된 변수, 사용자가 정의한 함수, Explicit 등의 각종 선언 구문에 대한 해석 및 노드 구조로의 변환이 포함될 수 있다.
순차 실행기(230)는 변환기(220)에 의해 구문 변환된 내부 통합 구문에 대하여 원소(노드)에 해당하는 명령어(Command)를 순차적으로 실행한다.
내부 통합 구문 구조는 트리 노드 구조로서, 탑 노드 및 차일드 노드를 가지는 기본 트리(구문 트리) 및 서브 트리에 따라 순차 실행이 가능한 구문 구조를 가진다. 따라서, 순차 실행기(230)에서는 노드 순서에 따라 해당 노드에 기록된 내용(즉, 해당 노드에 상응하는 명령어)을 순차 실행하며, 실행상에 발생한 오류에 대한 디버깅을 처리할 수 있게 된다.
순차 실행 및/또는 디버깅을 위해 순차 실행기(230)는 실행 보조 엔진(300)의 도움을 받는다.
실행 보조 엔진(300)은 런타임 실행부(200), 특히 순차 실행기(230)에서의 순차 실행 시 혹은 디버깅 시에 필요로 하는 함수 처리, 변수 처리 혹은 디버깅을 보조한다. 실행 보조 엔진(300)은 함수 처리 엔진(310), 변수 처리 엔진(320), 디버깅 엔진(330) 중 적어도 하나를 포함한다.
함수 처리 엔진(310)은 수학 함수, 문자열 함수, 사용자 작성 코드에서 신규 정의된 사용자 정의 함수 등과 같이 순차 실행에 필요한 다양한 함수들을 처리한다.
순차 실행에 필요한 함수들 중 수학 함수 및 문자열 함수와 같은 내장 함수는 내부 통합 구문 구조에 포함되는 각종 프로그래밍 언어 데이터 구조에서 기본적으로 사용되는 함수들이며, 사용자 정의 함수는 사용자 작성 코드를 통해 신규 정의된 함수이다. 사용자 정의 함수의 경우 내부 통합 구문 구조(트리 노드 구조)로 변환 기록되며, 코드 상에서 해당 함수를 호출한 경우 해당 함수명의 노드 인자를 찾아 해당 노드 인자의 차일드 노드들을 순차적으로 실행하게 된다.
이러한 함수 처리 엔진(310)은 내장 함수 처리부와 사용자 정의 함수 처리부를 포함한다. 내장 함수 처리부는 행렬, 복소수, 문자열, 날짜 등과 같은 여러 가지 데이터 타입에 대해 각종 수학 함수, 문자열 함수, 파일(File) 함수, 시간/날짜(Time/Date) 함수를 처리하게 된다. 사용자 정의 함수 처리부는 사용자가 호출한 함수를 인덱스하고, 할당된 변수와 반환되는 값에 대해 검증하는 부분적인 역할과 재귀적 호출에 대한 처리를 담당한다.
변수 처리 엔진(320)은 사용자 작성 코드에서 정의된 변수 값의 저장 및 출력 시에 데이터 타입을 변환하고 검증한다. 또한, 로컬 변수, 전역 변수, 매개 변수, 상수 변수, 정적(static) 변수 등 각종 변수에 대한 규격화된 처리를 수행한다.
또한, 변수 처리 엔진(320)에서 처리 가능한 변수로는 내부 통합 구문 구조에 포함되는 각종 프로그래밍 언어 데이터 구조에 따라 정의 가능한 변수들이 포함된다.
예를 들어, Fortran에서는 변수 타입으로 복소수를 정의할 수 있고, Basic에서는 가변길이 문자열 타입을 지정할 수 있다. 즉, Fortran을 이용한 코딩 시에는 가변길이 문자열 타입의 변수 지정이 불가능하며, Basic을 이용한 코딩 시에는 복소수 타입의 변수 지정이 불가능하다.
하지만, 본 실시예에서는 내부 통합 구문 구조가 각종 프로그래밍 언어 데이터 구조를 모두 포함하고 있어, 복소수 타입 및 가변길이 문자열 타입의 변수 지정이 가능하게 된다. 뿐만 아니라, 수식, 행렬, 집합, 테이블, 리스트 등의 다양한 프로그래밍 언어에서 지원하는 변수 타입에 대하여 지원 및 처리가 가능하다.
즉, 변수 처리 엔진(320)을 통해 다형 변수 타입에 대하여 호환성 있는 지원 및 처리가 가능하게 된다.
디버깅 엔진(330)은 순차 실행 중 발생한 오류에 대한 처리를 수행한다.
실행 보조 엔진(300)에 포함되는 각 엔진들 사이의 상호 데이터 전송은 순차 실행기(230)에서 처리한다. 즉, 순차 실행기(230)에서 필요에 따라 각 엔진을 호출하여 처리하게 된다. 예를 들어, 변수 X의 값은 변수 처리 엔진(320)에서 받아오며, X에 대한 입력 명령어가 있으면 순차 실행기(230)에서 변수 처리 엔진(320)에 X의 값이 변경되었음을 전달하여 변수 처리 엔진(320)에서 변경된 X의 값을 저장하도록 할 수 있다.
런타임 실행부(200)에 포함되는 입출력기(240)는 정의된 변수의 입출력, 파일 입출력, 사용자 입출력 인터페이스 제공 등과 같이 기록 및 출력을 담당한다.
입출력기(240)는 사용자 인터페이스 및 운영체제 장치와의 입출력을 담당하게 되며, 예를 들어 Print, Input, File I/O, Table, Chart, Graph 등과 같은 명령어에 관련된 입출력을 처리한다.
이상에서는 본 발명의 일 실시예에 따른 다중 언어 코드 동시 실행 장치의 구성 및 기능에 대하여 살펴보았으며, 이하에서는 내부 통합 구문 구조로서 트리 노드 구조에 대하여 설명하기로 한다.
도 4는 내부 통합 구문 구조로 변환하기 위한 사용자 작성 코드의 예시를 나타낸 도면이고, 도 5은 도 4에 예시된 사용자 작성 코드를 내부 통합 구문 구조로 변환한 경우 실행의 구문 트리를 나타낸 도면이며, 도 6은 도 5의 기본 트리에 포함되는 서브 트리들에 대한 독립적 노드 구조를 나타낸 도면이다.
도 4를 참조하면, 일반적인 프로그래밍 언어를 이용하여 작성된 소스 코드로서, 해당 프로그래밍 언어에서 Function 선언문을 이용하여 Main 명칭의 함수를 정의하는 코딩 구문을 나타내고 있다.
Main 함수는 우선 Matrix 타입의 변수 X를 호출하며, 변수 X는 (a, b), (c, d)라는 행렬 요소를 입력받거나 미리 저장된 값을 가져온다. 그리고 변수 Y에 대하여 변수 X가 인자로 적용된 FuncUser 함수의 출력값을 저장하고, Y 값을 출력한다.
도 4에서 예시된 것과 같은 사용자 작성 코드는 순차 실행기에서 동작할 수 있도록 트리 노드에 정렬되며, 트리 노드는 실행문, 변수, 내장함수, 라벨(Label), 사용자 정의 함수, 내장상수 등과 같은 속성별로 정리된다.
각각의 노드들은 다시 세부 구조를 정의하는 독립적인 트리 노드들을 가지게 된다. 즉, 구문을 처리하는 트리(구문 트리)가 있고, 각 노드에는 구문 정보와 함께 세부적인 구조를 정의하는 독립적인 트리(서브 트리)가 포함된다.
도 5을 참조하면, 도 4에 예시된 사용자 작성 코드를 내부 통합 구문 구조(트리 노드 구조)로 변환한 경우 구문 트리가 도시되어 있다.
구문 트리는 실행의 기본이 되는 기본 트리로서, 탑 노드(Top Node)와 탑 노드에 종속되는 차일드 노드(Child Node)를 포함한다. 각 노드들(탑 노드 및 차일드 노드)은 독립적인 서브 트리를 가지고 있다.
도 5에 예시된 바에 의하면, 탑 노드에는 Function 선언문을 이용한 Main 함수의 정의 구문 'Function Main()'이 대응되고, 차일드 노드 각각에는 도 4의 Main() 함수를 설명하는 구문들이 행 단위로 대응된다. 차일드 노드 1에는 블록을 오픈하는 식별자 '{' 가 대응되고, 차일드 노드 2에는 변수 X를 정의하는 구문 'Matrix X'가 대응되며, 차일드 노드 3에는 변수 X에 대해 기술한 구문 'X = Matrix( (a, b), (c, d) )'가 대응되고, 차일드 노드 4에는 변수 Y에 대해 기술한 구문 'Y = FuncUser(X)'가 대응되며, 차일드 노드 5에는 변수 Y의 출력을 나타내는 구문 'Print Y'가 대응되고, 차일드 노드 6에는 블록을 클로즈하는 식별자 '}'가 대응된다.
기본 트리의 탑 노드 및 차일드 노드 각각은 다시 노드의 세부 구조를 정의하는 독립적인 트리 노드들, 즉 서브 트리(Sub Tree)를 가지고 있다.
도 6을 참조하면, 기본 트리의 탑 노드에 상응하는 서브 트리들은 다시 탑 노드와 차일드 노드를 포함하는 트리 노드 구조를 가진다.
서브 트리 1(Sub Tree 1)을 살펴보면, 탑 노드에는 Function을 정의하는 명령어 'Define Function'이 기록되며, 차일드 노드들에는 순차적으로 명칭(Name), 파라미터(Parameters), 리턴 타입(Return Type), 재귀 타입(Recursive Type)에 관한 속성이 기록된다. 명칭에 해당하는 차일드 노드에 'Main'이 기록되며, 타 속성에 관해서는 기록되는 값이 없어, 서브 트리 1에 의하면 별도 파라미터를 포함하지 않는 명칭 Main 함수가 신규 정의될 수 있다.
서브 트리 2(Sub Tree 2)를 살펴보면, 탑 노드에는 블록을 오픈하는 명령어 'Block Open'이 기록되며, 차일드 노드는 오픈 대상이 Function Block임을 의미하는 속성을 나타낸다.
서브 트리 3(Sub Tree 3)을 살펴보면, 탑 노드에는 변수를 정의하는 명령어 'Define Variable'이 기록되며, 차일드 노드들에는 변수 타입(Variable Type), 변수 명칭(Variable Name), 변수 차원(Variable Dimension)에 관한 속성이 기록된다. 서브 트리 3에 의하면 Matrix 타입의 명칭 X라는 변수가 신규 정의될 수 있다.
서브 트리 4(Sub Tree 4) 및 서브 트리 5(Sub Tree 5)를 살펴보면, 탑 노드에는 값 입력을 나타내는 명령어 'Put'이 기록되며, 서브 트리 4의 차일드 노드들에는 변수 X 및 Matrix( (a, b), (c, d) )에 대해 기술한 서브 트리 구조가 기록되고, 서브 트리 5의 차일드 노드들에는 변수 Y 및 함수 FuncUser(X) 호출에 대해 기술한 서브 트리 구조가 기록된다. 서브 트리 4 및 5에 의하면 변수 X 및 변수 Y에 대한 값이 결정될 수 있다.
서브 트리 6(Sub Tree 6)을 살펴보면, 탑 노드에는 출력을 나타내는 명령어 'Print'이 기록되며, 차일드 노드에는 변수 Y에 대해 기술한 서브 트리 구조가 기록된다. 서브 트리 6에 의하면 Main 함수의 실행 결과로 변수 Y의 값이 출력될 수 있다.
서브 트리 7(Sub Tree 7)을 살펴보면, 탑 노드에는 블록을 클로즈하는 명령어 'Block Close'가 기록되며, 차일드 노드는 클로즈 대상이 Function Block임을 의미하는 속성을 나타낸다.
이상과 같이 트리 노드 구조로 변환되는 경우, 소스 코드 작성 시 이용되었던 프로그래밍 언어와는 무관하게 해석 가능하게 되고, 기본 트리의 각 노드들이 순차적으로 실행될 수 있다.
이러한 트리 노드 구조를 가짐으로써, 여러 프로그래밍 언어가 혼재된 사용자 작성 코드에 대해서도 구문 해석하여 차별없이 동시에 서로의 변수 혹은 함수를 호출 실행할 수 있다.
또한, 기존에 사용된 여러 프로그래밍 언어의 다양한 소스들을 일일이 변환하지 않고서 직접 사용자 작성 코드에 해당 프로그래밍 언어 그대로 이식하여 실행하는 것이 가능하게 된다. 이로 인해 코드 번영 비용 및 번역 상의 오류를 낮추고, 전문 프로그래머가 아닌 일반 연구자의 연구 능력을 향상시킬 수 있는 장점이 있다.
도 7은 본 발명의 일 실시예에 따른 다중 언어 코드 동시 실행 방법의 순서도이다. 도 7의 각 단계들은 도 1에 도시된 다중 언어 코드 동시 실행 장치(1)의 각 구성요소에서 수행될 수 있다.
단계 S400에서, 에디터(100)를 통해 사용자 작성 코드가 입력된다. 사용자 작성 코드는 복수의 프로그래밍 언어로 작성된 구문이 혼합된 다중 언어 코드이다. 사용자 작성 코드의 입력은 사용자 입력 장치를 통한 직접 입력 이외에도 타 소스 코드로부터의 복사, 편집 등을 포함하는 개념이다.
단계 S410에서, 변환기(220)는 에디터(100)에 입력된 사용자 작성 코드를 코딩 구획별로 구분한다. 사용자 작성 코드 내에 포함된 구획별 사용 언어 정의 명령어를 이용한 선언문을 기준으로 코딩 구획별 구분이 이루어질 수 있다. 임의의 구획별 사용 언어 정의 명령어가 등장한 이후 다음에 등장할 때까지는 이번 구획별 사용 언어 정의 명령어에 의해 정의된 사용 언어가 해당 코딩 구획 내에서의 프로그래밍 언어가 된다.
단계 S420에서, 변환기(220)는 코딩 구획별로 작성된 구문들을 공통의 내부 통합 구문으로 변환한다. 여기서, 공통의 내부 통합 구문은 트리 노드 구조일 수 있다. 다양한 프로그래밍 언어로 작성된 구문들이 공통의 내부 통합 구문으로 변환됨으로써, 언어 구분 없이 실행 가능하게 된다.
단계 S420의 수행 이전에, 전처리기(210)가 코딩 구획별로 작성된 구문들에 대하여 상응하는 프로그래밍 언어를 이용한 문법 검사(단계 S415)가 선수행될 수 있다. 예를 들어, C 언어로 작성된 코딩 구획에 대해서는 C 언어 문법 검사를 수행하고, Basic 언어로 작성된 코딩 구획에 대해서는 Basic 언어 문법 검사를 수행할 수 있다.
단계 S430에서, 순차 실행기(230)는 내부 통합 구문으로 변환된 사용자 작성 코드에 대하여 구문별로 순차 실행한다.
내부 통합 구문은 트리 노드 구조를 가지고 있어, 기본 트리의 노드들이 순차적으로 실행된다. 기본 트리의 노드들은 독립적인 서브 트리를 가지고 있어 해당 노드의 실행 시 서브 트리의 각 노드들을 순차적으로 실행하게 된다. 노드의 실행 과정 중에 사용자 정의 함수의 호출이 있을 경우, 해당 함수의 노드 인자를 찾아 해당 노드 인자의 차일드 노드들을 순차적으로 실행하게 된다.
순차 실행기(230)에 의한 순차 실행 과정 중에 필요에 따라 실행 보조 엔진(300) 중 함수 처리 엔진(310), 변수 처리 엔진(320), 디버깅 엔진(330) 중 적어도 하나가 호출되어 이용될 수 있다.
단계 S440에서, 입출력기(240)는 순차 실행 결과 사용자 입력값이 필요한 경우에는 사용자 입력값을 입력받고, 이를 이용하여 사용자 작성 코드를 실행하여 계산하고 그 결과를 출력한다.
지금까지 도 1에 예시된 다중 언어 코드 동시 실행 장치(1)의 각 구성요소가 사용자 작성 코드를 입력받아 구문 실행하는 것을 가정하여, 도 7의 다중 언어 코드 동시 실행 방법을 설명하였다. 그러나 본 발명은 이에 한정되지 아니한다. 보다 구체적으로, 도 1에 예시된 다중 언어 코드 동시 실행 장치(1)의 각 구성요소는 본 발명이 적용되는 환경에 따라 다수개의 구성으로 분할되어 구현되거나 또는 기능이 통합되어 하나의 구성으로 구현될 수 있으므로, 해당 명칭에 관계없이 그 기능으로 통합 또는 분할하여 해석되어져야 할 것이다.
상술한 다중 언어 코드 동시 실행 방법은 디지털 처리 장치에 내장되거나 설치된 프로그램 등에 의해 시계열적 순서에 따른 자동화된 절차로 수행될 수도 있음은 당연하다. 상기 프로그램을 구성하는 코드들 및 코드 세그먼트들은 당해 분야의 컴퓨터 프로그래머에 의하여 용이하게 추론될 수 있다. 또한, 상기 프로그램은 디지털 처리 장치가 읽을 수 있는 정보저장매체에 저장되고, 디지털 처리 장치에 의하여 읽혀지고 실행됨으로써 상기 방법을 구현한다. 상기 정보저장매체는 자기 기록매체, 광 기록매체 및 캐리어 웨이브 매체를 포함한다.
본 발명에 의하면, 하나의 코드 페이지 안에 여러 프로그래밍 언어를 동시에 기술하는 것이 가능하다. 각 언어의 구분은 전술한 것과 같이 구획별 사용 언어 정의 명령어를 이용한 선언문을 통해 구획 처리가 가능하다.
또한, 하나의 사용자 작성 코드 안에 동시 서술된 C, Fortran, Basic 등의 여러 프로그래밍 언어를 동시에 실행하여, 서로 다른 프로그래밍 언어로 기술된 함수, 변수, 전역 선언 등을 서로 교차하여 함께 사용하는 것이 가능하다. 즉, 여러 프로그래밍 언어가 병합되고 서로의 함수 혹은 변수를 함께 공유하면서 교차 호출하는 것이 가능하다. 도 2에 예시된 것과 같은 사용자 작성 코드에서 Basic 구문 내에서 Fortran으로 작성된 Plus 함수를 호출하는 것이 그 일례이다.
또한, 실행 가능한 노드 구조로 해석된 프로그래밍 언어는 해당 노드에서 정의한 내용에 따라 순차적으로 실행되며, 실행 상에 발생한 오류는 디버깅을 처리하게 된다.
상기에서는 본 발명의 실시예를 참조하여 설명하였지만, 해당 기술 분야에서 통상의 지식을 가진 자라면 하기의 특허 청구의 범위에 기재된 본 발명의 사상 및 영역으로부터 벗어나지 않는 범위 내에서 본 발명을 다양하게 수정 및 변경시킬 수 있음을 이해할 수 있을 것이다.
1: 다중 언어 코드 동시 실행 장치 100: 에디터
200: 런타임 실행부 210: 전처리기
220: 변환기 230: 순차 실행기
240: 입출력기 300: 실행 보조 엔진
310; 함수 처리 엔진 320: 변수 처리 엔진
330; 디버깅 엔진

Claims (15)

  1. 복수의 프로그래밍 언어가 혼재된 사용자 작성 코드를 해석하고 실행하는 다중 언어 코드 동시 실행 장치로서,
    상기 사용자 작성 코드를 입력받는 에디터;
    상기 에디터에 의해 입력된 상기 사용자 작성 코드를 코딩 구획별로 구분하여 상기 코딩 구획에 상응하는 프로그래밍 언어 문법 구조에서 내부 통합 구문 구조로 변환하여 순차 실행하는 런타임 실행부; 및
    상기 순차 실행 과정에서 필요한 함수 처리, 변수 처리 혹은 디버깅을 보조하는 실행 보조 엔진을 포함하는 다중 언어 코드 동시 실행 장치.
  2. 제1항에 있어서,
    상기 런타임 실행부는,
    상기 사용자 작성 코드를 구문 작성에 이용된 프로그래밍 언어에 따라 복수의 코딩 구획으로 구분하고, 코딩 구획별로 구분된 구문들을 상기 내부 통합 구문 구조로 변환하는 변환기와;
    상기 내부 통합 구문 구조로 변환된 변환 구문들을 순차 실행하는 순차 실행기를 포함하는 것을 특징으로 하는 다중 언어 코드 동시 실행 장치.
  3. 제2항에 있어서,
    상기 런타임 실행부는 상기 코딩 구획별로 구분된 구문들을 상기 코딩 구획에 상응하는 프로그래밍 언어의 문법에 기초하여 문법 검사를 수행하는 전처리기를 더 포함하는 것을 특징으로 하는 다중 언어 코드 동시 실행 장치.
  4. 제2항에 있어서,
    상기 내부 통합 구문 구조는 순차 실행 가능한 절차용 노드 구조로서 트리 노드(Tree Node) 구조인 것을 특징으로 하는 다중 언어 코드 동시 실행 장치.
  5. 제4항에 있어서,
    상기 트리 노드 구조는 임의의 코딩 구획 내의 구문들을 행 단위로 구문 트리로 변환하고, 상기 구문 트리의 차일드 노드는 독립적으로 순차 수행 가능한 서브 트리를 가지는 것을 특징으로 하는 다중 언어 코드 동시 실행 장치.
  6. 제5항에 있어서,
    상기 순차 실행기는 상기 구문 트리 및 상기 서브 트리의 노드에 해당하는 명령어를 트리 노드 구조에 따라 순차적으로 실행하는 것을 특징으로 하는 다중 언어 코드 동시 실행 장치.
  7. 제2항에 있어서,
    상기 런타임 실행부는 사용자 인터페이스 및 운영체제 장치와의 입출력을 담당하는 입출력기를 더 포함하는 것을 특징으로 하는 다중 언어 코드 동시 실행 장치.
  8. 제1항에 있어서,
    상기 실행 보조 엔진은,
    수학 함수, 문자열 함수, 파일(File) 함수, 시간/날짜(Time/Date) 함수 중 적어도 하나를 포함하는 내장 함수와, 사용자에 의해 신규 정의된 사용자 정의 함수를 처리하는 함수 처리 엔진과;
    상기 사용자 작성 코드에서 정의된 변수 값의 저장 및 출력 시 데이터 타입을 변환하고 검증하는 변수 처리 엔진과;
    상기 순차 실행 과정 중에 발생한 오류에 대한 처리를 수행하는 디버깅 엔진 중 적어도 하나를 포함하는 것을 특징으로 하는 다중 언어 코드 동시 실행 장치.
  9. 복수의 프로그래밍 언어가 혼재된 사용자 작성 코드를 해석하고 실행하는 다중 언어 코드 동시 실행 장치에서의 다중 언어 코드 동시 실행 방법으로서,
    (a) 에디터를 통해 상기 사용자 작성 코드를 입력받는 단계;
    (b) 상기 에디터에 의해 입력된 상기 사용자 작성 코드를 코딩 구획별로 구분하는 단계;
    (c) 상기 코딩 구획에 상응하는 프로그래밍 언어 문법 구조에서 내부 통합 구문 구조로 변환하는 단계; 및
    (d) 상기 내부 통합 구문 구조로 변환된 변환 구문들을 순차 실행하는 단계를 포함하는 다중 언어 코드 동시 실행 방법.
  10. 제9항에 있어서,
    상기 단계 (c) 이전에, 상기 코딩 구획별로 구분된 구문들을 상기 코딩 구획에 상응하는 프로그래밍 언어의 문법에 기초하여 문법 검사를 수행하는 단계를 더 포함하는 것을 특징으로 하는 다중 언어 코드 동시 실행 방법.
  11. 제9항에 있어서,
    상기 내부 통합 구문 구조는 순차 실행 가능한 절차용 노드 구조로서 트리 노드(Tree Node) 구조인 것을 특징으로 하는 다중 언어 코드 동시 실행 방법.
  12. 제11항에 있어서,
    상기 트리 노드 구조는 임의의 코딩 구획 내의 구문들을 행 단위로 구문 트리로 변환하고, 상기 구문 트리의 차일드 노드는 독립적으로 순차 수행 가능한 서브 트리를 가지는 것을 특징으로 하는 다중 언어 코드 동시 실행 방법.
  13. 제12항에 있어서,
    상기 단계 (d)는 상기 구문 트리 및 상기 서브 트리의 노드에 해당하는 명령어를 트리 노드 구조에 따라 순차적으로 실행하는 것을 특징으로 하는 다중 언어 코드 동시 실행 방법.
  14. 제9항에 있어서,
    상기 단계 (d)는 실행 보조 엔진을 통해 상기 순차 실행 과정에서 필요한 함수 처리, 변수 처리 혹은 디버깅을 보조받는 것을 특징으로 하는 다중 언어 코드 동시 실행 방법.
  15. 제9항 내지 제14항 중 어느 한 항에 기재된 다중 언어 코드 동시 실행 방법을 수행하기 위해 디지털 처리 장치에 의해 실행될 수 있는 명령어들의 프로그램이 유형적으로 구현되어 있으며 디지털 처리 장치에 의해 판독될 수 있는 기록매체.
KR1020120123511A 2012-11-02 2012-11-02 다중 언어 코드 동시 실행 장치와 그 방법 KR101422737B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020120123511A KR101422737B1 (ko) 2012-11-02 2012-11-02 다중 언어 코드 동시 실행 장치와 그 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020120123511A KR101422737B1 (ko) 2012-11-02 2012-11-02 다중 언어 코드 동시 실행 장치와 그 방법

Publications (2)

Publication Number Publication Date
KR20140056977A true KR20140056977A (ko) 2014-05-12
KR101422737B1 KR101422737B1 (ko) 2014-07-24

Family

ID=50888032

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020120123511A KR101422737B1 (ko) 2012-11-02 2012-11-02 다중 언어 코드 동시 실행 장치와 그 방법

Country Status (1)

Country Link
KR (1) KR101422737B1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20180037631A (ko) 2016-10-04 2018-04-13 (주)모션블루 블록을 이용한 코딩 교육 서비스 제공 장치 및 방법

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20200136679A (ko) 2019-05-28 2020-12-08 삼성에스디에스 주식회사 이종 언어 함수를 포함하는 워크플로우 실행 방법 및 그 장치

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7707566B2 (en) * 2003-06-26 2010-04-27 Microsoft Corporation Software development infrastructure
KR100692172B1 (ko) * 2005-03-30 2007-03-12 아이티플러스 주식회사 종합 문자열 분석기 및 그 분석 방법

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20180037631A (ko) 2016-10-04 2018-04-13 (주)모션블루 블록을 이용한 코딩 교육 서비스 제공 장치 및 방법
US10228914B2 (en) 2016-10-04 2019-03-12 Motionblue Inc. Apparatus and method of providing a coding education service using a block

Also Published As

Publication number Publication date
KR101422737B1 (ko) 2014-07-24

Similar Documents

Publication Publication Date Title
US8438551B2 (en) Code transformation
Schreiner et al. Comparison of type-based and alias-based component recognition for embedded systems software
US5371747A (en) Debugger program which includes correlation of computer program source code with optimized object code
US7958493B2 (en) Type inference system and method
US7730448B2 (en) Layered type systems
US7657878B2 (en) Compiler, method of compiling and program development tool
US20130227533A1 (en) Code transformation
US11579856B2 (en) Multi-chip compatible compiling method and device
EP0583117A2 (en) A device and method for converting computer programming languages
CN110673854A (zh) Sas语言编译方法、装置、设备及可读存储介质
US11294665B1 (en) Computerized software version control with a software database and a human database
CN113535184A (zh) 一种跨平台的代码转换方法及设备
Schröer The GENTLE Compiler Construction System
Busbee Integrated development environment
KR101422737B1 (ko) 다중 언어 코드 동시 실행 장치와 그 방법
AU2012201466B2 (en) Code Transformation
US20150020051A1 (en) Method and apparatus for automated conversion of software applications
Griswold et al. Managing design trade-offs for a program understanding and transformation tool
WO2021208867A1 (zh) 一种跨平台的代码转换方法及设备
KR20090011974A (ko) 컴파일 대상 파일 추출 방법
Visser Understanding software through linguistic abstraction
CN113608748A (zh) C语言转换Java语言的数据处理方法、装置及设备
Overbey A toolkit for constructing refactoring engines
CN116257245A (zh) 一种基于flex与bison语法分析的多输出编译方法及系统
Turas Gradual C Programming for Typed Lua

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
LAPS Lapse due to unpaid annual fee