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

Virtual memory management for source-code development system

Assignee: Hewlett Packard Development Co LP
•
Filing: 1993-02-08
•
Granted: 1994-04-05
•
Expires: 2013-02-08
📄 Original PDF 🌐 Google Patents 🔄 Sync Now

Abstract

Abstract A computer-aided software development system includes programs to implement edit, compile, link and run sequences, all from virtual memory, at very high speed. The compiler operates on an incremental basis, line-by-line, so if only one line is changed in an edit session, then only that line need be recompiled if no other code is affected. Scanning is done incrementally, and the resulting token list saved in memory to be used again where no changes are made. All of the linking tables are saved in virtual memory so that there is no need to generate link tables for increments of code where no changes in links are needed. The parser is able to skip lines or blocks of lines of source code which haven't been changed. All of the source code text modules, the token lists, symbol tables, code tables and related data saved from one compile to another are maintained in virtual memory rather than in files so that speed of operation is enhanced; each module or table is on a separate page with no data from other modules or tables interleaved, and whenever data is added to one of these a reallocation is done to make sure each page has no foreign data. Also, the object code created is maintained in memory rather than in a file, and executed from this memory image, to reduce delays. A virtual memory management arrangement for the system assures that all of the needed data modules and code is present in real memory by page swapping, but with a minimum of page faults, again to enhance operating speed.

Inventors

  • 👤 William M. McKeeman
  • 👤 Shota Aki

Bibliographic Details

Application Number —
Jurisdiction US
Data Source google_patents
Last Synchronized 2026-11-09 07:36
CPC Classifications
G; G06; G06F; G06F8/00; G06F8/20; G06F8/40; G06F8/41; G06F8/48; G06F8/70; G06F8/71

Claims Analysis

Total Claims: 18
Claim 1
Independent Claim 275 words
A method of managing a virtual memory system while executing applications code having a plurality of different operating phases, wherein said plurality of different operating phases includes phases of editing, compiling, and linking a plurality of modules of source code; said virtual memory system having a paged virtual memory including a volatile memory and a non-volatile storage, said volatile memory having much faster access than said non-volatile storage, comprising the steps of: a) storing in said virtual memory a plurality of separate data modules including said modules of source code, said data modules being of variable size, each data module being stored on a separate page or pages of said virtual memory with no interleaved data regardless of the size of the data module; b) storing, on a page or pages in said virtual memory, said applications code for said plurality of separate operating phases, and executing said applications code for each of said operating phases to perform an operation on one or more of said data modules including writing data to said one or more of said data modules; c) transferring said page or pages of at least one of said data modules and said page or pages of said applications code for at least one of said plurality of operating phases from said non-volatile storage to said volatile memory for said step of executing said applications code of each of said operating phases; d) and reallocating said data modules after said step of executing each one of said operating phases to maintain each of said data modules in a page or pages with no interleaved data in non-volatile storage and said volatile memory.
Claim 2
Independent Claim 275 words
A method of managing a virtual memory system while executing applications code having a plurality of different operating phases, wherein said plurality of different operating phases includes phases of editing, compiling, and linking a plurality of modules of source code; said virtual memory system having a paged virtual memory including a volatile memory and a non-volatile storage, said volatile memory having much faster access than said non-volatile storage, comprising the steps of: a) storing in said virtual memory a plurality of separate data modules including said modules of source code, said data modules being of variable size, each data module being stored on a separate page or pages of said virtual memory with no interleaved data regardless of the size of the data module; b) storing, on a page or pages in said virtual memory, said applications code for said plurality of separate operating phases, and executing said applications code for each of said operating phases to perform an operation on one or more of said data modules including writing data to said one or more of said data modules; c) transferring said page or pages of at least one of said data modules and said page or pages of said applications code for at least one of said plurality of operating phases from said non-volatile storage to said volatile memory for said step of executing said applications code of each of said operating phases; d) and reallocating said data modules after said step of executing each one of said operating phases to maintain each of said data modules in a page or pages with no interleaved data in non-volatile storage and said volatile memory.
Claim 3
Dependent Claim 51 words
A method according to claim 1 wherein said step of storing said code for each of said plurality of separate operating phases in said virtual memory includes storing said code on a separate page or pages of said virtual memory with no interleaved data regardless of the size of said code.
Claim 4
Dependent Claim 52 words
A method according to claim 1 wherein said step of storing said data modules included storing modules of source code for a source-code development program, and wherein said step of storing code for said plurality of separate operating phases includes storing code for editing, compiling, and linking said modules of source code.
Claim 5
Dependent Claim 29 words
A method according to claim 3 including the steps of executing said operations code for compiling and linking said source code to produce object code from said source code.
Claim 6
Dependent Claim 20 words
A method according to claim 4 including the step of maintaining said object code in one of said data modules.
Claim 7
Dependent Claim 42 words
A method according to claim 5 wherein said one of said data modules containing said object code is maintained in said volatile memory and is not written to a file in said non-volatile storage during said steps of executing said operating phases.
Claim 8
Dependent Claim 44 words
A method according to claim 3 wherein said step of storing data modules includes the steps of storing, for each module of said source code, as separate modules: a descriptor table, a table of tokens, a symbol table, and a table of code strings.
Claim 9
Dependent Claim 38 words
A method according to claim 4 wherein said step of transferring to said volatile memory includes storing in real memory in said virtual memory system, and step of transferring from said non-volatile storage includes reading from disk storage.
Claim 10
Independent Claim 256 words
A method of executing a source-code development program using a computer having a virtual memory system, said virtual memory system having a paged virtual memory which includes a real memory and disk storage, comprising the steps of: a) editing a plurality of separate data modules including source-code text modules, said data modules and text modules being of variable size, each data module and each text module being stored in virtual memory on a separate page or pages of said virtual memory with no interleaved data regardless of the size of the data module or text module; b) storing, on a page or pages in virtual memory, code for executing a plurality of separate operating phases of said development program, and executing said code for said operating phases; said executing said code including steps of editing, compiling and linking to produce object code from source code stored in said source-text modules, each of said steps of editing, compiling and linking performing an operation on one or more of said data modules; c) moving from said disk storage a page or pages of at least one of said data modules and a page or pages of said code for at least one of said operating phases to said real memory for said step of executing said code for said operating phases; d) and reallocating said data modules after said step of executing said code is performed thereon to maintain each of said data modules in said real memory in a page or contiguous pages with no interleaved data.
Claim 11
Independent Claim 256 words
A method of executing a source-code development program using a computer having a virtual memory system, said virtual memory system having a paged virtual memory which includes a real memory and disk storage, comprising the steps of: a) editing a plurality of separate data modules including source-code text modules, said data modules and text modules being of variable size, each data module and each text module being stored in virtual memory on a separate page or pages of said virtual memory with no interleaved data regardless of the size of the data module or text module; b) storing, on a page or pages in virtual memory, code for executing a plurality of separate operating phases of said development program, and executing said code for said operating phases; said executing said code including steps of editing, compiling and linking to produce object code from source code stored in said source-text modules, each of said steps of editing, compiling and linking performing an operation on one or more of said data modules; c) moving from said disk storage a page or pages of at least one of said data modules and a page or pages of said code for at least one of said operating phases to said real memory for said step of executing said code for said operating phases; d) and reallocating said data modules after said step of executing said code is performed thereon to maintain each of said data modules in said real memory in a page or contiguous pages with no interleaved data.
Claim 12
Dependent Claim 83 words
A method according to claim 9 wherein said code for said step of executing each of said separate operating phases is stored in said virtual memory on a separate page or pages of said virtual memory with no interleaved data regardless of the size of said code, said step of executing said code generating a plurality of tables associated with each of said data modules and storing each of said tables in virtual memory on a page or pages with no interleaved data.
Claim 13
Independent Claim 256 words
A method of performing a source-code development program using a computer having a virtual memory system, said virtual memory system having a paged virtual memory which includes a real memory and disk storage, comprising the steps of: a) storing in virtual memory a plurality of separate data modules including source-code text modules, said data modules being of variable size, each said data module being stored on a separate page or pages of said virtual memory with no interleaved data regardless of the size of the data module; b) storing, on a page or pages in virtual memory, applications code for executing a plurality of separate operating phases of said development program, and executing said applications code for each one of said operating phases and thereby performing an operation on one or more of said data modules, wherein said operating phases include operations of editing, compiling and linking, and wherein said step of executing said application code for said operating phases produces object code from said source-code text modules; c) said step of executing including moving a page or pages of at least one of said data modules and a page or pages of said applications code for at least one of said operating phases from said disk storage to said real memory for executing of said operating phases; d) and said step of executing including reallocating said data modules after said operating phases are performed thereon to maintain each of said data modules in real memory in a page or contiguous pages with no interleaved data.
Claim 14
Independent Claim 256 words
A method of performing a source-code development program using a computer having a virtual memory system, said virtual memory system having a paged virtual memory which includes a real memory and disk storage, comprising the steps of: a) storing in virtual memory a plurality of separate data modules including source-code text modules, said data modules being of variable size, each said data module being stored on a separate page or pages of said virtual memory with no interleaved data regardless of the size of the data module; b) storing, on a page or pages in virtual memory, applications code for executing a plurality of separate operating phases of said development program, and executing said applications code for each one of said operating phases and thereby performing an operation on one or more of said data modules, wherein said operating phases include operations of editing, compiling and linking, and wherein said step of executing said application code for said operating phases produces object code from said source-code text modules; c) said step of executing including moving a page or pages of at least one of said data modules and a page or pages of said applications code for at least one of said operating phases from said disk storage to said real memory for executing of said operating phases; d) and said step of executing including reallocating said data modules after said operating phases are performed thereon to maintain each of said data modules in real memory in a page or contiguous pages with no interleaved data.
Claim 15
Dependent Claim 52 words
A method according to claim 11 wherein said step of storing said applications code for executing each of said plurality of separate operating phases includes storing in said virtual memory on a separate page or pages of said virtual memory with non interleaved data regardless of the size of said applications code.
Claim 16
Dependent Claim 26 words
A method according to claim 11 including the step of maintaining said object code, produced by said step of executing, in one of said data modules.
Claim 17
Dependent Claim 34 words
A method according to claim 13 wherein said one of said modules containing said object code is maintained in said real memory and is not written to said disk storage during said operating phases.
Claim 18
Dependent Claim 42 words
A method according to claim 11 wherein said step of storing said data modules includes storing, for each module of said source code, as separate modules: a descriptor table, a table of tokens, a symbol table, and a table of code strings.

USPTO Annuity & Maintenance Windows

Annuity Stage Window Opens Payment Deadline Surcharge Period Until Estimated Fee Status
3.5 Years (Year 4) 1997-04-04 1997-10-04 1998-04-05 $2000.00 Window Closed / Lapsed
7.5 Years (Year 8) 2001-04-04 2001-10-04 2002-04-05 $3760.00 Window Closed / Lapsed
11.5 Years (Year 12) 2005-04-04 2005-10-04 2006-04-05 $7700.00 Window Closed / Lapsed

Assigned Categories & Tags

No categories assigned to this patent yet.

Assign Category Tag