KR100621063B1 - 인터프리터형 제어프로그램의 개발 방법 및 시스템 - Google Patents

인터프리터형 제어프로그램의 개발 방법 및 시스템 Download PDF

Info

Publication number
KR100621063B1
KR100621063B1 KR1019990030231A KR19990030231A KR100621063B1 KR 100621063 B1 KR100621063 B1 KR 100621063B1 KR 1019990030231 A KR1019990030231 A KR 1019990030231A KR 19990030231 A KR19990030231 A KR 19990030231A KR 100621063 B1 KR100621063 B1 KR 100621063B1
Authority
KR
South Korea
Prior art keywords
interpreter
control program
line
code
tickle
Prior art date
Application number
KR1019990030231A
Other languages
English (en)
Other versions
KR20010011036A (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 KR1019990030231A priority Critical patent/KR100621063B1/ko
Publication of KR20010011036A publication Critical patent/KR20010011036A/ko
Application granted granted Critical
Publication of KR100621063B1 publication Critical patent/KR100621063B1/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
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/362Software debugging
    • G06F11/3624Software debugging by performing operations on the source code, e.g. via a compiler
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/31Programming languages or programming paradigms
    • G06F8/315Object-oriented languages
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/51Source to source

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Computing Systems (AREA)
  • Devices For Executing Special Programs (AREA)
  • Stored Programmes (AREA)
  • Debugging And Monitoring (AREA)

Abstract

본 발명은, 인터프리터형 제어프로그램의 개발 방법 및 시스템에 있어서, 소정의 전용 언어를 이용하여 상기 제어프로그램의 소스코드를 작성하는 단계와; 티클언어로 작성되어 있는 번역기를 이용하여 상기 소스코드를 티클코드로 변환시키는 단계와; 상기 티클코드를 라인단위로 실행하는 단계와; 상기 실행 단계에서 검출되는 논리적 오류를 추적 및 분석하여 상기 소스코드를 수정하는 단계를 포함한다. 이에 의하여, 제어프로그램 개발 시 사용자 오류 발생 빈도와 개발 기간을 줄일 수 있고 프로그램 수정 및 보완이 용이하며 전용 언어 체계에 종속적인 부분의 재사용이 용이해진다.

Description

인터프리터형 제어프로그램의 개발 방법 및 시스템{INTERPRETER TYPE CONTROL PROGRAM DEVELOPING METHOD AND SYSTEM}
도 1은 본 발명에 따른 제어프로그램의 개발 시스템 구성도,
도 2는 본 발명에 따른 제어프로그램의 개발 순서도,
도 3은 종래 제어프로그램의 개발 시스템 구성도이다.
<도면의 주요부분에 대한 부호의 설명>
3 : 번역기 7 : 인터프리터
9 : 디버거 11 : 라인 인터프리터부
13 : 핸들러부 15 : 전용 명령 패키지부
본 발명은, 인터프리터형 제어프로그램의 개발 방법 및 시스템에 관한 것으로서, 보다 상세하게는, 티클(TCL : Tool Command Language) 코어를 이용하여 인터프리터(Interpreter)형의 로봇(Robot)이나 공작기계(Machine Tool) 제어용 프로그램을 개발하는 방법 및 시스템에 관한 것이다.
인터프리터형 제어프로그램이란 실행파일(Executable File)을 따로 만들어 프로그램을 실행하는 컴파일러(Compiler)형 프로그램과는 달리 실행파일을 따로 만들지 않고 소스코드(Source Code)를 해석하여 바로 실행시키는 형태의 프로그램을 말한다.
도 3은 종래 제어프로그램의 개발 시스템 구성도로서, 소스코드를 중간코드(Intermediate Code)로 변환시켜주는 컴파일러(103)와 중간코드를 실행시키는 인터프리터(107)와 실행 시 발생하는 오류를 추적 및 분석하는 디버거(Debugger)(109)로 구성된다.
이 구성도에서 보는 바와 같이, 로봇이나 공작기계 제어프로그램 전용 언어를 이용하여 소스코드(101)를 작성하고 컴파일러(103)를 통해 소스코드내의 구문상의 에러(Syntax Error)를 제거하고 소스코드를 빠른 실행이 가능한 형태의 중간코드(105)로 변환시킨다. 인터프리터(107)는 이 중간코드(105)를 라인단위로 실행시키고 실행 과정 중 검출된 논리적인 오류(Logical Error)는 디버거(109)를 이용하여 추적 및 분석하여 제거한다. 이상과 같은 종래 인터프리터형 프로그램 언어 실행기를 이용하여 로봇이나 공작기계 제어프로그램을 개발함에 있어서 일반 컴퓨터 프로그램 개발과 달리, 개발자는 C 또는 C++과 같은 프로그램 언어를 사용하여 소스코드를 중간코드로 변환하는 컴파일러와 실행 속도를 극대화할 수 있는 인터프리터와 프로그램 실행 과정을 추적하여 논리적인 에러를 제거하기 위한 디버거를 직접 작성해야 한다.
그런데, 컴파일러와 인터프리터와 디버거를 C 또는 C++과 같은 프로그램 언 어를 이용하여 작성할 경우 모든 작업이 개발자에 의해 직접 작성되기 때문에 매우 많은 양의 작업이 요구되고 그에 따른 구현상의 오류 발생 소지가 높아지며 프로그램 알고리즘(Algorithm)의 디버깅(Debugging)에 많은 시간이 소요된다. 또한, 다른 언어 체계에 적용 시 많은 수정 작업이 요구되는 등으로 인해 전체적으로 프로그램 개발 기간의 장기화와 개발 비용의 증대를 가져오는 문제점이 있었다.
따라서, 본 발명의 목적은, 로봇이나 공작기계 제어프로그램의 개발 시 기능상의 오류가 검증된 티클 코어(TCL Core)를 사용함으로써 컴파일과 인터프리터와 디버거의 구현에 필요한 작업량과 오류 발생 소지와 그에 따른 디버깅에 소요되는 시간을 감소시키고 언어 체계 및 시스템 변화에 대한 유연성과 재사용성을 증대시켜 개발 기간 및 개발 비용의 감소를 제공하는 것이다.
상기 목적은, 본 발명에 따라, 제어프로그램의 개발 방법에 있어서, 소정의 전용 언어를 이용하여 상기 제어프로그램의 소스코드를 작성하는 단계와, 상기 소스코드를 티클코드로 변환시키는 단계와, 상기 티클코드를 라인단위로 실행하는 단계와, 상기 실행 단계에서 검출되는 논리적 오류를 추적 및 분석하여 상기 소스코드를 수정하는 단계를 포함하는 것을 특징으로 하는 제어프로그램의 개발 방법에 의해 달성된다.
여기서, 상기 코드 변환 단계에서의 번역기는 티클언어(TCL)로 작성되는 것이 바람직하다.
또한, 상기 라인단위 실행 단계에서의 인터프리터는 루프 제어, 스택 제어 또는 서브루틴 호출을 라인단위로 실행하는 단계를 더 포함할 수 있다.
한편, 본 발명의 다른 분야에 따르면, 제어프로그램 개발 시스템에 있어서, 소스코드를 티클코드로 변환시키는 번역기와, 상기 티클코드를 라인단위로 실행하는 인터프리터와, 상기 인터프리터에서 검출되는 논리적 오류를 추적 및 분석하는 디버거를 포함하는 것을 특징으로 하는 제어프로그램 개발 시스템이 제공된다.
이하에서는 첨부도면을 참조하여 본 발명에 대해 상세히 설명한다.
도 1은 본 발명에 따른 제어프로그램의 개발 시스템 구성도로 이들 도면에 도시된 바와 같이, 개발자가 작성한 소스코드(1)를 티클코드(5)로 변환하는 번역기(Translator)(3)와 티클코드(5)를 라인단위로 실행하는 인터프리터(7)와 프로그램 실행 단계에서 발생되는 논리적인 오류를 추적 및 분석하는 디버거(9)로 구성된다.
티클은 인터프리터형 프로그램 언어에 속하고 소스가 일반에게 무료로 제공되며 내부적으로 C 언어로 작성되어 있는 범용 스크립트 언어(Scripts Language)이다.
번역기(3)는 로봇이나 공작기계 제어프로그램 전용 언어로 작성된 소스코드를 티클코드로 변환시키는 것으로 티클언어로 작성함으로써 수정작업을 쉽게 한다.
인터프리터(7)는 다시 티클 코어를 이용하여 라인단위의 실행을 수행하는 라인 인터프리터부(11)와 루프 제어(Loop Control), 스택 제어(Stack Control) 또는 서브루틴 호출(Subroutine Call)을 라인단위로 실행하기 위한 핸들러(Handler)부(13)와 전용 명령들을 처리하기 위한 사용자 정의의 전용 명령 패키지부(15)로 구성된다.
디버거(9)는 논리적 오류를 추적하고 분석하는데 이용하며 발생한 오류는 소스코드를 수정하고 이를 검증하여 제거한다.
도 2는 본 발명에 따른 제어프로그램의 개발 순서도이다.
먼저 개발자는 로봇이나 공작기계 제어프로그램 전용 언어를 이용하여 상기 제어프로그램의 소스코드(1)를 작성한다(S1). 작성된 소스코드(1)는 번역기(3)를 통해 티클코드(5)로 변환된다(S3). 이 번역기(3)는 단순히 언어체계간의 변환에 필요한 원칙에 대해서만 고려한다. 또한, 번역기(3)는 티클언어로 작성함으로써 티클언어가 제공하는 스트링(String)처리 명령 방식을 이용할 수 있고 SRAM이나 디스크상에 파일 형태로 저장되는 것이 가능하기 때문에 수정작업이 용이하게 된다.
변환된 티클코드(5)는 티클 코어를 이용한 인터프리터(7)를 통해 라인단위로 실행된다(S5,S51,S7). 프로그램 개발 단계에서의 실행은 오류 발생의 여지를 감안하여 피제어 대상이 되는 하드웨어(Hardware, H/W)에 대한 직접적인 제어를 생략한 가상적인 실행이다. 이 과정에서 티클에서 제공되지 않는 루프 제어, 스택 제어, 서브루틴 호출의 라인단위 실행을 위한 핸들러부(13)와 전용 명령의 처리를 위한 사용자 정의의 전용 명령 패키지부(15)를 사용한다(S5,S51). 이와 같이 티클 코어(5)를 이용함으로써 충분히 검증된 티클의 파싱(Parsing) 및 실행 메커니즘(Mechanism)을 이용하므로 개발 시의 오류 발생과 검증에 필요한 노력을 줄여 그에 따른 개발 기간 및 개발 비용을 감소시킬 수 있다. 또한, 전용 명령들이 모듈화 되어있어 적은 노력으로 재사용이 가능하다.
한편, 프로그램 실행 단계(S7)에서 발생되는 논리적인 오류는 디버거(9)를 사용하여 추적 및 분석하고(S9,S91), 소스코드의 수정(S92)과 티클코드로 변환(S3)이하의 단계들을 반복 수행함으로써 제거한다. 여기에서, 디버거(9)는 티클 라이브러리가 제공하는 함수들(Tcl_AddErrorInfo, Tcl_SetErrorCode, Tcl_TraceVar, Tcl_VarTraceInfo 등)을 이용하여 예외처리(Exception Handling), 에러 리포팅(Error Reporting), 변수 트레이싱(Variable Tracing) 등의 핵심적인 디버깅 기능들을 쉽게 구현할 수 있다. 오류를 제거한 완성된 프로그램은 최종적으로 피제어 대상의 제어에 적용한다(S11).
이상 설명한 바와 같이, 본 발명에 따르면, 개발 기간과 개발 비용을 감소시키는 제어프로그램의 개발 방법 및 시스템이 제공된다.

Claims (7)

  1. 제어프로그램의 개발 방법에 있어서,
    소정의 전용 언어를 이용하여 상기 제어프로그램의 소스코드를 작성하는 단계와;
    인터프리터형 프로그램 언어인 티클언어(Tool Command Language)로 작성되어 있는 번역기를 이용하여 상기 소스코드를 티클코드로 변환시키는 단계와;
    상기 티클코드를 라인단위로 실행하는 단계와;
    상기 실행 단계에서 검출되는 논리적 오류를 추적 및 분석하여 상기 소스코드를 수정하는 단계를 포함하는 것을 특징으로 하는 제어프로그램의 개발 방법.
  2. 삭제
  3. 제1항에 있어서,
    상기 라인단위 실행 단계에서의 인터프리터는 루프 제어, 스택 제어 또는 서브루틴 호출을 라인단위로 실행하는 단계를 더 포함하는 것을 특징으로 하는 제어프로그램의 개발 방법.
  4. 제어프로그램 개발 시스템에 있어서,
    인터프리터형 프로그램 언어인 티클언어(Tool Command Language)로 작성되어 있으며, 소스코드를 티클코드로 변환시키는 번역기와;
    상기 티클코드를 라인단위로 실행하는 인터프리터와;
    상기 인터프리터에서 검출되는 논리적 오류를 추적 및 분석하는 디버거를 포함하는 것을 특징으로 하는 제어프로그램 개발 시스템.
  5. 삭제
  6. 제 4항에 있어서,
    상기 인터프리터는 루프 제어, 스택 제어 또는 서브루틴 호출을 라인단위로 실행하기 위한 핸들러부를 포함하는 것을 특징으로 하는 제어프로그램 개발 시스템.
  7. 제 4항 또는 제6항에 있어서,
    상기 인터프리터는 전용 명령들을 처리하기 위한 전용 명령 패키지부를 포함하는 것을 특징으로 하는 제어프로그램 개발 시스템.
KR1019990030231A 1999-07-24 1999-07-24 인터프리터형 제어프로그램의 개발 방법 및 시스템 KR100621063B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1019990030231A KR100621063B1 (ko) 1999-07-24 1999-07-24 인터프리터형 제어프로그램의 개발 방법 및 시스템

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1019990030231A KR100621063B1 (ko) 1999-07-24 1999-07-24 인터프리터형 제어프로그램의 개발 방법 및 시스템

Publications (2)

Publication Number Publication Date
KR20010011036A KR20010011036A (ko) 2001-02-15
KR100621063B1 true KR100621063B1 (ko) 2006-09-07

Family

ID=19604399

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019990030231A KR100621063B1 (ko) 1999-07-24 1999-07-24 인터프리터형 제어프로그램의 개발 방법 및 시스템

Country Status (1)

Country Link
KR (1) KR100621063B1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102495720A (zh) * 2011-11-24 2012-06-13 盛科网络(苏州)有限公司 在tcl语言中创建、应用指针变量的方法、装置及系统

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101543996B (zh) * 2008-03-24 2012-12-26 上海英集斯自动化技术有限公司 基于交互式c语言的多总线模块化机器人控制器
KR101623174B1 (ko) 2014-08-27 2016-05-20 주식회사 파수닷컴 소스 코드 분석 장치, 이를 위한 컴퓨터 프로그램, 그 기록매체
WO2016032234A1 (ko) * 2014-08-27 2016-03-03 주식회사 파수닷컴 소스 코드 분석 장치, 이를 위한 컴퓨터 프로그램, 그 기록매체
CN109822549B (zh) * 2018-12-31 2021-05-11 深圳市越疆科技有限公司 一种机器人编程方法、装置及控制器

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102495720A (zh) * 2011-11-24 2012-06-13 盛科网络(苏州)有限公司 在tcl语言中创建、应用指针变量的方法、装置及系统

Also Published As

Publication number Publication date
KR20010011036A (ko) 2001-02-15

Similar Documents

Publication Publication Date Title
EP1074911B1 (en) Aspect-oriented programming
US6219832B1 (en) System and method of using annotations to optimize dynamically translated code in the presence of signals
US6934940B2 (en) Source code transformation-temporary object reduction
JP2004062858A (ja) データ処理装置内のアプリケーション・コードのコンパイル
JPH05224911A (ja) 動的命令修正制御装置
JPH0731604B2 (ja) 目標コンピュータ・システム、異なるコンピュータ・システム間でプログラムを実行する方法
JPH02238528A (ja) コンピュータ・プログラムの第一バージョン処理方法
EP1782193A1 (en) Generating unwind information for optimized programs
CN109799971B (zh) 一种文件生成装置和方法
US7124407B1 (en) Method and apparatus for caching native code in a virtual machine interpreter
US7003762B2 (en) Computer-implemented exception handling system and method
KR20010086159A (ko) 자바 프로그램들 및 이를 위한 소프트웨어 프러덕트의플랫폼 특정 효율 강화를 위한 방법
KR100621063B1 (ko) 인터프리터형 제어프로그램의 개발 방법 및 시스템
CN110333867B (zh) 一种多方安全计算数据处理方法、装置及系统
JPH0237455A (ja) モジュラコンパイラ
US7624381B1 (en) Portable detection of start and completion of object construction
Cifuentes et al. Experience in the design, implementation and use of a retargetable static binary translation framework
CN112905474A (zh) 一种基于硬件的高级程序动态控制流追踪方法和装置
von Hanxleden SyncCharts in C
CN113253993B (zh) 一种实现命令序列和事件管理的CFlex脚本语言的使用方法
JP2791126B2 (ja) プログラマブルシーケンサ
US11714609B2 (en) Automatic generation of source code implementing a regular expression
Blunk et al. Efficient Development of Domain-Specific Simulation Modelling Languages and Tools
KR102371701B1 (ko) 인공지능 장치의 소프트웨어 디버깅 방법 및 장치
Izawa Supporting multi-scope and multi-level compilation in a meta-tracing just-in-time compiler

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
AMND Amendment
AMND Amendment
E601 Decision to refuse application
J201 Request for trial against refusal decision
AMND Amendment
B701 Decision to grant
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20100629

Year of fee payment: 5

LAPS Lapse due to unpaid annual fee