← Back to Patent Explorer
US5097533A Expired / Lapsed US ⏱️ 0.0 years remaining

System and method for interfacing computer application programs written in different languages to a software system

Assignee: Cisco Technology Inc
•
Filing: 1988-11-29
•
Granted: 1992-03-17
•
Expires: 2008-11-29
📄 Original PDF 🌐 Google Patents 🔄 Sync Now

Abstract

Abstract A support system and method for interfacing of computer application programs written in a plurality of languages to a software system such as a database manager of the like. A plurality of generic application program interfaces or entry points are defined having a corresponding plurality of parameters in a consistent form required by the system to execute functions. The parameters are transformations of like parameters associated with the application programs which call the APIs. Processor states corresponding to threads in the application programs are stored in a table shared by the generic APIs. Upon return from the call and execution of the system function, processor state is restored and control returned to the application program. Necessity for separate entry points for applications written in each different supported language is thereby avoided as well as associated increased development effort, maintenance, and support.

Inventors

  • 👤 Brian H. Burger
  • 👤 Domingo S. Hidalgo

Bibliographic Details

Application Number —
Jurisdiction US
Data Source google_patents
Last Synchronized 2026-10-25 12:54
CPC Classifications
G; G06; G06F; G06F9/00; G06F9/06; G06F9/46; G06F9/54; G06F8/00; G06F8/70; G06F8/76; G06F9/44; G06F9/448; G06F9/4482; G06F9/4484

Claims Analysis

Total Claims: 13
Claim 1
Independent Claim 220 words
A computer implemented method for interfacing a plurality of application programs each written in a different computer language to a computer software system comprising computer implemented steps of generating a plurality of generic application program interfaces each responsive to program calls from said application programs; generating a call from one of said application program interfaces in response to one of said program calls; executing a function in said system in response to said call from said one of said application program interfaces; transforming value and reference parameters associated with one of said application programs into transformed parameters in a form compatible with said software system; storing a processor state corresponding to a portion of said application program running asynchronously relative to remaining parts of said application program; calling a function of said software system with said transformed parameters; executing a return from said function call whereby said processor is restored to said processor state and return code information and control is returned to said application program, wherein said executing includes generating a stack frame with parameters of one of said application programs in a predetermined order comprised of a plurality of value parameters non-interleafed with a plurality of reference parameters; and constructing a next stack frame with parameters of a next one of said application programs in said predetermined order.
Claim 2
Dependent Claim 220 words
A computer implemented method for interfacing a plurality of application programs each written in a different computer language to a computer software system comprising computer implemented steps of generating a plurality of generic application program interfaces each responsive to program calls from said application programs; generating a call from one of said application program interfaces in response to one of said program calls; executing a function in said system in response to said call from said one of said application program interfaces; transforming value and reference parameters associated with one of said application programs into transformed parameters in a form compatible with said software system; storing a processor state corresponding to a portion of said application program running asynchronously relative to remaining parts of said application program; calling a function of said software system with said transformed parameters; executing a return from said function call whereby said processor is restored to said processor state and return code information and control is returned to said application program, wherein said executing includes generating a stack frame with parameters of one of said application programs in a predetermined order comprised of a plurality of value parameters non-interleafed with a plurality of reference parameters; and constructing a next stack frame with parameters of a next one of said application programs in said predetermined order.
Claim 3
Dependent Claim 36 words
The method of claim 1 further including the step of generating a state preservation table comprised of processor state information entry groups each associated with a different thread of a corresponding one of said application programs.
Claim 4
Dependent Claim 18 words
The method of claim 2 wherein said table is accessible to said plurality of generic application program interfaces.
Claim 5
Dependent Claim 17 words
The method of claim 3 wherein said table is transparent to said calls from said application programs.
Claim 6
Dependent Claim 14 words
The method of claim 4 wherein said table is transparent to said software system.
Claim 7
Independent Claim 241 words
A system for interfacing a plurality of application programs each written in a different computer language to a computer software system comprising means for generating a plurality of generic application program interfaces each responsive to program calls from said application programs; means for generating a call from one of said application program interfaces in response to one of said program calls; means for executing a function in said system in response to said call from said one of said application program interfaces; parameter transformation means for transforming parameters associated with one of said application programs into transformed parameters in a form compatible with said software system; means for storing a processor state corresponding to a portion of said application program running asynchronously relative to remaining parts of said application program; means for calling a function of said software system with said transformed parameters; means for executing a return from said function call whereby said processor is restored to said processor state and return code information and control is returned to said application program; means for generating a stack frame with parameters of one of said application programs in said predetermined order; means for constructing a next stack frame with parameters of a next one of said application programs in said predetermined order; and means for generating a state preservation table comprised of processor state information entry groups each associated with a different thread of a corresponding one of said application programs.
Claim 8
Independent Claim 241 words
A system for interfacing a plurality of application programs each written in a different computer language to a computer software system comprising means for generating a plurality of generic application program interfaces each responsive to program calls from said application programs; means for generating a call from one of said application program interfaces in response to one of said program calls; means for executing a function in said system in response to said call from said one of said application program interfaces; parameter transformation means for transforming parameters associated with one of said application programs into transformed parameters in a form compatible with said software system; means for storing a processor state corresponding to a portion of said application program running asynchronously relative to remaining parts of said application program; means for calling a function of said software system with said transformed parameters; means for executing a return from said function call whereby said processor is restored to said processor state and return code information and control is returned to said application program; means for generating a stack frame with parameters of one of said application programs in said predetermined order; means for constructing a next stack frame with parameters of a next one of said application programs in said predetermined order; and means for generating a state preservation table comprised of processor state information entry groups each associated with a different thread of a corresponding one of said application programs.
Claim 9
Dependent Claim 160 words
A computer implemented method for interfacing a plurality of threaded application programs, each written in a different computer language, to a computer software system having a processor, comprising computer implemented steps of saving the state of said processor in a state preservation table; storing each thread of said plurality application programs as a static pre-allocated entry in said table; setting up stack and global data addressing; retrieving a caller thread identification; indexing into said state preservation table with said thread identification; removing a return address of said caller from said stack; calling an underlying function of said software system; storing a return code from said function on said stack; setting up global data addressing; returning said caller thread identification; returning said saved processor state from said state preservation table in response to said retrieved called thread identification; restoring a processor state to said processor; storing a return address of said caller on said stack; and returning control to said caller.
Claim 10
Dependent Claim 160 words
A computer implemented method for interfacing a plurality of threaded application programs, each written in a different computer language, to a computer software system having a processor, comprising computer implemented steps of saving the state of said processor in a state preservation table; storing each thread of said plurality application programs as a static pre-allocated entry in said table; setting up stack and global data addressing; retrieving a caller thread identification; indexing into said state preservation table with said thread identification; removing a return address of said caller from said stack; calling an underlying function of said software system; storing a return code from said function on said stack; setting up global data addressing; returning said caller thread identification; returning said saved processor state from said state preservation table in response to said retrieved called thread identification; restoring a processor state to said processor; storing a return address of said caller on said stack; and returning control to said caller.
Claim 11
Dependent Claim 48 words
The method of claim 1 including detecting whether said underlying function has a stack frame different from said stack frame; and storing parameters in said stack transformed in an order predetermined by said underlying function in response to said detecting that said underlying function's stack frame is different.
Claim 12
Dependent Claim 42 words
The method of claim 8 further including detecting whether process information has been read; and calling an operating system of said computer system to read said process information in response to said detecting step indicating said process information has not been read.
Claim 13
Dependent Claim 21 words
The method of claim 9 further including storing said read process information for use in a next one of said calls.

References Cited (Backward Citations)

US3665421A Cited
US4493027A Cited
US4667290A Cited
US4787035A Cited
US4905138A Cited
US4961133A Cited

USPTO Annuity & Maintenance Windows

Annuity Stage Window Opens Payment Deadline Surcharge Period Until Estimated Fee Status
3.5 Years (Year 4) 1995-03-17 1995-09-16 1996-03-17 $2000.00 Window Closed / Lapsed
7.5 Years (Year 8) 1999-03-17 1999-09-16 2000-03-17 $3760.00 Window Closed / Lapsed
11.5 Years (Year 12) 2003-03-17 2003-09-16 2004-03-17 $7700.00 Window Closed / Lapsed

Assigned Categories & Tags

No categories assigned to this patent yet.

Assign Category Tag