KR970001611B1 - 칠 분리 컴파일 방법 - Google Patents

칠 분리 컴파일 방법 Download PDF

Info

Publication number
KR970001611B1
KR970001611B1 KR1019930023536A KR930023536A KR970001611B1 KR 970001611 B1 KR970001611 B1 KR 970001611B1 KR 1019930023536 A KR1019930023536 A KR 1019930023536A KR 930023536 A KR930023536 A KR 930023536A KR 970001611 B1 KR970001611 B1 KR 970001611B1
Authority
KR
South Korea
Prior art keywords
file
compiling
siege
chill
compilation
Prior art date
Application number
KR1019930023536A
Other languages
English (en)
Other versions
KR950015127A (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 KR1019930023536A priority Critical patent/KR970001611B1/ko
Publication of KR950015127A publication Critical patent/KR950015127A/ko
Application granted granted Critical
Publication of KR970001611B1 publication Critical patent/KR970001611B1/ko

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code

Landscapes

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

Abstract

내용 없음.

Description

칠(CHILL) 분리 컴파일 방법
제1도는 본 발명이 적용되는 하드웨어의 구성도.
제2도는 본 발명의 설명하기 위한 분리 컴파일 방법에 대한 절차도.
제3도는 본 발명에서 적용되는 분리 컴파일 방법에대한 처리 흐름도.
* 도면의 주요부분에 대한 부호의 설명
101 : 메인 메모리 102 : 중앙처리 보드
103 : UNIX 운영체제부 104 : 보조 기억 장치
105 : 입출력 장치
본 발명은 CCITT 권고의 프로그램 언어인 칠(CHILL) 분리 컴파일 시스템에서 적용되는 분리 컴파일 방법에 관한 것이다.
칠(CHILL)로써 큰 프로그램을 개발하기 위해서는 그것을 여러 개의 화일로 나누어 개발하는 구간식(Piecewise) 프로그래밍이 가능해야한다. 그런데, 큰 프로그램을 여러 화일로 나누기 위해서는 화일들 사이에 교환되는 이름의 바인딩 및 일치성 점검이 필요하므로 이를 수행하기 위한 분리 컴파일 방법이 요구되며, C언어와 같은 기존의 고급 프로그래밍 언어는 화일 사이에 공유되거나 교환되는 이름들에 대한 일치성 점검을 사용자에게 맡기고 컴파일러는 일치성 점검을 하지 않으므로 화일 사이에 공유되는 이름이 일치하지 않을 경우의 오류를 컴파일 시에는 알 수가 없다. 그러나, 고도의 안정성과 신뢰도를 요구하는 통신 시스템 소프트웨어 개발용 고급 프로그래밍 언어인 CHILL은 화일 사이에 그랜트(grant)/시즈(seize)되는 이름들에 대해서 강한 일치성 점검을 필요로한다.
따라서, 상기 종래 기술에 대한 제반 문제점을 해결하고 필요에 부응하기 위하여 안출된 본 발명은, CHILL분리 컴파일 시스템은 이들 그랜트/시즈 되는 정보들을 자동적으로 생성 및 일치성 점검을 하여 항상 안전한 컴파일을 보장할수 있도록 한 칠(CHILL) 분리 컴파일 방법을 제공하는 데 그 목적이 있다.
상기 목적을 달성하기 위하여 본 발명은, 메인 메모리 보드, 중앙 처리 장치, 보조 기억장치, 입/출력장치, 및 UNIX 운영체제를 구비한 하드웨어에 적용되는 칠(CHILL) 분리 컴파일 방법에 있어서, 처음으로 수행하는 칠 분리 컴파일 수행 과정인가를 조사하는 제1단계; 처음으로 수행하는 칠 분리 컴파일 시에 원시 화일을 컴파일 하여 목적화일을 생성하는 제2단계; 및 원시 화일을 수정 후 재 컴파일 시에 수정된 화일을 컴파일하여 목적 화일을 생성하는 제3단계를 포함하여 이루어지는 것을 특징으로 한다.
CHILL 프로그램은 모듈로 구성되며, 모듈 내에 선언된 이름은 그 모듈 내에서만 사용할 수 있다. 이름을 모듈 밖으로 보여주기 위해서는 그랜트를 행하며 모듈 밖에 선언된 이름을 사용하기 위해서는 시즈를 행한다. CHILL프로그램은 여러 모듈로 구성되며 가장 바깥에 가상 모듈이 존재한다. 모듈에서 그랜트하는 이름은 가상 모듈에 복사하고 시즈되는 이름은 가상모듈에서 가져온다. 컴파일 단위를 하나 이상의 모듈을 포함하는 화일로 할 경우, 컴파일러는 화일 사이에 그랜트/시즈 되는 이름들에 대한 바인딩 및 일치성 점검을 하여 항상 안전한 컴파일을 보장할 수 있어야 한다.
CHILL 분리 컴파일 시스템은 컴파일 과정을 자동화하고 제컴파일을 최소화 할수 있도록 설계하였으며, 컴파일 단위를 화일로 결정하였다. 한 화일 내에는 하나 이상의 모듈을 포함한다. 분리 컴파일을 위해서 모든 실행문은 메인 모듈 내에 존재해야 하며, 다른 모듈에서는 프로시켜(procedure)나 프로세스 정의문 형태로 실행문을 포함하고 메인 모듈에서 호출하여 실제로 실행되도록 하였다. 화일 단위로 컴파일할 경우 UNIX시스템에 제공하는 메이크 기능을 이용할 수 있어 컴파일 관리가 용히해진다. 메이크 명령어는 화일들 사이의 시간 의존 관계에 따라 컴파일 과정을 자동화시켜준다.
분리 컴파일을 위해서 여러 종류의 화일들을 사용하며, 각 화일들이 포함하는 내용과 그 화일들에 대한 명명 방법은 다음과 같다.
* 화일-네임. ch(file-name. ch) : 원시 화일.
* 화일-네임.스펙(file-name. sp) : 원시 화일에서 화일 밖으로 보여주는 그랜트 정보와 다른 화일로부터 시즈되는 이름의 리스트를 포함하는 스펙(spec)화일이며 CHILL 컴파일러에 의해 생성된다.
* 화일-네임.시즈(file-name.sz) : 원시 화일에서 시즈하는 이름들에 대한 정보를 가지는 시즈화일이며, 다른 화일에서 정의되고 원시 화일을 컴파일하기 위해서 필요한 모든 정보를 가진다.
* 화일-네임. o(file-name.o) : 각 원시 화일을 컴파일한 후 생성된 목적 화일이다.
* 메이크 화일(Makefile) : 화일 사이의 의존관계 정보와 컴파일 명령어에 관한 정보를 포함하며 메이크(make) 명령어 수행시의 입력 화일이다.
* 인터페이스(INTERFACE) : 화일간의 그랜트, 시즈와 같은 인터페이스 정보와 이름과 화일 사이의 의존 관계 정보를 가지는 인터페이스 라이브러리 화일 이다.
분리 컴파일을 위하여 먼저, CHILL 컴파일러는 원시 화일로부터 스펙 화일을 생성한다. 네임 바인더(Namebinder)는 스펙 화일들을 분석하여 인터페이스와 시즈 화일을 생성하며, 컴파일러는 각 원시 화일에 시즈 화일을 포함하는 텍스트를 하나의 컴파일 단위로 하여 목적화일을 생성한다.
분리 컴파일은 화일 사이의 시간 의존관계를 이용하여 메이크를 써서 컴파일을 관리하며, 그 과정을 처음 컴파일 과정과 재컴파일 과정으로 나누어 설명한다.
처음 컴파일 시 컴파일과정은 다음과 같다.
CHILL 컴파일러는 원시 화일을 컴파일하여 스펙 화일을 생성한다. 네임 바인더(Name binder)는 생성된 모든 스펙 화일을 분석하여 인터페이스 화일과 각 원시 화일에 대하여 하나의 시즈 화일을 생성한다. 시즈화일을 포함한 원시 화일을 컴파일 하여 목적 화일을 생성한다.
원시 화일을 수정한 후 재컴파일하는 과정은 다음과 같다. 수정된 원시 화일을 컴파일하여 스펙 화일을 생성한다. 네임 바인더(Name binder)는 기존에 존재하는 인터페이스(INTERFACE)화일과 수정된 스펙 화일을 비교하여 바뀐 이름이 존재할 경우 바뀐 이름으로 인하여 재컴파일되어야할 화일들에 대한 시즈화일과 인터페이스(INTERFACE) 화일을 생성한다. 시즈 화일이 재생성되었거나 원시 화일이 수정되었을 경우 컴파일 하여 목적 화일을 생성한다.
이하, 첨부된 도면을 참조하여 본 발명의 일실시예를 상세히 설명한다. 도면에서 101은 메인 메모리, 102는 중앙처리 보드, 103은 UNIX 운영체제부, 104는 보조 기억 장치, 105는 입출력 장치를 각각 나타낸다.
도면의 도시한 각 블록들의 기능을 살펴보면 다음과 같다.
메인 메모리(101)는 분리 컴파일이 수행될 때 컴파일러 및 네임 바인더가 탑제되는 보드이고, 중앙 처리 보드(102)는 메인 메모리에 탑재된 화일을 수행시키는 보드이다. 그리고, 보조기억장치(104)는 화일 및 데이타등을 저장하는 장치로 메인 메모리에 탑재되지 않는 화일과 도구들이 저장된다. 입/출력 장치(105)는 분리 컴파일 수행에 필요한 화일 및 데이타, 수행중에 발생하는 모든 오류 메시지를 입/출력하는 장치이다. UNIX 운영체제부(103)는 상기의 보드 및 장치를 제어하며, 각 보드 및 장치간에 주고받는 메시지는 시스템 버스(106)를 통해 이루어진다.
제2도에서 분리 컴파일 과정을 처음 컴파일 과정과 재컴파일 과정으로 나누어 설명한다.
처음 컴파일 시 CHILL 컴파일러는 원시 화일들을 컴파일하여 스펙 화일을 생성한다(201). 네임 바인더는 생성된 모든 스펙 화일을 분석하여 각 원시 화일에 대해 하나씩의 시즈 화일과 인터페이스 화일을 생성한다(202). 시즈 화일을 포함한 원시 화일을 컴파일하여 목적 화일을 생성한다(203).
원시 화일을 수정한 후 재컴파일하는 과정은 다음과 같다. 수정된 원시 화일을 컴파일하여 스펙 화일을 생성한다(204). 네임 바인더는 기존에 존재하는 인터페이스 화일과 수정된 스펙 화일을 비교하여 바뀐 이름이 존재할 경우 바뀐 이름으로 인하여 재컴파일되어야 할 화일들에 대한 시즈화일과 인터페이스 화일을 생성한다(205). 시즈 화일이 재생성되었거나 원시 화일이 수정되었을 경우 컴파일하여 목적 화일을 생성한다(206).
제3도는 본 발명에 따른 분리 컴파일 방법에 대한 처리 흐름도이다.
처음 컴파일 시 CHILL 컴파일러는 원시 화일들을 컴파일하여 스펙 화일을 생성한다(302). 네임 바인더는 모든 스펙 화일들을 분석하여 인터페이스 화일과 각 원시 화일에 대해서 하나씩의 시즈화일을 생성한다(303). 시즈화일을 포함한 원시화일을 컴파일 하여 목적화일을 생성한다(304).
원시 화일을 수정한 후 재컴파일하는 과정은 다음과 같다.
수정된 원시 화일을 컴파일하여 스펙화일을 생성한다(35). 네임 바인더는 기존에 존재하는 인터페이스 화일과 수정된 스펙 화일을 비교하여 바뀐 이름이 존재할 경우 바뀐 이름으로 인하여 재컴파일되어야 할 화일들에 대한 시즈 화일과 인터페이스 화일을 생성한다(306). 시즈화일이 재생성되었거나 원시 화일이 수정되었을 경우 컴파일하여 목적 화일을 생성한다(307).
따라서, 상기한 것과 같은 본 발명은 그랜트/시즈 되는 정보들을 자동적으로 생성 및 일치성 점검을 하여 항상 안전한 컴파일을 보장할 수 있는 효과가 있다.

Claims (3)

  1. 메인 메모리 보드(101), 중앙 처리 장치(102), 보조 기억 장치(104), 입/출력장치(105), 및 UNIX 운영 체재부(103)를 구비한 하드웨어에 적용되는 칠(CHILL) 분리 컴파일 방법에 있어서, 처음으로 수행하는 칠 분리 컴파일 수행 과정인가를 조사하는 제1단계(301); 처음으로 수행하는 칠 분리 컴파일 시에 원시 화일을 컴파일하여 목적화일을 생성하는 제2단계(302 내지 304); 및 원시 화일을 수정 후 재 컴파일 시에 수정된 화일을 컴파일하여 목적화일을 생성하는 제3단계(305 내지 307)를 포함하여 이루어지는 것을 특징으로 하는 칠(CHILL) 분리 컴파일 방법.
  2. 제1항에 있어서, 상기 제2단계(302 내지 304)는, 원시 화일을 컴파일하여 스펙 화일을 생성하는 제1과정(302); 스펙 화일을 분석하여 시즈화일 및 인터페이스 화일을 생성하는 제2과정(303); 컴파일러는 시즈화일을 포함한원시 화일을 컴파일하여 목적화일을 생성하는 제3과정(304)를 포함하여 이루어지는 것을 특징으로 하는 칠(CHILL) 분리 컴파일 방법.
  3. 제1항에 있어서, 상기 제3단계(305 내지 307)는, 인터페이스 화일보다 나중에 생성되거나 수정된 원시 화일을 컴파일하여 스펙 화일을 생성하는 제1과정(305); 인터페이스 화일 및 수정된 스펙 화일을 분석하여 재컴파일 되어야할 화일의 시즈화일 및 인터페이스 화일을 생성하는 제2과정(306); 원시 화일이나 시즈 화일이 수정된 화일에 대해서 시즈화일을 포함한 원시 화일을 컴파일하여 목적 화일을 생성하는 제3과정(307);을 포함하여 이루어지는 것을 특징으로 하는 칠(CHILL) 분리 컴파일 방법.
KR1019930023536A 1993-11-06 1993-11-06 칠 분리 컴파일 방법 KR970001611B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1019930023536A KR970001611B1 (ko) 1993-11-06 1993-11-06 칠 분리 컴파일 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1019930023536A KR970001611B1 (ko) 1993-11-06 1993-11-06 칠 분리 컴파일 방법

Publications (2)

Publication Number Publication Date
KR950015127A KR950015127A (ko) 1995-06-16
KR970001611B1 true KR970001611B1 (ko) 1997-02-11

Family

ID=19367497

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019930023536A KR970001611B1 (ko) 1993-11-06 1993-11-06 칠 분리 컴파일 방법

Country Status (1)

Country Link
KR (1) KR970001611B1 (ko)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20010084254A (ko) * 2000-02-24 2001-09-06 양갑석 고투명성 폴리에스터 수지의 제조방법
KR20010084816A (ko) * 2000-02-29 2001-09-06 양갑석 대형 용기용 저 결정성 폴리에스터 수지 제조방법

Also Published As

Publication number Publication date
KR950015127A (ko) 1995-06-16

Similar Documents

Publication Publication Date Title
US6898784B1 (en) Method and system for forming skeletons for generating verification systems
US20170115974A1 (en) Code profiling of executable library for pipeline parallelization
US9459986B2 (en) Automatic generation of analysis-equivalent application constructs
Fiuczynski et al. Patch (1) Considered Harmful.
US6766514B1 (en) Compiler having real-time tuning, I/O scaling and process test capability
Abrahamsson et al. Candle: A verified implementation of HOL Light
KR970001611B1 (ko) 칠 분리 컴파일 방법
Ammons Grexmk: Speeding up scripted builds
Fowler et al. Feature-based portability
KR950010827B1 (ko) 칠(chill) 분리 컴파일 시스템에서 재컴파일 최소화 방법
KR100277479B1 (ko) 칠 분리 컴파일 방법
Buffenberger et al. A language for software subsystem composition
Ahn et al. Incremental analysis and elaboration of VHDL description
Fang Translation validation of optimizing compilers
Starkman The robot operating system in transition: experiments and tutorials
KR0169033B1 (ko) 재사용 모레타 라이브러리를 활용한 프로그램 작성 방법
KR0168929B1 (ko) 칠 전위처리기의 전위처리 방법
O'Hara et al. Modernizing parsing tools: parsing and analysis with object-oriented programming
CN115495351A (zh) 代码测试方法、装置、设备及存储介质
KR100280187B1 (ko) 단일 상속하의 모레타 모드를 갖는 객체 장소전달의 사용 오류탐지 방법
CN111984243A (zh) 一种基于注解的通用安全检查及功能扩展方法及装置
Mahseredjian et al. Software engineering environments for recoding large scale applications
COMMAND AND CONTROL SYSTEMS OFFICE TINKER AFB OK The Impact of the Ada Language on Software Testing
Szewinski et al. Universal DOOCS server based on the script language
Koppel Portability issues in MATE software

Legal Events

Date Code Title Description
A201 Request for examination
N231 Notification of change of applicant
G160 Decision to publish patent application
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20040202

Year of fee payment: 8

LAPS Lapse due to unpaid annual fee