KR19990030244A - 2단 점프를 이용하여 소오스 프로그램으로부터 오브젝트 프로그램을 생성하는 언어처리 시스템 및 방법 - Google Patents

2단 점프를 이용하여 소오스 프로그램으로부터 오브젝트 프로그램을 생성하는 언어처리 시스템 및 방법 Download PDF

Info

Publication number
KR19990030244A
KR19990030244A KR1019980040529A KR19980040529A KR19990030244A KR 19990030244 A KR19990030244 A KR 19990030244A KR 1019980040529 A KR1019980040529 A KR 1019980040529A KR 19980040529 A KR19980040529 A KR 19980040529A KR 19990030244 A KR19990030244 A KR 19990030244A
Authority
KR
South Korea
Prior art keywords
branch table
generating
address
program
jump instruction
Prior art date
Application number
KR1019980040529A
Other languages
English (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 KR19990030244A publication Critical patent/KR19990030244A/ko

Links

Classifications

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

언어 처리 시스템은 소오스 프로그램으로부터 메모리의 소거 가능 영역에 분기 테이블이 제공된 헤드 어드레스를 해석하는 헤드 어드레스 해석부 (41), 소오스 프로그램으로부터 분기 테이블 내에 점프 명령이 설정되는 위치를 해석하는 점프 명령 위치 해석부 (42), 점프 명령이 분기 테이블 내에 설정되는 어드레스에 대해 호출 명령을 생성하는 호출 명령 생성부 (51), 및 헤드 어드레스 해석부 (41) 및 점프 명령 위치 해석부 (42) 에 의한 해석 결과에 기초하여 메모리의 소거가능 영역에 분기 테이블을 생성하는 분기 테이블 생성부 (52) 를 구비한다.

Description

2단 점프를 이용하여 소오스 프로그램으로부터 오브젝트 프로그램을 생성하는 언어처리 시스템 및 방법
본 발명은 소오스 프로그램으로부터 오브젝트 프로그램을 생성하는 언어 처리 시스템 및 방법에 관한 것으로, 특히, 2단 점프를 이용하는 언어처리 시스템 및 방법에 관한 것이다.
CD-ROM 등과 같은 디스크 관련 종래 시장에 있어서, CD-ROM 에 기입된 프로그램을 디버깅 또는 버전업시키기 위해서는 프로그램을 재기입할 필요가 있다. 따라서, 재기입 프로그램을 갖는 새로운 CD-ROM 을 제공하는 방법이 채용되고 있다. 수요의 증가에 따라서, CD-ROM 등에 기입되는 프로그램을 디버깅하고 버전업시키기 위해서, 몇번이라도 소거 가능한 영역을 갖는 플래시 EEPROM을 내장한 마이크로컴퓨터에 대한 수요가 증가하고 있다. 이 경우에, CD-ROM 에 기입된 프로그램중 디버깅 부분과 버전업 부분이 플래시 EEPROM 에 기입되어 제공되도록 함으로서, 재프로그램된 새로운 CD-ROM 을 공급할 필요가 없어진다.
한편, 언어툴로서, ROM 의 비어있는 영역에 데이터를 한번만 기입이 가능한 원타임 EPROM 용 컴파일러에 관한 기술이 일본국 특개평 8-123679 호 공보에 개시되어 있다. 이하 이 컴파일러를 상세하게 설명한다.
도 7 은 종래 언어 처리 시스템의 일예의 설명에 이용하기 위한 원타임 EPROM 의 메모리맵으로서, (a) 는 프로그램 변경전 메모리맵을 나타내고, (b) 는 프로그램 변경후의 메모리맵을 나타낸다.
도 7 에 나타낸 바와 같이, 제어 프로그램등은 원타임 EPROM 의 소거 불가능한 영역 (770) 에 기입되고, 기입되는 실행 프로그램의 헤드 어드레스로의 점프 명령이 기입된 분기 테이블 (781) 이 소거 가능한 영역 (780) 에 제공된다. 비어있는 영역은 분기 테이블 (781) 의 점프 명령의 후방에 제공된다.
소거 불가능한 영역 (770) 에 기입된 제어프로그램에 따라 소거 가능 영역 (780) 에 기입된 실행 프로그램을 호출하는 경우, 상술한 컴파일러에 의해서 원타임 EPROM 에 오브젝트 프로그램을 기입한 후에, 시스템은 소거 불가능한 영역 (770) 에 있는 제어 프로그램으로 분기 테이블 (781) 을 다시한번 액세스하고, 그후, 분기 테이블 (781) 에 기입된 점프 명령에 따라 소망하는 실행 프로그램 (도 7 (a) 의 f1)의 헤드 어드레스를 점프시킴으로서, 상기 소망하는 실행 프로그램을 호출하여 실행시킨다.
상기 실행 프로그램을 변경시키는 경우, 변경된 실행 프로그램은 소거가능한 영역 (780) 중 비어있는 영역에 기입되고, 실행 프로그램의 헤드 어드레스 (도 7 (b) 의 f1_2) 로의 점프 명령은 분기 테이블 (781) 중 비어있는 영역에 기입된다. 변경전에 분기 테이블 (781) 에 기입된 점프 명령은 nop ( no operation) 명령으로 제기입된다. 상술한 방법에 따르면, 실행 프로그램은 소거가능 영역 (780) 에 비어있는 영역이 있는 한 변경될 수 있다.
그러나, 상술한 종래 언어처리 시스템은 ROM 의 비어있는 영역에 한번만 데이터를 기입하는 것이 가능한 원타임 EPROM 용 컴파일러이기 때문에, 한번 이용된 영역이 재이용되는 것은 불가능하다. 따라서, 실행 프로그램을 변경하는 회수가 제한되는 단점이 있다.
본 발명의 제 1 목적은 회수에 제한이 없이 실행 프로그램을 변경하는 것이 가능한 오브제트 프로그램을 생성하는 언어처리 시스템 및 방법을 제공하는데 있다.
본 발명의 제 2 목적은 오브젝트 프로그램을 기입하기 위해 메모리의 소거가능 영역에 기입된 실행 프로그램을 변경하는 경우에도, 미사용된 실행 프로그램이 기입된 무용한 영역을 버리지 않으며, 분기 테이블에 새로운 점프 명령을 기입하기 위해 비어있는 영역을 제공할 필요가 없는 오브젝트 프로그램을 생성하는 언어처리 시스템 및 방법을 제공하는데 있다.
본 발명의 제 3 목적은 소거 가능한 영역에 기입된 실행 프로그램을 변경하는 경우에도 전체 프로그램을 확장시키는 것을 방지할 수 있는 언어 처리 시스템 및 방법을 제공하는데 있다.
도 1 은 본 발명의 언어 처리 시스템에 의해서 생성된 오브젝트 프로그램이 기입되는 플래시 EEPROM 의 메모리맵을 나타낸 것으로, (a) 는 프로그램을 변경하기전 메모리맵이고, (b) 는 프로그램 변경후의 메모리맵을 나타낸 도면.
도 2 는 본 발명의 실시예에 따라 도 1 에 나타낸 플래시 EEPROM 의 메모리맵에 기입될 오브젝트 프로그램을 생성하는 언어 처리 시스템의 구조를 나타낸 블록도.
도 3 은 도 2 에 나타낸 언어 처리 시스템에 따라 소거 불가능한 영역에 기입될 제어 프로그램에 대한 언어 처리를 나타낸 순서도.
도 4 는 도 2 에 나타낸 언어 처리 시스템에 따라 소거 가능한 영역에 기입될 실행 프로그램에 대한 언어 처리를 나타내는 순서도.
도 5 는 실행 프로그램을 호출시, 2 단 점프를 사용하지 않는 오브젝트 프로그램을 나타낸 도면.
도 6 은 실행 프로그램을 호출시, 2 단 점프를 이용하는 본 발명의 언어 처리 시스템에 의해서 생성되는 오브젝트 프로그램의 예를 나타낸 도면.
도 7 은 종래 언어 처리 시스템의 일예를 설명하는데 이용되는 원타임 EPROM 의 메모리맵으로서, (a) 는 프로그램 변경전 메모리맵이고 (b) 는 프로그램 변경후 메모리맵을 나타낸 도면.
*도면의 주요 부분에 대한 부호의 설명*
41 : 헤드 어드레스 해석부
42 : 점프 명령 위치 해석부
51 : 호출 명령 생성부
52 : 분기 테이블 생성부
170 : 소거 불가능 영역
180 : 소거 가능 영역
181 : 분기 테이블
181A : 점프 명령
본 발명의 제 1 실시예에 따르면,
소오스 프로그램으로부터 오브젝트 프로그램을 생성하고 소거 가능 영역 및 소거 불가능 영역을 포함하는 메모리에 오브젝트 프로그램을 기입하는 언어 처리 시스템은,
메모리의 소거 가능 영역에 부여된 어드레스로 점프시키는 점프 명령을 갖는 분기 테이블을 생성하는 분기 테이블 생성 수단, 및
소거 불가능 영역에 점프 명령을 호출하는 호출 명령을 생성하는 호출 명령 생성 수단을 구비한다.
바람직한 구성에서는, 언어 처리 시스템은 소오스 프로그램으로부터 분기 테이블상의 정보를 해석하는 구문 해석 수단을 더 구비하고, 분기 테이블 생성 수단은 구문 해석 수단 에서의 해석 결과에 기초하여 분기 테이블을 생성한다.
다른 바람직한 구성에서는, 언어 처리 시스템은 소오스 프로그램으로부터 분기 테이블상의 정보를 해석하는 구문 해석 수단을 더 구비하고,
구문 해석 수단은 분기 테이블이 설정되는 헤드 어드레스를 해석하는 헤드 어드레스 해석 수단, 및 점프 명령이 분기 테이블내에 설정되는 위치를 해석하는 점프 명령 위치 해석 수단을 포함하고,
분기 테이블 생성 수단은 상기 구문 해석 수단에서의 해석 결과에 기초하여 분기 테이블을 생성한다.
또다른 바람직한 구성에서는, 분기 테이블 생성 수단은 해석된 헤드 어드레스에 대응하는 분기 테이블내의 점프 명령 설정 위치의 어드레스로 점프 명령을 생성함으로서, 소거가능 영역에 점프 명령을 포함하는 분기 테이블을 생성한다.
또다른 바람직한 구성에서는, 호출 명령 생성 수단은 해석된 헤드 어드레스에 대응하는 분기 테이블내의 점프 명령 설정 위치의 어드레스로의 호출 명령을 생성한다.
또다른 바람직한 구성에서는, 언어 처리 시스템은 외부로부터 입력된 소오스 프로그램 및 동작 내용을 해석하는 옵션 해석 수단, 및 분기 테이블 생성 수단 및 호출 명령 생성 수단에서 코드 생성이 수행된 오브젝트 프로그램을 저장하는 오브젝트 프로그램 파일을 더 구비한다.
또다른 바람직한 구성에서는, 언어 처리 시스템은 소오스 프로그램으로부터 분기 테이블상의 정보를 해석하는 구문 해석 수단, 외부로부터 입력되는 소오스 프로그램 및 동작 내용을 해석하는 옵션 해석 수단, 및 분기 테이블 생성 수단 및 호출 명령 생성 수단에서 코드 생성이 수행된 오브젝트 프로그램을 저장하는 오브젝트 프로그램 파일을 더 구비하고,
구문 해석 수단은 분기 테이블이 설정된 헤드 어드레스를 해석하는 헤드 어드레스 해석 수단, 및 점프 명령이 분기 테이블 내에 설정되는 위치를 해석하는 점프 명령 위치 해석 수단을 포함하고,
분기 테이블 생성 수단은 구문 해석 수단에서의 해석 결과에 기초하여 분기 테이블을 생성한다.
바람직하게는 메모리는 플래시 EEPROM 이다.
본 발명의 제 2 실시예에 따르면, 소오스 프로그램으로부터 오브젝트 프로그램을 생성하고 소거 가능 영역과 소거 불가능 영역을 포함하는 메모리에 상기 오브젝트 프로그램을 기입하는 언어 처리 방법은,
소오스 프로그램으로부터, 메모리의 소거가능 영역에 부여된 어드레스로 점프시키는 점프 명령을 갖는 분기 테이블이 설정되도록 헤드 어드레스를 해석하는 단계,
소오스 프로그램으로부터, 점프 명령이 분기 테이블내에 설정되는 위치를 해석하는 단계,
점프 명령이 분기 테이블내에 설정되는 어드레스에 대한 호출 명령을 생성하는 단계, 및
해석 결과에 기초하여 소거 가능 영역내에 분기 테이블을 생성하는 단계를 구비한다.
바람직한 구성에서, 분기 테이블 생성 단계에서는, 해석된 헤드 어드레스에 대응하는 분기 테이블 내의 점프 명령 설정 위치의 어드레스로 점프 명령을 생성함으로서, 소거 가능한 영역에 점프 명령을 포함하는 분기 테이블을 생성한다.
다른 바람직한 구성에서, 호출 명령 생성 단계에서는, 해석된 헤드 어드레스에 대응하는 분기 테이블 내의 점프 명령 설정 위치의 어드레스로의 호출 명령이 생성된다.
본 발명의 제 3 실시예에 따르면, 소오스 프로그램으로부터 오브젝트 프로그램을 생성하고 소거 가능 영역과 소거 불가능 영역을 포함하는 메모리에 상기 오브젝트 프로그램을 생성하는 언어 처리 방법은,
메모리의 소거 불가능 영역에 기입되는 소오스 프로그램의 언어 처리에서는,
소오스 프로그램으로부터, 메모리의 소거 가능 영역에 부여된 어드레스로 점프시키는 점프 명령을 갖는 분기 테이블이 설정되도록 하는 헤드 어드레스를 해석하는 단계,
소오스 프로그램으로부터, 점프 명령이 분기 테이블내에 설정되는 위치를 해석하는 단계, 및
점프 명령이 분기 테이블내에 설정되는 어드레스에 대응하는 호출 명령을 생성하는 단계를 구비하고,
메모리의 소거가능 영역에 기입되는 소오스 프로그램의 언어 처리에서는,
소오스 프로그램으로부터, 메모리의 소거 가능 영역에 부여된 어드레스로 점프시키는 점프 명령을 갖는 분기 테이블이 설정되도록 헤드 어드레스를 해석하는 단계,
소오스 프로그램으로부터, 점프 명령이 분기 테이블내에 설정되는 위치를 해석하는 단계, 및
해석 결과에 기초하여, 메모리의 소거 가능한 영역의 부여된 어드레스로 점프시키는 점프 명령을 갖는 분기 테이블을 생성하는 단계를 구비한다.
바람직한 구성에서, 분기 테이블 생성 단계에서는, 해석된 헤드 어드레스에 대응하는 분기 테이블내의 점프 명령 설정 위치의 어드레스로 점프 명령을 생성함으로서, 소거 가능 영역에 점프 명령을 포함하는 분기 테이블을 생성한다.
다른 바람직한 구성에서, 호출 명령 생성 단계에서는, 해석된 어드레스에 대응하는 분기 테이블내의 점프 명령 설정 위치의 어드레스로의 호출 명령이 생성된다.
본 발명의 또 다른 실시예에 따르면, 소오스 프로그램으로부터 오브젝트 프로그램을 생성하고 소거 가능 영역 및 소거 불가능 영역을 포함하는 메모리에 상기 오브젝트 프로그램을 기입하는 언어 처리 프로그램을 저장하는 컴퓨터 판독 가능 메모리로서, 언어 처리 프로그램은, 소오스 프로그램으로부터, 메모리의 소거 가능한 영역에 부여된 어드레스로 점프시키는 점프 명령을 갖는 분기 테이블이 설정되도록 헤드 어드레스를 해석하는 단계,
소오스 프로그램으로부터, 점프 명령이 분기 테이블내에 설정되는 위치를 해석하는 단계,
점프 명령이 분기 테이블내에 설정된 어드레스에 대한 호출 명령을 생성하는 단계, 및
해석 결과에 기초하여 소거 가능 영역내에 분기 테이블을 생성하는 단계를 구비한다.
본 발명의 형태 및 이점은 이하 상세한 설명으로부터 명백해질 것이다.
본 발명은 본 발명을 한정하는 것은 아니며 단지 설명과 이해를 도모하기 위해 취해진 발명의 바람직한 실시예에 대한 첨부된 도면과 이하 상세한 설명으로부터 더욱 명백하게 이해되어질 것이다.
이하, 본 발명의 바람직한 실시예를 첨부한 도면을 참조하여 상세하게 설명한다. 이하 설명에서, 다수의 특정 설명은 본 발명의 전반적인 이해를 도모하기 위한 것이다. 그러나, 본 발명은 이들 특정 설명 없이 당해 분야에서 숙련된 자들에게 실시될 수도 있다. 다른 예에서의, 공지된 구조는 본 발명의 명료화를 위해 나타내지 않는다.
도 1 은 본 발명의 언어 처리 시스템에 의해서 생성된 오브젝트 프로그램이 기입되는 플래시 EEPROM 의 메모리맵의 예를 나타낸 도면이다. 도 1 에서, (a) 는 프로그램을 변경하기전 메모리맵이고, (b) 는 프로그램을 변경한 후의 메모리맵을 나타낸다.
도 1 에 나타낸 형태에서, 제어 프로그램등은 플래시 EEPROM 의 소거 불가능 영역 (170) 에 기입되고, 기입되는 실행 프로그램의 헤드 어드레스로의 점프 명령 (181A) 이 기입된 분기 테이블 (181) 은 소거 가능 영역 (180) 에 제공된다.
도 2 는 본 발명의 실시예에 따라 도 1 에 나타낸 바와 같이 메모리맵의 플래시 EEPROM 에 기입될 실행 프로그램 및 제어 프로그램을 포함하는 오브젝트 프로그램을 생성하는 언어 처리 시스템의 구조를 나타낸 블록도이다.
도 2 에 나타낸 바와 같이, 언어 처리 시스템은 외부로부터의 처리를 명령하는 코맨드를 입력하는 옵션 (20), 옵션으로부터 입력된 코맨드를 해석하는 옵션 해석부 (30), 옵션 해석부 (30) 에 의한 결과에 기초하여 소오스 프로그램 파일 (10) 에 저장된 소오스 프로그램을 해석하는 구문 해석부 (40), 구문 해석부 (40) 에 의한 해석 결과에 기초하여 오브젝트 프로그램을 공급하기 위해 코드를 생성하는 코드 생성부 (50), 및 코드 생성부 (50) 로부터 공급된 오브젝트 프로그램을 저장하는 오브젝트 프로그램 파일 (60) 을 구비한다.
소오스 프로그램이 지정된 코드 생성 명령 및 소오스 프로그램의 소오스 코드의 표시 명령등을 나타낸 코맨드가 옵션 (20) 으로부터 입력된다. 옵션 (20) 으로부터의 코맨드는 옵션 해석부 (30) 에 의해서 해석되고, 구문 해석 처리는 구문 해석부 (40) 에 의해서 수행되고, 코드 생성은 코드 생성부 (50) 에 의해서 수행된다.
통상의 구문 해석 기능에 부가하여, 구문 해석부 (40) 는 분기 테이블 (181) 이 도 1 에 나타낸 메모리맵에 제공된 헤드 어드레스를 해석하는 헤드 어드레스 해석부 (41), 및 점프 명령이 분기 테이블 (181) 에 설정된 위치를 해석하는 점프 명령 위치 해석부 (42) 를 포함한다.
통상의 코드 생성 기능에 부가하여, 코드 생성부 (50) 는 소거 불가능 영역 (170) 에서, 점프 명령이 분기 테이블 (181) 의 내에 설정된 절대 어드레스에 대해 호출 명령을 생성하는 호출 명령 생성부 (51), 및 소거 가능 영역 (180)에서, 구문 해석부 (40) 에 의한 해석 결과에 기초하여 분기 테이블 (181) 을 생성하는 분기 테이블 생성부 (52) 를 포함한다.
이하, 상술한 바와 같이 구성된 실시예의 언어 처리 시스템에 의한 언어 처리 내용을 설명한다. 도 3 및 도 4 는 도 2 에 나타낸 언어 처리 시스템에서 언어 처리 방법을 설명하는데 이용되는 순서도로서, 도 3 은 플래시 EEPROM 의 소거 불가능한 영역에 기입될 제어 프로그램에 대한 언어 처리를 나타내고, 도 4 는 플래시 EEPROM 의 소거 가능 영역에 기입될 실행 프로그램에 대한 언어 처리를 나타낸다.
소거 불가능 영역 (170) 에 기입될 제어 프로그램에 대한 언어 처리 (컴파일 처리) 를 도 3 을 따라가면서 설명한다.
소오스 프로그램이 지정된 언어 처리를 명령하는 코맨드가 옵션 (20) 으로부터 입력된다. 옵션 해석부 (30) 에서 옵션 (20) 으로부터의 명령을 해석한 후에, 구문해석부 (40) 의 헤드어드레스 해석부 (41) 에서, 분기 테이블 (181) 이 소거 가능 영역 (180) 에 설정된 헤드 어드레스가 소오스 프로그램으로부터 해석된다 (단계 301).
구문 해석부 (40) 의 점프 명령 위치 해석부 (42) 에서, 점프 명령이 분기 테이블 (181) 에 설정되는 위치는 소오스 프로그램으로부터 해석된다 (단계 302).
따라서, 소거 불가능 영역 (170) 에서의 코드 생성이 종료되었는 지의 여부를 판정한다 (단계 303). 코드 생성이 종료되지 않은 것으로 판정되는 경우, 소거 가능 영역에 기입된 실행 프로그램이 호출되었는 지의 여부를 더 판정한다 (단계 304).
실행 프로그램이 단계 (304) 에서 호출된 것으로 판정된 경우, 점프 명령이 분기 테이블 (181) 에 설정된 절대 어드레스에 대한 호출 명령 (도 1 의 170A) 은 코드 생성부 (50) 의 호출 명령 생성부 (51) 에서 생성된다 (단계 305). 즉, 단계 (301)에서 해석된 헤드 어드레스에 대응하는 분기 테이블 (181) 내에서의 점프 명령 설정 위치의 어드레스에 대해 호출 명령이 생성된다.
한편, 실행 프로그램이 단계 (304) 에서 호출되지 않은 것으로 판정된 경우, 소거 불가능 영역 (170) 에서 종래 코드 생성이 수행되고 (단계 306), 단계 (305 또는 단계 306) 에서의 처리후에, 단계 (303) 에서의 처리로 복귀한다. 단계 (303) 에서의 코드 생성이 종료된 것으로 판정된 경우, 소거 불가능 영역 (170) 에 기입될 제어 프로그램에 대한 언어 처리가 완료된다.
도 4 를 따라가면서 소거 가능 영역 (180) 에 기입될 실행 프로그램에 대한 언어 처리 (컴파일 처리) 를 설명한다.
소오스 프로그램이 지정된 언어 처리를 명령하는 코맨드는 옵션 (20) 으로부터 입력된다. 옵션 해석부 (30) 에서 옵션 (20) 으로부터의 코맨드를 해석한 후에, 구문 해석부 (40) 의 헤드 어드레스 해석부 (41) 에서, 분기 테이블 (181) 이 소거 가능 영역 (180) 에 설정된 헤드 어드레스가 소오스 프로그램으로부터 해석된다 (단계 401).
점프 명령이 분기 테이블 (181) 에 설정되는 위치는 구문 해석부 (40) 의 점프 명령 위치 해석부 (42) 에서 소오스 프로그램으로부터 해석된다 (단계 402).
코드 생성부 (50) 의 분기 테이블 생성부 (52) 에서, 점프 명령은 구문 해석부 (40) 의 점프 명령 위치 해석부 (42) 와 헤드 어드레스 해석부 (41) 에 의한 해석 결과에 기초하여, 단계 (401) 에서 해석된 헤드 어드레스에 대응하는 분기 테이블 (181) 내의 점프 명령 설정 위치의 어드레스에서 생성되고, 점프 명령을 포함하는 분기 테이블 (181) 은 소거 가능 영역 (180) 내에서 생성된다 (단계 403).
따라서, 코드 생성이 소거 가능 영역 (180) 에서 종료된 것으로 판정되고 (단계 404), 코드 생성이 종료되지 않은 것으로 판정된 경우, 소거 가능 영역 (180) 에서 종래 코드 생성이 수행된다 (단계 405).
단계 (405) 에서 처리후에, 단계 (404) 의 처리로 복귀한다. 코드 생성이 단계 (404) 에서 종료된 것으로 판정되는 경우, 소거 가능 영역 (180) 에 기입되는 실행 프로그램에 대한 언어 처리가 완료된다.
상술한 바와 같은 언어 처리에 의해서 생성되는 오브젝트 프로그램은 오브젝트 프로그램 파일 (60) 에 저장된다. 오브젝트 프로그램은 상업적으로 생산되는 도 1 에 나타낸 바와 같은 플래시 EEPROM 의 메모리맵에 기입된다. 이 플래시 EEPROM 은 CD-ROM 에 기입된 프로그램, 예를 들면, 카네비게이션의 디버깅 또는 버전업에 이용된다.
상술한 실시예에서, 실행 프로그램을 호출하기 위해 2단 점프를 이용하는 컴파일러의 경우를 설명했다. 이번에는, 실행 프로그램을 호출하기 위해 2단 점프를 이용하는 경우와 이용하지 않는 경우를 비교하여 설명한다.
도 5 및 도 6 은 실행 프로그램을 호출에서의 2단 점프를 설명하는데 이용되는 도면으로서, 도 5 는 2단 점프를 이용하는 않는 경우를 나타낸 도면이고, 도 6 은 2단 점프를 이용하는 경우를 나타낸 도면이다.
도 5 에서, 소거 가능 영역 (180) 에서 0x5000 의 어드레스에 기입된 실행 프로그램 f1 은 소거 불가능 영역 (170) 에 기입된 호출 명령 call !!_f1 (0x5000 의 어드레스) 에 의해서 호출된다. 소거 가능 영역 (180) 에서의 0x6000 의 어드레스에 기입된 실행 프로그램 f2 은 소거 불가능 영역 (170) 에 기입된 call !!_f2 (0x6000 의 어드레스) 에 의해서 호출된다.
실행 프로그램 f1 및 f2 의 내용이 여기에서 변경되는 경우, 실행 프로그램 f1 및 f2 의 각 헤드 어드레스가 변경된다. 그러나, 실행 프로그램 f1 및 f2 의 각 헤드 어드레스는 소거 불가능 영역 (170) 에 기입되기 때문에, 실행 프로그램이 명령에 의해서 호출될 수 없는 경우가 발생한다.
본 발명의 언어 처리 시스템에 의해서 생성된 오브젝트 프로그램의 일예를 나타낸 도 6 에서, 소거 불가능한 영역 (170) 에 기입된 호출 명령 call !! 0408CH 은 소거 가능 영역 (180) 에서의 0408CH 의 어드레스에 있는 분기 테이블 (181) 에 기입된 점프 명령 br !!_f1 (0x5000 의 어드레스) 을 한번 액세스하는 것을 허용한다. 소거 가능 영역 (180) 에서의 0x5000 의 어드레스에 기입된 실행 프로그램 f1 은 0408CH 의 어드레스에 기입된 점프 명령 br !!_f1 (0x5000 의 어드레스) 에 의해서 호출된다.
마찬가지로, 소거 불가능 영역 (170) 에 기입된 호출 명령 call !! 04090H 은 소거 가능 영역 (180) 에서의 04090H 의 어드레스에 있는 분기 테이블에 기입된 점프 명령을 한번 액세스하는 것을 허용한다. 소거 가능 영역에서의 0x6000 의 어드레스에 기입된 실행 프로그램 f2 은 04090H 의 어드레스에 기입된 점프 명령 br !!_f2 (0x6000 의 어드레스) 에 의해서 호출된다.
실행 프로그램 f1 및 f2 의 내용이 여기에서 변경되는 경우, 실행 프로그램 f1 및 f2 의 각 헤드 어드레스가 변경되고, 소거 가능 영역 (180) 에 제공되는 분기 테이블 (181) 내의 각 점프 명령이 헤드 어드레스에 따라 변경되는 경우, 변경된 실행 프로그램 f1 및 f2 이 호출될 수 있다.
따라서, 실행 프로그램을 호출하기 위해 2단 점프를 이용하는 경우, 소거 불가능 영역 (170) 으로부터 소거 가능 영역 (180) 으로의 액세스는 소거 가능 영역 (180) 에 제공되는 분기 테이블 (181) 을 통해 허용된다. 따라서, 소거 가능 영역 (180) 에 기입된 실행 프로그램을 변경하면, f1 및 f2 와 같은 변경된 실행 프로그램은 소거 불가능 영역 (170) 에 기입된 명령을 변경시키지 않고 확실하게 호출될 수 있다.
실시예의 언어처리 시스템은 동작 처리부, 구문 해석부, 및 코드 생성부를 내장한 컴퓨터 처리기의 메모리에 언어 처리 프로그램을 로딩시킴으로서 구현될 수 있다. 언어처리 프로그램은 자기 디스크와 반도체 메모리등과 같은 메모리에 저장된다. 언어 처리 프로그램은 메모리로부터 컴퓨터 프로세서로 로딩되어, 컴퓨터 프로세서의 동작을 제어함으로서, 상술한 각 부분을 구현하여 언어처리를 실행한다.
상술한 바에 따르면, 본 발명은 소거 가능한 영역에 제공된 분기 테이블을 통해 소거 불가능 영역으로부터 소거가능 영역으로 다시 액세스하도록 설계되고, 소거 가능한 영역에 기입된 실행 프로그램을 변경하는 경우에도, 소거 불가능 영역에 기입된 명령을 변경하지 않고, 변경된 실행 프로그램을 호출할 수 있는 오브젝트 프로그램을 생성하는 것이 가능하다.
오브젝트 프로그램을 기입하기 위해 메모리의 소거 가능 영역에 프로그램을 몇번이고 재기입할 수 있기 때문에, 소거 가능한 영역에 기입된 실행 프로그램을 변경하는 경우에도, 사용되지 않는 실행 프로그램이 기입된 무용한 영역이 거의 존재하지 않게 되어, 분기 테이블에 새로운 점프 명령을 기입하기 위해 비어있는 영역을 제공할 필요가 없게된다.
따라서, 소거 가능 영역에 기입된 실행 프로그램을 변경하는 경우, 본 발명은 전체 프로그램의 확장을 방지하고 다수회 새로운 프로그램을 변경할 수 있다.
본 발명은 본 발명의 예시적인 실시예에 대하여 나타내고 설명했지만, 상술한 변경과 각종 다른 변경, 생략 및 부가가 본 발명의 취지 및 범주로부터 벗어나지 않고 당해 분야에 숙련된 자에 의해서 이루어질 수 있는 것으로 이해되어져야 한다. 따라서, 본 발명은 상기 제시된 특정 실시예로 한정하는 것은 아니며 첨부된 청구 범위에 제시된 형태와 동등하거나 범주내에서 실시될 수 있는 가능한 모든 실시예를 포함하는 것으로 이해되어져야 한다.

Claims (17)

  1. 소오스 프로그램으로부터 오브젝트 프로그램을 생성하고 소거 가능 영역 및 소거 불가능 영역을 포함하는 메모리에 상기 오브젝트 프로그램을 기입하는 언어 처리 시스템으로서,
    상기 메모리의 상기 소거 가능 영역에 부여된 어드레스로 점프시키는 점프 명령을 갖는 분기 테이블을 생성하는 분기 테이블 생성 수단 (52), 및
    상기 소거 불가능 영역에 상기 점프 명령을 호출하는 호출 명령을 생성하는 호출 명령 생성 수단 (51) 을 구비하는 것을 특징으로 하는 언어 처리 시스템.
  2. 제 1 항에 있어서, 상기 소오스 프로그램으로부터 상기 분기 테이블상의 정보를 해석하는 구문 해석 수단 (40) 을 더 구비하고,
    상기 분기 테이블 생성 수단 (52) 은 상기 구문 해석 수단 (40) 에서의 해석 결과에 기초하여 상기 분기 테이블을 생성하는 것을 특징으로 하는 언어 처리 시스템.
  3. 제 1 항에 있어서, 상기 소오스 프로그램으로부터 상기 분기 테이블상의 정보를 해석하는 구문 해석 수단 (40) 을 더 구비하고,
    상기 구문 해석 수단 (40) 은 상기 분기 테이블이 설정되는 헤드 어드레스를 해석하는 헤드 어드레스 해석 수단 (41), 및
    상기 점프 명령이 상기 분기 테이블내에 설정되는 위치를 해석하는 점프 명령 위치 해석 수단 (42) 을 포함하고,
    상기 분기 테이블 생성 수단 (52) 은 상기 구문 해석 수단 (40) 에서의 해석 결과에 기초하여 상기 분기 테이블을 생성하는 것을 특징으로 하는 언어 처리 시스템.
  4. 제 1 항에 있어서,
    상기 분기 테이블 생성 수단 (52) 은 해석된 헤드 어드레스에 대응하는 상기 분기 테이블내의 상기 점프 명령 설정 위치의 어드레스로 상기 점프 명령을 생성함으로서, 상기 소거가능 영역에 점프 명령을 포함하는 상기 분기 테이블을 생성하는 것을 특징으로 하는 언어 처리 시스템.
  5. 제 1 항에 있어서,
    상기 호출 명령 생성 수단 (51) 은 해석된 헤드 어드레스에 대응하는 상기 분기 테이블내의 상기 점프 명령 설정 위치의 상기 어드레스로의 호출 명령을 생성하는 것을 특징으로 하는 언어 처리 시스템.
  6. 제 1 항에 있어서,
    외부로부터 입력된 상기 소오스 프로그램 및 동작 내용을 해석하는 옵션 해석 수단 (30), 및
    상기 분기 테이블 생성 수단 및 상기 호출 명령 생성 수단에서 코드 생성이 수행된 오브젝트 프로그램을 저장하는 오브젝트 프로그램 파일 (60) 을 더 구비하는 것을 특징으로 하는 언어 처리 시스템.
  7. 제 1 항에 있어서,
    상기 소오스 프로그램으로부터 상기 분기 테이블상의 정보를 해석하는 구문 해석 수단 (40),
    외부로부터 입력되는 상기 소오스 프로그램 및 동작 내용을 해석하는 옵션 해석 수단 (30), 및
    상기 분기 테이블 생성 수단 및 상기 호출 명령 생성 수단에서 코드 생성이 수행된 오브젝트 프로그램을 저장하는 오브젝트 프로그램 파일 (60) 을 더 구비하고,
    상기 구문 해석 수단 (40) 은,
    상기 분기 테이블이 설정된 헤드 어드레스를 해석하는 헤드 어드레스 해석 수단 (41), 및
    상기 점프 명령이 상기 분기 테이블 내에 설정되는 위치를 해석하는 점프 명령 위치 해석 수단 (42) 을 포함하고,
    상기 분기 테이블 생성 수단 (52) 은 상기 구문 해석 수단 (40) 에서의 해석 결과에 기초하여 상기 분기 테이블을 생성하는 것을 특징으로 하는 언어 처리 시스템.
  8. 제 1 항에 있어서,
    상기 메모리는 플래시 EEPROM 인 것을 특징으로 하는 언어 처리 시스템.
  9. 소오스 프로그램으로부터 오브젝트 프로그램을 생성하고 소거 가능 영역과 소거 불가능 영역을 포함하는 메모리에 상기 오브젝트 프로그램을 기입하는 언어 처리 방법으로서,
    상기 소오스 프로그램으로부터, 상기 메모리의 상기 소거가능 영역에 부여된 어드레스로 점프시키는 점프 명령을 갖는 분기 테이블이 설정되도록 헤드 어드레스를 해석하는 단계,
    상기 소오스 프로그램으로부터, 상기 점프 명령이 상기 분기 테이블내에 설정되는 위치를 해석하는 단계,
    상기 점프 명령이 상기 분기 테이블내에 설정되는 어드레스에 대한 호출 명령을 생성하는 단계, 및
    상기 해석 결과에 기초하여 상기 소거 가능 영역내에 상기 분기 테이블을 생성하는 단계를 구비하는 것을 특징으로 하는 언어 처리 방법.
  10. 제 9 항에 있어서,
    상기 분기 테이블 생성 단계에서는, 상기 해석된 헤드 어드레스에 대응하는 상기 분기 테이블 내의 상기 점프 명령 설정 위치의 상기 어드레스로 상기 점프 명령을 생성함으로서, 상기 소거 가능한 영역에 점프 명령을 포함하는 상기 분기 테이블을 생성하는 것을 특징으로 하는 언어 처리 방법.
  11. 제 9 항에 있어서,
    상기 호출 명령 생성 단계에서는, 상기 해석된 헤드 어드레스에 대응하는 상기 분기 테이블 내의 상기 점프 명령 설정 위치의 상기 어드레스로의 호출 명령이 생성되는 것을 특징으로 하는 언어 처리 방법.
  12. 소오스 프로그램으로부터 오브젝트 프로그램을 생성하고 소거 가능 영역과 소거 불가능 영역을 포함하는 메모리에 상기 오브젝트 프로그램을 생성하는 언어 처리 방법으로서,
    상기 메모리의 소거 불가능 영역에 기입되는 상기 소오스 프로그램의 언어 처리에서는,
    상기 소오스 프로그램으로부터, 상기 메모리의 상기 소거 가능 영역에 부여된 어드레스로 점프시키는 점프 명령을 갖는 분기 테이블이 설정되도록 헤드 어드레스를 해석하는 단계,
    상기 소오스 프로그램으로부터, 상기 점프 명령이 상기 분기 테이블내에 설정되는 위치를 해석하는 단계, 및
    상기 점프 명령이 상기 분기 테이블내에 설정되는 어드레스에 대응하는 호출 명령을 생성하는 단계를 구비하고,
    상기 메모리의 소거가능 영역에 기입되는 상기 소오스 프로그램의 언어 처리에서는,
    상기 소오스 프로그램으로부터, 상기 메모리의 상기 소거 가능 영역에 부여된 어드레스로 점프시키는 점프 명령을 갖는 분기 테이블이 설정되도록 헤드 어드레스를 해석하는 단계,
    상기 소오스 프로그램으로부터, 상기 점프 명령이 상기 분기 테이블내에 설정되는 위치를 해석하는 단계, 및
    상기 해석 결과에 기초하여, 상기 메모리의 소거 가능한 영역의 부여된 어드레스로 점프시키는 점프 명령을 갖는 분기 테이블을 생성하는 단계를 구비하는 것을 특징으로 하는 언어 처리 방법.
  13. 제 12 항에 있어서,
    상기 분기 테이블 생성 단계에서는, 상기 해석된 헤드 어드레스에 대응하는 상기 분기 테이블내의 점프 명령 설정 위치의 상기 어드레스로 상기 점프 명령을 생성함으로서, 상기 소거 가능 영역에 상기 점프 명령을 포함하는 상기 분기 테이블을 생성하는 것을 특징으로 하는 언어 처리 방법.
  14. 제 12 항에 있어서,
    상기 호출 명령 생성 단계에서는, 상기 해석된 어드레스에 대응하는 상기 분기 테이블내의 상기 점프 명령 설정 위치의 상기 어드레스로의 호출 명령이 생성되는 것을 특징으로 하는 언어 처리 방법.
  15. 소오스 프로그램으로부터 오브젝트 프로그램을 생성하고 소거 가능 영역 및 소거 불가능 영역을 포함하는 메모리에 상기 오브젝트 프로그램을 기입하는 언어 처리 프로그램을 저장하는 컴퓨터 판독 가능 메모리로서,
    상기 언어 처리 프로그램은,
    상기 소오스 프로그램으로부터, 상기 메모리의 상기 소거 가능한 영역에 부여된 어드레스로 점프시키는 점프 명령을 갖는 분기 테이블이 설정되도록 헤드 어드레스를 해석하는 단계,
    상기 소오스 프로그램으로부터, 상기 점프 명령이 상기 분기 테이블내에 설정되는 위치를 해석하는 단계,
    상기 점프 명령이 상기 분기 테이블내에 설정된 어드레스에 대한 호출 명령을 생성하는 단계, 및
    상기 해석 결과에 기초하여 상기 소거 가능 영역내에 상기 분기 테이블을 생성하는 단계를 구비하는 것을 특징으로 하는 컴퓨터 판독 가능 메모리.
  16. 제 15 항에 있어서,
    상기 분기 테이블 생성 단계에서는, 상기 해석된 헤드 어드레스에 대응하는 상기 분기 테이블내의 상기 점프 명령 설정 위치의 상기 어드레스로 점프 명령을 생성함으로서, 상기 소거 가능 영역에 점프 명령을 포함하는 상기 분기 테이블을 생성하는 것을 특징으로 하는 컴퓨터 판독 가능 메모리.
  17. 제 15 항에 있어서,
    상기 호출 명령 생성 단계에서는, 상기 해석된 헤드 어드레스에 대응하는 상기 분기 테이블내의 상기 점프 명령 설정 위치의 상기 어드레스로의 호출 명령이 생성되는 것을 특징으로 하는 컴퓨터 판독 가능 메모리.
KR1019980040529A 1997-09-29 1998-09-29 2단 점프를 이용하여 소오스 프로그램으로부터 오브젝트 프로그램을 생성하는 언어처리 시스템 및 방법 KR19990030244A (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP97-264301 1997-09-29
JP9264301A JPH11110224A (ja) 1997-09-29 1997-09-29 言語処理装置及び方法、並びに情報記憶媒体

Publications (1)

Publication Number Publication Date
KR19990030244A true KR19990030244A (ko) 1999-04-26

Family

ID=17401281

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019980040529A KR19990030244A (ko) 1997-09-29 1998-09-29 2단 점프를 이용하여 소오스 프로그램으로부터 오브젝트 프로그램을 생성하는 언어처리 시스템 및 방법

Country Status (3)

Country Link
EP (1) EP0905616A2 (ko)
JP (1) JPH11110224A (ko)
KR (1) KR19990030244A (ko)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006004280A (ja) * 2004-06-18 2006-01-05 Toshiba Kyaria Kk マイクロコンピュータおよび電気機器
BR112015010016A2 (pt) 2012-11-07 2017-07-11 Koninklijke Philips Nv compilador, computador, método de compilação e programa de computador
BR112015014470A2 (pt) * 2012-12-21 2017-07-11 Koninklijke Philips Nv compilador configurado para compilar um programa de computador, dispositivo de computação configurado para executar um programa de computador compilado por um compilador, método para executar um programa de computador compilado por um compilador e programa de computador

Also Published As

Publication number Publication date
JPH11110224A (ja) 1999-04-23
EP0905616A2 (en) 1999-03-31

Similar Documents

Publication Publication Date Title
US5634114A (en) Dynamic link library version negotiation
US5170465A (en) Incremental-scanning compiler for source-code development system
US5313387A (en) Re-execution of edit-compile-run cycles for changed lines of source code, with storage of associated data in buffers
US5182806A (en) Incremental compiler for source-code development system
US5201050A (en) Line-skip compiler for source-code development system
US7627851B2 (en) Modification method for modifying a source code
US20060080643A1 (en) Program processing apparatus
JPH09325901A (ja) デバッギングを実施する方法
US20100199265A1 (en) Program debugging with dynamically inserted instrumentation
US20060080642A1 (en) Program processing apparatus
US9639343B2 (en) Method for altering execution of a program, debugger, and computer-readable medium
US5301327A (en) Virtual memory management for source-code development system
US7676774B2 (en) System LSI verification system and system LSI verification method
EP1987490B1 (en) Method and apparatus for moving area operator definition instructions statements within control flow structures
KR100597414B1 (ko) 데이터 처리 장치 및 이를 이용한 레지스터 할당 방법
EP0406028A2 (en) Incremental compiler for source code development system
KR19990030244A (ko) 2단 점프를 이용하여 소오스 프로그램으로부터 오브젝트 프로그램을 생성하는 언어처리 시스템 및 방법
US6275985B1 (en) Method and apparatus for developing an application that implements garbage collection efficiently by combining proxy objects with compiler support
JP2002055848A (ja) プログラム実行方式及び当該プログラム実行方式を格納した記憶媒体
KR101548960B1 (ko) 가상 플랫폼을 이용한 프로그램 작성과 디버깅 방법 및 장치
JPH11110256A (ja) プログラムデバッグ装置、プログラムデバッグ方法及びその方法を記録したコンピュータ読取り可能な記録媒体
JP2001022560A (ja) ライブラリ関数バージョンアップ方法
Palsberg et al. Reverse engineering of real-time assembly code
JP2005115619A (ja) プログラムのデバッガ
US7627859B2 (en) Method for configuring non-script language library files to be run as scripts

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E601 Decision to refuse application