KR900006667B1 - 부분적 프로그램 결합 시스템 - Google Patents
부분적 프로그램 결합 시스템 Download PDFInfo
- Publication number
- KR900006667B1 KR900006667B1 KR1019870010434A KR870010434A KR900006667B1 KR 900006667 B1 KR900006667 B1 KR 900006667B1 KR 1019870010434 A KR1019870010434 A KR 1019870010434A KR 870010434 A KR870010434 A KR 870010434A KR 900006667 B1 KR900006667 B1 KR 900006667B1
- Authority
- KR
- South Korea
- Prior art keywords
- program
- unit
- combining
- coupling
- special
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
- G06F9/44521—Dynamic linking or loading; Link editing at or after load time, e.g. Java class loading
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
Abstract
내용 없음.
Description
제1도는 본 발명의 실시예에 따른 부분적 프로그램 결합 시스템의 블럭도.
제2도는 제1도에 도시한 시스템의 동작을 설명하기 위한 플로우 챠트.
* 도면의 주요부분에 대한 부호의 설명
1 : 결합 정보 입력부 2 : 결합 정보 기억부
3 : 지정 프로그램 존재 판정부 4 : 지정 프로그램 결합부
5 : 특수 프로그램 결합부 6 : 특수프로그램
7 : 디코더부
본 발명은 프로그램 결합 시스템에 관한 것으로, 더욱 상세하게 말하면 다수의 유니트(unit)프로그램을 부분적으로 결합시키기 위한 시스템에 관한 것이다.
종래의 컴퓨터 시스템내에서, 1개의 실행 포오맷을 갖고 있는 단일 프로그램을 형성하고 단일 프로그램을 실행하기 위해 다수의 유니트 프로그램들을 결합시키기 위해서 유니트 프로그램의 명칭 및 유니트 프로그램을 기억하는 수단의 명칭은 결합중에 컴퓨터 시스템에 부여된다. 종래의 결합 시스템에 있어서, 소정의 유니트 프로그램에 결합될 유니트 프로그램이 프로그램 라이브러리(program library)와 같은 프로그램 기억 수단내에 존재하지 않으면, 실행 포오맷을 갖고 있는 프로그램이 발생되고, 지정된 컴퓨터프로그램은 소정의 프로그램에 결합되지 않는다. 프로그램 실행중에, 제어가 호출(call)명령과 같은 제어 쉬프트(shift)정보에 의해 지정된 유니트 프로그램으로 쉬프트되면, 실행 에러(error)가 발생하여, 후속 동작이 수행될 수 없다. 실행 에러가 발생하면, 이 에러가 지정된 프로그램의 비결합에 의해 발생되는지 또는 이 에러가 다른 원인에 의해 발생되는지는 결정될 수 없다.
여기에서, 일반적인 오브젝트 프로그램의 논리 구조는 프로그램 자체의 명칭, 자체를 호출하는 다른 프로그램 명칭의 정보(외부 호출 정보), 오브젝트 코드등으로 구성되어 있다. 통상적인 컴파일러(compiler)는 소오스 프로그램을 번역하고, 오브젝트 프로그램으로서 컴퓨터 고유의 명령 집합을 생성하지만, 이 고유 명령의 형식은 통상적인 명령 부분과 어드레스 부분을 갖고 있다. 이 어드레스 부분은 겅퓨더중의 메모리 공간 장소를 나타내는 것이다. 컴파일러는 오브젝트 프로그램으로서 어드레스 부분의 값으로서 상대적인 값(컴파일중의 프로그램)을 생성하여 출력시킨다. 따라서 오브젝트 프로그램 자체로는 프로그램을 실행할 수 없었다.
그러므로, 제어 쉬프트 정보에 의해 지정된 유니트 프로그램이 종래의 프로그램 결합 시스템내에 존재하지 않을때 실행 에러를 발생시키지 않고서 다른 결합된 유니트 프로그램만을 실행하기 위해 다음의 방법들이 사용되어야 한다.
(1) 최초 프로그램이 유니트 프로그램을 호출하지 않도록 수정된 다음, 결합 동작이 다시 실행된다.
(2) 소정의 명칭을 갖고 있는 모조(dummy)프로그램이 부재 유니트 프로그램마다 발생되고, 프로그램 기억 수단내에 기억된다.
그러나, 상술한 종래 방법(1)에 있어서, 최초 프로그램은 수정되어야 하고, 조작이 번거롭다. 이와 동시에, 에러들은 수정 중에 발생할 수 있다.
상술한 종래 방법(2)에 있어서, 소정의 명칭을 갖고 있는 모조 프로그램은 부재 유니트 프로그램내의 유니트들내에 발생되어야 한다. 부재 유니트 프로그램 수가 증가되면, 모조 프로그램 수는 증가되고, 준비과정들이 복잡해진다. 부수적으로, 명칭이 변경되면, 모조프로그램이 수정되어야 한다.
본 발명의 목적은 이 시스템내에서 결합될 유니트 프로그램이 프로그램 기억 수단내에 존재하지 않더라도 실행 에러를 발생시키지 않고서 정상적으로 결합된 유니트 프로그램들만이 실행될 수 있어서, 상술한 종래의 결점을 제거하고, 유니트 프로그램들을 부분적으로 결합시키기 위한 간단한 시스템을 제공하기 위한 것이다.
본 발명에 따른 부분적 프로그램 결합 시스템은 프로그램 결합중에 결합 정보를 입력시키기 위한 결합 정보 입력수단, 결합 정보 입력 수단으로부터 입력된 결합 정보를 기억하는 결합 정보 기억수단, 결합 정보 기억수단내에 기억된 결합 정보에 의해 지정된 프로그램이 프로그램 기억수단내에 존재하는지의 여부를 판정하기 위한 존재 판정 수단, 프로그램이 존재 판정수단에 의해 존재하는 것으로 판정될 때 결합 정보에 의해 지정된 프로그램을 결합시키기 위한 지정 프로그램 결합 수단, 및 존재 판정수단에 의해 판정된 부재 프로그램 대신에 미리 준비된 특수 프로그램의 결합을 수행하기 위한 특수 프로그램 결합 수단을 포함한다.
이하, 첨부도면을 참조하여 본 발명에 대해서 상세하게 기술하겠다.
제1도는 본 발명의 실시예에 따른 부분적 프로그램 결합 시스템의 블럭도이고, 제2도는 제1도에 도시한 동작을 설명하기 위한 플로우챠트이다. 제1도를 참조하면, 입력 장비(CS)(예를 들어, 콘솔), 프로그램라이브러리(PL), 및 결합 프로그램 출력 파일(PF)은 프로그램 결합 메카니즘(LK)에 접속된다. 프로그램결합 메카니즘(LK)는 결합 정보 입력부(1), 결합 정보 기억부(2), 지정 프로그램 존재 판정부(3), 지정 프로그램 결합부(4), 특수 프로그램 결합부(5), 특수 프로그램(6), 및 디코더부(7)을 포함한다.
제1도를 참조하면, 프로그램 결합이 수행될때, 사용자는 입력 장비(CS)로부터의 필요한 데이타를 입력시킨다. 이 필요한 데이타는 유니트 프로그램이 기억되는 라이브러리의 명칭, 실행 개시 어드레스를 포함하는 유니트 프로그램의 명칭, 및 실행 포오맷을 갖고 있는 결합 프로그램을 기억하기 위한 파일의 명칭을 포함하고, 프로그램 결합 메카니즘(LK)에 공급됨으로 프로그램 결합 메카니즘(LK)를 개시하게 된다.
프로그램 결합 메카니즘(LK)가 개시되면, 디코더부(7)은 명령을 디코드하고, 디코드된 내용 및 프로그램라이브러리(PL)내에 기억된 유니트 프로그램의 내용으로부터 결합 정보를 추출한다. 이 결합 정보는 어떤 유니트 프로그램이 어떤 유니트 프로그램을 억세스하는지를 나타낸다. 결합 정보 및 제어 정보는 결합 정보입력부(1)에 공급된다.
결합 정보 입력부(1)이 디코더부(7)로부터 결합 정보를 수신하면, 입력부(1)은 결합정보를 결합 정보 기억부(2)로 전송한다. 결합 정보 기억부(2)는 수신 결합정보를 기억하고. 지정 프로그램 존재 판정부(3)은 기동(start)된다.
지정 프로그램 존재 판정부(3)이 기동되면, 제2도의 단계(31)에서 프로그램 라이브러리(PL)내의 결합정보에 의해 지정된 유니트 프로그램을 탐색한다. 단계(32)에서 예(Yes)이면, 즉 지정 프로그램이 라이브러리 파일내에 존재하는 것으로 결정되면, 지정 프로그램 결합부(4)는 지정 프로그램을 억세스하도록 기동된다 [단계(41)]. 그러나, 단계(32)에서 아니오(No) 이면, 특수 프로그램 결합부(5) 가 기동된다[단계(51)] 단계(41)에서, 지정 프로그램 결합부(4)는 프로그램 라이브러리(PL)로부터 지정 프로그램을 호출하고, 이 지정 프로그램을 지정 프로그램과 결합될 유니트 프로그램과 결합시킨다[단졔(42)].
단계(51)에서, 특수 프로그램 결합부(5)는 이리 준비된 특수 프로그램(6)을 호출한다. 결합부(5)는 단계(52)에서 특수 프로그램(6)을 이 특수 프로그램과 결합될 유니트 프로그램과 결합시킨다
이 실시예의 동작에 대해서 다음의 가정하에서 상세하게 기술하겠다. 프로그램(A,B 및 C)가 프로그램라이브러리(PL)내에 존재하고, 주 프로그램(A)가 유니트 프로그램(B와 C), 및 유니트 프로그램(D와 E)를 호출한다고 가정하면, 유니트 프로그램(D와 E)는 프로그램 라이브러리 (PL)내에는 존재하지 않는다.
제1도를 참조하면, 결합 정보 입력부(1)은 "B가 호출되고 있다"는 것을 나타내는 정보(이하, 정보 호출-B라함)를 입력하면, 결합정보 기억부(2)는 정보 호출-B를 기억하고, 지정 프로그램 존재 판정부(3)은 프로그램 라이브러리(PL)내에서 유니트 프로그램(B)를 탐색한다. 유니트 프로그램(B)가 프로그램 라이브러리(PL)내에 존재하기 때문에, 지정 프로그램 결합부(4)는 유니트 프로그램(B)를 주 프로그램(A)와 결합시킨다. 이와 유사하게, 유니트 프로그램(C)는 주 프로그램(A)에 결합된다.
결합 정보 입력부(1)이 정보 호출-D를 입력하면, 결합 정보 기억부(2)는 정보 호출-D를 기억하고, 지정 프로그램 존재 판정부(3)은 프로그램 라이브러리(PL)내에서 유니트 프로그램(D)를 탐색한다 그러나, 유니트 프로그램(D)는 프로그램 라이브러리(PL)내에 존재하지 않는다. 이 경우에, 유니트 프로그램(D)의 부재가 판정되고, 특수 프로그램 결합부(5)는 주 프로그램(A)를 미리 준비된 특수 프로그램[이 프로그램은프로그램(X)로 가정됨]과 결합시킨다. 이와 유사하게, 결합 정보 입력부(1)이 정보 호출-E를 입력하면, 프로그램(E)는 프로그램 라이브러리(PL)내에 존재하지 않는다. 특수 프로그램 결합부(5)는 주프로그램(A)를 프로그램(X)와 결합시킨다.
상기 결합 동작들이 수행된 후에 주프로그램(A)가 실행된다고 가정한다. 주프로그램(A)가 유니트 프로그램(B 또는 C)를 호출하면, 제어는 유니트 프로그램(B 또는 C)에 각각 전송된다. 그러나, 유니트 프로그램(D 및 E)가 호출되면, 제어는 프로그램(X)로 쉬프트되고, 프로그램(X)가 실행된다.
호출 주프로그램의 명칭 및 주프로그램에 의해 호출되지만 결합되지 않는 프로그램의 명칭이 출력된 후 프로그램(X)의 내용이 제어를 주프로그램에 회복시키도록 셋트되면, 어느 유니트 프로그램[이 경우에, 유니트 프로그램(D 또는 E)]이 어느 프로그램[이 경우에, 프로그램(A)]에 결합되지 않는가에 따라 특수 프로그램[이 경우에, 프로그램(X)]이 실행되도록 정보가 얻어질 수 있다. 주 프로그램에 의해 호출되기 않지만 결합되지 않는 유니트 프로그램의 명칭을 출력시키는 방법은 다음과 같이 예시화된다. 유니트 프로그램(D)의 부재가 지정 프로그램 존재 판정수단(3)에 의해 판정되면 유니트 프로그램(D)의 명칭은 제1도내의 기억 영역(도시하지 않음)내에 기억된다. 특수 프로그램 결합수단(5)에 의한 특수 프로그램(6)의 결합중에, 내용이 특수 프로그램(6)용 비결합 유니트 프로그램의 명칭의 출력 프로세싱시에 출력될 어드레스는 기억영역의 어드레스로 셋트된다. 특수 프로그램의 프로세싱 내용은 상술한 내용에 부가적으로 변할 수가 있다.
상술한 바와같은 부분적 결합 시스템에 따르면, 결합 정보에 의해 지정된 유니트 프로그램이 존재하는지의 여부가 결합중에 결정된다. 결합 정보가 존재하지 않으면, 지정 프로그램 판정부(3)은 특수 프로그램 결합부(5)가 주프로그램을 미리 준비된 특수 프로그램(6)과 결합시키도록 배열된다. 결합 프로세싱시에, 1개의 특수프로그램만이 준비된다. 동일한 명칭을 갖고 있는 모조 프로그램이 부재 유니트 프로그램마다에 기억되고 프로그램 기억 영역내에 기억되는 종래의 모조 기법과는 달리, 프로그래밍이 간략화될 수 있다. 부수적으로, 최초 프로그램이 부재 유니트 프로그램을 호출하지 않도륵 수정될 필요가 없기 때문에, 결합 동작은 간략화될 수 있다.
종래의 모조 방법에 있어서, 조작자가 부재 프로그램의 명칭을 알지 못하면, 모조 프로그램은 발생될 수 없다. 그러나, 이러한 문제점은 본 발명에 의해 제거될 수 있다.
부재 유니트 프로그램 대신에 결합될 특수 프로그램의 내용이 호출 주 프로그램의 명칭 또는 호출되지만 존재하지 않는 유니트 프로그램의 명칭을 출력시키면, 유니트 프로그램이 실행중에 결합되지 않는다는 것을 나타내는 정보가 디버킹(debugging)을 매우 간략화시키도록 얻어질 수 있다.
Claims (3)
- 프로그램 결합중에 결합 정보를 입력시키기 위한 결합 정보 입력수단(1), 상기 결합 정보 입력 수단(1)로부터 입력된 결합 정보를 위한 결합 정보 기억 수단(2), 상기 결합정보 기억수단내(2)내에 기억된 결합 정보에 의해 지정된 프로그램이 프로그램 기억수단(2)내에 존재하는지의 여부를 판정하기 위한 존재 판정 수단(3), 상기 존재 판정 수단(3)에 의해 프로그램이 존재하는 것으로 판정될때 결합 정보에 의해 지정된 프로그램을 결합시키기 위한 지정 프로그램 결합수단(4), 및 상기 존재 판정 수단(3)에 의해 판정된 부재 프로그램 대신에 미리 준비된 특수 프로그램(6)의 결합을 수행하기 위한 특수 프로그램 결합 수단(4)를 포함하는 것을 특징으로 하는 부분적 프로그램 결합 시스템.
- 제1항에 있어서, 상기 특수 프로그램(6)이, 상기 특수 프로그램이 호출될 때 제어를 호출 소오스 프로그램으로 복귀시키는 것을 특징으로 하는 시스템.
- 제1항에 있어서, 상기 특수 프로그램(6)이, 상기 특수 프로그램이 호출될때 호출 소오스 프로그램의 명칭 및 호출되지만 결합되지 않는 프로그램의 명칭을 출력시킨 후에 제어를 호출 소오스 프로그램으로 복귀시키는 것을 특징으로 하는 시스템.
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP61224319A JPS6378231A (ja) | 1986-09-22 | 1986-09-22 | 部分的プログラム結合方式 |
JP61-224319 | 1986-09-22 | ||
JP224319 | 1986-09-22 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR880004374A KR880004374A (ko) | 1988-06-07 |
KR900006667B1 true KR900006667B1 (ko) | 1990-09-17 |
Family
ID=16811887
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1019870010434A KR900006667B1 (ko) | 1986-09-22 | 1987-09-21 | 부분적 프로그램 결합 시스템 |
Country Status (3)
Country | Link |
---|---|
US (1) | US5303376A (ko) |
JP (1) | JPS6378231A (ko) |
KR (1) | KR900006667B1 (ko) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20020073246A1 (en) * | 1998-06-29 | 2002-06-13 | Stephen F.B. Pickett | Code server |
US5649204A (en) * | 1991-08-22 | 1997-07-15 | Rec Software, Inc. | Method and apparatus for consolidating software module linkage information used for starting a multi-module program |
DE69330691T2 (de) * | 1992-06-03 | 2002-07-04 | Sun Microsystems Inc | Dynamisch konfigurierbares Kernsystem |
US5682533A (en) * | 1994-09-27 | 1997-10-28 | Telefonaktiebolaget Lm Ericsson (Publ) | Updating software within a telecommunications switch without interrupting existing communication and neither moving nor converting data |
US5850554A (en) * | 1995-12-29 | 1998-12-15 | Intel Corporation | Compiler tool set for efficiently generating and easily managing multiple program versions of different types |
US6185733B1 (en) * | 1998-01-20 | 2001-02-06 | International Business Machines Corporation | Method and apparatus for remote object code inclusion |
US7401330B2 (en) * | 2003-12-11 | 2008-07-15 | Hewlett-Packard Development Company, L.P. | Cloning programming code |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4398249A (en) * | 1970-08-12 | 1983-08-09 | Pardo Rene K | Process and apparatus for converting a source program into an object program |
US4173782A (en) * | 1978-01-03 | 1979-11-06 | International Business Machines Corporation | Return and link mechanism |
US4435753A (en) * | 1980-10-31 | 1984-03-06 | International Business Machines Corporation | Register allocation system using recursive queuing during source code compilation |
JPS5862747A (ja) * | 1981-10-09 | 1983-04-14 | Fujitsu Ltd | プログラム結合編集方式 |
US4672532A (en) * | 1982-06-14 | 1987-06-09 | Tektronix, Inc. | Software/hardware integration control system |
US4595981A (en) * | 1984-03-05 | 1986-06-17 | At&T Bell Laboratories | Method of testing interfaces between computer program modules |
US4787034A (en) * | 1984-11-14 | 1988-11-22 | Pal Szoke | Program access system |
US4719564A (en) * | 1984-12-10 | 1988-01-12 | Nec Corportion | Interpreter linkage system for linking extension interpreters to a basic interpreter |
US4882674A (en) * | 1985-03-05 | 1989-11-21 | Wang Laboratories, Inc. | Apparatus and method for control of one computer system by another computer system |
US4782444A (en) * | 1985-12-17 | 1988-11-01 | International Business Machine Corporation | Compilation using two-colored pebbling register allocation method such that spill code amount is invariant with basic block's textual ordering |
-
1986
- 1986-09-22 JP JP61224319A patent/JPS6378231A/ja active Pending
-
1987
- 1987-09-21 KR KR1019870010434A patent/KR900006667B1/ko not_active IP Right Cessation
-
1990
- 1990-02-26 US US07/484,486 patent/US5303376A/en not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JPS6378231A (ja) | 1988-04-08 |
US5303376A (en) | 1994-04-12 |
KR880004374A (ko) | 1988-06-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6954747B1 (en) | Methods for comparing versions of a program | |
US6253371B1 (en) | Method for supporting parallelization of source program | |
US5313635A (en) | Compiling system for distributed computer system with multiple types of computers | |
US5634114A (en) | Dynamic link library version negotiation | |
US6922827B2 (en) | Iterative software development environment with prioritized build rules | |
IL100991A (en) | Method for translating a first program cipher to a second program cipher | |
US20020019973A1 (en) | Compiler and method for compiling easily adaptable to processor specifications | |
JPH07141201A (ja) | 2パスコンパイラのための改良された方法 | |
KR900006667B1 (ko) | 부분적 프로그램 결합 시스템 | |
US5581769A (en) | Multipurpose program object linkage protocol for upward compatibility among different compilers | |
JPH07230386A (ja) | データ処理装置及び制御ルーチン呼出し方法 | |
US5150474A (en) | Method for transferring arguments between object programs by switching address modes according to mode identifying flag | |
JPH0766342B2 (ja) | プログラムテスト装置 | |
JP3461185B2 (ja) | ロードモジュールへのソースコード行番号登録方法および装置 | |
JP3604936B2 (ja) | 最適化方法,最適化装置及び記録媒体 | |
JP2000132405A (ja) | インライン展開処理装置及び方法 | |
US7627859B2 (en) | Method for configuring non-script language library files to be run as scripts | |
JP3018783B2 (ja) | コンパイル方式 | |
JPH04149732A (ja) | 言語処理プログラムの処理方式 | |
JPH07152577A (ja) | コンパイル、リンク方法の共通化方式 | |
JP2797749B2 (ja) | ファイル破壊事前チェック機構 | |
JPH04171532A (ja) | パターン利用によるプログラム作成装置 | |
JPS6224323A (ja) | リンク方式 | |
JPH09258969A (ja) | プログラム開発装置及びプログラム開発方法 | |
JPH1195995A (ja) | データフロー解析装置、データフロー解析方法及びそのためのコンピュータプログラムを記録した記録媒体 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E902 | Notification of reason for refusal | ||
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: 20000624 Year of fee payment: 11 |
|
LAPS | Lapse due to unpaid annual fee |