KR101352383B1 - Vpl을 이용한 프로그램 개발 방법과 그 방법을 구현한 프로그램이 기록된 컴퓨터로 읽을 수 있는 기록매체 - Google Patents

Vpl을 이용한 프로그램 개발 방법과 그 방법을 구현한 프로그램이 기록된 컴퓨터로 읽을 수 있는 기록매체 Download PDF

Info

Publication number
KR101352383B1
KR101352383B1 KR1020110119304A KR20110119304A KR101352383B1 KR 101352383 B1 KR101352383 B1 KR 101352383B1 KR 1020110119304 A KR1020110119304 A KR 1020110119304A KR 20110119304 A KR20110119304 A KR 20110119304A KR 101352383 B1 KR101352383 B1 KR 101352383B1
Authority
KR
South Korea
Prior art keywords
block
program
source code
function
vpl
Prior art date
Application number
KR1020110119304A
Other languages
English (en)
Other versions
KR20130053714A (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 KR1020110119304A priority Critical patent/KR101352383B1/ko
Publication of KR20130053714A publication Critical patent/KR20130053714A/ko
Application granted granted Critical
Publication of KR101352383B1 publication Critical patent/KR101352383B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/20Software design
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/38Creation or generation of source code for implementing user interfaces
    • 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/451Execution arrangements for user interfaces

Abstract

본 발명은 VPL(Visual Programming Language) 환경에서 프로그램을 개발하고 상기 프로그램을 C언어로 변환하여 프로그래밍 언어의 학습을 도와주는 프로그램 개발 방법과 개발 프로그램을 저장한 기록매체에 관한 것으로, 블록 저장부에서 블록을 선택하고 상기 블록들을 조합하여 블록 리스트를 생성하는 단계와, 블록 리스트의 각 블록의 속성을 속성 설정부를 통해 설정하는 단계와, 블록 리스트의 각 블록에 대응하는 소스코드를 상기 블록 저장부에서 검색하여 소스코드 출력부를 통해 출력하는 단계 및 블록 리스트의 정보를 해석하여 프로그램 실행부를 통해 동작하는 단계를 포함하여 이루어지는 VPL을 이용한 프로그램 개발 방법을 일 실시예로 제안한다. 본 발명에 의하면 사용자 인터페이스 기반의 VPL을 이용하여 프로그래밍 언어에 대한 전문지식이 부족한 초보자들도 쉽게 프로그램을 개발할 수 있다. 또한, 상기 프로그램에 대응하는 소스 코드를 실시간으로 확인하여 프로그래밍 언어 관점에서 프로그램의 논리적 구조 및 흐름에 대한 학습 효과를 높일 수 있다.

Description

VPL을 이용한 프로그램 개발 방법과 그 방법을 구현한 프로그램이 기록된 컴퓨터로 읽을 수 있는 기록매체{Method of program development using Visual Programming Language and computer readable medium thereof}
본 발명은 VPL을 이용한 프로그램 개발 방법과 개발 프로그램을 저장한 기록매체에 관한 것으로서, VPL(Visual Programming Language) 환경에서 프로그램을 개발하고 상기 프로그램을 C언어로 변환하여 프로그래밍 언어의 학습을 도와주는 프로그램 개발 방법과 개발 프로그램을 저장한 기록매체에 관한 것이다.
종래의 프로그래밍 교육은 텍스트 위주의 교재를 사용하여 교육자가 학생에게 프로그래밍 언어 구현을 시연 및 설명하고 이를 토대로 학생이 직접 프로그래밍 언어를 구현함으로써 각종 입력에 대한 출력을 확인해보는 방식으로 이루어졌다.
그러나 이와 같이 일방적이거나 교재 중심의 교육은 프로그래밍 언어의 문법적 암기에 그치게 되어 실제 프로그램의 논리적 흐름이나 상호 연결관계에 대한 근본적인 교육이 어렵다. 이로 인해 종래 프로그래밍 교육 과정을 수료하는 교육생의 수는 증가하더라도 실무 프로그래밍에 투입될 수 있는 개발 인력은 항상 부족한 실정이다.
또한 C언어 및 비주얼 스튜디오(Visual Studio)와 같은 프로그래밍 언어의 소프트웨어 패키지는 상당히 고가이기 때문에 학습을 목적으로 하는 학생 및 프로그래밍 입문자들이 쉽게 활용 및 접근할 수 없다는 문제가 있다.
더욱이 고가의 비용을 부담하더라도 프로그래밍 언어의 소프트웨어 패키지는 대부분 교육용이 아닌 실무용으로 제공하는 소프트웨어들이기 때문에 교육적인 보조 수단을 제공하지 않으므로 단순히 소스 코드를 입력하고 실행해보는 용도로밖에 사용할 수 없다는 한계를 가진다.
최근에는 이와 같은 프로그래밍 언어 교육의 문제점을 해결하기 위하여 다양한 프로그램이 개발되고 있는 실정이다.
마이크로소프트사는 프로그래밍 입문자들이 로봇 개발에 쉽게 접근할 수 있도록 비주얼한 개발 환경을 지원하는 MSRS(Microsoft Robotics Studio)을 제공하고 있다. 상기 MSRS는 C언어나 BASIC과 같은 특별한 개발 언어를 필요로 하지 않으며, 사용자 인터페이스상에서 마우스를 통해 필요한 서비스 로직을 구현함으로써 프로그램을 개발하는 기술을 제공하고 있다.
또한, 일본 공개특허공보 제1998-021062호는 GUI(General User Interface)를 조작하여 오브젝트를 배치함과 동시에 속성을 설정하여 소정의 프로그램 언어의 문법에 적합한 형식으로 출력하는 방법을 제안하고 있다.
그러나, 이와 같은 선행기술에 의하더라도 단순한 논리 로직들의 연결 및 조합을 통해 프로그램 개발을 제공함으로써 프로그램의 논리를 체험할 수 있는 실행 순서 및 결과에 대한 시각화 기능을 제공할 뿐 상기 논리적 구조에 대응하는 실제 프로그래밍 언어에 대한 학습 효과는 지원하지 못한다는 점은 해결해야 할 과제로 남아 있다.
따라서 사용자 인터페이스를 통해 소프트웨어의 구성단위들을 논리적 흐름에 따라 조립하는 방식으로 프로그램 개발이 가능하며, 상기 프로그램을 소정의 언어로 실시간 변환하여 제공함으로써 상기 프로그램의 논리적 흐름에 대한 프로그램 언어적 이해 및 접근이 가능한 기술 개발이 필요하다.
본 발명이 해결하고자 하는 과제는 특별한 프로그래밍 언어를 사용하지 않고 VPL을 이용하여 프로그램을 개발할 수 있으며, VPL을 이용하여 개발한 프로그램을 C언어로 변환한 소스코드를 제공하는 방법 및 그러한 방법을 구현한 프로그램을 제공하는 것이다.
위의 과제를 해결하기 위해 본 발명은, 블록 저장부에서 블록을 선택하고 상기 블록들을 조합하여 블록 리스트를 생성하는 단계와, 상기 블록 리스트의 각 블록의 속성을 속성 설정부를 통해 설정하는 단계와, 상기 블록 리스트의 각 블록에 대응하는 소스코드를 상기 블록 저장부에서 검색하여 소스코드 출력부를 통해 출력하는 단계 및 상기 블록 리스트의 정보를 해석하여 프로그램 실행부를 통해 동작하는 단계를 포함하여 이루어지는 VPL을 이용한 프로그램 개발 방법을 일 실시예로 제안한다.
또한 위의 과제를 해결하기 위해 본 발명은, 블록 저장부에서 블록을 선택하고 상기 블록들을 조합하여 블록 리스트를 생성하는 단계와, 상기 블록 리스트의 각 블록의 속성을 속성 설정부를 통해 설정하는 단계와, 상기 블록 리스트의 각 블록에 대응하는 소스코드를 상기 블록 저장부에서 검색하여 소스코드 출력부를 통해 출력하는 단계 및 상기 블록 리스트의 정보를 해석하여 프로그램 실행부를 통해 동작하는 단계를 포함하여 이루어지는 VPL을 이용한 프로그램 개발 방법을 구현한 프로그램이 기록된 컴퓨터로 읽을 수 있는 기록매체를 다른 일 실시예로 제안한다.
여기서 상기 블록 저장부는 제어, 연산, 변수, 외부기능, 인터럽트 및 레지스터와 같은 컴포넌트에 포함되며 특정 기능을 가지는 인스턴스가 소정의 형태로 도식화된 블록을 저장하고 있는 XML 형태일 수 있다.
또한 상기 블록 저장부는 상기 인스턴스의 식별 코드, 상기 인스턴스를 사용하는 프로그램 버전, 상기 인스턴스를 사용하기 위해 필요한 헤더 정보, 상기 인스턴스에 대응하는 소스코드 및 상기 소스코드에 대응하는 주석 정보를 포함할 수 있다.
또한, 상기 블록 리스트 생성 단계는 메인, 처리, 조건 외부, 반복, 반환의 기능을 가지는 블록 내부에 변수 및 조건의 기능을 가지는 블록을 삽입하는 내부 조합과 상기 메인, 처리, 조건 외부, 반복, 반환의 기능을 가지는 블록들을 연결하는 외부 조합을 포함할 수 있다.
또한 상기 내부 조합은 상기 메인, 처리, 조건 외부, 반복, 반환의 기능을 가지는 블록 내부의 형태와 변수 및 조건의 기능을 가지는 블록의 외부 형태가 동일할 경우 조합될 수 있다.
또한 상기 외부 조합은 상기 메인, 처리, 조건 외부, 반복, 반환의 기능을 가지는 블록의 홈과 돌기를 기준으로 상호 연결하여 상위 조합 또는 하위 조합될 수 있다.
또한 상기 속성 설정 단계는 상기 블록 리스트 내의 각 블록이 동작하는데 필요한 변수, 조건 및 레지스터 등을 설정할 수 있다.
또한 상기 소스코드 출력 단계는 메인 블록을 포함하는 블록 리스트에 대응하는 소스코드를 실시간으로 출력할 수 있다.
본 발명의 실시예들에 의하면 사용자 인터페이스 기반의 VPL을 이용하여 프로그래밍 언어에 대한 전문지식이 부족한 초보자들도 쉽게 프로그램을 개발할 수 있다. 또한, 상기 프로그램에 대응하는 소스 코드를 실시간으로 확인하여 프로그래밍 언어 관점에서 프로그램의 논리적 구조 및 흐름에 대한 학습 효과를 높일 수 있다.
도 1은 본 발명의 실시예에 따른 VPL을 이용한 프로그램 개발 시스템의 구성을 도시한 것이다.
도 2는 본 발명의 실시예에 따른 VPL을 이용한 프로그램 개발을 제공하는 사용자 인터페이스 화면의 예를 도시한 것이다.
도 3 내지 도 7은 본 발명의 실시예에 따른 블록 조합의 예를 도시한 것이다.
도 8은 본 발명의 실시예에 따른 소스코드 생성에 대한 예시 화면을 도시한 것이다.
도 9는 본 발명의 실시예에 따른 프로젝트 생성에 대한 예시 화면을 도시한 것이다.
도 10은 본 발명의 실시예에 따른 변수 추가에 대한 예시 화면을 도시한 것이다.
도 11은 본 발명의 실시예에 따른 연산자 블록 생성에 대한 예시 화면을 도시한 것이다.
도 12는 본 발명의 실시예에 따른 입출력 포트 설정에 대한 예시 화면을 도시한 것이다.
도 13은 본 발명의 실시예에 따른 무한 반복 설정에 대한 예시 화면을 도시한 것이다.
도 14는 본 발명의 실시예에 따른 VPL을 이용한 프로그램 개발 방법을 순차적으로 도시한 것이다.
아래에서는 첨부한 도면을 참고로 하여 본 발명의 실시예들을 상세히 설명한다. 도면에서, 본 발명을 명확하게 설명하기 위해 설명과 관계없는 부분은 생략하며 명세서 전체를 통하여 동일한 부분에 대해서는 동일한 도면 부호를 사용한다.
명세서 전체에서 어떤 부분이 어떤 구성요소를 "포함"한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라 다른 구성요소를 더 포함할 수 있는 것을 의미한다. 또한, 명세서에 기재된 "…부", "모듈" 등의 용어는 적어도 하나의 기능이나 동작을 처리하는 단위를 의미하며, 이는 하드웨어나 소프트웨어 또는 소프트웨어의 결합으로 구현될 수 있다.
명세서 전체에서 "컴포넌트"라 함은 프로그래밍에 있어서 기본이 되는 독립적인 구성단위를 가리키며, "인스턴스"는 상기 컴포넌트 집합에 포함되며 상기 컴포넌트를 프로그램 내에서 동작시키기 위한 특정 데이터 또는 명령의 기능을 가지는 최소단위를 의미한다. 또한, "블록"은 상기 인스턴스가 특정 형태로 도식화된 객체를 의미한다.
도 1은 본 발명의 실시예에 따른 VPL을 이용한 프로그램 개발 시스템의 구성을 도시한 것이다.
도 1의 VPL을 이용한 프로그램 개발 시스템은 프로그램 개발에 사용되는 블록을 저장하는 블록 저장부(10)와, 블록간의 조합으로 블록 리스트를 생성하는 블록 리스트 생성부(20)와, 블록들의 속성을 설정하는 속성 설정부(30)와, 상기 속성이 설정된 블록에 대응하는 소스코드를 출력하는 소스코드 출력부(40) 및 프로그램 실행부(50)를 포함하여 이루어진다.
블록 저장부(10)는 프로그램 개발에 사용되는 컴포넌트에 포함되는 특정 기능을 가지는 인스턴스가 특정 형태로 도식화된 블록이 저장되어 있다.
상기 블록은 인스턴스별로 각각 다른 형태를 가지며, 상기 인스턴스의 식별코드, 상기 인스턴스를 사용하는 프로그램 버전, 상기 인스턴스를 사용하기 위해 필요한 헤더 정보, 상기 인스턴스에 대응하는 소스코드 정보 및 상기 소스코드 정보에 대응하는 주석정보를 포함한다.
블록 리스트 생성부(20)는 개발하고자 하는 내용에 따라 블록 저장부(10)에 저장된 블록을 선택하고 상기 블록들을 프로그램 순서 및/또는 문법에 따라 조합하여 블록 리스트를 생성한다.
속성 설정부(30)는 블록 리스트 내의 각 블록이 동작하는데 필요한 변수, 조건 및 레지스터 등의 속성을 설정한다.
상기 속성 설정은 블록 저장부(10)의 변수, 조건 및 레지스터에 해당하는 블록을 선택하여 설정하거나 사용자가 직접 입력하여 설정할 수 있다.
소스코드 출력부(40)는 속성 설정이 완료된 블록을 대상으로 상기 블록에 대응하는 소스코드 정보를 출력한다.
프로그램 실행부(50)는 완성된 블록 리스트에 대한 프로그램의 정보를 해석하여 동작시킨다.
만일 상기 프로그램의 정보 해석 결과 오류가 검출되면 상기 오류에 관련된 정보 즉, 발생 위치와 내용 등을 출력한다.
도 2는 본 발명의 실시예에 따른 VPL을 이용한 프로그램 개발을 제공하는 사용자 인터페이스 화면의 예를 도시한 것이다.
도 2에서 보듯, VPL을 이용한 프로그램 개발을 제공하는 사용자 인터페이스 화면은 컴포넌트를 출력하는 대분류창(100), 상기 컴포넌트에 대응하는 인스턴스 블록을 출력하는 소분류창(200), 상기 블록을 생성하는 스크립트창(300), 상기 블록에 대응하는 소스코드를 출력하는 소스코드 생성창(400), 상기 블록 리스트를 통해 생성된 프로젝트 관련 정보를 출력하는 프로젝트창(500) 및 상기 프로젝트의 실행 상태를 출력하는 상태창(600)을 포함하여 이루어진다.
대분류창(100)은 프로그램 개발을 위한 구성요소인 제어, 연산, 변수, 외부기능, 인터럽트 및 레지스터와 같은 6 종류의 컴포넌트를 출력한다.
소분류창(200)은 대분류창(100)에서 선택된 컴포넌트에 속하는 인스턴스가 도식화된 블록을 출력한다.
이때 상기 블록은 상기 인스턴스의 기능에 따라 특정 형태로 도식화되어 출력되며, 사용자가 선택한 컴포넌트에 따라 XML(eXtensible Markup Language) 형태로 저장되어 있는 블록 집합을 출력한다.
상기 XML는 각 블록에 해당하는 인스턴스의 식별코드, 인스턴스를 사용하는 프로그램 버전, 인스턴스를 사용하기 위해 필요한 헤더 정보, 인스턴스에 대응하는 소스코드 정보 및 상기 소스코드 정보에 대응하는 주석정보를 포함한다.
컴포넌트별 인스턴스에 따른 블록의 종류는 아래 표 1 내지 표 6과 같다.
제어 컴포넌트는 C언어 프로그래밍의 기준이 되는 메인함수와 if, else와 같은 분기 제어함수와 for, while과 같은 반복함수 및 delay와 같은 지연함수와 같은 인스턴스로 구성되며, 각 인스턴스의 기능에 따라 각기 다른 형태의 블록으로 표현된다.
제어 컴포넌트에 속하는 인스턴스의 기능별 블록의 형태는 아래의 표 1과 같다.
블록의 형태 기능
Figure 112011090400931-pat00001
C언어의 main에 해당하는 인스턴스
Figure 112011090400931-pat00002
c언어의 if에 해당하는 인스턴스
Figure 112011090400931-pat00003
c언어의 else if에 해당하는 인스턴스
Figure 112011090400931-pat00004
c언어의 else에 해당하는 인스턴스
Figure 112011090400931-pat00005
c언어의 while에 해당하는 인스턴스
Figure 112011090400931-pat00006
c언어의 for문에 해당하는 인스턴스
Figure 112011090400931-pat00007
c언어의 delay_us에 해당하는 인스턴스
Figure 112011090400931-pat00008
c언어의 delay_ms에 해당하는 인스턴스
연산 컴포넌트는 C언어 프로그램 내부의 연산을 위해 사용되며 산술 연산자, 논리 연산자, 쉬프트 연산자 및 관계 연산자와 같은 인스턴스로 구성되며 각 인스턴스의 기능에 따라 각기 다른 형태의 블록으로 표현된다.
연산 컴포넌트에 속하는 인스턴스의 기능에 따른 블록의 형태는 아래의 표 2와 같다.
블록의 형태 기능
Figure 112011090400931-pat00009
대입 연산자
Figure 112011090400931-pat00010
더해서 저장하는 연산자
Figure 112011090400931-pat00011
빼서 저장하는 연산자
Figure 112011090400931-pat00012
곱해서 저장하는 연산자
Figure 112011090400931-pat00013
나누어서 저장하는 연산자
Figure 112011090400931-pat00014
나머지를 구해서 저장하는 연산자
Figure 112011090400931-pat00015
논리곱을 구해서 저장하는 연산자
Figure 112011090400931-pat00016
논리합을 구해서 저장하는 연산자
Figure 112011090400931-pat00017
특정 비트를 0으로 조작하는 연산자
Figure 112011090400931-pat00018
좌로 이동하고 저장하는 연산자
Figure 112011090400931-pat00019
우로 이동하고 저장하는 연산자
Figure 112011090400931-pat00020
1에서 100 사이의 난수를 저장하는 연산자
Figure 112011090400931-pat00021
좌항이 우항보다 작으면 참인 조건연산자
Figure 112011090400931-pat00022
좌항이 우항보다 작거나 같으면 참인 조건연산자
Figure 112011090400931-pat00023
좌항이 우항보다 크면 참인 조건연산자
Figure 112011090400931-pat00024
좌항이 우항보다 크거나 같으면 참인 조건연산자
Figure 112011090400931-pat00025
좌항과 우항이 같으면 참인 조건연산자
Figure 112011090400931-pat00026
좌항과 우항이 다르면 참인 조건연산자
Figure 112011090400931-pat00027
두 조건이 모두 참이어야 참인 조건연산자
Figure 112011090400931-pat00028
두 조건중 하나라도 참이면 참인 조건연산자
변수 컴포넌트는 C언어 프로그램 내부에서 임의의 값이나 결과값을 저장하기 위한 메모리의 위치를 의미하며 변수 및/또는 배열의 상태를 나타내는 인스턴스 기능에 따라 각기 다른 형태의 블록으로 표현된다.
변수 컴포넌트에 속하는 인스턴스의 기능별 블록의 형태는 아래의 표 3과 같다.
블록의 형태 기능
Figure 112011090400931-pat00029
새로운 변수 추가
Figure 112011090400931-pat00030
변수 선택
Figure 112011090400931-pat00031
배열의 요소 선택
Figure 112011090400931-pat00032
변수에 값 저장
Figure 112011090400931-pat00033
변수 값에 1 누적
Figure 112011090400931-pat00034
변수 값에 1 차감
Figure 112011090400931-pat00035
배열의 요소에 값 저장
Figure 112011090400931-pat00036
배열의 요소를 일정 개수만큼 처음부터 복사
Figure 112011090400931-pat00037
배열의 요소를 일정 개수만큼 원하는 부분부터 복사
외부기능 컴포넌트는 CPU나 프로그램이 구현되는 장비에 따라 다양한 기능을 제공하기 위한 인스턴스를 가지며 상기 인스턴스는 사용자에 의해 추가 및 삭제될 수 있다.
본 발명의 실시예에 따른 외부기능 컴포넌트에 속하는 인스턴스의 기능별 블록의 형태는 아래의 표 4와 같다.
블록의 형태 기능
Figure 112011090400931-pat00038
외부 기능을 대분류하여 보고자 할 경우에 사용
Figure 112011090400931-pat00039
CPU의 전체 인터럽트를 활성화
Figure 112011090400931-pat00040
CPU의 전체 인터럽트를 비활성화
Figure 112011090400931-pat00041
UART에 값 출력
Figure 112011090400931-pat00042
UART에서 수신한 값을 다른 변수에 저장
Figure 112011090400931-pat00043
UART를 초기화
인터럽트 컴포넌트는 정상적인 프로그램 수행 중에 발생하는 서비스 호출을 의미하며, 서비스 호출의 종류에 따른 인스턴스로 구성된다.
상기 인스턴스는 CPU별로 각기 다른 서비스를 제공하기 때문에 CPU에 종속적이다.
본 발명의 실시예에 따른 인터럽트 컴포넌트에 속하는 인스턴스에 따른 블록의 형태는 아래 표 5와 같으며, 표 5의 인터럽트 기능은 ATmega128 사양의 CPU를 기준으로 한다.
블록의 형태 기능
Figure 112011090400931-pat00044
CPU의 포트가 외부로부터 서비스 요청을 받은 경우에 발생하는 서비스 호출의 진입점
Figure 112011090400931-pat00045
타이머0에서 오버플로우나 타이머 값이 설정값과 같은 경우 발생하는 서비스 호출의 진입점
Figure 112011090400931-pat00046
타이머1에서 오버플로우나 타이머 값이 설정값과 같은 경우 발생하는 서비스 호출의 진입점
Figure 112011090400931-pat00047
타이머2에서 오버플로우나 타이머 값이 설정값과 같은 경우 발생하는 서비스 호출의 진입점
Figure 112011090400931-pat00048
타이머3에서 오버플로우나 타이머 값이 설정값과 같은 경우 발생하는 서비스 호출의 진입점
Figure 112011090400931-pat00049
SPI인터페이스에서 발생하는 서비스 호출의 진입점
Figure 112011090400931-pat00050
UART0에서 데이터 수신, 송신완료, 버퍼에 값 없음과 같은 경우 발생하는 서비스 호출의 진입점
Figure 112011090400931-pat00051
UART1에서 데이터 수신, 송신완료, 버퍼에 값 없음과 같은 경우 발생하는 서비스 호출의 진입점
Figure 112011090400931-pat00052
I2C에서 발생하는 서비스 호출의 진입점
Figure 112011090400931-pat00053
아날로그 비교기에서 발생하는 서비스 호출의 진입점
Figure 112011090400931-pat00054
ADC에서 변환이 완료된 경우 발생하는 서비스 호출의 진입점
Figure 112011090400931-pat00055
EEPROM이 대기상태가 되었을 경우 발생하는 서비스 호출의 진입점
Figure 112011090400931-pat00056
프로그램메모리에서 저장된 데이터를 읽을 경우 발생하는 서비스 호출의 진입점
레지스터 컴포넌트는 CPU의 일부 기능을 담당하고 사용자가 CPU의 기능을 사용하는 통로에 따라 다양한 인스턴스로 구성되며, 레지스터 컴포넌트에 속하는 인스턴스의 기능별 블록의 형태는 아래 표 6과 같다.
표 6의 인스턴스 종류 및 기능은 ATmega128 사양의 CPU를 기준으로 한다.
형태 기능
Figure 112011090400931-pat00057
포트관련 제어 레지스터
Figure 112011090400931-pat00058
ADC 제어 관련 레지스터
Figure 112011090400931-pat00059
UART 제어 관련 레지스터
Figure 112011090400931-pat00060
SPI 제어 관련 레지스터
Figure 112011090400931-pat00061
I2C 제어 관련 레지스터
Figure 112011090400931-pat00062
EEPROM 제어 관련 레지스터
Figure 112011090400931-pat00063
TC0 관련 레지스터
Figure 112011090400931-pat00064
TC1 관련 레지스터
Figure 112011090400931-pat00065
TC2 관련 레지스터
Figure 112011090400931-pat00066
TC3 관련 레지스터
Figure 112011090400931-pat00067
타이머 전체 인터럽트 관련 레지스터
Figure 112011090400931-pat00068
외부 인터럽트 관련 레지스터
Figure 112011090400931-pat00069
CPU의 sleep, WDT 관련 레지스터
Figure 112011090400931-pat00070
CPU의 스택포인터 관련 레지스터
Figure 112011090400931-pat00071
외부메모리의 제어 관련 레지스터
Figure 112011090400931-pat00072
디바이더, 클록 관련 레지스터
다시 도 2의 설명으로 돌아와서, 스크립트창(300)은 사용자에 의해 소분류창(200)에서 선택된 블록을 출력한다.
사용자가 소분류창(200)의 블록을 드래그(Drag)하여 스크립트창(300)에 드롭(Drop)하면 스크립트창(300)에 블록이 생성된다.
블록은 중복하여 생성할 수 있으며, 스크립트창(300)에 드롭된 블록들은 C언어 프로그램의 문법에 따라 조합되어 블록 리스트를 생성한다.
블록의 조합은 변수 및/또는 조건 설정을 위하여 메인, 처리, 조건 외부, 반복, 반환의 기능을 가지는 블록 내부에 변수 및/또는 조건의 기능을 가지는 블록을 조합하는 내부 조합과 상기 메인, 처리, 조건 외부, 반복, 반환 기능의 순차적 제어를 위하여 블록들을 조합하는 외부 조합으로 분류된다.
내부 조합과 외부 조합은 C언어 프로그램의 문법을 기준으로 이루어지며, 상기 문법 기준을 반영한 블록의 형상을 통해 조합할 수 있다.
도 3 내지 도 8은 본 발명의 실시예에 따른 블록 조합의 예를 도시한 것이다.
도 3은 본 발명의 실시예에 따른 블록의 내부 조합에 대한 예를 도시한 것이다.
도 3과 같이, 변수에 값을 저장하는 기능의 제1 블록(311)과 변수를 선택하는 기능의 제2 블록(312)을 조합할 경우, 제2 블록(312)을 드래그하여 제2 블록(312)이 조합될 제1 블록(311) 내의 공란에 위치시킨 후 드롭한다.
이때 제2 블록(312)을 제1 블록(311)의 내부로 드래그하면 제1 블록(311)의 공란은 제2 블록(312)의 크기와 동일하게 확장되며, 제2 블록(312)을 드롭시킴과 동시에 제2 블록(312)은 제1 블록(311)에 내부 조합된다.
이때 제2 블록(312)의 외형과 제2 블록(312)이 조합될 제1 블록(311) 내의 공란이 동일한 형태를 가졌을 경우에만 내부 조합이 가능하며, 제2 블록(312)의 외형과 제1 블록(311)의 공란이 다른 형태를 가질 경우에는 조합이 불가능하다.
도 4는 본 발명의 다른 실시예에 따른 블록의 내부 조합에 대한 예를 도시한 것이다.
도 4에서 보듯, 육각형의 형상을 가지는 조건 연산자 기능의 제3 블록(313)은 제4 블록(314)의 내부 육각형 공란에 내부 조합할 수 있다.
또한 제3 블록(313)을 포함하는 제4 블록(314)은 if 제어 기능을 가지는 제5 블록(315)의 육각형 공란에 내부 조합할 수 있다.
이때 육각형 형상의 제3 블록(313) 및/또는 제4 블록(314)은 반복(for) 기능을 가지는 블록, 지연(delay) 기능을 가지는 블록, 논리 연산(&, |) 기능을 가지는 블록 등과 같이 모서리가 둥근 사각형 형상의 공란을 가지는 블록과는 내부 조합이 불가능하다.
도 5는 본 발명의 실시예에 따른 블록의 외부 조합에 대한 예를 도시한 것이다.
도 5에서 보듯, 블록의 홈과 돌기 형태를 기준으로 블록에 따라 상위 조합 및/또는 하위 조합을 수행할 수 있다.
상단에 소정의 홈을 가지는 변수 저장 기능의 제6 블록(316)은 하단에 소정의 돌기를 가지는 메인함수 기능의 블록(317), 반복 기능의 블록(318), 변수 저장 기능의 블록(319) 및 if 기능의 블록(320)들과 상위 조합이 가능하다.
또한, 하단에 소정의 돌기를 가지는 제6 블록(316)은 상단에 소정의 홈을 가지는 반복 기능의 블록(321), 변수 저장 기능의 블록(322), if 기능의 블록(323) 및 반환 기능의 블록(324)들과 하위 조합이 가능하다.
도 6은 본 발명의 다른 실시예에 따른 블록의 외부 조합에 대한 예를 도시한 것이다.
도 6에서 보듯, 메인 함수 기능을 가지는 제7 블록(325)은 하단에 소정의 돌기를 가지므로, 상단에 소정의 홈을 가지는 반복 기능의 블록(326), 변수 저장 기능의 블록(327), if 기능의 블록(328) 및 반환 기능의 블록(329)들과 하위 조합이 가능하다.
다만, 상단에 소정의 돌기 및/또는 홈을 가지고 있지 않으므로, 상기 메인 함수 기능을 가지는 블록은 다른 어떤 블록과도 상위 조합을 수행할 수 없다.
동일한 원리로 반환 기능을 가지는 블록의 경우 상단에 소정의 홈을 구비한 형태이므로 다른 블록들과 상위 조합은 가능하나, 하위 조합은 수행할 수 없다.
도 7은 본 발명의 다른 실시예에 따른 외부 블록 조합에 대한 예를 도시한 것이다.
도 7의 외부 조합은 제8 블록(330)을 제9 블록(331) 내의 돌기에 맞추어 삽입함으로써 블록과 블록 사이에 조합된다.
제8 블록(330)을 드래그하여 제9 블록(331) 내의 이동할 공란에 위치시키면 상기 공란은 제8 블록(330)이 삽입될 정도의 크기로 확장되며, 제8 블록(330)의 조합 결과를 미리 보여주고 사용자가 제8 블록(330)을 드롭하면 제9 블록(331)과 조합이 완료된다.
이때 변수 설정 기능의 블록과 변수 누적 기능의 블록은 제8 블록(330)과의 내부 조합으로 인하여 제8 블록(330)에 종속되었으므로 제8 블록(330)의 이동 및/또는 편집에 종속된다.
소스코드 생성창(400)은 상기 스크립트창(300)의 블록에 대응하는 C언어 소스코드가 출력된다.
사용자에 의해 스크립트창(300)의 블록이 업데이트되면 실시간으로 블록에 대응하는 C언어 소스코드 실시간으로 추가 및 변환된다.
단, 스크립트창(300)의 메인 블록에 종속되지 않는 블록에 대해서는 C언어 소스코드가 출력되지 않는다.
도 8은 본 발명의 실시예에 따른 소스코드 생성에 대한 예시 화면을 도시한 것이다.
도 8에서 보듯, 메인 함수 기능의 블록을 드래그앤드롭 방식으로 스크립트창(300)에 생성하면 화면의 우측 상단에 상기 블록의 메인 함수에 대응한 C언어 소스코드가 출력된다.
프로젝트창(500)은 개발 프로그램에 관련된 프로젝트명, 장비명, 생성일 및 상기 프로젝트에 관련된 정보를 출력하며, 개발한 프로그램이 출력되는 컴포트 설정과 프로그램 컴파일 및 장비 다운로드 메뉴를 제공한다.
상태창(600)은 프로젝트창(500)을 통해 프로그램 컴파일 또는 장비 다운로드 결과와 에러 발생 여부 및 에러 생성 부분 등을 출력한다.
또한, 프로그램 컴파일 결과 에러가 발견되지 않으면 자동적으로 HEX 파일 형태의 바이너리 생성을 실행하고 그 결과를 출력한다.
도 9 내지 도 14는 ATmega128 마이크로컨트롤러의 GPIO를 이용하여 LED를 점등시킬 수 있도록 VPL을 이용한 프로그램의 개발 과정을 설명한다.
도 9는 본 발명의 실시예에 따른 프로젝트 생성에 대한 예시 화면을 도시한 것이다.
도 9와 같이, 프로젝트명과 상기 프로젝트를 실행할 장비 선택 및 상기 프로젝트 관련 정보를 입력하여 새로운 프로젝트를 생성한다.
상기 새로운 프로젝트는 메인 화면의 우측 하단에 프로젝트창(500)을 통해 확인할 수 있다.
도 10은 본 발명의 실시예에 따른 변수 추가에 대한 예시 화면을 도시한 것이다.
먼저, 제어 컴포넌트의 인스턴스 중에서 메인함수 기능의 블록을 드래그하여 스크립트창(300)에 생성하고, 변수 추가를 위해 변수 컴포넌트의 인스턴스 중 변수 추가 기능의 블록을 선택한다.
이때 소스코드 생성창(400)에는 스크립트창(300)에 생성된 메인 함수에 대응하는 C언어 소스코드가 출력된다.
변수 추가 기능의 블록 선택시 도 10과 같이 변수 추가 창이 생성되고, 사용자는 사용하고자하는 변수의 이름과 변수의 크기를 입력하여 새로운 변수를 생성한다.
상기 변수 추가 결과로 인하여 변수 컴포넌트 내에서 LED_Data를 사용할 수 있다. 상기 LED_Data의 초기화를 위하여 변수에 임의의 값을 대입하는 연산 컴포넌트를 이용한다.
도 11은 본 발명의 실시예에 따른 연산자 블록 생성에 대한 예시 화면을 도시한 것이다.
도 11에서 보듯, LED_Data 변수의 초기화를 위하여 연산 컴포넌트 중 대입 연산 블록(712)을 스크립트창(300)으로 드래그하여 메인 함수 블록(711) 외부에 하위 조합을 수행한다.
이후 변수 컴포넌트 중 변수 선택 블록(713)을 스크립트창(300)으로 드래그하여 대입 연산 블록(712)의 좌항에 내부 조합하고, 초기화 대상인 변수 LED_Data를 설정한다.
대입 연산 블록(712) 우항은 상기 변수 LED_Data를 초기화하기 위해 0을 입력한다.
이때 소스코드 생성창(400)에는 스크립트창(300)에 추가된 대입 연산 블록(712)과 대입 연산 블록(712) 내부의 변수 설정 블록(713)에 대응하는 C언어 소스코드가 출력된다.
변수 초기화가 완료되면 다음으로 입출력 포트를 설정한다.
도 12는 본 발명의 실시예에 따른 입출력 포트 설정에 대한 예시 화면을 도시한 것이다.
먼저, 입출력 포트 설정을 위해 대입 연산자 블록(714)를 스크립트창(300)의 블록 리스트에 추가하고 레지스터 컴포넌트 중 입출력 블록(715)을 드래그하여 대입 연산자 블록(714)의 좌항에 조합한다.
이후, 포트 E를 모두 출력으로 설정하기 위하여 좌항의 입출력 블록(715)은 DDRE로 설정하고, 우항은 0xff를 입력한다.
입출력 포트의 설정이 완료되면 반복 제어문을 생성한다.
도 13은 본 발명의 실시예에 따른 무한 반복 설정에 대한 예시 화면을 도시한 것이다.
도 13과 같이, 제어 컴포넌트 중 무한 반복 블록(716)을 드래그하여 스크립트창(300)의 블록 리스트에 추가한다.
또한, 데이터를 출력하는 레지스터를 설정하기 위하여 무한 반복 블록(716)의 내부에 대입 연산 블록(717)의 조합을 수행한다.
이때 대입 연산 블록(717)의 좌항은 포트 관련 레지스터 블록(718)을 내부 조합하여 PORTE로 설정하고 우항은 변수 선택 블록(719)을 내부 조합하여 상기 좌항을 통해 출력되는 데이터값 즉, 도 10에서 생성한 변수 LED_Data를 설정한다.
이후 변수 누적을 위하여 변수 컴포넌트 중 변수 누적 블록(720)을 무한반복 블록(716) 내 대입 연산 블록(717) 하단에 조합하고, 변수 LED_Data로 설정한다.
다음으로 제어 컴포넌트 중 지연 블록(721)을 무한반복 블록(716)에 내부 조합하고 변수 500을 입력하여 500msec 단위로 LED가 점등하도록 설정한다.
이때 소스코드 생성창(400)에는 기존 블록리스트의 C언어 소스코드에 추가된 무한반복 블록(716) 즉, 대입 연산 블록(717)과 변수 누적 블록(720) 및 지연 블록(721)을 포함하는 무한반복 블록(716)에 대응하는 C언어 소스코드가 추가되어 출력된다.
이때 소스코드 생성창(400)은 각각의 블록이 추가될때마다 실시간으로 변환되는 C언어 소스코드를 출력하거나 사용자에 의해 선택적으로 C언어 소스코드를 출력할 수 있다.
이후 화면 우측 하단의 프로젝트창(500)을 통해 컴포트를 설정하고 프로그램 컴파일과 장비 다운로드를 차례로 수행하고 개발 프로그램이 다운로딩된 장비를 통하여 LED 동작(점등) 결과를 확인한다.
도 14는 본 발명의 실시예에 따른 VPL을 이용한 프로그램 개발 방법을 순차적으로 도시한 것이다.
먼저, 프로젝트명과 상기 프로젝트를 실행할 장비 선택 및 상기 프로젝트 관련 정보를 입력하여 새로운 프로젝트를 생성한다(S10).
이후 원하는 컴포넌트를 선택하고(S20), 상기 선택된 컴포넌트에 따라 출력되는 인스턴스 중에서 사용하고자 하는 블록을 선택하여 스크립트창(300)에 블록을 생성한다(S30).
이후, 스크립트창(300)에 생성된 블록의 속성을 설정한다(S40).
상기 속성 설정은 변수나 조건 설정 및 다른 블록의 내부 및/또는 외부 조합으로 이루어질 수 있다.
속성 설정이 완료된 다수의 블록들의 내부 및/또는 외부 조합으로 블록 리스트가 생성되면 소스코드 생성창(400)에는 상기 블록 리스트에 대응하는 C언어 소스코드를 출력한다(S50).
이때 C언어 소스코드의 변환 및/또는 출력은 상기 블록리스트에 메인 함수 블록이 포함되어 있을 경우에만 가능하다.
블록 리스트 생성이 완료되면, 사용자는 프로젝트창(500)에서 해당 프로젝트를 선택하고 상기 프로젝트가 출력될 컴포트를 설정한다.
이후 프로그램 컴파일과 장비 다운로드를 통하여 프로그램의 에러 여부를 확인하고, 장비의 구동을 확인할 수 있다(S60).
상기 표 1 내지 표 6에서 도시된 각 컴포넌트에 속하는 인스턴스의 기능별 블록의 형태는 이에 한정되는 것이 아니며 여러가지 형태로 변형하여 실시할 수 있다.
또한, 이상에서 본 발명의 실시예에 대하여 상세하게 설명하였지만 본 발명의 권리범위는 이에 한정되는 것은 아니고 다음의 청구범위에서 정의하는 본 발명의 기본 개념을 이용한 당업자의 여러 변형 및 개량 형태 또한 본 발명의 권리범위에 속하는 것이며 특히 본 발명에서 제안하는 방법들을 소프트웨어로 구현한 것 역시 본 발명의 권리범위에 속한다.
10 : 블록 저장부 20 : 블록리스트 생성부 30 : 속성 설정부
40 : 소스코드 출력부 50 : 프로그램 실행부
100 : 대분류창 200 : 소분류창 300 : 스크립트창
400 : 소스코드 생성창 500 : 프로젝트창 600 : 상태창

Claims (16)

  1. 블록 저장부에서 블록을 선택하고 상기 블록들을 조합하여 블록 리스트를 생성하는 단계; 상기 블록 리스트의 각 블록의 속성을 속성 설정부를 통해 설정하는 단계; 상기 블록 리스트의 각 블록에 대응하는 소스코드를 상기 블록 저장부에서 검색하여 소스코드 출력부를 통해 출력하는 단계; 및 상기 블록 리스트의 정보를 해석하여 프로그램 실행부를 통해 동작하는 단계를 포함하고,
    상기 블록 저장부는, 제어, 연산, 변수, 외부기능, 인터럽트 및 레지스터와 같은 컴포넌트에 포함되며 특정 기능을 가지는 인스턴스가 소정의 형태로 도식화된 블록을 저장하고 있는 XML 형태인 것을 특징으로 하는 VPL을 이용한 프로그램 개발 방법.
  2. 삭제
  3. 제 1항에 있어서, 상기 블록 저장부는,
    상기 인스턴스의 식별 코드, 상기 인스턴스를 사용하는 프로그램 버전, 상기 인스턴스를 사용하기 위해 필요한 헤더 정보, 상기 인스턴스에 대응하는 소스코드 및 상기 소스코드에 대응하는 주석 정보를 포함하는 것을 특징으로 하는 VPL을 이용한 프로그램 개발 방법.
  4. 제 1항에 있어서, 상기 블록 리스트 생성 단계는,
    메인, 처리, 조건 외부, 반복, 반환의 기능을 가지는 블록 내부에 변수 및 조건의 기능을 가지는 블록을 삽입하는 내부 조합과 상기 메인, 처리, 조건 외부, 반복, 반환의 기능을 가지는 블록들을 연결하는 외부 조합을 포함하는 VPL을 이용한 프로그램 개발 방법.
  5. 제 4항에 있어서, 상기 내부 조합은,
    상기 메인, 처리, 조건 외부, 반복, 반환의 기능을 가지는 블록 내부의 형태와 변수 및 조건의 기능을 가지는 블록의 외부 형태가 동일할 경우 조합되는 것을 특징으로 하는 VPL을 이용한 프로그램 개발 방법.
  6. 제 4항에 있어서, 상기 외부 조합은,
    상기 메인, 처리, 조건 외부, 반복, 반환의 기능을 가지는 블록의 홈과 돌기를 기준으로 상호 연결하여 상위 조합 또는 하위 조합되는 것을 특징으로 하는 VPL을 이용한 프로그램 개발 방법.
  7. 제 1항에 있어서, 상기 속성 설정 단계는,
    상기 블록 리스트 내의 각 블록이 동작하는데 필요한 변수, 조건 및 레지스터 등을 설정하는 것을 특징으로 하는 VPL을 이용한 프로그램 개발 방법.
  8. 제 1항에 있어서, 상기 소스코드 출력 단계는,
    메인 블록을 포함하는 블록 리스트에 대응하는 소스코드를 실시간으로 출력하는 것을 특징으로 하는 VPL을 이용한 프로그램 개발 방법.
  9. 블록 저장부에서 블록을 선택하고 상기 블록들을 조합하여 블록 리스트를 생성하는 단계; 상기 블록 리스트의 각 블록의 속성을 속성 설정부를 통해 설정하는 단계; 상기 블록 리스트의 각 블록에 대응하는 소스코드를 상기 블록 저장부에서 검색하여 소스코드 출력부를 통해 출력하는 단계; 및 상기 블록 리스트의 정보를 해석하여 프로그램 실행부를 통해 동작하는 단계를 포함하고,
    상기 블록 저장부는, 제어, 연산, 변수, 외부기능, 인터럽트 및 레지스터와 같은 컴포넌트에 포함되며 특정 기능을 가지는 인스턴스가 소정의 형태로 도식화된 블록을 저장하고 있는 XML 형태인 것을 특징으로 하는 VPL을 이용한 프로그램 개발 방법을 구현한 프로그램이 기록된 컴퓨터로 읽을 수 있는 기록매체.
  10. 삭제
  11. 제 9항에 있어서, 상기 블록 저장부는,
    상기 인스턴스의 식별 코드, 상기 인스턴스를 사용하는 프로그램 버전, 상기 인스턴스를 사용하기 위해 필요한 헤더 정보, 상기 인스턴스에 대응하는 소스코드 및 상기 소스코드에 대응하는 주석 정보를 포함하는 VPL을 이용한 프로그램 개발 방법을 구현한 프로그램이 기록된 컴퓨터로 읽을 수 있는 기록매체.
  12. 제 9항에 있어서, 상기 블록 리스트 생성 단계는,
    메인, 처리, 조건 외부, 반복, 반환의 기능을 가지는 블록 내부에 변수 및 조건의 기능을 가지는 블록을 삽입하는 내부 조합과 상기 메인, 처리, 조건 외부, 반복, 반환의 기능을 가지는 블록들을 연결하는 외부 조합을 포함하는 VPL을 이용한 프로그램 개발 방법을 구현한 프로그램이 기록된 컴퓨터로 읽을 수 있는 기록매체.
  13. 제 12항에 있어서, 상기 내부 조합은,
    상기 메인, 처리, 조건 외부, 반복, 반환의 기능을 가지는 블록 내부의 형태와 변수 및 조건의 기능을 가지는 블록의 외부 형태가 동일할 경우 조합되는 것을 특징으로 하는 VPL을 이용한 프로그램 개발 방법을 구현한 프로그램이 기록된 컴퓨터로 읽을 수 있는 기록매체.
  14. 제 12항에 있어서, 상기 외부 조합은,
    상기 메인, 처리, 조건 외부, 반복, 반환의 기능을 가지는 블록의 홈과 돌기를 기준으로 상호 연결하여 상위 조합 또는 하위 조합되는 것을 특징으로 하는 VPL을 이용한 프로그램 개발 방법을 구현한 프로그램이 기록된 컴퓨터로 읽을 수 있는 기록매체.
  15. 제 9항에 있어서, 상기 속성 설정 단계는,
    상기 블록 리스트 내의 각 블록이 동작하는데 필요한 변수, 조건 및 레지스터 등을 설정하는 것을 특징으로 하는 VPL을 이용한 프로그램 개발 방법을 구현한 프로그램이 기록된 컴퓨터로 읽을 수 있는 기록매체.
  16. 제 9항에 있어서, 상기 소스코드 출력 단계는,
    메인 블록을 포함하는 블록 리스트에 대응하는 소스코드를 실시간으로 출력하는 것을 특징으로 하는 VPL을 이용한 프로그램 개발 방법을 구현한 프로그램이 기록된 컴퓨터로 읽을 수 있는 기록매체.
KR1020110119304A 2011-11-16 2011-11-16 Vpl을 이용한 프로그램 개발 방법과 그 방법을 구현한 프로그램이 기록된 컴퓨터로 읽을 수 있는 기록매체 KR101352383B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020110119304A KR101352383B1 (ko) 2011-11-16 2011-11-16 Vpl을 이용한 프로그램 개발 방법과 그 방법을 구현한 프로그램이 기록된 컴퓨터로 읽을 수 있는 기록매체

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020110119304A KR101352383B1 (ko) 2011-11-16 2011-11-16 Vpl을 이용한 프로그램 개발 방법과 그 방법을 구현한 프로그램이 기록된 컴퓨터로 읽을 수 있는 기록매체

Publications (2)

Publication Number Publication Date
KR20130053714A KR20130053714A (ko) 2013-05-24
KR101352383B1 true KR101352383B1 (ko) 2014-01-17

Family

ID=48662871

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020110119304A KR101352383B1 (ko) 2011-11-16 2011-11-16 Vpl을 이용한 프로그램 개발 방법과 그 방법을 구현한 프로그램이 기록된 컴퓨터로 읽을 수 있는 기록매체

Country Status (1)

Country Link
KR (1) KR101352383B1 (ko)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102199287B1 (ko) * 2014-01-20 2021-01-06 에스케이플래닛 주식회사 대화형 인터페이스의 제작 서비스를 제공할 수 있는 시스템 및 방법
KR102519698B1 (ko) * 2017-09-29 2023-04-07 (주)한화 로봇 제어 장치의 코딩 방법 및 프로그램과 로봇 제어 장치
KR102013936B1 (ko) * 2017-12-15 2019-08-23 한국전자통신연구원 블록 프로그램을 이용한 단말 제어 장치 및 방법
KR102188562B1 (ko) * 2019-02-28 2020-12-09 숙명여자대학교산학협력단 시각 블록 언어 기반 IoT 응용 프로그램 개발 도구 및 그 동작 방법
CN112306462B (zh) * 2019-08-02 2024-04-23 苏州精易会信息技术有限公司 一种积木式对象变量块构建方法、装置、存储介质和处理器
KR102515698B1 (ko) * 2021-02-10 2023-03-31 (주)메인라인 이미지 컴포넌트를 기초하여 복수의 프로그래밍 언어의 생성을 위한 컴포넌트 기반의 언어개발 환경을 제공하는 장치 및 방법

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20020017669A (ko) * 2000-08-31 2002-03-07 양준호 Xml 기반 어플리케이션 제공 시스템, 및 xml 기반어플리케이션이 기록된 컴퓨터 판독가능한 기록매체
KR20070076246A (ko) * 2006-01-18 2007-07-24 삼성전자주식회사 선택된 버전의 조건부 블록 소스 코드만을 표시하는 조건부블록 소스 코드 표시 방법

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20020017669A (ko) * 2000-08-31 2002-03-07 양준호 Xml 기반 어플리케이션 제공 시스템, 및 xml 기반어플리케이션이 기록된 컴퓨터 판독가능한 기록매체
KR20070076246A (ko) * 2006-01-18 2007-07-24 삼성전자주식회사 선택된 버전의 조건부 블록 소스 코드만을 표시하는 조건부블록 소스 코드 표시 방법

Also Published As

Publication number Publication date
KR20130053714A (ko) 2013-05-24

Similar Documents

Publication Publication Date Title
US9754059B2 (en) Graphical design verification environment generator
KR101352383B1 (ko) Vpl을 이용한 프로그램 개발 방법과 그 방법을 구현한 프로그램이 기록된 컴퓨터로 읽을 수 있는 기록매체
Selic The theory and practice of modeling language design for model-based software engineering—a personal perspective
Naujokat et al. Domain-specific code generator modeling: a case study for multi-faceted concurrent systems
CN111158656A (zh) 基于因果树法的测试代码生成方法及装置
Vedder et al. Dealing with software complexity in individual‐based models
US11593540B1 (en) Systems and methods for performing concurrency analysis in simulation environments
CN111143228A (zh) 基于决策表法的测试代码生成方法及装置
Floch et al. Model-driven engineering and optimizing compilers: A bridge too far?
Pais et al. From SysML state machines to petri nets using ATL transformations
Nakajima Using alloy in introductory courses of formal methods
Kim et al. Adapting higher-order list operators for blocks programming
Salohonka Automated testing of React Native applications
de Aguiar Framework documentation: A minimalist approach
Feuerstack et al. Bridging the gap between model and design of user interfaces
Pradhan User interface test automation and its challenges in an industrial scenario
Yang JavelinaCode: A Web-Based Object-Oriented Programming Environment with Static and Dynamic Visualization
Romão Migration from Legacy to Reactive Applications in OutSystems
Pit-Claudel Relational compilation: Functional-to-imperative code generation for performance-critical applications
JP2005327192A (ja) ハードウエア設計システムおよびその方法
Simple TYPE STABILITY IN JULIA
Pyka Memory-aware platform description and framework for source-level embedded MPSoC software optimization
Eskeli Integrated tool support for hardware related software development
Sun Model transformation by demonstration: A user-centric approach to support model evolution
Fridell Architectural Rules Conformance with ArCon and Open-SourceModeling Tools

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: 20170110

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20180212

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20190117

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20200103

Year of fee payment: 7