CA2002201A1 - Translation technique - Google Patents
Translation techniqueInfo
- Publication number
- CA2002201A1 CA2002201A1 CA2002201A CA2002201A CA2002201A1 CA 2002201 A1 CA2002201 A1 CA 2002201A1 CA 2002201 A CA2002201 A CA 2002201A CA 2002201 A CA2002201 A CA 2002201A CA 2002201 A1 CA2002201 A1 CA 2002201A1
- Authority
- CA
- Canada
- Prior art keywords
- computer
- source
- target
- translated
- application programs
- Prior art date
- Legal status (The legal status 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 status listed.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45537—Provision of facilities of other operating environments, e.g. WINE
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/0292—User address space allocation, e.g. contiguous or non contiguous base addressing using tables or multilevel address translation means
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/52—Binary to binary
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/20—Employing a main memory using a specific memory technology
- G06F2212/206—Memory mapped I/O
Abstract
Application programs compiled for a first, "source", computer are translated, from their object form, for execution on a second, "target", computer.
The translated application programs are linked or otherwise bound with a translation of the source computer system software. The translated system software operates on the image of the source computer address space in the target computer exactly as it did in the source computer. The semantics of the source computer system softwareare thus preserved identically. In addition, a virtual hardware environment is provided in the target computer to manage events and to deal with differences in the address space layouts between the source and target computers.
The translated application programs are linked or otherwise bound with a translation of the source computer system software. The translated system software operates on the image of the source computer address space in the target computer exactly as it did in the source computer. The semantics of the source computer system softwareare thus preserved identically. In addition, a virtual hardware environment is provided in the target computer to manage events and to deal with differences in the address space layouts between the source and target computers.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US28076788A | 1988-12-06 | 1988-12-06 | |
US280,767 | 1988-12-06 |
Publications (2)
Publication Number | Publication Date |
---|---|
CA2002201A1 true CA2002201A1 (en) | 1990-06-06 |
CA2002201C CA2002201C (en) | 1999-04-27 |
Family
ID=23074545
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CA002002201A Expired - Fee Related CA2002201C (en) | 1988-12-06 | 1989-11-03 | Translation technique |
Country Status (7)
Country | Link |
---|---|
US (1) | US5724590A (en) |
EP (1) | EP0372834B1 (en) |
JP (1) | JPH0731604B2 (en) |
AU (1) | AU613248B2 (en) |
CA (1) | CA2002201C (en) |
DE (1) | DE68926706T2 (en) |
HK (1) | HK179496A (en) |
Families Citing this family (61)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5878246A (en) * | 1995-07-05 | 1999-03-02 | Sun Microsystems, Inc. | System for linking an interposition module between two modules to provide compatibility as module versions change |
RU2115159C1 (en) * | 1995-10-24 | 1998-07-10 | Владимир Олегович Сафонов | Method and device for checking use of record fields during compilation |
US5894578A (en) * | 1995-12-19 | 1999-04-13 | Advanced Micro Devices, Inc. | System and method for using random access memory in a programmable interrupt controller |
US6305011B1 (en) | 1996-01-16 | 2001-10-16 | Sun Microsystems, Inc. | Tip technology and its application to sparcompiler pascal |
US5946487A (en) * | 1996-06-10 | 1999-08-31 | Lsi Logic Corporation | Object-oriented multi-media architecture |
US5881289A (en) * | 1996-11-26 | 1999-03-09 | Hewlett-Packard Company | Remote compiling of source code for cross development |
US5896522A (en) * | 1996-12-31 | 1999-04-20 | Unisys Corporation | Selective emulation interpretation using transformed instructions |
US6035120A (en) * | 1997-05-28 | 2000-03-07 | Sun Microsystems, Inc. | Method and apparatus for converting executable computer programs in a heterogeneous computing environment |
US5966536A (en) * | 1997-05-28 | 1999-10-12 | Sun Microsystems, Inc. | Method and apparatus for generating an optimized target executable computer program using an optimized source executable |
WO1999012094A1 (en) * | 1997-09-01 | 1999-03-11 | Siemens Nixdorf Informationssysteme Ag | Method for converting an object code into a programme code |
US6382846B1 (en) * | 1998-01-09 | 2002-05-07 | Industial Technology Research Institute | Intermediate instruction execution processor which resolves symbolic references without modifying intermediate instruction code |
JPH11296381A (en) | 1998-04-08 | 1999-10-29 | Matsushita Electric Ind Co Ltd | Virtual machine and compiler |
US6173249B1 (en) * | 1998-07-24 | 2001-01-09 | Tandem Computers Incorporated | Method of determining termination of a process under a simulated operating system |
US6317873B1 (en) * | 1998-10-14 | 2001-11-13 | Alcatel Usa Sourcing, L.P. | Assembly language translator |
EP0997815A3 (en) * | 1998-10-29 | 2004-05-26 | Texas Instruments Incorporated | Interactive translation system and method |
US6330528B1 (en) | 1998-12-16 | 2001-12-11 | Compaq Computer Corp. | Method of terminating temporarily unstoppable code executing in a multi-threaded simulated operating system |
US6662354B1 (en) | 1999-01-29 | 2003-12-09 | Unisys Corporation | Determining destinations of a dynamic branch |
US7058932B1 (en) | 1999-04-19 | 2006-06-06 | Unisys Corporation | System, computer program product, and methods for emulation of computer programs |
US6370683B1 (en) * | 1999-05-07 | 2002-04-09 | Arnold Sobers | Computer software for generating flowchart images of a source program |
US7761857B1 (en) | 1999-10-13 | 2010-07-20 | Robert Bedichek | Method for switching between interpretation and dynamic translation in a processor system based upon code sequence execution counts |
US6714904B1 (en) * | 1999-10-13 | 2004-03-30 | Transmeta Corporation | System for using rate of exception event generation during execution of translated instructions to control optimization of the translated instructions |
US6880152B1 (en) * | 1999-10-13 | 2005-04-12 | Transmeta Corporation | Method of determining a mode of code generation |
US6986128B2 (en) * | 2000-01-07 | 2006-01-10 | Sony Computer Entertainment Inc. | Multiple stage program recompiler and method |
US6523173B1 (en) * | 2000-01-11 | 2003-02-18 | International Business Machines Corporation | Method and apparatus for allocating registers during code compilation using different spill strategies to evaluate spill cost |
US6594821B1 (en) | 2000-03-30 | 2003-07-15 | Transmeta Corporation | Translation consistency checking for modified target instructions by comparing to original copy |
US6862730B1 (en) * | 2000-04-26 | 2005-03-01 | Lucent Technologies Inc. | Register allocation in code translation between processors |
US6708329B1 (en) * | 2000-05-26 | 2004-03-16 | Itt Manufacturing Enterprises, Inc. | Method and apparatus for producing modules compatible with a target system platform from simulation system modules utilized to model target system behavior |
US6615300B1 (en) | 2000-06-19 | 2003-09-02 | Transmeta Corporation | Fast look-up of indirect branch destination in a dynamic translation system |
FR2817363B1 (en) * | 2000-11-24 | 2002-12-27 | France Telecom | FORMAL VERIFICATION IN PARTICULAR OF A SECURE VIRTUAL MACHINE |
KR20040004619A (en) * | 2001-05-11 | 2004-01-13 | 컴퓨터 어소시에이츠 싱크, 인코포레이티드 | Method and system for transforming legacy software applications into modern object-oriented systems |
US7065757B2 (en) * | 2001-09-28 | 2006-06-20 | Hewlett-Packard Development Company, L.P. | Efficient compilation of family of related functions |
US6976249B1 (en) * | 2001-11-12 | 2005-12-13 | Apple Computer, Inc. | Method for embedding object codes in source codes |
GB0202728D0 (en) * | 2002-02-06 | 2002-03-27 | Transitive Technologies Ltd | Condition code flag emulation for program code conversion |
US7331040B2 (en) * | 2002-02-06 | 2008-02-12 | Transitive Limted | Condition code flag emulation for program code conversion |
US7228526B2 (en) * | 2002-06-12 | 2007-06-05 | Microsoft Corporation | Application imaging infrastructure |
US20040003383A1 (en) * | 2002-06-28 | 2004-01-01 | Microsoft Corporation | Stripping of unnecessary information from source code |
US7310723B1 (en) | 2003-04-02 | 2007-12-18 | Transmeta Corporation | Methods and systems employing a flag for deferring exception handling to a commit or rollback point |
GB0307805D0 (en) * | 2003-04-04 | 2003-05-07 | Intuwave Ltd | A method of enabling source code to be used to generate a first and a second software application,each compatible with a different operating system |
US8424023B2 (en) * | 2003-10-24 | 2013-04-16 | Hewlett-Packard Development Company, L.P. | Program interface architecture |
US7765539B1 (en) | 2004-05-19 | 2010-07-27 | Nintendo Co., Ltd. | System and method for trans-compiling video games |
JP4207938B2 (en) * | 2005-02-01 | 2009-01-14 | セイコーエプソン株式会社 | Software authentication system, software authentication program, and software authentication method |
JP2006244451A (en) * | 2005-02-01 | 2006-09-14 | Seiko Epson Corp | Resource management system, resource management program, and resource management method |
US8413162B1 (en) | 2005-06-28 | 2013-04-02 | Guillermo J. Rozas | Multi-threading based on rollback |
EP1752874A1 (en) * | 2005-07-19 | 2007-02-14 | Alcatel | Adaptive evolutionary computer software product |
DE602005024399D1 (en) * | 2005-08-30 | 2010-12-09 | Sony Ericsson Mobile Comm Ab | Method and software for optimizing the positioning of software functions in a memory |
US7721269B2 (en) * | 2005-12-23 | 2010-05-18 | Sas Institute Inc. | System and method for detecting redundant subroutine calls |
US7873952B2 (en) * | 2006-03-09 | 2011-01-18 | Oracle America, Inc. | Code transformation to optimize fragments that implement constant loading |
US8484556B2 (en) | 2006-08-22 | 2013-07-09 | Autodesk, Inc. | Drawing interoperability between different computer-aided design applications |
US7810079B2 (en) * | 2007-01-23 | 2010-10-05 | Sas Institute Inc. | System and method for determining execution path difference in program |
US8407675B1 (en) * | 2007-02-06 | 2013-03-26 | The United States Of America As Represented By The Secretary Of The Navy | Extraction of executable code and translation to alternate platform |
US8566796B2 (en) | 2008-04-04 | 2013-10-22 | Sas Institute Inc. | Systems and methods for interactions with software probes |
US8099721B2 (en) | 2008-06-17 | 2012-01-17 | Microsoft Corporation | Parsing of declarations in all branches of preprocessor conditionals |
US8276020B2 (en) | 2009-03-18 | 2012-09-25 | Sas Institute Inc. | Systems and methods for automated determination of error handling |
US7904754B2 (en) * | 2009-03-18 | 2011-03-08 | Sas Institute Inc. | Systems and methods for automated determination of out of memory handling |
US9208319B2 (en) | 2011-12-15 | 2015-12-08 | Microsoft Technology Licensing, Llc | Code base partitioning system |
US9740464B2 (en) | 2014-05-30 | 2017-08-22 | Apple Inc. | Unified intermediate representation |
US10346941B2 (en) | 2014-05-30 | 2019-07-09 | Apple Inc. | System and method for unified application programming interface and model |
US10430169B2 (en) * | 2014-05-30 | 2019-10-01 | Apple Inc. | Language, function library, and compiler for graphical and non-graphical computation on a graphical processor unit |
US9767004B2 (en) * | 2014-06-16 | 2017-09-19 | Symantec Corporation | Dynamic call tracking method based on CPU interrupt instructions to improve disassembly quality of indirect calls |
US20170228225A1 (en) * | 2016-02-05 | 2017-08-10 | Honeywell International, Inc. | System and method for preserving value and extending life of legacy software in face of processor unavailability, rising processor costs, or other issues |
US10409559B2 (en) * | 2016-03-18 | 2019-09-10 | Oracle International Corporation | Single-source-base compilation for multiple target environments |
Family Cites Families (31)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4031517A (en) * | 1974-04-24 | 1977-06-21 | Honeywell Information Systems, Inc. | Emulation of target system interrupts through the use of counters |
US4084235A (en) * | 1975-04-14 | 1978-04-11 | Honeywell Information Systems Inc. | Emulation apparatus |
US4205370A (en) * | 1975-04-16 | 1980-05-27 | Honeywell Information Systems Inc. | Trace method and apparatus for use in a data processing system |
US4315321A (en) * | 1978-06-16 | 1982-02-09 | The Kardios Systems Corporation | Method and apparatus for enhancing the capabilities of a computing system |
US4253145A (en) * | 1978-12-26 | 1981-02-24 | Honeywell Information Systems Inc. | Hardware virtualizer for supporting recursive virtual computer systems on a host computer system |
US4370709A (en) * | 1980-08-01 | 1983-01-25 | Tracor, Inc. | Computer emulator with three segment microcode memory and two separate microcontrollers for operand derivation and execution phases |
US4466098A (en) * | 1982-06-11 | 1984-08-14 | Siemens Corporation | Cross channel circuit for an electronic system having two or more redundant computers |
US4672532A (en) * | 1982-06-14 | 1987-06-09 | Tektronix, Inc. | Software/hardware integration control system |
JPS5938870A (en) * | 1982-08-30 | 1984-03-02 | Sharp Corp | Electronic computer |
EP0124517A1 (en) * | 1982-10-22 | 1984-11-14 | International Business Machines Corporation | Accelerated instruction mapping external to source and target instruction streams for near realtime injection into the latter |
JPS6017539A (en) * | 1983-07-11 | 1985-01-29 | Hitachi Ltd | Emulation system |
JPS60142428A (en) * | 1983-12-28 | 1985-07-27 | Hitachi Ltd | Emulation system |
US4727480A (en) * | 1984-07-09 | 1988-02-23 | Wang Laboratories, Inc. | Emulation of a data processing system |
US4667290A (en) * | 1984-09-10 | 1987-05-19 | 501 Philon, Inc. | Compilers using a universal intermediate language |
US4638423A (en) * | 1985-03-06 | 1987-01-20 | Motorola, Inc. | Emulating computer |
US4794522A (en) * | 1985-09-30 | 1988-12-27 | International Business Machines Corporation | Method for detecting modified object code in an emulator |
US4734854A (en) * | 1985-10-08 | 1988-03-29 | American Telephone And Telegraph Company | System for generating software source code components |
US4875186A (en) * | 1986-02-28 | 1989-10-17 | Prime Computer, Inc. | Peripheral emulation apparatus |
US5088033A (en) * | 1986-04-28 | 1992-02-11 | Xerox Corporation | Data processing system emulation in a window with a coprocessor and I/O emulation |
US4841476A (en) * | 1986-10-06 | 1989-06-20 | International Business Machines Corporation | Extended floating point operations supporting emulation of source instruction execution |
US5210832A (en) * | 1986-10-14 | 1993-05-11 | Amdahl Corporation | Multiple domain emulation system with separate domain facilities which tests for emulated instruction exceptions before completion of operand fetch cycle |
US4791558A (en) * | 1987-02-13 | 1988-12-13 | International Business Machines Corporation | System and method for generating an object module in a first format and then converting the first format into a format which is loadable into a selected computer |
AU1621988A (en) * | 1987-04-23 | 1988-12-02 | Commodore-Amiga, Inc. | A method of communicating data between the cpu of a host computer system and the cpu of a co-processor computer system. |
US4888680A (en) * | 1987-10-14 | 1989-12-19 | Little Blue Limited Partnership | Peripheral device interface and controller |
US4961133A (en) * | 1987-11-06 | 1990-10-02 | Visystems, Inc. | Method for providing a virtual execution environment on a target computer using a virtual software machine |
CA1312959C (en) * | 1987-11-06 | 1993-01-19 | Kiritkumar Talati | Virtual interface system and method for enabling software applications to be environment-independent |
US5067072A (en) * | 1987-11-06 | 1991-11-19 | Visystems, Inc. | Virtual software machine which preprocesses application program to isolate execution dependencies and uses target computer processes to implement the execution dependencies |
US5129064A (en) * | 1988-02-01 | 1992-07-07 | International Business Machines Corporation | System and method for simulating the I/O of a processing system |
US4951195A (en) * | 1988-02-01 | 1990-08-21 | International Business Machines Corporation | Condition code graph analysis for simulating a CPU processor |
JPH0628036B2 (en) * | 1988-02-01 | 1994-04-13 | インターナショナル・ビジネス・マシーンズ・コーポレーシヨン | Simulation method |
US5313614A (en) * | 1988-12-06 | 1994-05-17 | At&T Bell Laboratories | Method and apparatus for direct conversion of programs in object code form between different hardware architecture computer systems |
-
1989
- 1989-11-03 CA CA002002201A patent/CA2002201C/en not_active Expired - Fee Related
- 1989-11-16 AU AU44741/89A patent/AU613248B2/en not_active Ceased
- 1989-11-30 DE DE68926706T patent/DE68926706T2/en not_active Expired - Fee Related
- 1989-11-30 EP EP89312500A patent/EP0372834B1/en not_active Expired - Lifetime
- 1989-12-06 JP JP1315529A patent/JPH0731604B2/en not_active Expired - Fee Related
-
1996
- 1996-09-18 US US08/715,308 patent/US5724590A/en not_active Expired - Lifetime
- 1996-09-26 HK HK179496A patent/HK179496A/en not_active IP Right Cessation
Also Published As
Publication number | Publication date |
---|---|
EP0372834A2 (en) | 1990-06-13 |
EP0372834A3 (en) | 1992-06-10 |
EP0372834B1 (en) | 1996-06-19 |
JPH0731604B2 (en) | 1995-04-10 |
DE68926706T2 (en) | 1997-01-09 |
CA2002201C (en) | 1999-04-27 |
DE68926706D1 (en) | 1996-07-25 |
JPH02238527A (en) | 1990-09-20 |
HK179496A (en) | 1996-10-04 |
AU613248B2 (en) | 1991-07-25 |
US5724590A (en) | 1998-03-03 |
AU4474189A (en) | 1990-08-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CA2002204A1 (en) | Translation technique | |
CA2002201A1 (en) | Translation technique | |
CA2145844A1 (en) | A System for Operating Application Software in a Safety Critical Environment | |
CA2178581A1 (en) | Automatic Booting Framework | |
AU1391199A (en) | Force feedback system including multi-tasking graphical host environment and interface device | |
EP0749597A4 (en) | Distributed protocol framework | |
CA2344597A1 (en) | Hypervisor virtualization of os console and operator panel | |
CA2294397A1 (en) | A parallel virtual file system | |
WO1999009513A3 (en) | Computer partition manipulation during imaging | |
EP0371942A3 (en) | System and method for interfacing in computer systems | |
CA2149870A1 (en) | Object-oriented host system | |
AU4922490A (en) | Virtual computer system having improved input/output interrupt control | |
CA2383528A1 (en) | Branch instruction for processor | |
AU623517B2 (en) | Translation look-aside buffer for a computer memory system | |
CA2121154A1 (en) | System for Emulating Multi-Tasking Pipelines in a Single Tasking Environment | |
WO2001052064A3 (en) | Protection domains for a computer operating system | |
CA2264232A1 (en) | Systems and methods for providing dynamic data referencing in a generic data exchange environment | |
WO1995024678A3 (en) | Highly pipelined bus architecture | |
EP0268139A3 (en) | Manipulating rights-to-execute in connection with a software copy protection mechanism | |
CA2009529A1 (en) | Servicing interrupt requests in a data processing system without using the services of an operating system | |
EP0377299A3 (en) | An encapsulation system for a computer system | |
EP0362880A3 (en) | Process for partially swapping real storage areas used by a program between a real storage and an auxiliary storage | |
Lindstrom et al. | The grand unified theory of address spaces | |
CA2179747A1 (en) | Frame structure which provides an interface between parts of a compound document | |
CA2021878A1 (en) | Virtual storage address space access control system |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
EEER | Examination request | ||
MKLA | Lapsed |