CA2002201A1 - Translation technique - Google Patents

Translation technique

Info

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
Application number
CA2002201A
Other languages
French (fr)
Other versions
CA2002201C (en
Inventor
John Charles Goettelmann
Ronald George Hiller
Irvan Jay Krantzler
Christopher James Macey
Mark Logan Tuomenoksa
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
AT&T Corp
Original Assignee
American Telephone and Telegraph Co Inc
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 American Telephone and Telegraph Co Inc filed Critical American Telephone and Telegraph Co Inc
Publication of CA2002201A1 publication Critical patent/CA2002201A1/en
Application granted granted Critical
Publication of CA2002201C publication Critical patent/CA2002201C/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45537Provision of facilities of other operating environments, e.g. WINE
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/0292User address space allocation, e.g. contiguous or non contiguous base addressing using tables or multilevel address translation means
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/52Binary to binary
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/20Employing a main memory using a specific memory technology
    • G06F2212/206Memory 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.
CA002002201A 1988-12-06 1989-11-03 Translation technique Expired - Fee Related CA2002201C (en)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

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