KR100404274B1 - 멀티플랫폼인터프리터를포함한응용프로그램을포함하는대량데이타의표현을수신하는멀티미디어시스템,상기멀티플랫폼인터프리터와상호작용하는플랫폼서브시스템및,그시스템또는서브시스템용대용량메모리 - Google Patents
멀티플랫폼인터프리터를포함한응용프로그램을포함하는대량데이타의표현을수신하는멀티미디어시스템,상기멀티플랫폼인터프리터와상호작용하는플랫폼서브시스템및,그시스템또는서브시스템용대용량메모리 Download PDFInfo
- Publication number
- KR100404274B1 KR100404274B1 KR1019960702954A KR19960702954A KR100404274B1 KR 100404274 B1 KR100404274 B1 KR 100404274B1 KR 1019960702954 A KR1019960702954 A KR 1019960702954A KR 19960702954 A KR19960702954 A KR 19960702954A KR 100404274 B1 KR100404274 B1 KR 100404274B1
- Authority
- KR
- South Korea
- Prior art keywords
- platform
- data
- interpreter
- data processing
- subsystem
- Prior art date
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04B—TRANSMISSION
- H04B1/00—Details of transmission systems, not covered by a single one of groups H04B3/00 - H04B13/00; Details of transmission systems not characterised by the medium used for transmission
- H04B1/59—Responders; Transponders
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11B—INFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
- G11B17/00—Guiding record carriers not specifically of filamentary or web form, or of supports therefor
- G11B17/005—Programmed access to indexed parts of tracks of operating discs, by guiding the disc
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11B—INFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
- G11B19/00—Driving, starting, stopping record carriers not specifically of filamentary or web form, or of supports therefor; Control thereof; Control of operating function ; Driving both disc and head
- G11B19/02—Control of operating function, e.g. switching from recording to reproducing
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11B—INFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
- G11B27/00—Editing; Indexing; Addressing; Timing or synchronising; Monitoring; Measuring tape travel
- G11B27/02—Editing, e.g. varying the order of information signals recorded on, or reproduced from, record carriers
- G11B27/031—Electronic editing of digitised analogue information signals, e.g. audio or video signals
- G11B27/034—Electronic editing of digitised analogue information signals, e.g. audio or video signals on discs
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11B—INFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
- G11B27/00—Editing; Indexing; Addressing; Timing or synchronising; Monitoring; Measuring tape travel
- G11B27/10—Indexing; Addressing; Timing or synchronising; Measuring tape travel
- G11B27/102—Programmed access in sequence to addressed parts of tracks of operating record carriers
- G11B27/105—Programmed access in sequence to addressed parts of tracks of operating record carriers of operating discs
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11B—INFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
- G11B27/00—Editing; Indexing; Addressing; Timing or synchronising; Monitoring; Measuring tape travel
- G11B27/10—Indexing; Addressing; Timing or synchronising; Measuring tape travel
- G11B27/19—Indexing; Addressing; Timing or synchronising; Measuring tape travel by using information detectable on the record carrier
- G11B27/28—Indexing; Addressing; Timing or synchronising; Measuring tape travel by using information detectable on the record carrier by using information signals recorded by the same method as the main recording
- G11B27/32—Indexing; Addressing; Timing or synchronising; Measuring tape travel by using information detectable on the record carrier by using information signals recorded by the same method as the main recording on separate auxiliary tracks of the same or an auxiliary record carrier
- G11B27/327—Table of contents
- G11B27/329—Table of contents on a disc [VTOC]
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11B—INFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
- G11B2220/00—Record carriers by type
- G11B2220/20—Disc-shaped record carriers
- G11B2220/21—Disc-shaped record carriers characterised in that the disc is of read-only, rewritable, or recordable type
- G11B2220/213—Read-only discs
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11B—INFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
- G11B2220/00—Record carriers by type
- G11B2220/20—Disc-shaped record carriers
- G11B2220/25—Disc-shaped record carriers characterised in that the disc is based on a specific recording technology
- G11B2220/2537—Optical discs
- G11B2220/2545—CDs
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11B—INFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
- G11B2220/00—Record carriers by type
- G11B2220/20—Disc-shaped record carriers
- G11B2220/25—Disc-shaped record carriers characterised in that the disc is based on a specific recording technology
- G11B2220/2537—Optical discs
- G11B2220/2545—CDs
- G11B2220/255—CD-I, i.e. CD-interactive
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Stored Programmes (AREA)
- Devices For Executing Special Programs (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
- Digital Computer Display Output (AREA)
Abstract
멀티미디어 시스템은 멀티플랫폼 인터프리터를 포함하는 응용 프로그램 타이틀을 구비한다. 응용 프로그램은 멀티미디어 데이타와 스크립팅 언어로 기재된 응용 모두를 포함한다. 플랫폼 서브시스템은 응용 프로그램 타이틀과 상호작용하고 응용 프로그램과 인터프리터를 액세스한다. 그것은 사용자 입력 수단의 제어하에서 응용 프로그램을 실행한다. 또한, 사용자 디스플레이 및 오디오 서브시스템은 응용 프로그램에 의해 제어된다. 응용 프로그램은 멀티플랫폼 인터프리터를 사용하여 처리 수단에 의해 인터프리트되는 명령 세트에 기초한다. 상기 플랫폼은 사전규정된 명령 세트, 데이터 유형 세트, 양적인 최소 필요조건들에 따른 자원 설비들을 갖는 미리 특정된 추상적 머신의 예가 된다.
Description
본 발명은, 데이타 표현(data presentation)을 수신하는 데이타 처리 시스템으로서, 상기 데이타는 멀티플랫폼 인터프리터를 포함한 응용 프로그램을 포함하고, 더욱이 상기 시스템은 상기 멀티플랫폼 인터프리터와 상호 작용하도록 배열된 플랫폼 서브시스템을 가지며, 상기 응용 프로그램에 의해 구동되고 사용자 입력 수단의 제어 하에서 상기 멀티플랫폼 인터프리터를 실행하기 위한 처리 수단을 포함하며, 상기 멀티플랫폼 인터프리터에 의해 제어 가능한 사용자 출력 수단을 가진다. 다량 데이타는 광디스크와 같은 자체 내장된 대용량 메모리 상에 물리적으로 존재할 수도 있다. 대안으로 다량 데이타는 원격 상호 접속 또는 채널을 통해 대화 구조(dialog structure)로 제공될 수도 있다. 멀티미디어는 서브시스템이 하나보다 많은 신호 카테고리, 예컨대 영문숫자 텍스트(alphanumerical text), 그라픽스, 음성, 음악 등등의 카테고리를 수신, 처리 및 출력할 수 있는 것을 의미한다. 또한, 간단히 응용이라 언급되는 응용 프로그램의 대상은 비디오 게임, 백과사전과 같은 교육 또는 정보 아이템, 개인용 파일링 시스템용 셀(shell) 등등으로 다양하다. 그런 다양한 플랫폼은 CD-I 머신들 및 개인용 컴퓨터들 등으로 상품화되어 있다. 일반적으로 CD-I 표준들 및 컴팩트 디스크 표준들에 대해서는 ACM/Springer Multimedia Systems, Vol. 2, No. 4의 175-171 페이지(1994)에 수록된 Jan Korst 및 Verus Pronk 에 의한 'Compact Disc Standards(컴팩트 디스크 표준들)'이란 논문이 참조되는데, 이 논문은 그런 표준들에 대한 보다 일찍이 공개된 다양한 명세의 개설이다.
응용 프로그램은 통상적으로 타이틀(title)로 불려지며, 다양한 이런 타이틀들은, 타이틀이 특정 유형 또는 특정 브랜드의 서브시스템에서는 재생되고 다른 서브시스템에는 재생되지 않도록 서브시스템 하드웨어 제조자 등에 의해 제공되어 왔다. 따라서, 이들은 플랫폼 특정적(platform-specific)이다. 다양한 유형의 플랫폼에서 재생할 수 있는, 응용 프로그램들이 잠재적으로 더 많은 소비자에 기반을 둘 수 있도록 허용할 필요성을 느껴왔다.
발명의 개요
따라서, 특히 본 발명의 목적은 저장된 정보의 상당한 부분이 일치된 데이타 포맷들(harmonized data formats)을 가지며 다양한 상이한 플랫폼 서브시스템에서 인터프리트 가능하다는 점에서 응용 프로그램을 보다 덜 플랫폼 특정적으로 하는 것이다. 특히, 본 발명의 발명자들은, 특정 환경들 하에서는 송출 플랫폼들(delivery platforms)에 의한 어떤 실시간 변환을 필요로 할 수도 있지만, 대부분의 플랫폼들에 의해 재생될 수 있는 멀티미디어 데이타에 대한 포맷들을 정의함으로써 프로그램들이 상이한 플랫폼들에서 인터프리트 가능해진다는 것을 발견했다. 또한, 대용량의 멀티미디어 데이타가 타이틀에서 한번만 제공된다하더라도,플랫폼 특정적 포맷들로 몇개의 데이타를 갖는 것이 유리하다는 것이 입증되었다. 본 발명의 다른 목적은 생성 플랫폼과 재생 플랫폼들의 분리(decoupling)이다. 본 발명의 그 측면들 중 하나에 따르면, 본 발명은 상기 응용 프로그램이 상기 실행을 위해 상기 처리 수단에 의해 인터프리트되는 소정의 명령 세트에 기초하며, 그에 따라 상기 플랫폼 서브시스템은 상기 소정의 명령 세트와 소정의 데이타 유형 세트를 갖고 양적인 최소 필요조건들에 따르는 자원 설비들(resource facilities)을 더 포함하는 미리 특정된 추상적 머신(prespecified abstract machine)의 예(instance)인 것을 특징으로 한다. 특히, 멀티플랫폼 멀티미디어 타이틀 생성은 플랫폼 독립 멀티미디어 타이틀들을 위한 것이다. 위에서, 예는 그런 종류들의 실제 전형 또는 실현이며 각 예는 상기 종류들의 최소 설비들을 가지지만, 여러 예들은 상당히 다를 수도 있다.
본 발명은 또한 멀티플랫폼 인터프리터를 포함하는, 시스템에 사용하기 위한 자체 내장된 대용량 메모리에 관한 것으로,
- 플랫폼 종속 원시어들(primitives)의 위치 어드레스들을 포함하는 디스패치 테이블(A),
- 실행가능하며 인터프리트 가능한 코드를 저장하기 위해 상기 위치 어드레스에 의해 어드레스가능한 모든 위치들을 포함하는 커널 (kernel) 영역(B) 및,
- 플랫폼 독립적이며 타이틀 독립적인 코드를 포함하는 제 1 영역(C)과 타이틀 종속적인 코드를 포함하는 제 2 영역(D)을 갖는 확장 커널 영역(C+D)을 포함한다. 이런 요소들의 장치는 간단하며, 용이하게 액세스될 수 있으며, 에러들을 거의발생시키지 않는다는 것이 입증되었다.
본 발명은 또한 이와 같은 타이틀을 포함하는 다량 데이타와 상호 작용하도록 배열되고 상기 멀티플랫폼 인터프리터를 로딩하기 위한 로드 수단(load means)을 갖는 플랫폼 서브시스템에 관한 것이다. 다양한 추가의 유리한 면들은 종속 청구항들에 기재되어 있다.
상기 및 다른 면들 및 이점들은 이하의 양호한 실시예들의 개시 내용을 참조하여, 특히 첨부된 도면들을 참조하여 더 상세히 설명될 것이다.
제 1 도는 다양한 프로그램 유형들의 기능적 위치를 나타낸 도면.
제 2 도는 인터프리터 접근법을 나타낸 도면.
제 3 도는 CPF 송출 플랫폼을 나타낸 도면.
제 4 도는 CPF 런타임 시스템(runtime system)을 나타낸 도면.
제 5 도는 FORTH 인터프리터에 대한 메모리 배치를 도시하는 도면.
테이블 1 내지 8 은 다양한 예시적 프로그램 모듈들을 나타낸다.
양호한 실시예들의 상세한 설명
제 1 도는 본 발명의 양호한 실시예에 사용되는 다양한 프로그램 유형들의 기능적 위치를 나타낸 도면이다. 다양한 방법으로 실현되는 본 발명의 목적은 소위 공통 공개 포맷(Common Publishing Format)을 획득하는 것이며, 그 결과 상이한 플랫폼 서브시스템들 또는 상이한 하드웨어 머신들에서 재생될 수 있도록 공개된 타이틀들에는 최소의 제한조건들(constraints)만이 붙을 필요가 있게 된다. 소정의멀티미디어 포맷 및 프로세서 독립 프로그램 코드로 표현되는, 예컨대 화상, 음성, 구조(structure), 문자 폰트(character font) 등등의 다양한 소위 애셋(asset)들은 함께 타이틀을 형성한다. 본 발명에서는 각각의 상이한 해당 플랫폼마다 따로따로 모든 자료들을 단일의 대용량 메모리에 저장할 필요성을 제거한다. 타이틀의 애셋들은 인간인 사용자가 보거나 듣게될 수 있는 요소들이다. 프로그램 코드는 특정 필요조건들에 부합하는 플랫폼 서브 시스템들에서 인터프리트 가능하다. 코드는 각각이 명확한 의미들을 갖는 짧은 포맷의 명령들(short format instructions) 또는 토큰들(tokens)로 구성된다. 그들이 기록되는 언어는 CPF-스크립트라 불려지며, 이것은 OSMOSE 프로젝트, ESPRIT 프로젝트 6788(출판 버전 1.0, Copyright Philips Electronics N.V., The Netherlands, 1994)의 보고서에 개시되어 있다. 이들 토큰 중 몇몇은 특히, 컴퓨터들과 관련 하드웨어의 높은 처리 속도에 비해, 인간의 인지 및 표현이 비교적 느리기 때문에, 처리의 실행에 비해 비교적 많은 시간을 소비하는 음성-시각의 부작용(audio-visual side effect)을 초래할 것이다. 모든 필요조건들을 특정하기 위해, 소위 "추상적 머신(abstract machine)"이 정의되어 왔다. 이와 같은 추상적 머신은 소정의 명령 세트와 소정의 데이타 유형 세트를 가지며, 양적인 최소 필요조건들(quantitative minimum requirements)을 충족시키는 자원 설비들(resource facilities)을 갖는다. 적어도 이들 설비들을 갖는 임의의 실제 머신 또는 플랫폼은 해당 타이틀을 실행시킬 수 있다. 이와 같은 설비들은 동작 속도, 메모리 용량, I/O(디스플레이, 음향), 운영체제 특성들, 코프로세싱(coprocessing) 등 등으로 나타낼 수도 있다. 제 1 도에서, 원(20)은CPF-스크립트로 번역되는 모든 프로그램들을 나타낸다 (원의 크기는 이들 프로그램들의 수 및 크기와 전혀 상관없다). 이들 프로그램들의 실제 기록은, 약간의 기능을 희생하여, CPF-스크립트의 프로그램 작성자들의 생활을 더욱 쉽게 만드는 저작 언어(authoring language)의 사용을 통해 행해질 수 있다. 즉, 얻어진 프로그램들은 원(22)으로 표현된다. 원(20)에서의 프로그램의 편집(compilation) 및 일치(conformation)는 추상적 CPF 머신에 의해 실행될 수 있는 모든 가능한 CPF 스크립트 프로그램들을 포함하는 원(26)으로 이들이 표현된다. 그 주위의 원(24)은, 프로그램이 CPF-스크립트로 되어야 한다는 제한조건없이 이러한 머신에 의해 실행될 수 있는 모든 프로그램들을 나타낸다. 원의 쌍들(28/30 및 32/34)은 두개의 임의의 상이한 플랫폼 서브 시스템에 관련된다. 안쪽원들(30, 34)은 원(24)으로부터의 매핑(mapping)을 나타낸다. 바깥쪽원들(28, 32)은 추상적 머신에 의해 실행될 수 없는 안쪽원 외측의 모든 실행가능한 프로그램들의 세트를 나타낸다. 또한, 도시된 다양한 원들의 직경들은 완전히 임의적이다. 또한, 다양한 플랫폼 서브시스템들에 대한 안쪽원들의 내용들은 동일하지만 바깥쪽원들의 내용은 그렇게 할 필요는 없다.
본 발명의 주목적은 타이틀 개발자(title developer)로 하여금 실제 또는 물리적 플랫폼으로부터 추상화될 수 있도록 하는 것으로, 이것은 추상적 머신의 도입을 통해 행해진다. 이 추상적 머신은 프로그램을 실행할 때 그 플랫폼 서브시스템의 최소 행동(behaviour)뿐만 아니라 최소 자원 필요조건들을 예컨대, 오디오 및 비디오 출력 성능, CD-ROM/XA 인터페이스능력(interfaceability), Korst 등의 참조, 타이머 기능들, 사용자 입력 메카니즘들, 그 명령 세트, 지원될 데이타 유형으로 정의한다. 실제 플랫폼은 소위 CPF- 스크립트 프로그램을 추상적 머신의 명령 세트의 구현을 통해 재생할 수 있어야 한다. CPF-스크립트에서 정확한 프로그램과 부정확한 프로그램 사이의 차이는 이와 같은 프로그램에 대한 정합 시험(conformance test)을 적용함으로써 이루어진다. 동일한 이유로, 정확한 플랫폼과 부정확한 플랫폼을 판별하기 위해, 하드웨어 개발자에게 제공된 타당성 시험(validation test)이 있다. 즉, 여기서 시험은 플랫폼의 성능들이 충분한지의 여부에 관한 것이다. 그런 타당성 시험의 실용적인 실현은 적합한 프로그램들의 세트의 제공 및 해당 플랫폼에서의 재생가능성(playability) 또는 그 반대의 것을 시험하는 것이다.
제 2 도는 인터프리터 접근법을 도시하는 도면이다. 본 발명에서 취해진 접근법은 데이타 포맷들을 일치시키고 상이한 플랫폼들에서 인터프리트 가능한 프로그램들을 만드는 것이다. 일반적으로, 송출 플랫폼에 의한 약간의 실시간 변환이 필요할 수도 있지만 대부분의 플랫폼들에 의해 재생될 수 있는 멀티미디어 데이타 포맷들을 정의하는 것이 가능하다. 어떤 데이타는 여전히 두개이상의 데이타 포맷들로 주어져야 할 수 있다. 나아가, 실제 응용 프로그램은 고레벨 표현이고 송출 플랫폼(delivery platform)에 의해 인터프리트되어야 한다. 예를 들면 특정 플랫폼에 특정적인 유틸리티들(이들 유틸리티들에 의해 이용되거나 이용하는)에 관계하는 몇몇 특수 기능들은 해당 플랫폼에 특정적인 방식으로 부호화된다. 제 2 도의 구성에서, 블럭(38)은 CPF 프로그램을 나타낸다. 레벨(40)은 각 송출 플랫폼에 대한 하나의 특정적인 커널(kernel) 인터프리터를 도시한다. 상기 커널들(40)은 CPF 프로그램(각 플랫폼에 대해 동일 프로그램)을 플랫폼-독립(platform-independent) 인터페이스 호출들로 번역한다(translate). 이들의 구현이 CPF 추상적 머신을 구성한다.
플랫폼 독립 CPF-타이틀들에 이어, 각 플랫폼 유형은 그 특정 플랫폼에 특정적인 하나 이상의 타이틀들을 갖는다. 이들 플랫폼 몇몇의 이점은 그 전용 또는 특정적인 하드웨어에 기인한다. 그러므로, 플랫폼 독립을 얻기 위해, 프로그램들은 저레벨 시스템 기능으로부터 추상화한다. 이것은 어느 정도 CPF 기능이 그들 자신에 의해 취해진 각각의 플랫폼들의 것보다 다소 낮음을 의미한다. 인터프리터들(40)의 출력은, 각각 다른 플랫폼, 특히 개인용 컴퓨터(46), 및 CD-I 플레이어(48)를 나타내는 열(columns: 42..48) 중 적당한 하나에 주어진다. 그것의 실현에서, 해당 플랫폼은 라이브러리(CPF.DLL, CPF.LIB), 운영 체제(마이크로소프트 윈도우즈, CD-RTOS: 콤팩트 디스크 실시간 운영 체제, 미국, 아이오와, 데스 모이네스, 마이크로웨어에 의해 유도됨) 및 적당한 하드웨어(멀티미디어 PC 하드웨어, CD-I 하드웨어)를 포함한다. 위에서, DLL 은 Dynamic Link Library under Windows 이고, LIB 는 CD.RTOS Library 이다. 좌측의 플랫폼들(42, 44)에 있어서, 다양한 서브시스템들간의 시퀀스들은 대응하고 있다.
제 3 도는 로딩되고 사용할 수 있는 응용 프로그램과 함께 CPF 송출 플랫폼을 도시한다. 각 구성은 핸들러(handler) 레벨에서 이용 가능한 현 플랫폼 능력을 다이어그램의 보다 높은 다음 레벨로 건넨다. 레벨(60)은 응용 프로그램 자체를 포함하고, 이는 추상적인 머신의 동일한 예들(instances)간 뿐만아니라, 제 2 도에 관해 설명된 상이한 예들 간에도 이식가능하다. 프로그램 또는 타이틀은 CPF 스크립트로 나타내어지고, 그러한 것으로서 층(60)은 물리적 디스크를 추상한 것이다. 다음 레벨은 플랫폼 특정적인 인터프리터(62) 및 런타임 라이브러리(64)를 포함한다. 즉 다음 하위 레벨에서 이들은 멀티미디어 핸들러 인터페이스를 가진다. 다음의 하위 레벨은 핸들러들(68 내지 74)의 셋과, 해당 레벨내에 존재하는 유효 구조(effective organization)를 다음 상위 레벨로 건네기 위한 작은 배치 기능(configuration function)을 포함한다. 상기 핸들러들의 셋업은 배치 특정적이며, 예로서 도시한 바와 같이, 데이타 및 디바이스 핸들러(68), 디스크 핸들러(72), 오디오 및/또는 비디오 디스플레이와 상호 작동하는 프리젠테이션 핸들러(72), 및 유틸리티 핸들러(74) 등이 있다. 이 상황에서, 이들 유틸리티들은 그래픽 입력 메카니즘들 등의 추가 설비들에 의해 실현될 수 있다. 즉 다음 하위 레벨에서 핸들러들은 디바이스 드라이버 인터페이스를 갖는다. 그 자체로 잘 알려진 것과 같이, 이와 같은 핸들러들은 각각 하나 이상의 소프트웨어 모듈들을 포함하며, 이것은 입력으로 다양한 범용 제어 문(statement)들을 수신하고, 이들을 관련 디바이스의 레벨 상에서 기본 동작들을 정의하는 각각의 표현식의 시퀀스들로 번역한다. 즉 상기 다음 하위 레벨에서, 핸들러들은 디바이스 드라이버에 대한 인터페이스를 가진다. 상기 다음 하위 레벨 자체는 디바이스 드라이버들(78); 및 상기 레벨 내의 구성을 다음 상위 레벨로 건네기 위한 배치 기능(76)을 갖는다. 드라이버들은, 그 자체로 잘 알려진 것과 같이, 각각 다음 상위 레벨에 의해 생성된 표현식들(expressions)에 응답하고, 이들을 전자기계, 전자, 및 해당 디바이스의 가능한 추가의 치수(demensioning) 등에 의해 결정된, 디바이스상의 동작(action)들로 번역한다. 즉 상기 다음 하위 레벨에서, 하드웨어 플랫폼은 하드웨어 시스템 버스를 포함한다. 비제한적인 예로서, 다양한 디바이스들이 다음 하위 레벨 상에 표시되어 있다. 즉, 포인팅 장치(pointing device)들과 같은 사용자 인터페이스 장치들과 상호 작용을 하는 아날로그 장치(80), 위의 Korst 등의 참증에 정의되어 있고, 해당 타이틀의 실시간 재생을 허용하기 위해 애셋들(assets)의 로딩, 및 로딩된 CD-ROM으로부터의 가능한 응용을 허용하는 CD-ROM/XA 장치(82), 데이타 베이스나 신호 처리와 같은 다양한 기능들을 실행하는 범용 처리 장치(84), 광디스크와 같은 국부적으로 주어진 단일의 메모리 매체로부터 대신에, 원격 통신 채널을 통해 원격지(remote site)에 공급된 다량 데이타를 수신하는데 이용되는(원격) 통신 장치(86)가 다음 레벨상에 표시되어 있다. 이와 같은 데이타는 이후 독립적으로 또는 플랫폼 서브시스템이나 서브 디바이스에 의한 요구시 주어질 수 있다. 최종 요소들은 오디오 장치, 비디오 디스플레이 또는 이들의 서브시스템 등의 프리젠테이션 장치(88)이다. 도시한 것과 같은 장치들은 직접 물리적 링크들로 상호 접속될 수 있다.
제 4 도는 CPF 런타임 시스템을 도시하는데, 이것은 실제로 본 발명에 따른 응용 프로그램들을 처리하고 CPF 포맷에 일치시키기 위한 실행 모델이고 오디오, 비디오, 및 제어 레벨상의 상호 작용들을 포함한다. 도시된 것과 같이, 상기 제어 채널들은 제어 신호들(C)을 반송하고, 데이타 채널들은 데이타 신호들(D)을 반송하며, 타이밍 채널들은 타이밍 신호들(T)을 반송한다. 중앙 명령 및 데이타 메모리 박스(100)는 인터프리터 프로그램(102)과 직접 상호 작용하는 응용 프로그램을 나타내고, 후자는 또한 응용 프로그램 자체로서 동일 타이틀의 부분으로서 플랫폼에 주어진다. 박스(100)로 들어가는 외부 C&D 입력들(101)은, 그 하위 레벨 하드웨어로의 인터프리터에 의해 발행된 명령들의 결과로서, 그 중에서도 하위 레벨 플랫폼 하드웨어에서 생긴 멀티미디어 애셋들을 나타내는 관련 패러미터들을 갖는 CPF 스크립팅 구문들(constructs)을 나타낸다. 상기 도면의 중앙 부분은 시스템의 플랫폼-종속 부분을 나타내고, 한편, 바깥 블럭들은 시스템의 플랫폼 독립 부분을 나타낸다. 특히, 상기 도면은 CD/ROM(XA) 소프트웨어 블럭(108), CD/ROM(XA) 하드웨어블럭(116), CD/ROM(XA) 드라이브(122), 오디오 소프트웨어(106), 오디오 하드웨어(114), 오디오 버퍼들(104), 및 오디오 출력 구조들(120), 비디오 소프트웨어(110), 비디오 하드웨어(118), 비디오 버퍼들(112), 및 비디오 출력 구조들(124)을 포함한다. 명확히 하기 위해, 사용자 제어 동작들은 이 도면에 도시하지 않았다. 특히, 오디오 및 비디오 데이타 스트림들은 박스(100)를 통과하지 않는데, 이는 오버헤드 및 관련 저속 동작(slower operating)을 야기할 수 있기 때문이다. 비실시간 동작 모드에서, 타이틀은 오디오, 비디오 및 제어 화일들을 가지며, 제어 화일은 파일들 중 어느 것이 다른 장치로 전송되는가를 알 수 있도록 충분한 정보를 포함한다. 반면, 실시간 동작 모드에서는, 오디오, 비디오, 및 제어의 인터리브된 파슬들(parcels)을 포함하는 실시간 파일이 있다. 인터프리터 내의 핸들러는 이들 중에서 의도된 위치들로 전송하기 위해 파슬들의 선택 및, 동시에 이들 파슬들에 정확한 오디오 및 비디오 관련 기능들의 할당을 처리한다. 상기 도면에 도시된 타이밍 정보는 기초를 이루는 하드웨어의 기능 레벨들에 의존하여 다양한 동작들을 동기화할 수 있다.
플랫폼 독립 포스(FORTH) 사전들
이하, 널리 알려진 포스(FORTH) 언어 (프로그래밍 언어에 대한 다양한 교본 참조)용 인터프리터들의 세트가 입력으로부터 출력으로의 이들의 매핑에 기초하여 설명된다. 간략히 하기 위해, 포스 언어 자체는 특별히 고려되지 않는다. 상기 인터프리터는 명령들을 인터프리트하고, 거기에서 요청된 애셋들을 인출(fetch)하고, 라이브러리로부터 관련 아이템들을 불러낸다. 각각의 상이한 플랫폼에 대해, 애셋들의 렌더링(rendering)으로 끝날 수 있는, 동일한 명령들의 소스 화일 세트가 존재한다. 원칙적으로, 적어도 두개의 이와 같은 인터프리터들이 필요하며, 일반적으로 운영 체제 도스/윈도우 3.1 하의 PC를 위한 것의 하나와, CD-RTOS 하의 CDI 플레이어를 위한 것의 하나가 필요하다. 또 다른 실제 플랫폼은 애플 매킨토시 머신일 수 있다. 제 5 도는 이와 같은 포스(FORTH) 인터프리터용 메모리 레이아웃을 도시한다. 이하에 그 동작을 설명한다. 상기 메모리 레이아웃은 메모리 위치들의 열(column)로 도시된다. 제 5 도의 메모리 맵과 관련해서, 인터프리터는 간접적으로 스레디드(threaded)되는 것으로 가정한다. 상기 후자의 특성은 우선 사전(dictionary)에서 이용 가능한 직접 스레디드 코드에 포인트들을 제공하는 간접 또는 디스패치 테이블이 액세스되고; 이후, 인터프리테이션을 즉시 시작할 수 있다는 것을 의미한다. 메모리에서, 부분(140)은 해당 머신의 실행을 가능케 하는기본 동작들 또는 머신(플랫폼) 종속 원시어들(primitives)(A) 또는 호출가능 포스 어드레스들(Callable Forth Addresses) 즉 cfa's의 테이블을 포함한다. 부분(A)은 로딩 중 부분들(C+D)의 정의들과 부분(B)의 머신 종속 명령들간의 간접 어드레싱 특징을 통해 바인딩을 제공하는 디스패치 테이블이다. 부분들(C+D)에서의 참조들(referrals)은 부분(B)의 관련된 머신 종속 명령들을 찾기 위해 부분(A)의 상기 테이블을 이용한다. 부분(140)의 각 요소는 메모리 부분(142)의 그 자신의 세그먼트를 가리키고, 이는 다양한 머신 종속 원시어들(B)의 구현들을 포함한다. 이는 인터프리터의 핵심이고 모든 CODE(실행가능한 어셈블리 코드)와; CODE(포스 인터프리터 가능 코드), 어드레스용 인터프리터, 및 초기화 코드를 포함한다. 상기 테이블은 타이틀의 머신-독립 부분의 로딩시 및 타이틀 생성 도중, 사전의 이러한 부분의 저장(기억)시 이용된다. 동시에, 부분들(A 및 B)은 타이틀의 머신 종속 부분을 나타낸다. 그러므로, 적어도 두개의 상이한 하드웨어 플랫폼용 다중 플랫폼 타이틀을 구성하기 위해 타이틀의 비교적 최소한의 실현은 양 부분들(A 및 B)의 두 버전들을 포함한다. 부분(C 및 D)은 타이틀의 머신 독립 코드를 포함한다. 여기서, 부분(C)은 모든 타이틀에 주어지는 타이틀 독립 및 머신 독립 코드를 포함한다. 부분(D)은 타이틀 종속 코드를 포함하고, 타이틀 종속 코드가 생성될 때 총 빌딩 처리(building process)의 부분으로서 생성된다.
사전을 저장할 때, 부분들(A+B)은 지원되어야 될 각각의 상이한 플랫폼을 위한 하나의 버전이 제 1 단일 파일로 함께 제공된다. 이 후 부분들(C+D)은 제 2단일 파일로 기억된다. 상기 언급한 바인딩 메카니즘 및 각 플랫폼을 위한 하나의 섹션,플랫폼 독립 명령들의 공통 부분 및 플랫폼 종속 명령들의 다중 섹션들을 가지기 때문에, 다양하고 상이한 플랫폼 상에서 타이틀을 실행할 수 있게 하는 이러한 메카니즘이 있다. 이것은 이하에서 더욱 상세히 설명된다.
부분(A)의 엔트리들이 부분들(C+D)이 기억된 플랫폼상의 디스패치 테이블과 매칭되면, 부분들(C+D)의 기억 체제(storage organization)는 상이한 플랫폼상에서의 로딩을 허용하고, 부분(C+D)의 모든 cfa's 를 부분(B)의 현재 선택된 플랫폼 변형(variant)에 링크한다. 타이틀의 재생 중 부분(A)은 더이상 유효하지 않은 데 그 이유는 그 바인딩 효과가 그것을 불필요하게 만들었기 때문이라는 것을 유의하자. 작은 단점은 포스 인터프리터가 더이상 직접 스레디드될 수 없고, 즉 더이상 모든 사전 엔트리가 머신 명령을 포함하지 않는다는 것이다. 또한, 로딩 및 재배치(relocating)은 약간 더 복잡해진다.
또한 간접 스레딩(threading)의 이러한 메카니즘은 부분(C 및 D)의 내용들을 플랫폼 운영 체제로부터 독립시키는데에도 이용된다. 이것은 상기 인터프리터에 의해 사용된 시스템 호출들의 일반화(예를 들어, 일어날 수 있는 바이트 교체(swap) 문제들의 해결 및 화일 I/O을 위함) 및 머신 종속 코드의 간접 호출들의 동일 메카니즘을 이용함으로써 실행된다. 커널 부분(B)에서의 시스템 호출들은 커널 부분들(C+D)로 확장된 부분들의 머신 독립 코드로부터 부분(A)의 디스패치 테이블을 통해 야기된다.
실행은 다음과 같은 세가지 기능들을 사용한다.:
ㆍforth_loader( ), 이 기능은 커널 B 와 확장 커널 C+D 란 이름들로 불리운다. 테이블 A 는 시스템 종속 커널 기능을 확장 커널과 결합하기 위해 사용된다.
ㆍload_context( ), 이 기능은 적당한 루트 문맥(appropriate root context)이란 이름으로 불리운다. 루트 문맥은 애플리케이션의 시작 섹션이고, 초기화 동작 후, 후속 load_context( ) 호출들과 함께 다른 문맥들을 불러낼 것이다.
ㆍforth_execute( ), 이 기능은 실제 인터프리테이션 처리를 시작하고 루트 문맥내에서 첫번째 토큰의 어드레스를 파라미터로 갖는다. 상기 기능은 두 값들을 복귀시킨다. 복귀된 제로 신호는 문맥 내용의 모든 FORTH 워드들이 인터프리트되지 않고 (대신) FORTH 명령 워드 'sleep'이 실행되게 한다. 이 Forth 워드의 실행으로 사용자 영역에 실행 상태를 저장하고, forth_execute( ) 기능의 호출자에게 복귀시킨다. 스레드(thread)는 동일한 파라미터들로 기능 forth_execute( )를 한번 더 호출함으로써 다시 시작할 수 있다. 문맥의 전체 내용이 인터프리트되었을 경우에만 기능 forth_execute( )는 제로가 아닌(non-zero) 값을 돌려줄 것이다. 그 결과, 스택, 복귀 스택, 및 사용자 영역으로 사용된 영역들은 포기되고 다시 다른 목적으로 사용될 수도 있다.
프로그램 구현의 설명
공통 공개 포맷이 어떻게 효과적으로 사용되는지를 설명하고, 이 기술 분야에서 숙련된 사람이 본 발명을 실시할 수 있도록 하기 위해, 부록들이 다양한 예시적인 프로그램 모듈들을 제공한다. 예는 멀티미디어 응용의 짧은 부분인데, 프로세스를 통한 상기 응용의 발전이 최종 사용자(end user) 플랫폼에서 실제 재생을 실현하기 위해 기술된다.
디스플레이될 상기 응용은 다음과 같다. 즉 우선, 어두운 스크린으로부터 시작해서, 표준 dyuv 색채 포맷으로 정의된 화상이 비디오 효과 와이프클럭(video effect wipeClock)에 의해서 형성된다. 거기에, 미리 정의된 원점에서 시작해서, 스위핑 라인(sweeping line)이 회전되고, 한편 효과적으로 디스플레이되는 필드가 스위프에 의해 커버된 영역에 의해 주어진다. 다음에, 상기 응용은 사용자가 커서를 필드, 핫스폿의 특정 영역으로 움직이고, 마우스와 같은 포인팅 기구상에서 오른쪽 작동 버턴이 눌려 질때까지(button 1 Down) 대기한다. 만약 이것이 발생하면, 상기 응용은 실제 화상으로부터 다른 비디오 효과(wipeBT, 여기서 와이핑 모션(wiping motion)은 화상의 바닥에서 위쪽으로 움직이는 직선이다)를 통해 상이한 표준 포맷(clut7 포맷)으로 코드화되는 다른 화상으로 표시를 변경함으로써 진행된다. 얻어진 화상은 타이머에 의해 제어된 사전 지정된 시간 간격동안 나타난다. 그후, 상기 응용은 종료한다.
완전한 응용은 CPF-Talk라 불리우는 저작 언어(authoring language)로 프로그램된다. 이 언어로, 그것은 그래픽 디자인들로부터 출력을 표현하기 위해 사용될 수도 있고, 응용을 형성하는 출력은 소위 문맥들로 분할되고, 상기 문맥의 각각은 자신의 특정적인 행동을 나타낼 수도 있다. 다양한 문맥들은 한 문맥으로부터 다른 문맥으로 제어를 전달하는 소위 액션들을 통해 상호 연결되어 있다. 상술된 응용에서, 3 개의 다른 문맥들은 구별된다. start_context는 첫번째 화상을 보여주는 것에 관한 것이고, next_context는 다음 화상을 보여주는 것에 관한 것이며, stop_context는 응용의 종료에 관한 것이다. 제어는 사용자가 액션 버튼이 핫스폿에 위치된 작동 버튼을 누를 때 start_context로부터 next-context로 전달된다. 제어는 타이머 출력 신호의 제어하에서 next_context로부터 stop_context로 전달되고, 상기 타이머는 next_context 로의 선행 제어 전달에서 시작한다.
이들 세 문맥들에는 다른 세 문맥들에 의해 요구되는 다양한 글로벌 오브젝트들을 정의하는 공통 root_context가 부가된다. 상기 root_context는 응용이 시작될 때 첫번째로 호출되는 것이다. 즉 root_context의 모든 명령들이 실행될 때 그것은 제어를 자동적으로 첫번째 non_root context, 이 경우 start_context 로 제어를 넘긴다. 테이블들(1∼4)은 상술된 응용에 대한 이들 4 개의 문맥들의 내용들을 나타낸다. 테이블 1에서, 먼저 하나는 시간 간격이고 하나는 효과량(effect quantity)인 두 변수들과 함께, root_context가 나열되었다. 게다가, 두개의 컬러 팔레트들이 정의되었고(그들은 상이할 수 있음) 두개의 표면들이 정의되었다. 상기 표면들은 평면 상에 정의되었고, 적절하다면 그들의 정의된 컬러 코딩, 픽셀 사이즈, 시작 컬러, 및 페이드(fade) 후의 컬러를 얻는다. 최종적으로, root_context는 다음에 행해져야 할 것을 상술한다.
테이블 2 에서, start_context는 먼저 초기 이미지, 다음의 커서 형상, 핫스폿 위치, 및 핫스폿 위치의 버튼이 적어도 사전 지정된 간격(dur50)동안 작동되었을 때 행해져야 하는 동작을 액세스하는 곳을 상술한다. 최종적으로, 이 문맥으로 들어갈 때 실행되어야하는 동작들이 상술된다. 테이블 3 에서, next_context의 구조는 유사하다. 두드러진 특징은 타이머에 대한 스펙(specification)에 있다. 테이블 4 에서, stop_context는 자명하다.
최종 사용자 플랫폼에서 실제 재생을 향한 프로세스에서의 다음 단계는 이들 4 개의 문맥들을 Forth 언어로 번역하는 것이다. 그 결과는 또한 CPF 스크립트 포맷으로 불리운다. 번역 결과들은 부록들(5∼8)에 상술되어 있다. 표준 Forth 사전에서 허용된 것보다 많은 워드들이 이용 가능하기 때문에 어휘가 증가했다. 즉 이러한 확장은 나중에 설명될 것이다. 테이블들(1∼4) 및 테이블들(5∼8) 각각에서 나타나는 사건간의 일치는 자명하다.
테이블들(5∼8)에 따른 표현(representation)은 인터프리터가 응용을 구축하는 동안 사용하는 포맷과 언어에 있다. 사용자 플랫폼상의 실제 재생 중 더욱 효율적인 포맷이 사용된다. 이러한 간결한 포맷은 파싱 및 어드레스 분해 동작들(parsing and address resolving operations)이 CPF 스크립트 포맷으로 표현되는 문맥상에서 실행된 후에 인터프리터내의 문맥의 내부 표현이다. 이러한 간결한 포맷은 2 진 모듈 포맷으로 불리운다. 거기에, 예를 들어, 기호 참조들(symbolic references)은 사전내의 실제 어드레스 오프셋에 의해 대체된다. 이들 2 진 모듈들은 사람이 읽을 수 없는 포맷으로 되어 있기 때문에 명확하게 하기 위해 부록들에서 생략되었다. 이들 2진 모듈들, 이들이 참조하고 모든 필요한 표준 지원 기능들이 있는 애셋들이 구축 처리를 완성하는 대용량 메모리(mass memory)에 올려진다.
이하에, 런타임에서의 인터프리터의 동작이 설명된다. 인터프리터는 세부분들로 구성된다. 제 1 의 부분 또는 커널은 모든 플랫폼들과 모든 타이틀들에 대해서 동일하다. 종종 확장 커널로 불리우는 제 2 의 부분은 모든 플랫폼에 동일한 특정 응용을 제외하고는 응용 종속적이다. 커널 및 확장 커널은 플랫폼 종속 기능들을 포함하는 제 3 의 부분을 이용하고 참조한다. 암호화된 형식의 이들 기능들은 동일한 물리적 길이들을 가질 필요가 없고, 따라서 사전들내의 오프셋 값들은 플랫폼마다 변할 수 있다. 이로 인해 야기되는 문제를 해결하기 위해, 로딩 중에만 제 4 의 구성요소(component)가 인터프리터에 부가되며, 이것은 실행이 이루어지고 있는 실제 플랫폼에 대해 사전내의 플랫폼 종속 기능들에 대한 오프셋들을 포함한다. 로딩 시, 커널 및 확장 커널로부터 플랫폼 종속 사전으로의 참조들(referrals)은 이러한 테이블로부터 취해진 참조들로 대체된다.
인터프리테이션 처리의 상기 부분을 설명하기 위해, 명령 'Copy START_image to surface1'이 상세히 설명될 것이다. 우선, 판독을 위해, 포맷이 테이블들(5∼8)에 따라 이미 나타내어 졌음을 알아야 한다. 인터프리터 커널은 다음에 따라 명령을 얻는다:
'START_image∼surface1∼000 copy∼obj' 그리고 확장 커널로부터 스택상의 모든 관련 인자들(arguments)(000 surface1∼ and START_image∼)과 함께 모듈 copy_obj를 불러낸다. 여기서 틸데(tilde;∼ )는 변수를 나타낸다. 본 경우에 있어서, 확장 커널은 단지 두개의 인자, 즉 objects surface1∼ 및 START_image 만을 필요로 한다. 확장 커널은 화상을 복사하기 위한 메모리 공간을 가져야만 하고, 그 목적을 위해 운영 체제로부터 이러한 메모리를 요구하기 위해 프로그램 모듈을 불러낸다. 이 단계에서 인터프리터의 로딩 중 상술한 바와 같이 확장 커널에 링크되는 운영 체제 종속 시스템 호출이 일어날 것이다. 메모리의 예약 후에, 다른 운영체제 종속 모듈들은 대용량 메모리상의 파일을 오픈하기 위해, 파일의 내용을 예약된 메모리 공간에 복사하기 위해, 그리고 대용량 메모리상의 파일을 닫기 위해 불려진다. 후자의 시스템 호출들은 메모리 핸들러에 대해 기술된 것과 동일한 방식으로 확장 커널에 링크된다.
이러한 방식으로 'copy START_image to surface1'과 같은 문맥에 존재하는 명령은 각기 다른 플랫폼 서브시스템에 대해서 많은 다른 플랫폼 종속 기능(functionality) 뿐만아니라 예를 들면 메모리 핸들링 및 화일 I/O를 위한 각각 다른 기능을 불러낼 수 있다. 다른 명령들은 유사한 방식으로 이와 같은 다른 기능들로 나타날 수 있다.
[표 1]
[표 2]
[표 3]
[표 4]
[표 5]
[표 6]
[표 7]
[표 8]
Claims (9)
- 데이타 표현(presentation)을 수신하는 데이타 처리 시스템으로서, 상기 데이타는 응용 프로그램과 멀티플랫폼 인터프리터 중 적어도 하나를 포함하며, 상기 시스템은,상기 멀티플랫폼 인터프리터와 상호 작용하도록 배열되며, 상기 응용 프로그램에 의해 구동되는 상기 멀티플랫폼 인터프리터를 실행하기 위한 처리 수단을 포함하는 플랫폼 서브시스템을 더 포함하고, 상기 응용 프로그램은 실행중 상기 처리 수단에 의해 인터프리트되는 소정의 명령 세트에 기초하며,그에 따라 상기 플랫폼 서브시스템은 소정의 데이타 세트와 상기 소정의 명령 세트를 가진 미리 특정된 추상적 머신(abstract machine)의 예(instance)이며 , 상기 서브시스템은 양적인 최소 필요조건들(quantitative minimum requirements)에 따른 자원 설비들(resource facilities)을 더 포함하는, 데이타 처리 시스템.
- 제 1 항에 있어서,상기 데이타를 수신하는 물리적 인터페이스 수단을 갖는, 데이타 처리 시스템.
- 제 1 항에 있어서,무선 방식으로 상기 데이타를 수신하는 물리적 부착 수단을 갖는, 데이타 처리 시스템.
- 제 1 항에 있어서,상기 플랫폼 서브시스템은 개인용 컴퓨터를 포함하는, 데이타 처리 시스템.
- 데이타 표현을 수신하는 데이타 처리 시스템에 사용하기 위한 저장 매체로서, 상기 데이타는 응용 프로그램과 멀티플랫폼 인터프리터 중 적어도 하나를 포함하며, 상기 시스템은,상기 멀티플랫폼 인터프리터와 상호 작용하도록 배열되며, 상기 응용 프로그램에 의해 구동되는 상기 멀티플랫폼 인터프리터를 실행하기 위한 처리 수단을 포함하는 플랫폼 서브시스템을 더 포함하고, 상기 응용 프로그램은 상기 실행하기 위한 상기 처리 수단에 의해 인터프리트되는 소정의 명령 세트에 기초하며,그에 따라 상기 플랫폼 서브시스템은 소정의 데이타 세트와 상기 소정의 명령 세트를 가진 미리 특정된 추상적 머신의 예이며, 상기 서브시스템은 양적인 최소 필요조건들에 따른 자원 설비들을 더 구비하고,상기 저장 매체는 멀티플랫폼 인터프리터를 저장하고,플랫폼 종속 원시어들(platform dependent primitives)의 위치 어드레스들을 포함하는 디스패치 테이블,실행가능하고 인터프리트가능한 코드를 저장하기 위해 상기 위치 어드레스들에 의해 어드레스가능한 모든 위치들을 포함하는 커널 영역(kernel area), 및플랫폼 독립적이며 타이틀 독립적인 코드를 포함하는 제 1 영역과 타이틀 종속적인 코드를 포함하는 제 2 영역을 가진 확장 커널 영역을 포함하는, 저장 매체.
- 멀티플랫폼 인터프리터를 이용하여 제 1 데이타 처리 플랫폼과 상기 제 1 데이타 처리 플랫폼과는 상이한 제 2 데이타 처리 플랫폼 상에서 동일 응용 프로그램의 실행을 가능하게 하는 방법에 있어서,상기 제 1 및 제 2 데이타 처리 플랫폼들 각각은 소정의 명령 세트와 소정의 데이타 세트를 가진 미리 특정된 추상적인 머신의 소정의 양적인 최소 필요조건들을 만족시키는 자원 설비들과 각각의 처리 수단을 포함하고,제 1 및 제 2 데이타 처리 플랫폼들은 상기 미리 특정된 추상적인 머신의 각각의 예들이며,상기 응용 프로그램은 상기 소정의 명령 세트 및 상기 소정의 데이타 세트에 기초하고,상기 방법은,상기 제 1 또는 제 2 데이타 처리 플랫폼에 원격 통신들 채널을 통해 상기 응용 프로그램과 상기 멀티플랫폼 인터프리터 중 적어도 하나를 공급하는 단계와,상기 공급된 데이타 처리 플랫폼 상에서 실행하기 위한 상기 응용 프로그램을 인터프리트하기 위해 상기 공급된 데이타 처리 플랫폼으로 하여금 상기 멀티플랫폼 인터프리터를 사용 가능하게 하는 단계를 포함하는, 방법.
- 제 6 항에 있어서, 상기 제 1 및 제 2 데이타 처리 플랫폼들은 상이한 하드웨어 배치들(configurations)을 가지는, 방법.
- 제 6 항에 있어서, 상기 제 1 데이타 처리 플랫폼은 제 1 개인용 컴퓨터를 포함하고 상기 제 2 데이타 처리 플랫폼은 제 2 개인용 컴퓨터를 포함하는, 방법.
- 제 6 항에 있어서, 상기 제 1 및 제 2 데이타 처리 플랫폼들은 상이한 운영 시스템들을 가지며 상기 멀티플랫폼 인터프리터는 상기 공급된 데이타 처리 플랫폼에서의 라이브러리(library)를 상기 응용 프로그램과 링크하기 위해 상기 공급된 데이타 처리 플랫폼에 의해 이용되는, 방법.
Applications Claiming Priority (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
EP94202839 | 1994-09-30 | ||
EP94202839.0 | 1994-09-30 | ||
EP94205839.0 | 1994-09-30 | ||
EP94202961.2 | 1994-10-13 | ||
EP94202961 | 1994-10-13 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR960706720A KR960706720A (ko) | 1996-12-09 |
KR100404274B1 true KR100404274B1 (ko) | 2004-04-30 |
Family
ID=26136625
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1019960702954A KR100404274B1 (ko) | 1994-09-30 | 1995-09-13 | 멀티플랫폼인터프리터를포함한응용프로그램을포함하는대량데이타의표현을수신하는멀티미디어시스템,상기멀티플랫폼인터프리터와상호작용하는플랫폼서브시스템및,그시스템또는서브시스템용대용량메모리 |
Country Status (5)
Country | Link |
---|---|
US (1) | US5854927A (ko) |
EP (1) | EP0731971A1 (ko) |
KR (1) | KR100404274B1 (ko) |
TW (1) | TW302458B (ko) |
WO (1) | WO1996011532A2 (ko) |
Families Citing this family (58)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6748586B1 (en) * | 1994-09-30 | 2004-06-08 | Koninklijke Philips Electronics N.V. | Data processing system receptive for presentation of data comprising an application program and a multiplatform interpreter, and a platform subsystem arranged for interaction with said multiplatform interpreter, and memory for use with such system or subsystem |
WO1997015149A1 (en) * | 1995-10-18 | 1997-04-24 | Philips Electronics N.V. | Method for making a multimedia application executable on hardware platforms with various different resource levels, a physical record containing such application, and an apparatus for executing such application |
JPH11504457A (ja) * | 1996-02-16 | 1999-04-20 | フィリップス エレクトロニクス ネムローゼ フェンノートシャップ | マルチメディア アプリケーション タイトルを実行するプラットフオーム サブシステムおよびそれを記憶する方法 |
US6960133B1 (en) | 2000-08-28 | 2005-11-01 | Igt | Slot machine game having a plurality of ways for a user to obtain payouts based on selection of one or more symbols (power pays) |
US6173437B1 (en) * | 1997-07-24 | 2001-01-09 | Intervoice Limited Partnership | Multimedia scripting tool |
US6420108B2 (en) * | 1998-02-09 | 2002-07-16 | Affymetrix, Inc. | Computer-aided display for comparative gene expression |
US6336120B1 (en) * | 1997-08-26 | 2002-01-01 | International Business Machines Corporation | Method and system for supporting hierarchical storage management (HSM) file system across multiple platforms |
US6736325B1 (en) * | 1998-01-22 | 2004-05-18 | Mondex International Limited | Codelets |
WO2000033226A1 (en) * | 1998-11-30 | 2000-06-08 | Siebel Systems, Inc. | Smart scripting call centers |
US6853868B1 (en) * | 1999-10-15 | 2005-02-08 | Sun Microsystems, Inc. | Cross-platform audio feedback for GUI components |
WO2001033569A1 (en) * | 1999-11-02 | 2001-05-10 | Iomega Corporation | Portable audio playback device and removable disk drive |
US6769985B1 (en) | 2000-05-31 | 2004-08-03 | Igt | Gaming device and method for enhancing the issuance or transfer of an award |
US7699699B2 (en) | 2000-06-23 | 2010-04-20 | Igt | Gaming device having multiple selectable display interfaces based on player's wagers |
US7695363B2 (en) | 2000-06-23 | 2010-04-13 | Igt | Gaming device having multiple display interfaces |
US7168069B1 (en) * | 2000-07-12 | 2007-01-23 | Stmicroelectronics, Inc. | Dynamic generation of multimedia code for image processing |
US6935955B1 (en) | 2000-09-07 | 2005-08-30 | Igt | Gaming device with award and deduction proximity-based sound effect feature |
US6739973B1 (en) | 2000-10-11 | 2004-05-25 | Igt | Gaming device having changed or generated player stimuli |
US20020126990A1 (en) * | 2000-10-24 | 2002-09-12 | Gary Rasmussen | Creating on content enhancements |
WO2002059760A2 (en) * | 2000-11-28 | 2002-08-01 | Ixl, Inc. | Process and system for media creation and publishing |
US6749502B2 (en) | 2001-03-21 | 2004-06-15 | Igt | Gaming device having a multi-characteristic matching game |
US7040983B2 (en) | 2001-03-21 | 2006-05-09 | Igt | Gaming device having a multi-round, multi-characteristic matching game |
US7765165B2 (en) * | 2001-03-28 | 2010-07-27 | Siebel Systems, Inc. | Engine to present user interface based on a logical structure, such as one for a customer relationship management system |
US7584283B2 (en) * | 2001-03-28 | 2009-09-01 | Siebel Systems, Inc. | Method and apparatus to save and resume a session associated with a logical structure |
US7136865B1 (en) | 2001-03-28 | 2006-11-14 | Siebel Systems, Inc. | Method and apparatus to build and manage a logical structure using templates |
US7174514B2 (en) | 2001-03-28 | 2007-02-06 | Siebel Systems, Inc. | Engine to present a user interface based on a logical structure, such as one for a customer relationship management system, across a web site |
US7047525B2 (en) * | 2001-04-02 | 2006-05-16 | American Express Travel Related Services Company, Inc. | System and method for an interoperability framework |
US7901291B2 (en) | 2001-09-28 | 2011-03-08 | Igt | Gaming device operable with platform independent code and method |
US6848996B2 (en) | 2001-10-15 | 2005-02-01 | Igt | Gaming device with sound recording changes associated with player inputs |
US7666098B2 (en) | 2001-10-15 | 2010-02-23 | Igt | Gaming device having modified reel spin sounds to highlight and enhance positive player outcomes |
US7708642B2 (en) | 2001-10-15 | 2010-05-04 | Igt | Gaming device having pitch-shifted sound and music |
GB2416099B (en) * | 2001-10-24 | 2006-05-31 | Accenture Global Services Gmbh | Data processing system and method |
US6889147B2 (en) * | 2002-09-17 | 2005-05-03 | Hydrogenics Corporation | System, computer program product and method for controlling a fuel cell testing device |
WO2004092756A1 (en) | 2003-04-17 | 2004-10-28 | Hydrogenics Corporation | Alarm recovery system and method for fuel cell testing systems |
US7789748B2 (en) | 2003-09-04 | 2010-09-07 | Igt | Gaming device having player-selectable music |
US7105736B2 (en) | 2003-09-09 | 2006-09-12 | Igt | Gaming device having a system for dynamically aligning background music with play session events |
US7585219B2 (en) | 2004-09-30 | 2009-09-08 | Igt | Gaming device having a matching symbol game |
US8043155B2 (en) | 2004-10-18 | 2011-10-25 | Igt | Gaming device having a plurality of wildcard symbol patterns |
EP1696321A1 (en) | 2005-02-23 | 2006-08-30 | Deutsche Thomson-Brandt Gmbh | Method and apparatus for executing software applications |
US8491392B2 (en) | 2006-10-24 | 2013-07-23 | Igt | Gaming system and method having promotions based on player selected gaming environment preferences |
US20090162818A1 (en) * | 2007-12-21 | 2009-06-25 | Martin Kosakowski | Method for the determination of supplementary content in an electronic device |
US8591308B2 (en) | 2008-09-10 | 2013-11-26 | Igt | Gaming system and method providing indication of notable symbols including audible indication |
US8458676B2 (en) | 2009-06-30 | 2013-06-04 | International Business Machines Corporation | Executing platform-independent code on multi-core heterogeneous processors |
US9699503B2 (en) | 2010-09-07 | 2017-07-04 | Opentv, Inc. | Smart playlist |
US10210160B2 (en) | 2010-09-07 | 2019-02-19 | Opentv, Inc. | Collecting data from different sources |
US8949871B2 (en) | 2010-09-08 | 2015-02-03 | Opentv, Inc. | Smart media selection based on viewer user presence |
US8460090B1 (en) | 2012-01-20 | 2013-06-11 | Igt | Gaming system, gaming device, and method providing an estimated emotional state of a player based on the occurrence of one or more designated events |
US8740689B2 (en) | 2012-07-06 | 2014-06-03 | Igt | Gaming system and method configured to operate a game associated with a reflector symbol |
US9245407B2 (en) | 2012-07-06 | 2016-01-26 | Igt | Gaming system and method that determines awards based on quantities of symbols included in one or more strings of related symbols displayed along one or more paylines |
US9684587B2 (en) | 2012-10-12 | 2017-06-20 | Vmware, Inc. | Test creation with execution |
US8949794B2 (en) * | 2012-10-12 | 2015-02-03 | Vmware, Inc. | Binding a software item to a plain english control name |
US9292422B2 (en) | 2012-10-12 | 2016-03-22 | Vmware, Inc. | Scheduled software item testing |
US10067858B2 (en) | 2012-10-12 | 2018-09-04 | Vmware, Inc. | Cloud-based software testing |
US9292416B2 (en) | 2012-10-12 | 2016-03-22 | Vmware, Inc. | Software development kit testing |
US9069902B2 (en) | 2012-10-12 | 2015-06-30 | Vmware, Inc. | Software test automation |
US10387294B2 (en) | 2012-10-12 | 2019-08-20 | Vmware, Inc. | Altering a test |
US9192857B2 (en) | 2013-07-23 | 2015-11-24 | Igt | Beat synchronization in a game |
US20150141143A1 (en) * | 2013-11-15 | 2015-05-21 | Ol2, Inc. | Systems and methods for coordinating input devices with rendered content being provided to platforms |
US9947170B2 (en) | 2015-09-28 | 2018-04-17 | Igt | Time synchronization of gaming machines |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR900018809A (ko) * | 1988-05-23 | 1990-12-22 | 디. 크레이그 노들런드 | 클래스 독립 파서 및 다수의 클래스 종속 파서를 갖고 있는 모듈러 컴파일러 |
US5339419A (en) * | 1990-06-25 | 1994-08-16 | Hewlett-Packard Company | ANDF compiler using the HPcode-plus compiler intermediate language |
KR950702723A (ko) * | 1992-07-06 | 1995-07-29 | 엠. 샤우 벤슨 | 비데오-명령-세트 계산용 단일 칩 직접회로 시스템 아키텍쳐 |
KR960014180B1 (ko) * | 1990-06-04 | 1996-10-14 | 인터내셔널 비지네스 머신즈 코포레이션 | 양방향 그래픽스 속성 변환 시스템 및 방법 |
Family Cites Families (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4667290A (en) * | 1984-09-10 | 1987-05-19 | 501 Philon, Inc. | Compilers using a universal intermediate language |
US4807224A (en) * | 1987-08-21 | 1989-02-21 | Naron Steven E | Multicast data distribution system and method |
US4905560A (en) * | 1987-12-24 | 1990-03-06 | Yamaha Corporation | Musical tone control apparatus mounted on a performer's body |
US4931950A (en) * | 1988-07-25 | 1990-06-05 | Electric Power Research Institute | Multimedia interface and method for computer system |
EP0458495A3 (en) * | 1990-05-21 | 1993-04-14 | Texas Instruments Incorporated | Apparatus and method for managing versions and configurations of persistent and transient objects |
US5488714A (en) * | 1990-05-23 | 1996-01-30 | Unisys Corporation | Computer program analyzer for adapting computer programs to different architectures |
JPH04236589A (ja) * | 1991-01-18 | 1992-08-25 | Fujitsu Ltd | データ処理装置 |
US5598560A (en) * | 1991-03-07 | 1997-01-28 | Digital Equipment Corporation | Tracking condition codes in translation code for different machine architectures |
JP3602857B2 (ja) * | 1991-04-23 | 2004-12-15 | 株式会社日立製作所 | 多機種対応型情報処理システム、および、方法 |
US5517636A (en) * | 1992-01-07 | 1996-05-14 | Unisys Corporation | Platform independent data communication system and method |
US5329619A (en) * | 1992-10-30 | 1994-07-12 | Software Ag | Cooperative processing interface and communication broker for heterogeneous computing environments |
US5339434A (en) * | 1992-12-07 | 1994-08-16 | Trw Inc. | Heterogeneous data translation system |
-
1995
- 1995-09-13 EP EP95929203A patent/EP0731971A1/en not_active Withdrawn
- 1995-09-13 WO PCT/IB1995/000759 patent/WO1996011532A2/en not_active Application Discontinuation
- 1995-09-13 KR KR1019960702954A patent/KR100404274B1/ko not_active IP Right Cessation
- 1995-09-25 US US08/533,030 patent/US5854927A/en not_active Expired - Fee Related
- 1995-09-27 TW TW084110134A patent/TW302458B/zh active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR900018809A (ko) * | 1988-05-23 | 1990-12-22 | 디. 크레이그 노들런드 | 클래스 독립 파서 및 다수의 클래스 종속 파서를 갖고 있는 모듈러 컴파일러 |
KR960014180B1 (ko) * | 1990-06-04 | 1996-10-14 | 인터내셔널 비지네스 머신즈 코포레이션 | 양방향 그래픽스 속성 변환 시스템 및 방법 |
US5339419A (en) * | 1990-06-25 | 1994-08-16 | Hewlett-Packard Company | ANDF compiler using the HPcode-plus compiler intermediate language |
KR950702723A (ko) * | 1992-07-06 | 1995-07-29 | 엠. 샤우 벤슨 | 비데오-명령-세트 계산용 단일 칩 직접회로 시스템 아키텍쳐 |
Also Published As
Publication number | Publication date |
---|---|
TW302458B (ko) | 1997-04-11 |
WO1996011532A3 (en) | 1996-07-04 |
WO1996011532A2 (en) | 1996-04-18 |
KR960706720A (ko) | 1996-12-09 |
US5854927A (en) | 1998-12-29 |
EP0731971A1 (en) | 1996-09-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR100404274B1 (ko) | 멀티플랫폼인터프리터를포함한응용프로그램을포함하는대량데이타의표현을수신하는멀티미디어시스템,상기멀티플랫폼인터프리터와상호작용하는플랫폼서브시스템및,그시스템또는서브시스템용대용량메모리 | |
RU2365978C2 (ru) | Интерфейс программирования для компьютерной платформы | |
US5432937A (en) | Method and apparatus for architecture independent executable files | |
Souchon et al. | A review of XML-compliant user interface description languages | |
US5586235A (en) | Interactive multimedia system and method | |
US5987256A (en) | System and process for object rendering on thin client platforms | |
CA2157167C (en) | Launching computer applications | |
US20050091672A1 (en) | Facilitating presentation functionality through a programming interface media namespace | |
US20010042069A1 (en) | Method and apparatus for building a memory image | |
Nathan | WPF 4 unleashed | |
US6263344B1 (en) | Method and apparatus for processing hypertext objects on optical disc players | |
US20030170006A1 (en) | Versatile video player | |
US7318174B2 (en) | Systems, methods, and computer readable medium for analyzing memory | |
US6769094B2 (en) | Method for generating multimedia projects | |
US20150067457A1 (en) | Creating accessible, translatable multimedia presentations | |
Horton | Ivor Horton's Beginning Java 2 | |
Kazoun et al. | Programming Flex 2: The Comprehensive Guide to Creating Rich Internet Applications with Adobe Flex | |
US6748586B1 (en) | Data processing system receptive for presentation of data comprising an application program and a multiplatform interpreter, and a platform subsystem arranged for interaction with said multiplatform interpreter, and memory for use with such system or subsystem | |
CN112306539B (zh) | 一种单片机应用层开发方法、系统、终端及介质 | |
JP2006318493A (ja) | マルチメディアシステム | |
JPH09506201A (ja) | マルチプラットフォームインタプリタを含むアプリケーションプログラムを有する与えられたマスデータを受けるマルチメディアシステムと、マルチプラットフォームインタプリタとの相互作用のために配されるプラットフォーム副システムと、このようなシステム又はこのような副システムで用いるためのマスメモリ | |
JP4971096B2 (ja) | コーディング支援装置 | |
Antebi et al. | Cross-compiling android applications to windows phone 7 | |
JPH11282693A (ja) | Mcuシミュレーション装置、そのシミュレーション方法及びそのシミュレーションプログラムを記録したコンピュータ読み取り可能な記録媒体 | |
Raffaillac et al. | Turning function calls into animations |
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 | ||
LAPS | Lapse due to unpaid annual fee |