KR20040057037A - SDL/C language transforming system and method, and its program stored recording medium - Google Patents

SDL/C language transforming system and method, and its program stored recording medium Download PDF

Info

Publication number
KR20040057037A
KR20040057037A KR1020030013385A KR20030013385A KR20040057037A KR 20040057037 A KR20040057037 A KR 20040057037A KR 1020030013385 A KR1020030013385 A KR 1020030013385A KR 20030013385 A KR20030013385 A KR 20030013385A KR 20040057037 A KR20040057037 A KR 20040057037A
Authority
KR
South Korea
Prior art keywords
language
information
queue
save
message
Prior art date
Application number
KR1020030013385A
Other languages
Korean (ko)
Other versions
KR100560393B1 (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 한국전자통신연구원
Publication of KR20040057037A publication Critical patent/KR20040057037A/en
Application granted granted Critical
Publication of KR100560393B1 publication Critical patent/KR100560393B1/en

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • 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

Landscapes

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

Abstract

PURPOSE: An SLD(Specification and Description Language) to C language program conversion system and method is provided to automatically generate a program written in a C language from a program written in an SDL in developing a real time distributed communication program so that it maintains a consistency in a design and an implementation of a system. CONSTITUTION: The system comprises a process(301) and an input queue(302). The process(301) drives a process, written in the SDL, by using a library of a C language. Each process(301) corresponds to the input queue(302) for receiving a signal. The input queue(302) includes a message queue(303) and a save queue(304). The message queue(303) buffers a signal 1 transmitted from an external process. The save queue(304) stores a save signal. The input queue(303) compares parameters taken over by the process(301) in execution, and takes over a proper signal 2 to the process(301).

Description

에스디엘에서 C언어로의 변환 시스템 및 방법, 그 프로그램이 구현된 기록매체{ SDL/C language transforming system and method, and its program stored recording medium }SDL / C language transforming system and method, and its program stored recording medium}

본 발명은 규격 기술 언어(이하, SDL이라고 함) 언어에서 C언어로의 변환 방법 및 그 프로그램이 구현된 기록매체에 관한 것으로, 보다 상세하게는 교환기와 같은 실시간, 분산 통신용 소프트웨어 개발에 있어서 시스템의 설계 및 명세언어인 에스디엘에서 구현 언어인 C로 된 프로그램을 자동으로 생성함으로써 개발자들이 설계와 구현의 일관성을 유지시키고 보다 편리하게 소프트웨어를 개발하게 하는 환경을 제공해 주는 에스디엘에서 C언어로의 변환 시스템 및 방법, 그 프로그램이 구현된 기록매체에 관한 것이다.The present invention relates to a method for converting from a standard description language (hereinafter referred to as SDL) language to a C language and a recording medium on which the program is implemented. More particularly, the present invention relates to a system for developing software for real-time and distributed communication such as an exchange. SD-to-C conversion, which automatically creates programs in C, the implementation language, from the design and specification language, providing developers with an environment for design and implementation consistency and easier software development. A system and method, and a record carrier on which the program is implemented.

종래의 통신용 소프트웨어 개발자들은 교환기용 소프트웨어 등을 개발하는데 있어서 명세 및 기술 언어인 규격 기술 언어(Specification and Description Language, 이하 SDL이라고 함)를 이용하여 시스템을 설계하고, SDL을 바탕으로 구현을 위한 언어를 사용하여 소프트웨어를 개발하고 있다.Conventional communication software developers design a system using a specification and description language (hereinafter referred to as SDL), which is a specification and description language, in developing an exchange software and the like, and develop a language for implementation based on the SDL. To develop software.

위와 같은 SDL을 이용한 소프트웨어 개발 방법은 설계와 구현 사이의 일관성이 떨어지고, 설계상의 변화가 구현에 직접적으로 영향을 미치지 못하는 등의 문제점이 발생한다.Software development method using the SDL as described above is inconsistent between design and implementation, and problems such as design change does not directly affect the implementation.

또한, SDL을 이용한 소프트웨어 개발 방법은 SDL에서 구현 언어인 C로의 자동 번역에 있어서, 세이브 시그널 (save signal) 및 리모트 프로시주어(remote procedure) 호출 같은 C 언어가 자체적으로 지원하지 않는 프리미티브들을 사용할 경우에, 완전한 일대일 대응을 하는 코드를 생성하지 못하는 문제점이 있다.In addition, the software development method using SDL uses automatic primitives not supported by the C language such as save signals and remote procedure calls in the automatic translation from SDL to the implementation language C. There is a problem with failing to generate code that has a complete one-to-one correspondence.

본 발명은 위의 문제점을 해결하기 위한 것으로, 본 발명의 목적은 SDL 언어로 작성된 프로그램에서 C 언어에서 지원하지 않는 프리미티브들에 대한 정보들을 추출 및 저장하고, 각각의 정보를 자체 제작된 실행 시간 라이브러리를 이용한 C 언어의 함수 호출 형태로 대응시킨 다음에 C 언어로 된 프로그램을 생성함으로써 사용자로 하여금 설계에서 구현까지의 일관성을 유지하고, 기능의 추가나 변경, 삭제 등 설계 수준에서의 부분적인 변화가 의미적 변화 없이 구현에 바로 영향을 미치도록 하는 에스디엘에서 C언어로의 변환 시스템 및 방법, 그 프로그램이 구현된 기록매체를 제공하는 것이다.The present invention is to solve the above problems, an object of the present invention is to extract and store information about primitives that are not supported by the C language in a program written in the SDL language, each of the information to its own runtime library By matching the function call of C language with C and then creating the program in C language, the user can maintain the consistency from design to implementation, and the partial change in design level such as adding, changing, and deleting functions is meaningful. It is to provide a system and method for converting from SD to C language and a recording medium on which the program is implemented.

도 1은 본 발명에 따른 실시예의 에스디엘에서 C언어로의 변환 시스템의 하드웨어 구성을 도시한 것이다.Figure 1 shows the hardware configuration of the SD to C conversion system of the embodiment according to the present invention.

도 2는 본 발명에 따른 실시예의 실행 시간 라이브러리를 이용한 에스디엘에서 C언어로의 변환 시스템에서 에스디엘에서 C로의 실행코드 생성을 위한 소프트웨어 구성을 도시한 것이다.FIG. 2 illustrates a software configuration for generating an execution code from the SD to the C in the SD-to-C conversion system using the runtime library according to the embodiment of the present invention.

도 3은 본 발명에 따른 실시예의 에스디엘에서 C언어로의 변환 방법을 도시한 순서도이다.3 is a flowchart illustrating a method of converting SD to C language according to an embodiment of the present invention.

도 4는 도 3에서 에스디엘의 세이브 시그널을 처리하기 위한 이중 큐를 가지는 입력 큐와 프로세스의 구조를 도시한 것이다.FIG. 4 illustrates the structure of an input queue and a process having a double queue for processing a save signal of SD in FIG. 3.

도 5는 도 4를 이용하여 에스디엘의 세브 시그널을 처리하기 위한 입력 큐의 내부 수행 흐름도를 도시한 것이다.FIG. 5 is a flowchart illustrating an internal execution of an input queue for processing SD signals of SD using FIG. 4.

상기한 바와 같은 목적을 실현하기 위해 본 발명에 따른 에스디엘에서 C언어로의 변환 시스템의 특징은, 규격 기술 언어(이하, SDL이라고 함)로 작성된 프로그램을 C 언어로 변환하는 변환모듈, 및 C 언어로 직접 사상되지 않는 정보를 처리하기 위한 실행시간 라이브러리들을 작성하는 도구들을 가지는 메인 메모리; 상기 메인 메모리가 가지고 있는 프로그램 및 실행 파일들을 실행시키는 중앙처리장치; 및 상기 메인 메모리나 중앙처리장치로의 모든 메시지들을 입력, 출력하는 입/출력장치를 포함한다.In order to achieve the above object, a feature of the SD-C conversion system according to the present invention is a conversion module for converting a program written in a standard description language (hereinafter referred to as SDL) into a C language, and C Main memory having tools for writing runtime libraries for processing information not mapped directly to the language; A central processing unit that executes programs and executable files of the main memory; And an input / output device for inputting and outputting all messages to the main memory or the central processing unit.

상기 입/출력장치로부터 입력, 출력되는 정보들을 저장하는 보조 기억장치를 더 포함한다. 상기 메인 메모리, 중앙처리장치, 및 입/출력장치들은 유닉스 운영체제에 의해 제어된다.Auxiliary storage device for storing information input and output from the input / output device further comprises. The main memory, central processing unit, and input / output devices are controlled by the Unix operating system.

상기 메인 메모리의 변환모듈은, 상기 에스디엘로 작성된 프로그램을 분석하여 필요한 에스디엘 구조 정보를 추출하여 기억시키는 에스디엘 분석부; 상기 에스디엘 분석부에서 기억시킨 에스디엘 구조 정보를 분석하여 에스디엘에서 C 언어로 직접 사상되는 정보와, C 언어로 직접 사상되지 않는 정보를 각각 분리한 사상 정보를 기억시키는 에스디엘 사상부; 및 상기 에스디엘 사상부에서 기억시킨 사상 정보를 통해 에스디엘에서 직접 C 언어로 사상되는 정보들은 직접 코드를 생성시키고, 에스디엘에서 직접 C 언어로 사상되지 않은 정보들은 상기 실행시간 라이브러리를 이용한 함수의 호출 형태로 프로그램 코드를 생성시키는 C 생성부를 포함한다.The conversion module of the main memory includes: an SD analysis unit configured to analyze a program written in the SD to extract and store necessary SD structure information; An SD-elevation unit for analyzing the SD-el structure information stored in the SD-EL analysis unit to store the thought information obtained by separating the information directly mapped to the C language from the SD and the information not directly mapped to the C language; And the information mapped in C language directly from SD through the mapping information stored in the SD mapping unit, and the information not mapped directly in C language in SD includes the functions of the function using the runtime library. It includes a C generator that generates program code in the form of a call.

상기 C 생성부는, 상기 에스디엘에서 직접 C 언어로 사상되지 않는 정보를 처리 할 수 있도록 리눅스 및 유닉스 운영체제에서 수행되는 C 언어로 작성된 실행시간 라이브러리를 이용하여 구동된다.The C generation unit is driven using a runtime library written in C language that is executed in Linux and Unix operating systems so as to process information that is not mapped in C language directly in the SD.

상기 프로세스들은 시그널 수신을 위해 각각 입력 큐(Input Queue)를 포함하고, 상기 입력 큐는 외부 프로세스에서 입력되는 시그널을 버퍼링하는 메시지 큐, 및 세이브 시그널을 저장하는 세이브 큐로 구성된다.Each of the processes includes an input queue for receiving a signal, and the input queue includes a message queue for buffering a signal input from an external process, and a save queue for storing a save signal.

상기 입력 큐는 수행중인 프로세스로부터 함수 호출의 인수로 넘겨받은 시그널에 대한 정보들 비교한 후에 적절한 시그널을 상기 수행중인 프로세스로 반환한다.The input queue compares the information about the signal passed from the running process as an argument of the function call and returns the appropriate signal to the running process.

본 발명에 따른 에스디엘에서 C언어로의 변환 방법의 특징은, a) 실시간 및 분산 환경에서 에스디엘로 작성된 프로그램을 분석하여 C 언어로 직접 사상 가능한 정보와 C 언어로 사상되지 않은 정보를 각각 분리하여 기록하는 단계; b) 상기 a) 단계에서 기록된 정보 중에서 에스디엘에서 C 언어로 직접 사상 되지 않는 정보를처리 할 수 있도록 실행시간 라이브러리를 작성하는 단계; 및 c) 상기 b) 단계에서 작성된 실행시간 라이브러리의 함수 호출 형태로 상기 에스디엘에서 C 언어로 직접 사상되지 않는 정보를 C 언어로 변환하고, 상기 a) 단계에서 상기 에스디엘에서 C 언어로 직접 사상되는 정보들은 바로 C 언어로 변환하는 단계를 포함한다.Characteristic of the method of converting SD to C language according to the present invention, a) by analyzing the program written in SD in real-time and distributed environment by separating the information that can be directly mapped in C language and information not mapped in C language, respectively. Recording; b) creating a runtime library to process information that is not mapped directly from SD to C language among the information recorded in step a); And c) converting information that is not directly mapped from the SD to the C language to the C language in the form of a function call of the runtime library created in the step b), and directly mapping from the SD to the C language in the step a). The information to be translated directly includes the C language.

상기 c) 단계에서 상기 에스디엘에서 C 언어로 직접 사상되지 않는 정보를 C 언어로 변환하는 단계는, 상기 에스디엘에서 직접 C 언어로 사상되지 않는 정보 중 세이브 시그널을 처리하기 위해 상기 실행시간 라이브러리에서 메시지 큐와 세이브 큐로 구성되는 입력 큐를 이용하여 세이브 시그널과 일반 시그널 입력을 각각 처리한다.In the step c), the step of converting information not directly mapped to the C language from the SD to the C language is performed by the runtime library to process a save signal among the information not mapped directly to the C language from the SD. Input signals consisting of a message queue and a save queue are used to process the save signal and the normal signal input, respectively.

상기 입력 큐를 이용하여 세이브 시그널과 일반 시그널 입력을 처리하는 단계는, 가) 수행중인 프로세스로가 입력 시그널을 수신하기 위하여 입력 시그널 및 세이브 시그널에 대한 정보를 인수로 하여 상기 입력 큐로 함수 호출하는 단계; 나) 상기 입력 큐에서 상기 가) 단계를 통해 얻어진 정보에 세이브 시그널 목록이 존재하는경우에, 상기 메시지 큐의 프론트 메시지와 세이브 시그널 정보가 일치하는 지를 확인하는 단계; 다) 상기 나) 단계에서 메시지 큐의 프론트 메시지와 세이브 시그널 정보가 일치하는 경우에, 상기 입력 큐는 상기 메시지 큐의 프론트 메시지를 추출하여 세이브 큐에 저장하는 단계; 및 라) 상기 다) 단계에서 세이브 큐에 저장한 메시지가 아닌 또 다른 메시지가 세이브 큐에 존재하면 상기 세이브 큐의 프론트 메시지를 반환하고, 상기 세이브큐에 또 다른 메시지가 존재하지 않으면 메시지의 프론트 큐의 메시지를 수행중인 프로세스로 반환하는 단계수행중인 프로세스로 반환하는 단계를 포함한다.The processing of the save signal and the general signal input using the input queue may include: a) calling a function into the input queue with information on the input signal and the save signal as arguments in order to receive an input signal by a running process; ; B) if a save signal list exists in the information obtained through the step a) in the input queue, checking whether the front message of the message queue matches the save signal information; C) when the front message of the message queue and the save signal information coincide in step b), the input queue extracts the front message of the message queue and stores it in the save queue; And d) if a message other than the message stored in the save queue is present in the save queue, the front message of the save queue is returned, and if there is no other message in the save queue, the front queue of the message is returned. Returning the message of the process to a running process.

상기 나) 단계에서 상기 입력 큐에 세이브 시그널 목록이 존재하지 않고, 상기 메시지 큐의 프론트 메시지와 세이브 시그널 정보가 일치하지 않는 경우에, 상기 세이브 큐에 메시지가 존재하는 지를 확인하는 단계; 및 상기 단계에서 세이브 큐에 메시지가 존재하면 상기 세이브 큐의 프론트 메시지를 수행중인 프로세스로 반환하고, 상기 세이브 큐에 메시지가 존재하지 않는다면 상기 메시지 큐의 프론트 메시지를 수행중인 프로세스로 반환하는 단계를 포함한다.Checking whether a message exists in the save queue when the save signal list does not exist in the input queue and the front message of the message queue does not match the save signal information in step b); And returning the front message of the save queue to the executing process if the message exists in the save queue, and returning the front message of the message queue to the executing process if the message does not exist in the save queue. do.

한편, 에스디엘에서 C언어로의 변환 방법을 구현하기 위한 프로그램을 구현한 기록매체의 특징은, 실시간 및 분산 환경에서 에스디엘로 작성된 프로그램을 분석하여 C 언어로 직접 사상 가능한 정보와 C 언어로 사상되지 않은 정보를 각각 분리하여 기록하는 제1 기능; 상기 제1 기능을 통해기록된 정보 중에서 에스디엘에서 C 언어로 직접 사상 되지 않는 정보를 처리 할 수 있도록 실행시간 라이브러리를 작성하는 제2 기능; 및 상기 제2 기능을 통해 작성된 실행시간 라이브러리의 함수 호출 형태로 상기 에스디엘에서 C 언어로 직접 사상되지 않는 정보를 C 언어로 변환하고, 상기 a) 단계에서 상기 에스디엘에서 C 언어로 직접 사상되는 정보들은 바로 C 언어로 변환하는 제3 기능을 저장한다.On the other hand, the characteristics of the recording medium that implements the program for implementing the conversion method from SD to C language are not mapped to C language and information that can be directly mapped to C language by analyzing programs written in SL in real time and distributed environment. A first function of separately recording information which has not been received; A second function of creating a runtime library to process information which is not directly mapped to C language in SD among the information recorded through the first function; And converting information not directly mapped from the SD to the C language into the C language in the form of a function call of the runtime library written through the second function, and directly mapped from the SD to the C language in the step a). The information stores a third function that translates directly into the C language.

교환기용 소프트웨어 등의 통신용 소프트웨어 개발에 있어서, 설계 및 명세 언어인 에스디엘에서 구현 언어인 씨로 번역할 ?? 씨 언어에서 제공하지 않는 세이브 시그널과 같은 에스디엘 프리미티들을 리눅스 및 유닉스 운영체제 환경에서 수행 될 수 있게 하는 실행시간 라이브러리를 이용하여 처리 할 수 있도록 하는 방법을 제공해 주는 것이다.In the development of communication software such as switch software, it is translated from SD, the design and specification language, to C, the implementation language. It provides a way to handle SD primitives, such as save signals, which are not provided by the C language, using runtime libraries that can be run on Linux and Unix operating systems.

이하, 첨부된 도면을 참조하여 본 발명의 구성 및 작용에 대해 상세히 설명한다.Hereinafter, with reference to the accompanying drawings will be described in detail the configuration and operation of the present invention.

도 1은 본 발명에 따른 실시예의 에스디엘에서 C언어로의 변환 시스템의 하드웨어 구성을 도시한 것이다.Figure 1 shows the hardware configuration of the SD to C conversion system of the embodiment according to the present invention.

도 1에 도시된 바와 같이, 본 발명에 따른 실시예의 시스템은 메인 메모리(101), 중앙처리장치(102), 보조기억장치(103), 입/출력장치(104), 시스템버스(106)를 포함하고 있다.As shown in FIG. 1, a system of an embodiment according to the present invention includes a main memory 101, a central processing unit 102, an auxiliary storage device 103, an input / output device 104, and a system bus 106. It is included.

메인 메모리(101)는 에스디엘로 작성된 프로그램을 C 프로그램으로 변환하는 변환기, 및 실행 시간 라이브러리들을 개발하기 위한 시스템 도구들이 탑재되어 있다.The main memory 101 is equipped with a converter for converting a program written in SD to a C program, and system tools for developing runtime libraries.

중앙처리장치(102)는 메인 메모리(101)에 탑재된 실행 파일을 실행시키고, 보조기억장치(103)는 여러 정보들이 저장되어 있다. 입/출력 장치(104)는 모든 메시지를 입/출력하고, 시스템 버스(106)는 각 보드 및 장치 간에 상호 송수신되는 메시지나 정보들을 해당 보드 및 장치로 전송해 준다.The central processing unit 102 executes an executable file mounted in the main memory 101, and the auxiliary memory 103 stores various information. The input / output device 104 inputs / outputs all messages, and the system bus 106 transmits messages or information to and from the boards and devices.

위에서 언급한 메인 메모리(101), 중앙처리장치(102), 보조기억장치(103), 입/출력장치(104)들은 유닉스 운영체제(105)에 의해 제어된다.The main memory 101, the central processing unit 102, the auxiliary memory 103, and the input / output device 104 mentioned above are controlled by the Unix operating system 105.

도 2는 본 발명에 따른 실시예의 실행 시간 라이브러리를 이용한 에스디엘에서 C언어로의 변환 시스템에서 에스디엘에서 C로의 실행코드 생성을 위한 소프트웨어 구성을 도시한 것이다.FIG. 2 illustrates a software configuration for generating an execution code from the SD to the C in the SD-to-C conversion system using the runtime library according to the embodiment of the present invention.

도 2에 나타나 있듯이, 본 발명에 따른 실시예에서는 에스디엘 분석부(201), 에스디엘 사상부(202), C 생성부(203)를 포함하고 있다.As shown in FIG. 2, the embodiment according to the present invention includes the SD analyzing unit 201, the SD mapping unit 202, and the C generating unit 203.

에스디엘 분석부(201)는 외부에서 입력되는 에스디엘로 작성된 프로그램을 분석하고, 그 분석 결과를 통해 필요한 정보를 추출하여 메인 메모리(101) 상에 에스디엘 구조 정보를 기억시킨다.The SD analysis unit 201 analyzes a program written in SD input from the outside, extracts necessary information through the analysis result, and stores the SD structure information on the main memory 101.

에스디엘 사상부(202)는 에스디엘 구조 정보를 분석하여 C 언어로 직접 사상 되는 정보, 또는 C 언어로 직접 사상되지 않는 정보를 각각 분리하여 메인 메모리(101) 상에 사상 정보를 기억시킨다.The SD mapping unit 202 analyzes the SD structure information to separate the information that is directly mapped in the C language or the information that is not directly mapped in the C language, and stores the mapping information on the main memory 101.

C 생성부(203)는 사상 정보를 이용하여 에스디엘에서 직접 C 언어로 사상되는 프리미티브들은 직접 C 코드로 생성하고, 세이브 시그널과 같은 직접 사상 시킬 수 없는 정보는 메인 메모리(101)에 탑재되어 있는 실행시간 라이브러리를 이용한 라이브러리 함수의 형태로 프로그램 코드를 생성한다.The C generator 203 directly generates primitives mapped to C language directly from SD using mapping information, and directly maps non-targetable information such as a save signal into the main memory 101. Generate program code in the form of library functions using runtime libraries.

도 3은 본 발명에 따른 실시예의 에스디엘에서 C언어로의 변환 방법을 도시한 순서도이다.3 is a flowchart illustrating a method of converting SD to C language according to an embodiment of the present invention.

도 3에 나타나 있듯이, 에스디엘 분석부(201)는 에스디엘로 작성된 프로그램을 분석하고 필요한 정보를 주출하여 에스디엘 구조 정보를 메인 메모리(101)에 기억시킨다.(S1)As shown in FIG. 3, the SD analyzing unit 201 analyzes a program written in SD, extracts necessary information, and stores the SD structure information in the main memory 101 (S1).

그 후, 에스디엘 사상부(202)는 메인 메모리(101)에서 에스디엘 구조 정보를 읽어들여 C 언어로 직접 사상 가능한 정보와 그렇지 않은 정보를 분리하여 사상 정보를 기억시킨다.(S2)Thereafter, the SD mapping unit 202 reads the SD structure information from the main memory 101 and stores the mapping information by separating the information that can be directly mapped into the C language and the information that is not.

이때, 에스디엘에서 직접 C 언어로 사상 가능한 정보는 C 생성부(203)에서 직접 코드를 생성시킨다.(S3)At this time, the information that can be mapped in C language directly in SD, the C generation unit 203 generates a code directly (S3).

그런데, 에스디엘에서 직접 C 언어로 사상되지 않는 정보는 메인 메모리(101 시스템 도구들을 이용하여 리눅스 및 유닉스 운영체제(105)에서 수행할 수 있는 실행시간 라이브러리를 작성하고, 이 라이브러리 함수의 형태로 프로그램 코드를 생성한다.(S4)By the way, the information that is not mapped to C language directly in SD is to write a runtime library that can be executed in Linux and Unix operating system 105 using main memory (101 system tools), and program code in the form of this library function. (S4)

도 4는 도 3에서 에스디엘의 세이브 시그널을 처리하기 위한 이중 큐를 가지는 입력 큐와 프로세스의 구조를 도시한 것이다.FIG. 4 illustrates the structure of an input queue and a process having a double queue for processing a save signal of SD in FIG. 3.

도 4에 도시된 바와 같이, 에스디엘의 프로세스를 C 언어의 실행시간 라이브러리를 이용하여 구동되는 프로세스(301)는 시그널의 수신을 위하여 각각의 프로세스마다 입력 큐(Input Queue, 302)를 가진다.As shown in FIG. 4, the process 301 which runs SD's process using the C language runtime library has an input queue 302 for each process to receive a signal.

입력 큐(302)는 외부 프로세스에서 들어오는 시그널(Signal 1)을 버퍼링하기 위한 메시지 큐(303), 및 세이브 시그널을 저장하기 위한 세이브 큐(304)로 구성되어 있다.The input queue 302 is composed of a message queue 303 for buffering an incoming signal (Signal 1) from an external process, and a save queue 304 for storing a save signal.

입력 큐(302)는 수행 중인 프로세스(301)로부터 넘어온 파라미터들을 비교한 다음 적절한 시그널(Signal 2)을 반환한다.The input queue 302 compares the parameters passed from the running process 301 and then returns the appropriate signal (Signal 2).

이하, 도 5에 도시된 순서도를 참고하여 수행중인 프로세스로(301)부터 인수를 넘겨받은 입력 큐(302)의 동작을 설명한다.Hereinafter, an operation of the input queue 302 that receives arguments from the running process 301 will be described with reference to the flowchart illustrated in FIG. 5.

도 5는 도 4를 이용하여 에스디엘의 세브 시그널을 처리하기 위한 입력 큐의 내부 수행 흐름도를 도시한 것이다.FIG. 5 is a flowchart illustrating an internal execution of an input queue for processing SD signals of SD using FIG. 4.

도 5에 나타나 있듯이, 수행중인 프로세스(301)는 세이브 시그널에 대한 정보를 입력 큐(302)로 함수 호출의 인수로 넘겨준다.(S11) 그러면, 입력 큐(302)는 함수 호출의 인수로 넘겨진 세이브 시그널 목록이 존재하는지를 검사한다.(S12)As shown in FIG. 5, the executing process 301 passes the information about the save signal to the input queue 302 as an argument of the function call. (S11) Then, the input queue 302 is passed as an argument of the function call. Check whether the save signal list exists (S12).

입력 큐(302)에 세이브 시그널 정보가 존재하는 경우에, 입력 큐(302)는 메시지 큐(303)의 프론트 메시지와 세이브 시그널 정보가 일치하는지 확인한다.(S13) 메시지 큐(303)의 프론트 메시지와 세이브 시그널 정보가 일치하면, 입력 큐(302)는 세이브 큐(304)로 메시지 큐(303)의 프론트 메시지를 추출 저장한다.(S14)When the save signal information exists in the input queue 302, the input queue 302 checks whether the front message of the message queue 303 and the save signal information match. (S13) The front message of the message queue 303. If and the save signal information match, the input queue 302 extracts and stores the front message of the message queue 303 to the save queue 304 (S14).

그 후, 입력 큐(302)는 상기 세이브 큐(304)로 저장한 메시지를 제외하고, 세이브 큐(304)에 다른 메시지가 존재하면 그 메시지를 수행중인 프로세스로 반환하고, 그렇지 않으면 다시 한번 메시지지 큐(303)의 프론트 메시지를 추출하여 이를 수행중인 프로세스로 반환한다.(S15)Thereafter, the input queue 302 returns the message to the running process if there is another message in the save queue 304, except for the message stored in the save queue 304; The front message of the queue 303 is extracted and returned to the running process (S15).

그런데, 위에서 함수 호출의 인수 중에 세이브 시그널 목록이 입력 큐(302)에 존재하지 않는 경우(S12), 메시지 큐(303)의 프론트 메시지와 세이브 시그널의 정보가 일치하지 않는 경우에(S13), 세이브 큐(304)에 메시지가 존재하는지를 확인한다(S16).However, when the save signal list does not exist in the input queue 302 among the arguments of the function call above (S12), when the front message of the message queue 303 and the information of the save signal do not match (S13), the save It is checked whether a message exists in the queue 304 (S16).

만약, 세이브 큐(304)에 메시지가 존재하지 않는다면 메시지 큐(303)의 프론트 메시지를 수행중인 프로세스로 반환한다(S15). 그런데, 세이브 큐(304)에 메시지가 존재한다면, 세이브 큐(304)의 프론트 메시지를 수행중인 프로세스(301)로 반환한다.(S17)If the message does not exist in the save queue 304, the front message of the message queue 303 is returned to the executing process (S15). However, if a message exists in the save queue 304, the front message of the save queue 304 is returned to the executing process 301 (S17).

상기 도면과 발명의 상세한 설명은 단지 본 발명의 예시적인 것으로서, 이는단지 본 발명을 설명하기 위한 목적에서 사용된 것이지 의미한정이나 특허청구범위에 기재된 본 발명의 범위를 제한하기 위하여 사용된 것은 아니다. 그러므로 본 기술 분야의 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 타 실시예가 가능하다는 점을 이해할 것이다. 따라서, 본 발명의 진정한 기술적 보호 범위는 첨부된 특허청구범위의 기술적 사상에 의해 정해져야 할 것이다.The drawings and detailed description of the invention are merely exemplary of the invention, which are used for the purpose of illustrating the invention only and are not intended to limit the scope of the invention as defined in the claims or in the claims. Therefore, those skilled in the art will understand that various modifications and equivalent other embodiments are possible from this. Therefore, the true technical protection scope of the present invention will be defined by the technical spirit of the appended claims.

본 발명에 의한 에스디엘에서 C언어로의 변환 시스템 및 방법, 그 프로그램이 구현된 기록매체는 에스디엘로 작성된 프로그램에서 C 언어로 직접 사상 가능한 정보와 그렇지 않은 정보를 분리하고, C 언어로 구현되는 실행시간 라이브러리를 이용하여 완전 수행 되는 프로그램을 생성하고, 실행시간 라이브러리를 이용하여 C 언어에서 직접 사상되지 않는 세이브 시그널 같은 프리미티브들을 처리할 수 있는 효과가 있다.System and method for converting SD to C language according to the present invention, the recording medium in which the program is implemented is separated from information that can be directly mapped to C language and information that is not in a program written in SD, and implemented in C language You can use the time library to create fully executed programs, and the runtime library to handle primitives such as save signals that are not mapped directly in C.

또한, 본 발명에 의한 에스디엘에서 C언어로의 변환 시스템 및 방법, 그 프로그램이 구현된 기록매체는 교환기와 같은 실시간 분산 시스템의 개발에서 명세 및 설계에서 구현까지의 일관성을 유지할 수 있고, 설계 수준에서의 기능의 추가나 변경, 삭제 등이 의미적 변화 없이 구현에 바로 영향을 미치도록 하는 것이 가능해짐에 따라 개발이 보다 빨라지고 비용을 절감할 수 있으며, 궁극적으로 생산성을 향상시킬 수는 효과가 있다.In addition, the SD to C language conversion system and method according to the present invention and the recording medium on which the program is implemented can maintain the consistency from specification and design to implementation in the development of a real-time distributed system such as an exchanger, and design level. The ability to add, change, or remove features from and to directly affect implementation without semantic changes can make development faster, reduce costs, and ultimately increase productivity.

Claims (12)

규격 기술 언어(이하, SDL이라고 함)로 작성된 프로그램을 C 언어로 변환하는 변환모듈, 및 C 언어로 직접 사상되지 않는 정보를 처리하기 위한 실행시간 라이브러리들을 작성하는 도구들을 가지는 메인 메모리;A main memory having a conversion module for converting a program written in a standard description language (hereinafter referred to as SDL) into a C language, and tools for creating runtime libraries for processing information not directly mapped to the C language; 상기 메인 메모리가 가지고 있는 프로그램 및 실행 파일들을 실행시키는 중앙처리장치; 및A central processing unit that executes programs and executable files of the main memory; And 상기 메인 메모리나 중앙처리장치로의 모든 메시지들을 입력, 출력하는 입/출력장치Input / output device for inputting and outputting all messages to the main memory or central processing unit 를 포함하는 에스디엘에서 C언어로의 변환 시스템.SD to C language conversion system including a. 제 1 항에 있어서,The method of claim 1, 상기 입/출력장치로부터 입력, 출력되는 정보들을 저장하는 보조 기억장치를 더 포함하는 에스디엘에서 C언어로의 변환 시스템.And a secondary storage device for storing information input and output from the input / output device. 제 1 항에 있어서,The method of claim 1, 상기 메인 메모리, 중앙처리장치, 및 입/출력장치들은 유닉스 운영체제에 의해 제어되는 것을 특징으로 하는 에스디엘에서 C언어로의 변환 시스템.The main memory, the central processing unit, and the input / output devices are controlled by a UNIX operating system. 제 1 항에 있어서,The method of claim 1, 상기 메인 메모리의 변환모듈은,The conversion module of the main memory, 상기 에스디엘로 작성된 프로그램을 분석하여 필요한 에스디엘 구조 정보를 추출하여 기억시키는 에스디엘 분석부;An SD analysis unit configured to analyze the program written in the SD to extract and store necessary SD structure information; 상기 에스디엘 분석부에서 기억시킨 에스디엘 구조 정보를 분석하여 에스디엘에서 C 언어로 직접 사상되는 정보와, C 언어로 직접 사상되지 않는 정보를 각각 분리한 사상 정보를 기억시키는 에스디엘 사상부; 및An SD-elevation unit for analyzing the SD-el structure information stored in the SD-EL analysis unit to store the thought information obtained by separating the information directly mapped to the C language from the SD and the information not directly mapped to the C language; And 상기 에스디엘 사상부에서 기억시킨 사상 정보를 통해 에스디엘에서 직접 C 언어로 사상되는 정보들은 직접 코드를 생성시키고, 에스디엘에서 직접 C 언어로 사상되지 않은 정보들은 상기 실행시간 라이브러리를 이용한 함수의 호출 형태로 프로그램 코드를 생성시키는 C 생성부Information mapped in C language directly in SD through the mapping information stored in the SD mapping unit generates a code directly, and information not mapped in C language in SDL directly calls a function using the runtime library. C generator that generates program code in the form 를 포함하는 에스디엘에서 C언어로의 변환 시스템.SD to C language conversion system including a. 제 4 항에 있어서,The method of claim 4, wherein 상기 C 생성부는,The C generation unit, 상기 에스디엘에서 직접 C 언어로 사상되지 않는 정보를 처리 할 수 있도록 리눅스 및 유닉스 운영체제에서 수행되는 C 언어로 작성된 실행시간 라이브러리를 이용하여 구동되는 프로세스들을 포함하는 에스디엘에서 C언어로의 변환 시스템.A system for converting from SD to C, comprising processes that are executed by using a runtime library written in C, which is executed in a Linux and Unix operating system, so that the SD can process information not mapped directly to the C language. 제 5 항에 있어서,The method of claim 5, wherein 상기 프로세스들은 시그널 수신을 위해 각각 입력 큐(Input Queue)를 포함하고, 상기 입력 큐는 외부 프로세스에서 입력되는 시그널을 버퍼링하는 메시지 큐, 및 세이브 시그널을 저장하는 세이브 큐로 구성되는 것을 특징으로 하는 에스디엘에서 C언어로의 변환 시스템.Each of the processes includes an input queue for receiving a signal, and the input queue includes a message queue buffering a signal input from an external process, and a save queue storing a save signal. To C language conversion system. 제 6 항에 있어서,The method of claim 6, 상기 입력 큐는 수행중인 프로세스로부터 함수 호출의 인수로 넘겨받은 시그널에 대한 정보들 비교한 후에 적절한 시그널을 상기 수행중인 프로세스로 반환하는 것을 특징으로 하는 에스디엘에서 C언어로의 변환 시스템.And the input queue compares information about a signal passed as an argument of a function call from a running process and returns an appropriate signal to the running process. a) 실시간 및 분산 환경에서 에스디엘로 작성된 프로그램을 분석하여 C 언어로 직접 사상 가능한 정보와 C 언어로 사상되지 않은 정보를 각각 분리하여 기록하는 단계;a) analyzing programs written in SD in real-time and distributed environments and separately recording information that can be directly mapped in C language and information not mapped in C language; b) 상기 a) 단계에서 기록된 정보 중에서 에스디엘에서 C 언어로 직접 사상 되지 않는 정보를 처리 할 수 있도록 실행시간 라이브러리를 작성하는 단계; 및b) creating a runtime library to process information that is not mapped directly from SD to C language among the information recorded in step a); And c) 상기 b) 단계에서 작성된 실행시간 라이브러리의 함수 호출 형태로 상기 에스디엘에서 C 언어로 직접 사상되지 않는 정보를 C 언어로 변환하고, 상기 a) 단계에서 상기 에스디엘에서 C 언어로 직접 사상되는 정보들은 바로 C 언어로 변환하는 단계c) converting information not directly mapped from the SD to the C language to the C language in the form of a function call of the runtime library created in the step b); and directly mapping from the SD to the C language in the a) step. Converting information directly to C language 를 포함하는 에스디엘에서 C언어로의 변환 방법.SD to C language conversion method comprising a. 제 8 항에 있어서,The method of claim 8, 상기 c) 단계에서 상기 에스디엘에서 C 언어로 직접 사상되지 않는 정보를 C 언어로 변환하는 단계는,In the step c), the step of converting information that is not directly mapped to the C language from the SD to the C language, 상기 에스디엘에서 직접 C 언어로 사상되지 않는 정보 중 세이브 시그널을 처리하기 위해 상기 실행시간 라이브러리에서 메시지 큐와 세이브 큐로 구성되는 입력 큐를 이용하여 세이브 시그널과 일반 시그널 입력을 각각 처리하는 것을 특징으로 하는 에스디엘에서 C언어로의 변환 방법.In order to process the save signal of information not mapped in C language directly in the SD, the save signal and the general signal input are respectively processed by using an input queue including a message queue and a save queue in the runtime library. How to convert from SD to C language. 제 9 항에 있어서,The method of claim 9, 상기 입력 큐를 이용하여 세이브 시그널과 일반 시그널 입력을 처리하는 단계는,Processing a save signal and a general signal input using the input cue, 가) 수행중인 프로세스로가 입력 시그널을 수신하기 위하여 입력 시그널 및 세이브 시그널에 대한 정보를 인수로 하여 상기 입력 큐로 함수 호출하는 단계;A) calling a function into the input queue with information on an input signal and a save signal as arguments to a receiving process to receive an input signal; 나) 상기 입력 큐에서 상기 가) 단계를 통해 얻어진 정보에 세이브 시그널 목록이 존재하는경우에, 상기 메시지 큐의 프론트 메시지와 세이브 시그널 정보가 일치하는 지를 확인하는 단계;B) if a save signal list exists in the information obtained through the step a) in the input queue, checking whether the front message of the message queue matches the save signal information; 다) 상기 나) 단계에서 메시지 큐의 프론트 메시지와 세이브 시그널 정보가 일치하는 경우에, 상기 입력 큐는 상기 메시지 큐의 프론트 메시지를 추출하여 세이브 큐에 저장하는 단계; 및C) when the front message of the message queue and the save signal information coincide in step b), the input queue extracts the front message of the message queue and stores it in the save queue; And 라) 상기 다) 단계에서 세이브 큐에 저장한 메시지가 아닌 또 다른 메시지가세이브 큐에 존재하면 상기 세이브 큐의 프론트 메시지를 반환하고, 상기 세이브큐에 또 다른 메시지가 존재하지 않으면 메시지의 프론트 큐의 메시지를 수행중인 프로세스로 반환하는 단계수행중인 프로세스로 반환하는 단계D) If there is another message in the save queue other than the message stored in the save queue in step c), the front message of the save queue is returned, and if no other message exists in the save queue, Returning the message to the running process 를 포함하는 에스디엘에서 C언어로의 변환 방법.SD to C language conversion method comprising a. 제 10 항에 있어서,The method of claim 10, 상기 나) 단계에서 상기 입력 큐에 세이브 시그널 목록이 존재하지 않고, 상기 메시지 큐의 프론트 메시지와 세이브 시그널 정보가 일치하지 않는 경우에, 상기 세이브 큐에 메시지가 존재하는 지를 확인하는 단계; 및Checking whether a message exists in the save queue when the save signal list does not exist in the input queue and the front message of the message queue does not match the save signal information in step b); And 상기 단계에서 세이브 큐에 메시지가 존재하면 상기 세이브 큐의 프론트 메시지를 수행중인 프로세스로 반환하고, 상기 세이브 큐에 메시지가 존재하지 않는다면 상기 메시지 큐의 프론트 메시지를 수행중인 프로세스로 반환하는 단계Returning a front message of the save queue to a running process if a message exists in the save queue; and returning a front message of the message queue to a running process if the message does not exist in the save queue. 를 포함하는 에스디엘에서 C언어로의 변환 방법.SD to C language conversion method comprising a. 실시간 및 분산 환경에서 에스디엘로 작성된 프로그램을 분석하여 C 언어로 직접 사상 가능한 정보와 C 언어로 사상되지 않은 정보를 각각 분리하여 기록하는 제1 기능;A first function of analyzing programs written in SD in real time and distributed environments, separately recording information that can be directly mapped in C language and information not mapped in C language; 상기 제1 기능을 통해기록된 정보 중에서 에스디엘에서 C 언어로 직접 사상 되지 않는 정보를 처리 할 수 있도록 실행시간 라이브러리를 작성하는 제2 기능; 및A second function of creating a runtime library to process information which is not directly mapped to C language in SD among the information recorded through the first function; And 상기 제2 기능을 통해 작성된 실행시간 라이브러리의 함수 호출 형태로 상기 에스디엘에서 C 언어로 직접 사상되지 않는 정보를 C 언어로 변환하고, 상기 a) 단계에서 상기 에스디엘에서 C 언어로 직접 사상되는 정보들은 바로 C 언어로 변환하는 제3 기능Information that is not mapped directly from the SD to the C language to the C language in the form of a function call of the runtime library written through the second function, and information directly mapped to the C language from the SD in the step a) 3rd function that translates directly into C language 을 저장하는 프로그램이 구현된 기록매체.The recording medium in which the program for storing the data is implemented.
KR1020030013385A 2002-12-24 2003-03-04 SDL/C language transforming system and method, and its program stored recording medium KR100560393B1 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR20020083714 2002-12-24
KR1020020083714 2002-12-24

Publications (2)

Publication Number Publication Date
KR20040057037A true KR20040057037A (en) 2004-07-01
KR100560393B1 KR100560393B1 (en) 2006-03-13

Family

ID=37349652

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020030013385A KR100560393B1 (en) 2002-12-24 2003-03-04 SDL/C language transforming system and method, and its program stored recording medium

Country Status (1)

Country Link
KR (1) KR100560393B1 (en)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100709664B1 (en) * 2004-11-05 2007-04-20 인스티튜트 포 인포메이션 인더스트리 Methods and systems for automated test-case generation
KR100825722B1 (en) * 2005-12-08 2008-04-29 한국전자통신연구원 Method and apparatus for transforming BPEL4WS process into Coloured Petri-Nets
CN116991600A (en) * 2023-06-15 2023-11-03 上海一谈网络科技有限公司 Method, device, equipment and storage medium for processing graphic call instruction
CN116991600B (en) * 2023-06-15 2024-05-10 上海一谈网络科技有限公司 Method, device, equipment and storage medium for processing graphic call instruction

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100709664B1 (en) * 2004-11-05 2007-04-20 인스티튜트 포 인포메이션 인더스트리 Methods and systems for automated test-case generation
KR100825722B1 (en) * 2005-12-08 2008-04-29 한국전자통신연구원 Method and apparatus for transforming BPEL4WS process into Coloured Petri-Nets
CN116991600A (en) * 2023-06-15 2023-11-03 上海一谈网络科技有限公司 Method, device, equipment and storage medium for processing graphic call instruction
CN116991600B (en) * 2023-06-15 2024-05-10 上海一谈网络科技有限公司 Method, device, equipment and storage medium for processing graphic call instruction

Also Published As

Publication number Publication date
KR100560393B1 (en) 2006-03-13

Similar Documents

Publication Publication Date Title
US6434629B1 (en) Computing system which implements recording and playback of semantic commands
US5875331A (en) System and method for generating target language code utilizing an object oriented code generator
US7735071B2 (en) Method and system for compiling multiple languages
CN110096338A (en) Intelligent contract executes method, apparatus, equipment and medium
US5317688A (en) Software agent used to provide instruction to a user for a plurality of computer applications
JP4130713B2 (en) Program converter
US8776024B2 (en) Software application fine-tuning method, system, and corresponding computer program product
US20060031814A1 (en) Method for compiling and executing a parallel program
EP0343883B1 (en) A modular compiler for a computer system
CN113342654A (en) Script language code debugging method and device, readable storage medium and electronic equipment
US20080127034A1 (en) Distributed resource understanding tool management
US7458071B2 (en) Compilation method, compiler apparatus and compiler
JPH1063511A (en) Job script execution device
JPH1165832A (en) Source code converting method and record medium
KR20040057037A (en) SDL/C language transforming system and method, and its program stored recording medium
US6708310B1 (en) Method and system for implementing user-defined codeset conversions in a computer system
EP0352908A2 (en) Computing system and method used to provide instruction to a user for a plurality of computer applications
JP2002132502A (en) Automatic creating system and method of distributed object with interpretation of language function
JPH09179738A (en) Object-oriented language processing method and processor
CN117056197A (en) Data processing method, device, equipment and storage medium
CN112882944A (en) Media drive debugging method and device, electronic equipment and storage medium
KR100703285B1 (en) Method for dynamic service using management execution control information repository in exchange system
KR100276080B1 (en) A translation method from process in sdl-92 to task in chill-96
CN117493610A (en) GraphQL parameter generation method and system based on java implementation
ZA200107669B (en) Generating optimized computer data field conversion routines.

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
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: 20090303

Year of fee payment: 4

LAPS Lapse due to unpaid annual fee