GB201314586D0 - Interoperability unit - Google Patents

Interoperability unit

Info

Publication number
GB201314586D0
GB201314586D0 GBGB1314586.7A GB201314586A GB201314586D0 GB 201314586 D0 GB201314586 D0 GB 201314586D0 GB 201314586 A GB201314586 A GB 201314586A GB 201314586 D0 GB201314586 D0 GB 201314586D0
Authority
GB
United Kingdom
Prior art keywords
code
function
executable
library
function name
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
GBGB1314586.7A
Other versions
GB2503590A (en
GB2503590B (en
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.)
Micro Focus IP Development Ltd
Original Assignee
Micro Focus IP Development Ltd
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 Micro Focus IP Development Ltd filed Critical Micro Focus IP Development Ltd
Priority to GB1314586.7A priority Critical patent/GB2503590B/en
Publication of GB201314586D0 publication Critical patent/GB201314586D0/en
Publication of GB2503590A publication Critical patent/GB2503590A/en
Application granted granted Critical
Publication of GB2503590B publication Critical patent/GB2503590B/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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/445Program loading or initiating
    • G06F9/44521Dynamic linking or loading; Link editing at or after load time, e.g. Java class loading
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/54Link editing before load time
    • 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/45504Abstract machines for programme code execution, e.g. Java virtual machine [JVM], interpreters, emulators
    • G06F9/45516Runtime code conversion or optimisation
    • G06F9/45525Optimisation or modification within the same instruction set architecture, e.g. HP Dynamo

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)

Abstract

An application program comprising executable code is deployed in an RTE (Runtime Environment) comprising an interoperability bridge unit 405. A reference to a function, originally instructed in a system-independent programming language, is received from the executable code 450 and the reference resolved to determine the function name. The executable code is derived from an intermediate language code, e.g. bytecode. If the function name is located in an export portion of an executable library 465 registered with the RTE, typically a DLL (Dynamic Link Library) then program code, comprising a platform invoke statement referencing the library and function name, is dynamically generated, prepared and executed to invoke the function. A function code detector 415 receives the reference and a function locator resolves the reference to determine the function name. A code generator 435 dynamically generates program code 445 comprising the platform invoke statement for the function and this code is passed to a code implementer 455 which prepares the executable code. A static arrangement is also disclosed in which source code is parsed by a compiler. Program code containing a platform invoke statement for a function can then be generated and compiled to intermediate language code before run time.
GB1314586.7A 2013-08-14 2013-08-14 Interoperability unit Active GB2503590B (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
GB1314586.7A GB2503590B (en) 2013-08-14 2013-08-14 Interoperability unit

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
GB1314586.7A GB2503590B (en) 2013-08-14 2013-08-14 Interoperability unit

Publications (3)

Publication Number Publication Date
GB201314586D0 true GB201314586D0 (en) 2013-09-25
GB2503590A GB2503590A (en) 2014-01-01
GB2503590B GB2503590B (en) 2014-05-14

Family

ID=49262185

Family Applications (1)

Application Number Title Priority Date Filing Date
GB1314586.7A Active GB2503590B (en) 2013-08-14 2013-08-14 Interoperability unit

Country Status (1)

Country Link
GB (1) GB2503590B (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110765003A (en) * 2019-09-24 2020-02-07 贝壳技术有限公司 Code detection method, device and equipment, and storage medium

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112631684B (en) * 2020-12-30 2021-08-06 北京元心科技有限公司 Executable program running method and device, electronic equipment and computer storage medium
US11550556B1 (en) * 2021-07-26 2023-01-10 Sap Se Efficient semantic analysis of program code
US11556356B1 (en) 2021-09-23 2023-01-17 International Business Machines Corporation Dynamic link objects across different addressing modes

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030182460A1 (en) * 2002-03-25 2003-09-25 Atul Khare Managed code modules dynamically invoking unmanaged code modules at arbitrary locations
US7917898B2 (en) * 2004-02-02 2011-03-29 Intel Corporation Methods and apparatus to provide a modular native method invocation system
US7472375B2 (en) * 2005-03-29 2008-12-30 Intel Corporation Creating managed code from native code

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110765003A (en) * 2019-09-24 2020-02-07 贝壳技术有限公司 Code detection method, device and equipment, and storage medium

Also Published As

Publication number Publication date
GB2503590A (en) 2014-01-01
GB2503590B (en) 2014-05-14

Similar Documents

Publication Publication Date Title
PH12015500405B1 (en) Generating native code from intermediate laguage code for an application
WO2013036703A3 (en) Profile guided jit code generation
GB201314586D0 (en) Interoperability unit
WO2008064901A3 (en) Producer graph oriented programming and execution
ATE539402T1 (en) DYNAMIC RESOLUTION OF DEPENDENT COMPONENTS
BR112014030557A2 (en) predictive calibration device and method
CY1119758T1 (en) METHOD AND SYSTEM FOR CREATING CODES
WO2008064899A3 (en) Parallelization and instrumentation in a producer graph oriented programming framework
WO2006062849A3 (en) Proactive computer malware protection through dynamic translation
GB201216847D0 (en) Effective testing of authorization logic of web components which utilize claims-based authorization
GB2508784A (en) Generating Security Permissions
JP2014501412A5 (en)
WO2009081267A3 (en) Method and system for runtime program error detection
WO2014194237A3 (en) Systems and methods for remote analysis of software applications
BR112014028947A2 (en) processor configuration method, processor configuration device, processor, and computer program product
JP2014211864A (en) Analysis of incomplete software
IN2013MU03944A (en)
Nordio et al. Javanni: A verifier for JavaScript
BR112012019384A8 (en) METHOD FOR RUNNING AN APPLICATION AND PORTABLE DATA CARRIER
Garg et al. Improving Malware Detection By Parsing Broken Code
Márton et al. Unit Testing and Friends in C+
Kähkönen et al. The LIME Interface Specification Language and Runtime Monitoring Tool (Tool Paper)
GB201314580D0 (en) Processing for application program deployment
Son et al. Implementation of the Java Compiler for the Smart Cross Platform
Cosentino et al. Analyzing Flowgraphs with ATL