KR100688444B1 - 프로그램 자동 변환 방법 및 프로그램 자동 변환 장치 - Google Patents

프로그램 자동 변환 방법 및 프로그램 자동 변환 장치 Download PDF

Info

Publication number
KR100688444B1
KR100688444B1 KR1020047018061A KR20047018061A KR100688444B1 KR 100688444 B1 KR100688444 B1 KR 100688444B1 KR 1020047018061 A KR1020047018061 A KR 1020047018061A KR 20047018061 A KR20047018061 A KR 20047018061A KR 100688444 B1 KR100688444 B1 KR 100688444B1
Authority
KR
South Korea
Prior art keywords
command pattern
program
pattern information
source program
new
Prior art date
Application number
KR1020047018061A
Other languages
English (en)
Other versions
KR20050030896A (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 가부시키가이샤 시스템즈
Publication of KR20050030896A publication Critical patent/KR20050030896A/ko
Application granted granted Critical
Publication of KR100688444B1 publication Critical patent/KR100688444B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • 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)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)
  • Devices For Executing Special Programs (AREA)

Abstract

본 발명은, 구 소스 프로그램에서, 제1 명령 패턴 정보가 몇 회 출현하는지를 해석하는 해석 단계와, 해석 결과를 출력하는 해석 결과 출력 단계와, 제1 명령 패턴 정보의 출현 횟수가 소정 횟수 이상이라고 해석되는 제1 명령 패턴 정보에 대응하는 구 소스 프로그램의 기술(記述) 부분을 제2 명령 패턴 정보에 대응하도록 변환하는 명령 패턴 변환 단계와, 명령 패턴 변환 단계에서 상기 구 소스 프로그램을 변환한 결과인 신 소스 프로그램을 출력하는 신 프로그램 출력 단계와, 제1 명령 패턴 정보의 출현 횟수가 소정 횟수 미만이라고 해석되는 제1 명령 패턴 정보에 대응하는 구 소스 프로그램의 기술(記述) 부분에 대해서, 사용자의 수작업에 의한 구 소스 프로그램의 기술(記述) 부분을 신 소스 프로그램으로 변경하는 입력을 받아 들이는 단계를 포함하는 프로그램 자동 변환 방법이고, 효율적이면서 문제 없이 프로그램을 이식할 수 있다.
프로그램, 스크립트, 명령 패턴, 구문 해석, 자구 해석, 컴파일, 변환

Description

프로그램 자동 변환 방법 및 프로그램 자동 변환 장치{PROGRAM AUTOMATIC CONVERTING METHOD AND PROGRAM AUTOMATIC CONVERTING DEVICE}
본 발명은, 프로그램을 해석하고 당해 프로그램의 일부 또는 전부를 자동 변환하는 프로그램 자동 변환 장치 및 그 프로그램 등에 관한 것이다.
종래의 제1 기술로서, 소스 프로그램이나 스크립트를 자동 변환하는 기술이 있었다. 이러한 기술은, 컴파일러 차분에 의해 발생하는 기술(記述)의 차이를 자동 검출하고, 자동 수정 또는 리스트-업해서 개발 작업을 향상시키는 기술이다. 본 기술은, C 언어로 기술(記述)된 원시(原始) 프로그램을 구문 해석하고, 1 토큰마다 데이터 베이스와 중간 파일을 작성하고, 데이터 베이스 상의 대상이 되는 문자열을 삭제· 변경하고, 데이터 베이스나 중간 파일의 정보를 C 언어 파일로 생성하여, 목적 프로그램을 생성하는 것이다.
또한, 제2 종래 기술로서, 특정한 컴퓨터 상에 개발된 프로그램 오브젝트를 기초로 하여, 다른 컴퓨터에서 실행 가능한 소프트웨어를 자동 생성하는 기술이 있었다. 본 기술에서, 주어진 컴퓨터 자원의 범위하에서 실행가능한 오브젝트 코드 는, 세그먼트 분할기에 의해 명령 코드 영역(D2)과 데이터 코드 영역(D3)으로 분할된다. 이어서, 명령 코드 영역(D2)은, 명령 코드 변환기에 의해 명령 세트나 OS 프리미티브를 해석하고, 고급 프로그램 언어에 의한 명령문으로 변환된다. 또한, 데이터 코드 영역(D3)은, 참조하고 있는 명령 코드의 종별에 따른 데이터형을 판별하고, 데이터 구문 변환기에 의해, 고급 프로그램 언어에 의한 데이터 정의문으로 변환된다. 또한, 참조 영역 변환기가 데이터 정의문에 대해서 명령문이 이용하기 위한 참조명을 부가하고, 명령문이 참조명을 이용하는 형식으로 변환하여 고급 언어 프로그램을 생성하는 것이다.
그러나, 상기 제1 종래 기술은, 변환 대상의 소스 프로그램이 기재된 프로그램 언어의 사양이 갖는 모든 명령을 자동 변환하는 것을 전제로 하고 있는 것으로 고려된다.
또한, 상기 제2 종래 기술은, 특정한 컴퓨터상에서의 모든 프로그램 오브젝트를 자동 변환하는 것을 전제로 하고 있는 것으로 고려된다. 즉, 종래 기술에서, 하나의 프로그램의 동작 환경을 이행하기 위해, 하나의 프로그램을 이행한 후의 환경에서도 효율 좋게 동작시키는 것을 고려하고 있지 않다. 그러므로, 종래 기술에서는, 변환 대상으로 하는 소스 프로그램의 어느 명령 패턴을 자동 변환하고, 어느 명령 패턴을 수작업으로 수행할지를 판단할 수 없다. 종래 기술에서, 하나의 프로그램을 자동 변환 또는 반자동 변환하는 자동 변환 프로그램을 개발하는 경우에, 어느 명령 패턴에 대응하는 자동 변환 프로그램을 개발해야 할지를 판단할 수 없고, 효율적으로 소스 프로그램을 변환할 수 없었다. 구체적으로는, 종래 기술에서 는, 변환 대상의 프로그램에서, 한번 밖에 출현하지 않은 명령 패턴도 자동 변환하는 프로그램을 개발하는 것이 전제로 되어 있다.
본원의 제1 발명의 프로그램 자동 변환 방법은,
구(舊) 소스 프로그램의 명령 패턴을 나타내는 정보인 제1 명령 패턴 정보와, 신(新) 소스 프로그램의 명령 패턴을 나타내는 정보인 제2 명령 패턴 정보의 쌍을 하나 이상 기억부에 저장하고 있고,
구 소스 프로그램에서, 상기 하나 이상의 제1 명령 패턴 정보가 몇 회 출현하는지를 해석 수단을 이용해서 해석하는 해석 단계,
상기 해석 단계에서의 해석 결과를 출력 수단을 이용해서 출력하는 해석 결과 출력 단계,
상기 해석 단계에서, 제1 명령 패턴 정보의 출현 횟수가 소정 횟수(소정 횟수는 2 이상임) 이상이라고 해석된 제1 명령 패턴 정보에 대응하는 구 소스 프로그램의 기술(記述) 부분을, 당해 제1 명령 패턴 정보와 쌍을 이루는 제2 명령 패턴 정보에 대응하도록, 변환 수단을 이용해서 변환하는 명령 패턴 변환 단계,
상기 명령 패턴 변환 단계에서, 상기 구 소스 프로그램을 변환한 결과인 신 소스 프로그램을 출력 수단을 이용해서 출력하는 신 프로그램 출력 단계, 및
상기 해석 단계에서, 제1 명령 패턴 정보의 출현 횟수가 상기 소정 횟수 미만이라고 해석된 제1 명령 패턴 정보에 대응하는 구 소스 프로그램의 기술(記述) 부분에 대해서, 사용자의 수작업에 의한 당해 구 소스 프로그램의 기술(記述) 부분을 신 소스 프로그램으로 변경하는, 입력 수단을 이용한 입력을 받아 들이는 단계를 포함하고,
어떤 환경에서 동작하고 있던 프로그램을 다른 환경에서 동작시키기 위한
프로그램 자동 변환 방법이고, 이러한 프로그램 자동 변환 방법에 의해 효율적으로 또한 문제없이 프로그램을 이식할 수 있다.
또한, 제2 발명은, 제1 발명에 대해서, 상기 신 프로그램 출력 단계는, 신 소스 프로그램 중에서, 상기 명령 패턴 변환 단계에서 변환한 부분과 변환하지 않은 부분을 시각적으로 구별하여 출력하는 프로그램 자동 변환 방법이며, 이러한 프로그램 자동 변환 방법에 의해, 프로그래머가 눈으로 변환 후의 프로그램을 체크할 경우, 효율적으로 체크할 수 있다.
또한, 상기의 프로그램 변환 방법은, 프로그램으로 실현해도, 전용 회로 등의 하드웨어로 실현해도 좋고, 이러한 경우, 상기 기능은 프로그램 또는 프로그램 자동 변환 장치로서 실현된다. 또한, 상기의 프로그램 변환 방법은, 이식할 곳의 프로그램을 생산하는 프로그램 생산 방법이라고도 할 수 있다.
도1은 본 발명의 실시 형태1에서의 프로그램 해석 장치의 블록도.
도2는 본 발명의 실시 형태1에서의 프로그램 해석 장치의 동작에 대해서 설명하는 플로우차트.
도3은 본 실시 형태1에서의 명령 패턴 정보 관리표를 도시한 도면.
도4는 본 실시 형태1에서의 명령 패턴 출현 횟수 관리표를 도시한 도면.
도5는 본 실시 형태1에서의 프로그램의 예를 도시한 도면.
도6은 본 실시 형태1에서의 명령 패턴 출현 횟수 관리표를 도시한 도면.
도7은 본 실시 형태1에서의 명령 패턴 출현 횟수 관리표를 도시한 도면.
도8은 본 실시 형태1에서의 해석 결과의 예를 도시한 도면.
도9는 본 실시 형태1에서의 해석 결과의 표시예를 도시한 도면.
도10은 본 실시 형태2에서의 프로그램 자동 변환 장치의 블록도.
도11은 본 실시 형태2에서의 프로그램 자동 변환 장치의 동작에 대해서 설명하는 플로우차트.
도12는 본 실시 형태2에서의 명령 패턴 정보 관리표를 도시한 도면.
도13은 본 실시 형태2에서의 변환 후의 신 프로그램의 예를 도시한 도면.
도14는 본 실시 형태2에서의 신 프로그램의 예를 도시한 도면.
(발명을 실시하기 위한 최적의 형태)
이하, 본 발명의 프로그램 해석 장치 및 프로그램 자동 변환 장치 등의 실시 형태에 대해서 도면을 참조하여 설명한다. 또한, 실시 형태에서, 동일한 부호를 부여한 구성 요소는 동일한 동작을 수행하기 때문에, 재차의 설명은 생략하는 경우가 있다.
(실시 형태1)
도1은 프로그램 해석 장치의 블록도를 도시한다. 프로그램 해석 장치는 명령 패턴 정보 저장부(101), 프로그램 저장부(102), 해석부(103), 해석 결과 출력부(104)를 갖는다. 프로그램 해석 장치는, 예를 들면, MPU나, 메모리나, 하드디스크 등을 구비한 퍼스널 컴퓨터이다.
명령 패턴 정보 저장부(101)는 프로그램의 명령 패턴을 나타내는 정보인 명령 패턴 정보를 하나 이상 저장하고 있다. 명령 패턴 정보 저장부(101)는 비휘발성 기록 매체 또는 휘발성 기록 매체로도 실현될 수 있다.
프로그램 저장부(102)는 프로그램을 저장하고 있다. 프로그램 저장부(102)는 비휘발성 기록 매체 또는 휘발성 기록 매체로도 실현될 수 있다. 프로그램이란, 통상적으로 소스 프로그램이고, 그 언어는 불문한다. 프로그램은 소위 스크립트라고 불리는 HTML, XML 등도 포함한다. 또한, 프로그램은 절차형의 프로그램, 선언형 프로그램 등을 불문하고, 또한, 프로그램은 프로그램이 동작하기 위한 데이터군(헤더 파일 등)도 포함한다.
해석부(103)는, 프로그램 저장부(102)에 저장되어 있는 프로그램에서, 하나 이상의 명령 패턴 정보가 몇 회 출현하는지를 해석한다. 해석부(103)는, 통상적으로 MPU나 메모리 등으로부터 실현될 수 있다. 해석부(103)가 해석하기 위한 처리 순서는, 통상적으로 소프트웨어로 실현되고, 당해 소프트웨어는 ROM 등의 기록 매체에 기록되어 있다. 그러나, 하드웨어(전용 회로)로 실현해도 좋다.
해석 결과 출력부(104)는 해석부(103)에서의 해석 결과를 출력한다. 출력이 란, 통상적으로 디스플레이로의 표시를 의미하지만, 프린터로의 인쇄, 다른 장치로의 송신 등도 포함한다. 또한, 출력이란 하드디스크 등의 기록 매체로의 축적도 포함하는 개념이다. 또한, 해석 결과 출력부(104)는 출력 디스플레이를 포함한다고 생각해도 좋고, 포함하지 않는다고 생각해도 좋다. 해석 결과 출력부(104)는, 예를 들면, 출력 디바이스의 드라이버 소프트웨어로 실현될 수 있다.
이하, 본 프로그램 해석 장치의 동작에 대해서, 도2의 플로우차트를 이용해서 설명한다.
단계(S201): 해석부(103)는 프로그램 저장부(102)의 프로그램을 판독한다. 이 프로그램은 해석 대상의 프로그램이다. 프로그램 저장부(102)에 다수의 프로그램이 저장되어 있는 경우, 예를 들면, 해석부(103)는 사용자가 지시한 프로그램을 판독한다.
단계(S202): 해석부(103)는 명령 패턴 정보 저장부(101)에 저장되어 있는 하나 이상의 명령 패턴 정보를 판독한다.
단계(S203): 해석부(103)는 명령 패턴 정보의 출현 횟수인 명령 패턴 출현 횟수를 모두 0으로 한다. 또한, 모든 명령 패턴 정보에 대응하는 명령 패턴 출현 횟수는, 예를 들면, 해석부(103)가 유지하고 있는 메모리에 기억되어 있다.
단계(S204): 해석부(103)는 카운터 i에 1을 대입한다. 이 카운터는, 단계(S201)에서 판독한 프로그램의 프로그램 카운터이다. 즉, 해석부(103)는 단계(S201)에서 판독한 프로그램의 i번째 행을 이하의 처리에 의해 해석한다. 또 한, 여기서는, 프로그램은 1행 1명령 패턴의 프로그램인 것으로 한다.
단계(S205): 해석부(103)는, 단계(S201)에서 판독한 프로그램에서, i번째의 프로그램 소스 행이 존재하는지 여부를 판단한다. i번째의 프로그램 소스 행이 존재한다면 단계(S206)를 진행하고, i번째의 프로그램 소스 행이 존재하지 않는다면 단계(S213)로 점프한다.
단계(S206): 해석부(103)는 카운터 j에 1을 대입한다. 카운터 j는 단계(S202)에서 판독한 하나 이상의 명령 패턴 정보 중, 해석에 이용하는 명령 패턴 정보를 취득하기 위한 카운터이다.
단계(S207): 해석부(103)는, i번째의 프로그램 소스 행이 j번째의 명령 패턴 정보에 대응하는 명령 패턴의 행인지 여부를 판단한다. i번째의 프로그램 소스 행이 j번째의 명령 패턴이라면 단계(S208)를 진행하고, j번째의 명령 패턴이 아니라면 단계(S210)로 점프한다. i번째의 프로그램 소스 행이 j번째의 명령 패턴 정보에 대응하는지 여부의 판단은 구문(構文) 해석, 자구(字句) 해석 등으로 가능하고, 기존 기술이기 때문에, 여기에서 상세한 설명은 생략한다.
단계(S208): 해석부(103)는 j번째의 명령 패턴 정보에 대응하는 명령 패턴 출현 횟수를 1 증가시킨다.
단계(S209): 해석부(103)는 i를 증가시킨다. 단계(S205)로 복귀한다.
단계(S210): 해석부(103)는 j를 증가시킨다.
단계(S211): 해석부(103)는 j번째의 명령 패턴이 명령 패턴 정보 저장부(101)에 존재하는지 여부를 판단한다. j번째의 명령 패턴이 존재한다면 단계(S207)로 복귀하고, j번째의 명령 패턴이 존재하지 않는다면 단계(S212)를 진행한다.
단계(S212): 해석부(103)는「어느 명령 패턴에도 해당하지 않는다는 뜻」의 에러를 출력한다. 단, 이 에러 출력 처리는 없어도 좋다.
단계(S213): 해석 결과 출력부(104)는 해석 결과를 출력한다. 해석 결과란 각 명령 패턴 정보의 명령 패턴 출현 횟수이다.
이하, 본 실시 형태에서의 프로그램 해석 장치 등의 구체화된 동작에 대해서 설명한다. 도3은 명령 패턴 정보 저장부(101)가 유지하고 있는 명령 패턴 정보 관리표이다. 명령 패턴 정보 관리표는「ID」,「명령 패턴 정보」를 갖는 레코드를 다수 저장하고 있다. 「ID」는 레코드를 식별하는 정보이고, 표 관리상 이용되는 정보이다. 「명령 패턴 정보」는 명령 패턴 정보를 저장하는 속성이다.
또한, 도4는, 해석부(103)가 유지하고 있는 명령 패턴 출현 횟수 관리표이다. 명령 패턴 출현 횟수 관리표는「ID」,「출현 횟수」를 갖는 레코드를 하나 이상 갖는다. 「ID」는 도3의 명령 패턴 정보 관리표의 「ID」에 대응하고 있다. 「출현 횟수」는 명령 패턴의 출현 횟수를 나타낸다.「출현 횟수」의 초기값은 모두 「0」이다.
도5는 프로그램 저장부(102)에 저장되어 있는 프로그램의 예이다. 프로그램 해석 장치는, 사용자의 지시에 의해, 도5의 프로그램의 해석을 개시한다. 도5의 프로그램에서, 「*」로 시작되는 행은 코멘트 행이다. 또한, 프로그램 해석 장치는 코멘트 행인 것을 판단한 후의 해석은 수행하지 않는다.
해석부(103)는, 우선, 도5의 프로그램의 1번째 행을 판독한다. 1번째 행은 코멘트 행이기 때문에, 다음의 행으로 이동한다(프로그램 카운터를 진행한다). 해석부(103)는 2번째 행부터 8번째 행까지도 코멘트 행이기 때문에, 해석은 수행하지 않는다.
다음에, 해석부(103)는 프로그램의 9번째 행인「IDENTIFICATION DIVISION」을 판독한다. 해석부(103)는, 프로그램의 9번째 행이 도3의 명령 패턴 정보 관리표의「ID=1」의 명령 패턴 정보에 대응한다고 판단한다. 그리고, 해석부(103)는 도4의 명령 패턴 출현 횟수 관리표의 「ID」=「1」의 레코드의 「출현 횟수」의 값을 1 증가시킨다. 그 결과가 도6의 명령 패턴 출현 횟수 관리표이다.
다음에, 해석부(103)는 프로그램의 10번째 행인「PROGRAM-ID.PSD712.」를 판독한다. 해석부(103)는, 프로그램의 10번째 행이, 도3의 명령 패턴 정보 관리표의「ID=2」의 명령 패턴 정보에 대응한다고 판단한다. 또한, 도3의 명령 패턴 정보 관리표의 「변수01」,「변수02」등은 변수를 의미한다. 프로그램에서, 변수는 영숫자(alphanumeric)의 문자열로 구성된다. 여기에서는, 「PSD712」는 변수이다. 그리고, 해석부(103)는 도6의 명령 패턴 출현 횟수 관리표의 「ID」=「2」의 「출현 횟수」의 값을 1 증가시킨다.
이상과 같은 처리를, 도5의 프로그램의 모든 행에 대해서 수행한다. 그리고, 도7에 도시한 명령 패턴 출현 횟수 관리표를 획득한다.
다음에, 해석 결과 출력부(104)는, 도8에 도시한 바와 같은 해석 결과를 출 력한다. 해석 결과는, 「ID」,「횟수」,「명령 패턴」을 갖는다. 「횟수」는 출현 횟수이다. 또한, 도8의 해석 결과는, 도3의 명령 패턴 정보 관리표와, 도7의 명령 패턴 출현 횟수 관리표로부터 구성된다. 구체적으로는, 도8의 해석 결과는, 도3의 명령 패턴 정보 관리표의 「ID」와, 도7의 명령 패턴 출현 횟수 관리표 「ID」를 키로 하여 결합 연산되고, 출력된 결과이다.
이상, 본 실시 형태에 의하면, 변환 대상으로 하는 소스 프로그램이 포함하는 명령 패턴의 해석이 가능해지고, 그 결과, 효율적으로 소스 프로그램을 변환하는 자동 변환 프로그램을 개발할 수 있다. 또한, 본 실시 형태에서의 해석 결과를 받아 들여, 프로그램을 자동 변환하는 처리에 대해서는 실시 형태2 이후에서 설명한다.
또한, 본 실시의 형태에서, 어떤 일정 이상의 횟수가 출현하는 명령 패턴을 다른 명령 패턴과 시각적으로 구별하여 표시해도 좋다. 이러한 경우, 예를 들면, 도9에 도시한 바와 같은 해석 결과가 표시된다. 도9에 의하면, 3회 이상 출현하는 명령 패턴을 다른 명령 패턴과 시각적으로 구별하여 표시하고 있다. 또한, 일정 이상의 횟수가 출현하는 명령 패턴을 다른 명령 패턴과 시각적으로 구별하여 표시하는 형태는, 도9에서의 형태로 제한되지 않고, 어떠한 것이라도 좋다.
또한, 본 실시 형태에서 설명한 동작은, 컴퓨터 판독가능한 프로그램으로 실현해도 좋다. 당해 프로그램은, CD-ROM 등의 기록 매체에 기록되어 유포되어도 좋고, 네트워크 배신에 의해 유포되어도 좋고, 방송으로 유포되어도 좋다. 이러한 점은 다른 실시 형태에서도 동일하다. 또한, 본 실시 형태에서 설명한 동작을 실현하 는 프로그램은, 컴퓨터에, 프로그램의 명령 패턴을 나타내는 정보인 명령 패턴 정보를 하나 이상 저장하고 있고, 프로그램에서, 하나 이상의 명령 패턴 정보가 몇 회 출현하는지를 해석하는 해석 단계, 및 해석 단계에서의 해석 결과를 출력하는 해석 결과 출력 단계를 실행시키기 위한 프로그램이다.
또한, 본 실시 형태에서, 하나의 프로그램 해석 장치에서 프로그램의 해석을 수행하였지만, 다수의 장치에서 처리를 분담해도 좋다. 즉, 프로그램의 명령 패턴을 도시하는 정보인 명령 패턴 정보를 하나 이상 저장하고 있고, 프로그램에서, 하나 이상의 명령 패턴 정보가 몇 회 출현하는지를 해석하는 해석 단계, 및 해석 단계에서의 해석 결과를 출력하는 해석 결과 출력 단계를 포함하는 프로그램 해석 방법에 의해, 하나 이상의 장치를 이용해서 프로그램을 해석할 수 있으면, 전술한 효과를 얻을 수 있다.
(실시 형태2)
도10은 프로그램 자동 변환 장치의 블록도를 도시한다. 프로그램 자동 변환 장치는, 명령 패턴 대응 정보 저장부(1001), 프로그램 저장부(102), 해석부(103), 조건 저장부(1002), 명령 패턴 변환부(1003), 신 프로그램 출력부(1004)를 구비한다. 프로그램 자동 변환 장치는, 예를 들면, MPU나 메모리나 하드디스크 등을 구비한 퍼스널 컴퓨터이다.
명령 패턴 대응 정보 저장부(1001)는 구(舊) 프로그램(변환 대상의 프로그램)의 명령 패턴을 나타내는 정보인 제1 명령 패턴 정보와, 신(新) 프로그램(변환 후의 프로그램)의 명령 패턴을 나타내는 정보인 제2 명령 패턴 정보의 쌍을 하나 이상 저장하고 있다. 명령 패턴 대응 정보 저장부(1001)는 비휘발성 기록 매체 또는 휘발성 기록 매체로도 실현될 수 있다.
조건 저장부(1002)는 제1 명령 패턴 정보에 대응하는 구 프로그램의 일부를 제2 명령 패턴 정보에 대응하도록 자동 변환하는 조건을 저장하고 있다. 조건 저장부(1002)는 비휘발성 기록 매체 또는 휘발성 기록 매체로도 실현될 수 있다. 조건은 명령 패턴 변환부(1003)가 수행하는 처리를 실현하는 프로그램 중에 삽입되어 있는(헤더 파일 등에 정의되어 있는 경우도 포함함) 경우가 많다. 또한, 조건은 해석부(103)의 해석 결과에 기초하는 조건이다.
명령 패턴 변환부(1003)는 프로그램 저장부(102)에 저장되어 있는 프로그램(구 프로그램)에 대해서, 조건 저장부(1002)에 저장되어 있는 조건에 일치하는 제1 명령 패턴 정보에 대응하는 구 프로그램의 일부를, 당해 제1 명령 패턴 정보와 쌍을 이루는 제2 명령 패턴 정보에 대응하도록 변환하는 처리를 수행한다. 명령 패턴 변환부(1003)는, 통상적으로 MPU나 메모리 등으로부터 실현될 수 있다. 명령 패턴 변환부(1003)가 정보를 변환하기 위한 처리 순서는, 통상적으로 소프트웨어로 실현되고, 당해 소프트웨어는 ROM 등의 기록 매체에 기록되어 있다. 단, 하드 웨어(전용 회로)로 실현해도 좋다.
신 프로그램 출력부(1004)는 명령 패턴 변환부(1003)가 프로그램을 변환한 결과인 신 프로그램을 출력한다. 출력이란, 통상적으로 디스플레이로의 표시를 의미하지만, 프린터로의 인쇄, 다른 장치로의 송신, 기록 매체(하드 디스크, 디지털 다목적 디스크 등)로의 축적 등도 포함한다. 또한, 신 프로그램 출력부(1004)는 출력 디스플레이나 기록 매체를 포함한다고 생각해도 좋고, 포함하지 않는다고 생각해도 좋다. 신 프로그램 출력부(1004)는, 예를 들면 출력 디바이스의 드라이버 소프트웨어로 실현될 수 있다.
이하, 본 프로그램 자동 변환 장치의 동작에 대해서 도11의 플로우차트를 이용해서 설명한다.
단계(S1101): 프로그램 해석 루틴을 실행한다. 본 프로그램 해석 루틴은, 도2의 플로우차트를 이용해서 설명한 프로그램의 해석 처리이고, 변환 대상의 프로그램인 구 프로그램 중에서의 명령 패턴마다의 출현 횟수를 출력한다.
단계(S1102): 명령 패턴 변환부(1003)는 프로그램 저장부(102)의 프로그램을 판독한다. 프로그램 저장부(102)에 2 이상의 프로그램이 존재하는 경우에는, 예를 들면, 명령 패턴 변환부(1003)는 사용자가 지시한 프로그램을 판독한다.
단계(S1103): 명령 패턴 변환부(1003)는 명령 패턴 대응 정보 저장부(1001)가 유지하고 있는 하나 이상의 제1 명령 패턴 정보를 판독한다.
단계(S1104): 명령 패턴 변환부(1003)는 카운터 i에 1을 대입한다. 이 카운터는, 단계(S1102)에서 판독한 프로그램의 프로그램 카운터이다. 즉, 명령 패턴 변환부(1003)는 단계(S1102)에서 판독한 프로그램의 i번째의 행을 이하의 처리에 의해 변환한다. 또한, 여기에서는, 프로그램은 1행 1명령 패턴의 프로그램으로 한다.
단계(S1105): 명령 패턴 변환부(1003)는, 단계(S1102)에서 판독한 프로그램 에서, i번째 행의 프로그램 소스가 존재하는지 여부를 판단한다. i번째 행의 프로그램 소스가 존재한다면 단계(S1106)를 진행하고, i번째 행의 프로그램 소스가 존재하지 않는다면 단계(S1116)로 점프한다.
단계(S1106): 명령 패턴 변환부(1003)는 카운터 j에 1을 대입한다. 카운터 j는 단계(S1103)에서 판독한 하나 이상의 제1 명령 패턴 정보 중 변환에 이용하는 제1 명령 패턴 정보를 취득하기 위한 카운터이다.
단계(S1107): 명령 패턴 변환부(1003)는 i번째 행의 프로그램 소스가 j번째의 제1 명령 패턴 정보에 대응하는지 여부를 판단한다. j번째의 제1 명령 패턴 정보에 대응한다면 단계(S1108)를 진행하고, j번째의 제1 명령 패턴 정보에 대응하지 않는다면 단계(S1113)로 점프한다. 또한, i번째 행의 프로그램 소스가 j번째의 제1 명령 패턴 정보에 대응하는지 여부는 i번째 행의 프로그램 소스의 구문 해석, 자구 해석에 의해 가능하다.
단계(S1108): 명령 패턴 변환부(1003)는, j번째의 제1 명령 패턴 정보가 조건 저장부(1002)의 조건에 일치하는지 여부를, 단계(S1101)의 프로그램 해석 루틴의 해석 결과에 기초하여 결정한다. j번째의 제1 명령 패턴 정보가 조건에 일치한다면 단계(S1109)를 진행하고, j번째의 제1 명령 패턴 정보가 조건에 일치하지 않는다면 단계(S1115)로 점프한다.
단계(S1109): 명령 패턴 변환부(1003)는 j번째의 제1 명령 패턴 정보와 쌍을 이루는 제2 명령 패턴 정보를 명령 패턴 대응 정보 저장부(1001)로부터 취득한다.
단계(S1110): 명령 패턴 변환부(1003)는 i번째 행의 프로그램 소스를 단계(S1109)에서 취득한 제2 명령 패턴 정보가 나타내는 명령 패턴으로 변환한다.
단계(S1111): 명령 패턴 변환부(1003)는 단계(S1110)에서 변환한 i번째 행의 소스를 신 프로그램에 추가한다. 또한, 신 프로그램은, 예를 들면, 어떤 파일에 저장되고, 초기화 단계(미도시)에서 파일 생성과 파일 오픈이 되어 있는 것으로 한다.
단계(S1112): 카운터(i)를 증가시킨다. 단계(S1105)로 복귀한다.
단계(S1113): 카운터(j)를 증가시킨다.
단계(S1114): 명령 패턴 변환부(1003)는 j번째의 제1 명령 패턴 정보가 존재하는지 여부를 판단한다. j번째의 제1 명령 패턴 정보가 존재한다면 단계(S1107)로 복귀하고, j번째의 제1 명령 패턴 정보가 존재하지 않는다면 단계(S1115)를 진행한다.
단계(S1115): 명령 패턴 변환부(1003)는 i번째 행의 소스를 신 프로그램에 추가한다. 여기에서의 i번째 행의 소스는, 예를 들면, 코멘트 행이다.
단계(S1116): 신 프로그램 출력부(1004)는 변환된 후의 프로그램(신 프로그램)을 출력한다. 여기에서의 출력은 기록 매체(하드디스크 등)에 축적되는 만큼의 처리도 포함한다.
또한, 제1 명령 패턴 정보가 조건 저장부(1002)의 조건에 일치되지 않고, 제1 명령 패턴을 제2 명령 패턴으로 자동 변환하지 않은 제1 명령 패턴에 관해서, 프로그래머가 키보드 등의 입력 수단을 이용하여 수작업으로 제2 명령 패턴으로 고쳐 쓴다. 즉, 프로그램 자동 변환 장치는, 도시하지는 않았지만, 키보드와 마우스 등의 입력 수단을 포함한다.
이하, 본 실시 형태에서의 프로그램 변환 장치의 구체적인 동작에 대해서 설명한다. 도12는 명령 패턴 대응 정보 저장부(1001)가 유지하고 있는 명령 패턴 정보 관리표이다. 명령 패턴 정보 관리표는「ID」,「제1 명령 패턴 정보」,「제2 명령 패턴 정보」를 갖는 레코드를 다수 저장하고 있다.「ID」는 레코드를 식별하는 정보이다. 명령 패턴 정보 관리표는 변환 대상의 프로그램 중에 출현하는 제1 명령 패턴 정보의 소스 행을, 쌍을 이루는 제2 명령 패턴 정보에 대응하도록 변환할 경우에 이용하는 대응표이다. 구체적으로는,「제1 명령 패턴 정보」가 「SOURCE-COMPUTER.XXXXXX.」인 경우에는,「제2 명령 패턴 정보」인「#DEL#*SOURCE-COMPUTER. XXXXXX. #CHG# SOURCE-COMPUTER. IBM-AS400.」로 변환하는 것을 도시한다. 또한,「XXXXXX」는 임의의 변수명을 나타낸다. 또한,「#DEL#」는 삭제한 것을 나타낸다.「#CHG#」는 변환한 결과인 것을 나타낸다. 또한, 본 소스에서,「*」는 코멘트 행이고, 「#」로부터「#」는 코멘트인 것을 나타낸다.
또한, 도5는 프로그램 저장부(102)에 저장되어 있는 구 프로그램의 예이다.도8은 해석부(103)가 해석한 결과를 도시한 명령 패턴 출현 횟수 관리표이다. 또한 조건 저장부(1002)는, 출현 횟수가 2회 이상인 제1 명령 패턴 정보의 프로그램 행을 제2 명령 패턴 정보로 변환한다라는 조건을 유지하고있는 것으로 한다.
그리고, 명령 패턴 변환부(1003)가 도5의 구 프로그램을 변환하여 생성하고, 신 프로그램 출력부(1004)가 출력한 신 프로그램의 예를 도13에 도시한다. 도13에 있어서, 신 프로그램에서 새롭게 생성된 행이 밑줄로 도시되어 있다. 즉, 신 프로 그램에서, 변환된 행과 변환되어 있지 않은 행이 시각적으로 구별되어 표시되어 있다.
도13의 신 프로그램에서, ①은 명령 패턴 정보 관리표의 「ID=1」의 행에 의해 변환된 부분이다. ②는 명령 패턴 정보 관리표의 「ID=2」의 행에 의해 변환된 부분이다.
또한, 도12의 명령 패턴 정보 관리표에서, 설명의 편의상, 구 프로그램 1행에 대해서, 신 프로그램 n행(n은 자연수)이 대응하는 경우만을 기재하였지만, 구 프로그램 m행(m은 2 이상의 자연수)에 대해서, 신 프로그램 n행(n은 자연수)이 대응해도 좋다.
이상, 본 실시 형태에 의하면, 변환 대상으로 하는 소스 프로그램이 포함하는 명령 패턴의 해석이 가능해지고, 그 결과, 효율적으로 소스 프로그램을 자동 변환 또는 반자동 변환할 수 있다. 구체적으로는, 소스 프로그램을 변환하기 위한 프로그램을 개발할 필요가 없는 일정 미만의 출현 횟수의 명령 패턴은, 수작업으로 수정하고, 일정 이상의 출현 횟수(예를 들면, 2회 이상의 출현 횟수)의 명령 패턴만 소스 프로그램을 변환하기 위한 프로그램을 개발해 놓고, 당해 변환 프로그램을 이용해서 자동 변환함으로써, 효율적으로 프로그램을 변환할 수 있다. 이러한 프로그램 자동 변환 장치에 의해, 예를 들면, 어떤 환경에서 동작하고 있던 프로그램을 새로운 환경에서 동작시키는 작업이 상당히 효율적으로 또한 안전하게 수행된다.
또한, 본 실시 형태에서, 프로그램을 개발할 필요가 없는 일정 미만의 출현 횟수의 명령 패턴은 수작업으로 수정하기 때문에, 프로그램 자동 변환 장치는 수작 업으로 수정하기 위한 입력 수단을 구비한다. 입력 수단이란, 예를 들면, 키보드나 마우스 등이다.
또한, 본 실시 형태에서, 도14에 도시한 바와 같이, 변환 후의 신 프로그램에서, 수작업에 의해 변환한 부분과, 자동 변환한 부분과, 변환하지 않은 부분을 시각적으로 구별하는 형태로, 신 프로그램을 축적이나 표시 등을 해도 좋다. 도14의 신 프로그램에서,「@」로부터 「@」는 수작업에 의한 작업을 나타내는 코멘트이다. 「@DEL@」는 수작업으로 삭제한 행임을 나타내고, 「@ADD@」는 수작업으로 추가한 행임을 나타낸다.
또한, 본 실시 형태에서, 자동 변환할지, 수작업으로 변환할지를 판단하기 위한 조건은, 프로그램에서의 제1 명령 패턴 정보의 출현 횟수를 파라미터로 하는 조건(상기 예에서는, 2회 이상의 출현 횟수의 경우에 자동 변환한다는 조건)이었으나, 다른 조건에 의해 결정해도 좋다. 또한, 사용자의 입력에 의해 자동 변환하는 제1 명령 패턴을 지시하는 구성이어도 좋다.
또한, 본 실시 형태에서 설명한 동작은, 컴퓨터 판독이 가능한 프로그램으로 실현해도 좋다. 당해 프로그램은, CD-ROM 등의 기록 매체에 기록되어 유포되어도 좋고, 네트워크 배신에 의해 유포되어도 좋고, 방송으로 유포되어도 좋다. 이러한 점은, 다른 실시 형태에서도 동일하다. 또한, 본 실시 형태에서 설명한 동작을 실현하는 프로그램은, 컴퓨터에, 구 소스 프로그램의 명령 패턴을 나타내는 정보인 제1 명령 패턴 정보와, 신 소스 프로그램의 명령 패턴을 나타내는 정보인 제2 명령 패턴 정보의 쌍을 하나 이상 저장하고 있고, 구 소스 프로그램에서, 상기 하나 이 상의 제1 명령 패턴 정보가 몇 회 출현하는지를 해석하는 해석 단계, 상기 해석 단계에서의 해석 결과를 출력하는 해석 결과 출력 단계, 상기 해석 단계에서, 제1 명령 패턴 정보의 출현 횟수가 소정 횟수(소정 횟수는 2 이상임) 이상이라고 해석된 제1 명령 패턴 정보에 대응하는 구 소스 프로그램의 기술(記述) 부분을, 당해 제1 명령 패턴 정보와 쌍을 이루는 제2 명령 패턴 정보에 대응하도록 변환하는 명령 패턴 변환 단계, 상기 명령 패턴 변환 단계에서 상기 구 소스 프로그램을 변환한 결과인 신 프로그램을 출력하는 신 프로그램 출력 단계, 및 상기 해석 단계에서, 제1 명령 패턴 정보의 출현 횟수가 상기 소정 횟수 미만이라고 해석된 제1 명령 패턴 정보에 대응하는 구 소스 프로그램의 기술(記述) 부분에 대해서, 사용자의 수작업에 의한 당해 구 소스 프로그램의 기술(記述) 부분을 신 소스 프로그램으로 변경하는 입력을 받아 들이는 단계를 실행시키기 위한 프로그램이다.
또한, 본 실시 형태에서, 하나의 프로그램 자동 변환 장치에서 프로그램의 변환을 수행하였지만, 다수의 장치에서 처리를 분담해도 좋다. 즉, 이하의 프로그램 자동 변환 방법을 다수의 장치에서 실현해도 좋다. 구 소스 프로그램의 명령 패턴을 나타내는 정보인 제1 명령 패턴 정보와, 신 소스 프로그램의 명령 패턴을 나타내는 정보인 제2 명령 패턴 정보의 쌍을 하나 이상 기억부에 저장하고 있고, 구 소스 프로그램에서, 상기 하나 이상의 제1 명령 패턴 정보가 몇 회 출현하는지를 해석 수단을 이용해서 해석하는 해석 단계, 상기 해석 단계에서의 해석 결과를 출력 수단을 이용해서 출력하는 해석 결과 출력 단계, 상기 해석 단계에서, 제1 명령 패턴 정보의 출현 횟수가 소정 횟수(소정 횟수는 2 이상임) 이상이라고 해석된 제1 명령 패턴 정보에 대응하는 구 소스 프로그램의 기술(記述) 부분을, 당해 제1 명령 패턴 정보와 쌍을 이루는 제2 명령 패턴 정보에 대응하도록, 변환 수단을 이용해서 변환하는 명령 패턴 변환 단계, 상기 명령 패턴 변환 단계에서, 상기 구 소스 프로그램을 변환한 결과인 신 소스 프로그램을 출력 수단을 이용해서 출력하는 신 프로그램 출력 단계, 및 상기 해석 단계에서 제1 명령 패턴 정보의 출현 횟수가 상기 소정 횟수 미만이라고 해석된 제1 명령 패턴 정보에 대응하는 구 소스 프로그램의 기술(記述) 부분에 대해서, 사용자의 수작업에 의한 당해 구 소스 프로그램의 기술(記述) 부분을 신 소스 프로그램으로 변경하는 입력 수단을 이용한 입력을 받아 들이는 단계를 포함하고, 어떤 환경에서 동작하고 있던 프로그램을 다른 환경에서 동작시키기 위한 프로그램 자동 변환 방법에 의해, 효율적으로 또한 문제없이 프로그램을 이식할 수 있다.
또한, 본 실시 형태에서, 전술한 프로그램 자동 변환 장치는, 새로운 환경(즉, 이식 장소의 환경)에서 동작하는 프로그램을 생산하는 방법을 실시하는 장치라고 말할 수 있다. 즉, 프로그램 자동 변환 장치는 이하의 프로그램 생산 방법을 실현한다. 이는, 구 소스 프로그램의 명령 패턴을 나타내는 정보인 제1 명령 패턴 정보와, 신 소스 프로그램의 명령 패턴을 나타내는 정보인 제2 명령 패턴 정보의 쌍을 하나 이상 기억부에 저장하고 있고, 구 소스 프로그램에서, 상기 하나 이상의 제1 명령 패턴 정보가 몇 회 출현하는지를 해석 수단을 이용해서 해석하는 해석 단계, 상기 해석 단계에서의 해석 결과를 출력 수단을 이용해서 출력하는 해석 결과 출력 단계, 상기 해석 단계에서 제1 명령 패턴 정보의 출현 횟수가, 소정 횟수(소 정 횟수는 2 이상임) 이상이라고 해석된 제1 명령 패턴 정보에 대응하는 구 소스 프로그램의 기술(記述) 부분을 당해 제1 명령 패턴 정보와 쌍을 이루는 제2 명령 패턴 정보에 대응하도록 변환 수단을 이용하여 변환하는 명령 패턴 변환 단계, 상기 명령 패턴 변환 단계에서, 상기 구 소스 프로그램을 변환한 결과인 신 소스 프로그램을 출력 수단을 이용하여 출력하는 신 프로그램 출력 단계, 및 상기 해석 단계에서 제1 명령 패턴 정보의 출력 횟수가 상기 소정 횟수 미만이라고 해석된 제1 명령 패턴 정보에 대응하는 구 소스 프로그램의 기술(記述) 부분에 대해서, 사용자의 수작업에 의한 당해 구 소스 프로그램의 기술(記述) 부분을 신 소스 프로그램으로 변경하는 입력 수단을 이용한 입력을 받아 들이는 단계를 포함하고, 어떤 환경에서 동작하고 있던 프로그램으로부터 다른 환경에서 동작시키기 위한 프로그램을 생산하는 프로그램의 생산 방법이다. 또한, 상기의 프로그램의 생산 방법에서의 신 프로그램 출력 단계는, 신 소스 프로그램 중에서, 상기 명령 패턴 변환 단계에서 변환한 부분과 변환하지 않은 부분을 시각적으로 구별하여 출력하는 프로그램의 생산 방법이어도 좋다.
또한, 본 실시 형태에서, 전술한 프로그램의 생산 방법을 실현하는 프로그램 생산 장치는, 이하와 같은 새로운 환경(즉, 이식 장소의 환경)에서 동작하는 프로그램을 생산하는 장치라고 말할 수 있다. 즉, 이러한 생산 장치는, 구 소스 프로그램의 명령 패턴을 나타내는 정보인 제1 명령 패턴 정보와 신 소스 프로그램의 명령 패턴을 나타내는 정보인 제2 명령 패턴 정보의 쌍을 하나 이상 저장하고 있는 명령 패턴 대응 정보 저장부, 구 소스 프로그램에서, 하나 이상의 제1 명령 패턴 정보가 몇 회 출현하는지를 해석하는 해석부, 해석부에서의 해석 결과를 출력하는 해석 결과 출력부, 해석부에서, 제1 명령 패턴 정보의 출현 횟수가 소정 횟수(소정 횟수는 2 이상임) 이상이라고 해석된 제1 명령 패턴 정보에 대응하는 구 소스 프로그램의 기술(記述) 부분을, 당해 제1 명령 패턴 정보와 쌍을 이루는 제2 명령 패턴 정보에 대응하도록 변환하는 명령 패턴 변환부, 명령 패턴 변환부에서, 구 소스 프로그램을 변환한 결과인 신 소스 프로그램을 출력하는 신 프로그램 출력부, 및 해석부에서, 제1 명령 패턴 정보의 출현 횟수가 소정 횟수 미만이라고 해석된 제1 명령 패턴 정보에 대응하는 구 소스 프로그램의 기술(記述) 부분에 대해서, 사용자의 수작업에 의한 당해 구 소스 프로그램의 기술(記述) 부분을 신 소스 프로그램으로 변경하는 입력을 받아 들이는 입력 수신부를 포함하고, 어떤 환경에서 동작하고 있던 구 소스 프로그램으로부터 다른 환경에서 동작시키기 위한 신 소스 프로그램을 생산하는 프로그램의 생산 장치이다. 또한, 전술한 바와 같이, 상기의 신 프로그램 출력부는 신 소스 프로그램 중에서 명령 패턴 변환부가 변환한 부분와 변환하지 않은 부분을 시각적으로 구별해서 출력해도 좋다.
본 발명에 따른 프로그램 변환 방법 및 장치 등은 변환 대상으로 하는 프로그램이 포함하는 명령 패턴의 해석이 가능하고, 그 결과, 효율적으로 프로그램을 이식하는 방법 및 장치 등으로서 유용하다.

Claims (10)

  1. 구 소스 프로그램의 명령 패턴을 나타내는 정보인 제1 명령 패턴 정보와, 신 소스 프로그램의 명령 패턴을 나타내는 정보인 제2 명령 패턴 정보의 쌍을 하나 이상 기억부에 저장하고 있고,
    구 소스 프로그램에서, 상기 하나 이상의 제1 명령 패턴 정보가 몇 회 출현하는지를 해석 수단을 이용해서 해석하는 해석 단계;
    상기 해석 단계에서의 해석 결과를 출력 수단을 이용해서 출력하는 해석 결과 출력 단계;
    상기 해석 단계에서, 제1 명령 패턴 정보의 출현 횟수가 소정 횟수(소정 횟수는 2 이상임) 이상이라고 해석된 제1 명령 패턴 정보에 대응하는 구 소스 프로그램의 기술(記述) 부분을, 당해 제1 명령 패턴 정보와 쌍을 이루는 제2 명령 패턴 정보에 대응하도록 변환 수단을 이용해서 변환하는 명령 패턴 변환 단계;
    상기 명령 패턴 변환 단계에서, 상기 구 소스 프로그램을 변환한 결과인 신 소스 프로그램을 출력 수단을 이용해서 출력하는 신 프로그램 출력 단계; 및
    상기 해석 단계에서, 제1 명령 패턴 정보의 출현 횟수가 상기 소정 횟수 미만이라고 해석된 제1 명령 패턴 정보에 대응하는 구 소스 프로그램의 기술(記述) 부분에 대해서, 사용자의 수작업에 의한 당해 구 소스 프로그램의 기술(記述) 부분을 신 소스 프로그램으로 변경하는, 입력 수단을 이용한 입력을 받아 들이는 단계
    를 포함하고,
    어떤 환경에서 동작하고 있던 프로그램을 다른 환경에서 동작시키기 위한
    프로그램 자동 변환 방법.
  2. 제1항에 있어서,
    상기 신 프로그램 출력 단계는, 신 소스 프로그램 중에서 상기 명령 패턴 변환 단계에서 변환한 부분과 변환하지 않은 부분을 시각적으로 구별하여 출력하는
    프로그램 자동 변환 방법.
  3. 컴퓨터에, 구 소스 프로그램의 명령 패턴을 나타내는 정보인 제1 명령 패턴 정보와, 신 소스 프로그램의 명령 패턴을 나타내는 정보인 제2 명령 패턴 정보의 쌍을 하나 이상 저장하고 있고,
    구 소스 프로그램에서, 상기 하나 이상의 제1 명령 패턴 정보가 몇 회 출현하는지를 해석하는 해석 단계;
    상기 해석 단계에서의 해석 결과를 출력하는 해석 결과 출력 단계;
    상기 해석 단계에서, 제1 명령 패턴 정보의 출현 횟수가 소정 횟수(소정 횟수는 2 이상임) 이상이라고 해석된 제1 명령 패턴 정보에 대응하는 구 소스 프로그램의 기술(記述) 부분을, 당해 제1 명령 패턴 정보와 쌍을 이루는 제2 명령 패턴 정보에 대응하도록 변환하는 명령 패턴 변환 단계;
    상기 명령 패턴 변환 단계에서 상기 구 소스 프로그램을 변환한 결과인 신 프로그램을 출력하는 신 프로그램 출력 단계; 및
    상기 해석 단계에서, 제1 명령 패턴 정보의 출현 횟수가 상기 소정 회수 미만이라고 해석된 제1 명령 패턴 정보에 대응하는 구 소스 프로그램의 기술(記述) 부분에 대해서, 사용자의 수작업에 의한 당해 구 소스 프로그램의 기술(記述) 부분을 신 소스 프로그램으로 변경하는 입력을 받아 들이는 단계를 실행시키기 위한 프로그램
    을 기록한 컴퓨터-판독가능 기록 매체.
  4. 제3항에 있어서,
    상기 신 프로그램 출력 단계는, 신 소스 프로그램 중에서 상기 명령 패턴 변환 단계에서 변환한 부분과 변환하지 않은 부분을 시각적으로 구별하여 출력하는
    컴퓨터-판독가능 기록 매체.
  5. 구 소스 프로그램의 명령 패턴을 나타내는 정보인 제1 명령 패턴 정보와, 신 소스 프로그램의 명령 패턴을 나타내는 정보인 제2 명령 패턴 정보의 쌍을 하나 이상 저장하고 있는 명령 패턴 대응 정보 저장부;
    구 소스 프로그램에서, 상기 하나 이상의 제1 명령 패턴 정보가 몇 회 출현하는지를 해석하는 해석부;
    상기 해석부에서의 해석 결과를 출력하는 해석 결과 출력부;
    상기 해석부에서, 제1 명령 패턴 정보의 출현 횟수가 소정 횟수(소정 횟수는 2 이상임) 이상이라고 해석된 제1 명령 패턴 정보에 대응하는 구 소스 프로그램의 기술(記述) 부분을, 당해 제1 명령 패턴 정보와 쌍을 이루는 제2 명령 패턴 정보에 대응하도록 변환하는 명령 패턴 변환부;
    상기 명령 패턴 변환부에서, 상기 구 소스 프로그램을 변환한 결과인 신 소스 프로그램을 출력하는 신 프로그램 출력부;및
    상기 해석부에서, 제1 명령 패턴 정보의 출현 횟수가 상기 소정 횟수 미만이라고 해석된 제1 명령 패턴 정보에 대응하는 구 소스 프로그램의 기술(記述) 부분에 대해서, 사용자의 수작업에 의한 당해 구 소스 프로그램의 기술(記述) 부분을 신 소스 프로그램으로 변경하는 입력을 받아 들이는 입력 수신부
    를 포함하는 프로그램 자동 변환 장치.
  6. 제5항에 있어서,
    상기 신 프로그램 출력부는, 신 소스 프로그램 중에서 상기 명령 패턴 변환부가 변환한 부분과 변환하지 않은 부분을 시각적으로 구별하여 출력하는
    프로그램 자동 변환 장치.
  7. 구 소스 프로그램에서, 하나 이상의 제1 명령 패턴 정보가 몇 회 출현하는지를 해석하는 해석 단계;
    상기 해석 단계에서의 해석 결과를 출력하는 해석 결과 출력 단계;
    상기 해석 단계에서, 제1 명령 패턴 정보의 출현 횟수가 소정 횟수(소정 횟수는 2 이상임) 이상이라고 해석된 제1 명령 패턴 정보에 대응하는 구 소스 프로그램의 기술(記述) 부분을, 당해 제1 명령 패턴 정보와 쌍을 이루는 제2 명령 패턴 정보에 대응하도록 변환하는 명령 패턴 변환 단계;
    상기 명령 패턴 변환 단계에서, 상기 구 소스 프로그램을 변환한 결과인 신 소스 프로그램을 출력하는 신 프로그램 출력 단계; 및
    상기 해석 단계에서, 제1 명령 패턴 정보의 출현 횟수가 상기 소정 횟수 미만이라고 해석된 제1 명령 패턴 정보에 대응하는 구 소스 프로그램의 기술(記述) 부분에 대해서, 사용자의 수작업에 의한 당해 구 소스 프로그램의 기술(記述) 부분을 신 소스 프로그램으로 변경하는 입력을 받아 들이는 단계
    를 포함하고,
    어떤 환경에서 동작하고 있던 구 소스 프로그램으로부터 다른 환경에서 동작시키기 위한 신 소스 프로그램을 생산하는
    프로그램의 생산 방법.
  8. 제7항에 있어서,
    상기 신 프로그램 출력 단계는, 신 소스 프로그램 중에서 상기 명령 패턴 변환 단계에서 변환한 부분과 변환하지 않은 부분을 시각적으로 구별하여 출력하는
    프로그램의 생산 방법.
  9. 구 소스 프로그램의 명령 패턴을 나타내는 정보인 제1 명령 패턴 정보와, 신 소스 프로그램의 명령 패턴을 나타내는 정보인 제2 명령 패턴 정보의 쌍을 하나 이상 저장하고 있는 명령 패턴 대응 정보 저장부;
    구 소스 프로그램에서, 상기 하나 이상의 제1 명령 패턴 정보가 몇 회 출현하는지를 해석하는 해석부;
    상기 해석부에서의 해석 결과를 출력하는 해석 결과 출력부;
    상기 해석부에서, 제1 명령 패턴 정보의 출현 횟수가 소정 횟수(소정 횟수는 2 이상임) 이상이라고 해석된 제1 명령 패턴 정보에 대응하는 구 소스 프로그램의 기술(記述) 부분을 당해 제1 명령 패턴 정보와 쌍을 이루는 제2 명령 패턴 정보에 대응하도록 변환하는 명령 패턴 변환부;
    상기 명령 패턴 변환부에서, 상기 구 소스 프로그램을 변환한 결과인 신 소스 프로그램을 출력하는 신 프로그램 출력부; 및
    상기 해석부에서, 제1 명령 패턴 정보의 출현 횟수가 상기 소정 횟수 미만이 라고 해석된 제1 명령 패턴 정보에 대응하는 구 소스 프로그램의 기술(記述) 부분에 대해서, 사용자의 수작업에 의한 당해 구 소스 프로그램의 기술(記述) 부분을 신 소스 프로그램으로 변경하는 입력을 받아 들이는 입력 수신부
    를 포함하고,
    어떤 환경에서 동작하고 있던 구 소스 프로그램으로부터 다른 환경에서 동작시키기 위한 신 소스 프로그램을 생산하는
    프로그램의 생산 장치.
  10. 제9항에 있어서,
    상기 신 프로그램 출력부는, 신 소스 프로그램 중에서 상기 명령 패턴 변환부가 변환한 부분과 변환하지 않은 부분을 시각적으로 구별하여 출력하는
    프로그램의 생산 장치.
KR1020047018061A 2002-12-05 2003-11-28 프로그램 자동 변환 방법 및 프로그램 자동 변환 장치 KR100688444B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2002354264A JP3494376B1 (ja) 2002-12-05 2002-12-05 プログラム解析装置およびプログラム
JPJP-P-2002-00354264 2002-12-05

Publications (2)

Publication Number Publication Date
KR20050030896A KR20050030896A (ko) 2005-03-31
KR100688444B1 true KR100688444B1 (ko) 2007-03-02

Family

ID=31712378

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020047018061A KR100688444B1 (ko) 2002-12-05 2003-11-28 프로그램 자동 변환 방법 및 프로그램 자동 변환 장치

Country Status (6)

Country Link
US (1) US7831964B2 (ko)
JP (1) JP3494376B1 (ko)
KR (1) KR100688444B1 (ko)
CN (1) CN100345116C (ko)
AU (1) AU2003284504A1 (ko)
WO (1) WO2004051470A1 (ko)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100673499B1 (ko) * 2005-01-13 2007-01-24 한국과학기술연구원 디지털 합금 다원 화합물 반도체의 분산 브랙 반사경
JP4712512B2 (ja) * 2005-10-14 2011-06-29 富士通株式会社 プログラム変換プログラム、プログラム変換装置、プログラム変換方法
JP4115511B1 (ja) * 2007-05-08 2008-07-09 株式会社システムズ プログラムパターン分析装置、パターン出現状況情報生産方法、パターン情報生成装置、およびプログラム
US8490052B2 (en) * 2008-10-14 2013-07-16 Microsoft Corporation Declarative programming model for authoring and execution control and data flow for resource oriented system
US8533666B2 (en) * 2008-10-17 2013-09-10 Microsoft Corporation Interactive design environments to visually model, debug and execute resource oriented programs
US8635694B2 (en) * 2009-01-10 2014-01-21 Kaspersky Lab Zao Systems and methods for malware classification
JP2012053657A (ja) * 2010-09-01 2012-03-15 Systems:Kk 情報処理装置、情報処理方法、及びプログラム
JP5124660B2 (ja) * 2011-02-01 2013-01-23 株式会社システムズ プログラムの生産方法および生産装置
US8621442B2 (en) * 2011-02-09 2013-12-31 Beek Fund B.V. L.L.C. Quicker translation of a computer program source code
KR20130097252A (ko) * 2012-02-23 2013-09-03 삼성전자주식회사 소스 코드 분석에 의한 응용 프로그램 분석을 위한 방법 및 장치
JP6019843B2 (ja) * 2012-07-11 2016-11-02 富士通株式会社 拡張言語仕様情報提供方法、拡張言語仕様情報提供プログラム、およびコンパイル装置

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6446837A (en) * 1987-08-18 1989-02-21 Nec Corp Program translating device containing evolution control function
JPH086815A (ja) * 1994-06-21 1996-01-12 Mitsubishi Electric Corp デバッグ装置、コンパイラ及び統計解析装置
JPH11224199A (ja) * 1998-02-06 1999-08-17 Matsushita Electric Ind Co Ltd 翻訳装置と情報処理装置および記録媒体
JP2002001486A (ja) * 2000-06-20 2002-01-08 Asahi Tec Corp 地下構造物用蓋体の鋳型装置

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0542513Y2 (ko) 1987-09-16 1993-10-26
JPH01290036A (ja) 1988-05-18 1989-11-21 Nec Corp ソースメンバの文字列圧縮方式
JP3237869B2 (ja) * 1991-06-26 2001-12-10 株式会社東芝 電力系統運用訓練シミュレータ
JPH0553822A (ja) 1991-08-27 1993-03-05 Matsushita Electric Ind Co Ltd 共通部分式文の削除方法及びその装置
JPH05324343A (ja) 1992-05-22 1993-12-07 Hitachi Software Eng Co Ltd プログラムコンバートシステム
JPH0778742B2 (ja) * 1992-08-12 1995-08-23 インターナショナル・ビジネス・マシーンズ・コーポレイション コンピユータ・プログラム言語変換装置及びその方法
JP3907716B2 (ja) * 1995-06-29 2007-04-18 株式会社エース電研 遊技機
JPH1046837A (ja) * 1996-07-31 1998-02-17 Concrete Kooring Kk 工事用機械装置
JP3237693B2 (ja) 1996-08-19 2001-12-10 日本電気株式会社 言語処理装置および言語処理方法
US5950004A (en) * 1996-09-13 1999-09-07 The United States Of America As Represented By The Secretary Of The Navy Model-based process for translating test programs
US6044220A (en) * 1997-02-25 2000-03-28 Motorola, Inc. Method and apparatus for operating a data processor to execute software written using a foreign instruction set
WO1999063456A1 (fr) * 1998-06-04 1999-12-09 Matsushita Electric Industrial Co., Ltd. Dispositif de preparation de regles de conversion du langage, dispositif de conversion du langage et support d'enregistrement de programme
US6901588B1 (en) * 2000-04-17 2005-05-31 Codemesh, Inc. Sharing components between programming languages by use of polymorphic proxy
JP2002014826A (ja) 2000-06-29 2002-01-18 Toshiba Corp インタプリタおよびそのプログラム実行方法
US7086046B2 (en) * 2001-07-30 2006-08-01 International Business Machines Corporation Method and apparatus for displaying compiler-optimizated code

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6446837A (en) * 1987-08-18 1989-02-21 Nec Corp Program translating device containing evolution control function
JPH086815A (ja) * 1994-06-21 1996-01-12 Mitsubishi Electric Corp デバッグ装置、コンパイラ及び統計解析装置
JPH11224199A (ja) * 1998-02-06 1999-08-17 Matsushita Electric Ind Co Ltd 翻訳装置と情報処理装置および記録媒体
JP2002001486A (ja) * 2000-06-20 2002-01-08 Asahi Tec Corp 地下構造物用蓋体の鋳型装置

Also Published As

Publication number Publication date
AU2003284504A1 (en) 2004-06-23
US7831964B2 (en) 2010-11-09
CN100345116C (zh) 2007-10-24
WO2004051470A1 (ja) 2004-06-17
KR20050030896A (ko) 2005-03-31
JP3494376B1 (ja) 2004-02-09
JP2004185508A (ja) 2004-07-02
US20060156292A1 (en) 2006-07-13
CN1692334A (zh) 2005-11-02

Similar Documents

Publication Publication Date Title
US7805705B2 (en) Graphically depicting program code depth
US8091071B2 (en) Method and system for template-based code generation
US20040049768A1 (en) Method and program for compiling processing, and computer-readable medium recoding the program thereof
KR100688444B1 (ko) 프로그램 자동 변환 방법 및 프로그램 자동 변환 장치
CN111666526A (zh) 页面生成方法、装置、设备及存储介质
CN109086215B (zh) 一种嵌入式软件单元测试用例生成方法及***
US20070168984A1 (en) Compiling system, debugging system and program development system
WO2009098739A1 (ja) プログラム最適化装置およびプログラム最適化方法
CN105700867B (zh) 通过编译器借助动态可缩放矢量图形生成可执行应用程序的方法和编译器
JP2004341671A (ja) 情報処理システム、制御方法、制御プログラム、及び記録媒体
JP2007122135A (ja) 開発支援装置、開発支援方法、および、開発支援プログラム
CN110007922B (zh) 基于人工智能的图形化源代码的编译方法、装置和设备
JP2006301989A (ja) 計算機言語によるプログラムをブロック図から自動生成する方法と装置とプログラム
Zhang et al. Automated extraction of grammar optimization rule configurations for metamodel-grammar co-evolution
JP4698943B2 (ja) プログラム生産方法、プログラム生産装置、プログラム自動変換方法、およびプログラム
JP4354514B2 (ja) プログラム自動変換方法、プログラム自動変換装置、およびプログラム
JP4472768B2 (ja) プログラム解析装置、プログラム解析方法、およびプログラム
US11055069B2 (en) Tree structure data editing device, tree structure data editing method, and program
KR101705996B1 (ko) 자바스크립트 소스 코드를 최적화하기 위한 자바스크립트 소스 코드 정적 분석 장치 및 방법
JP5124660B2 (ja) プログラムの生産方法および生産装置
JP2007122187A (ja) プログラム・コード生成装置
CN110554860A (zh) 一种软件项目自然语言编程接口nli的构造方法及代码生成方法
KR20140147438A (ko) 마크업 파싱 장치, 방법 및 기록 매체
KR20020072969A (ko) 멀티미디어 동기화 언어 편집기 및 그 편집방법
CN113821204B (zh) 一种组件生成方法、装置、电子设备及可读存储介质

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

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20140120

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20141211

Year of fee payment: 9

FPAY Annual fee payment

Payment date: 20160105

Year of fee payment: 10

FPAY Annual fee payment

Payment date: 20161205

Year of fee payment: 11

FPAY Annual fee payment

Payment date: 20190221

Year of fee payment: 13

FPAY Annual fee payment

Payment date: 20200224

Year of fee payment: 14