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

System for assisting a programmer find errors in concurrent programs

Assignee: Toshiba Corp
•
Filing: 1996-12-23
•
Granted: 2000-05-23
•
Expires: 2016-12-23
📄 Original PDF 🌐 Google Patents 🔄 Sync Now

Abstract

Abstract A designer creates a program with the editor 1. The division means 2 divides each process of the program into a plurality of controllable sections. The detection means 3 finds the dependency relations among the sessions of the program. The generation means 4 represents as a scenario all the possible execution sequences of the sections in each process. When the designer selects the edge of a section to be executed first at each branch in the scenario with the use of the selection means 6, a scenario containing only the combinations of intended execution sequences is generated. Based on this scenario, the conversion means 9 inserts execution timing control instructions into the first program to convert the first program to a second program. The resulting second program does not contain a harmful nondeterminism. Therefore, a hyper sequential programming system or method for developing reliable concurrent programs is provided easily.

Inventors

  • 👤 Naoshi Uchihira

Bibliographic Details

Application Number —
Jurisdiction US
Data Source google_patents
Last Synchronized 2026-10-30 10:28
CPC Classifications
G; G06; G06F; G06F8/00; G06F8/30; G06F8/40; G06F8/53

Claims Analysis

Total Claims: 23
Claim 1
Independent Claim 148 words
A system for assisting a program designer to remove program errors of a concurrent program, said system comprising: division means for dividing each process of a first concurrent program, consisting of a plurality of processes, into a plurality of sections; generation means for generating a network structure, consisting of nodes and arrows, which represents a set of possible execution orders of said sections of said first concurrent program, where each arrow indicates a section, and a path of said network structure indicates a possible execution order of said sections; selection means for selecting sections represented by said arrows at each branch of said network structure; and conversion means for converting said first concurrent program to a second concurrent program which executes selected execution orders consisting of said selected sections of said first concurrent program selected by said selection means and does not execute sections which are not selected.
Claim 2
Independent Claim 148 words
A system for assisting a program designer to remove program errors of a concurrent program, said system comprising: division means for dividing each process of a first concurrent program, consisting of a plurality of processes, into a plurality of sections; generation means for generating a network structure, consisting of nodes and arrows, which represents a set of possible execution orders of said sections of said first concurrent program, where each arrow indicates a section, and a path of said network structure indicates a possible execution order of said sections; selection means for selecting sections represented by said arrows at each branch of said network structure; and conversion means for converting said first concurrent program to a second concurrent program which executes selected execution orders consisting of said selected sections of said first concurrent program selected by said selection means and does not execute sections which are not selected.
Claim 3
Independent Claim 121 words
A method for assisting a program designer to detect program errors, said method comprising: a division step for dividing each process of a first concurrent program, consisting of a plurality of processes, into a plurality of controllable sections; a generation step for generating an execution path representing all the possible execution sequences of said sections of each of said processes with the use of branches between said sections; a selection step for selecting sections at branches in said execution path generated by said generation step; and a conversion step for converting said first concurrent program to a second concurrent program executing a sequence of said sections according to said execution path consisting of branches of sections selected by said selection step.
Claim 4
Independent Claim 121 words
A method for assisting a program designer to detect program errors, said method comprising: a division step for dividing each process of a first concurrent program, consisting of a plurality of processes, into a plurality of controllable sections; a generation step for generating an execution path representing all the possible execution sequences of said sections of each of said processes with the use of branches between said sections; a selection step for selecting sections at branches in said execution path generated by said generation step; and a conversion step for converting said first concurrent program to a second concurrent program executing a sequence of said sections according to said execution path consisting of branches of sections selected by said selection step.
Claim 5
Independent Claim 112 words
A system for assisting a program designer to detect program errors, said system comprising: division means for dividing each process of a first concurrent program, consisting of a plurality of processes, into a plurality of controllable sections; generation means for generating possible execution paths among all the possible execution sequences of said sections of each of said processes, said possible execution paths including branches in execution sequences of said sections; selection means for selecting sections at branches in said possible execution paths generated by said generation means; and conversion means for converting said first concurrent program to a second concurrent program having selected sections at branches being selected by said selection means.
Claim 6
Independent Claim 112 words
A system for assisting a program designer to detect program errors, said system comprising: division means for dividing each process of a first concurrent program, consisting of a plurality of processes, into a plurality of controllable sections; generation means for generating possible execution paths among all the possible execution sequences of said sections of each of said processes, said possible execution paths including branches in execution sequences of said sections; selection means for selecting sections at branches in said possible execution paths generated by said generation means; and conversion means for converting said first concurrent program to a second concurrent program having selected sections at branches being selected by said selection means.
Claim 7
Dependent Claim 48 words
A system as claimed in claim 3 wherein said generation means generates an execution path consisting of branches between sections affecting the execution result of said second concurrent program as a result of said selection, said execution path representing the execution sequence of said sections of each process.
Claim 8
Dependent Claim 39 words
A system as claimed in claim 4, further comprising an expansion means for expanding said execution path by adding the branches between sections not affecting the execution result of said second concurrent program as a result of said selection.
Claim 9
Independent Claim 122 words
A system for assisting a program designer to detect program errors, said system comprising: division means for dividing each process of a first concurrent program, consisting of a plurality of processes, into a plurality of controllable sections; detection means for detecting a dependency relation between said sections; generation means for generating an execution path representing all the possible execution sequences of said sections of each process with the use of branches between said sections; selection means for selecting said sections at the branches having a dependency relation; and conversion means for converting said first concurrent program to a second concurrent program executing a sequence of said sections according to said execution path consisting of branches of sections selected by said selection means.
Claim 10
Independent Claim 122 words
A system for assisting a program designer to detect program errors, said system comprising: division means for dividing each process of a first concurrent program, consisting of a plurality of processes, into a plurality of controllable sections; detection means for detecting a dependency relation between said sections; generation means for generating an execution path representing all the possible execution sequences of said sections of each process with the use of branches between said sections; selection means for selecting said sections at the branches having a dependency relation; and conversion means for converting said first concurrent program to a second concurrent program executing a sequence of said sections according to said execution path consisting of branches of sections selected by said selection means.
Claim 11
Dependent Claim 37 words
A system as claimed in claim 6 wherein said generation means generates an execution path consisting of branches between sections having said dependency relation, said execution path representing the execution sequence of said sections of each process.
Claim 12
Dependent Claim 27 words
A system as claimed in claim 7, further comprising expansion means for expanding said execution path by adding the branches between sections not having said dependency relation.
Claim 13
Dependent Claim 38 words
A system as claimed in claim 3 or 6, further comprising execution means for simulating said first concurrent program according to the execution sequence of sections indicated by said execution path created after selection by said selection means.
Claim 14
Dependent Claim 60 words
A system as claimed in claim 3 or 6 wherein said conversion is performed by inserting a first instruction for maintaining process synchronization after said section to be executed first with respect to said dependency relation and by inserting a second instruction, corresponding to the first instruction, before said section to be executed next with respect to said dependency relation.
Claim 15
Dependent Claim 61 words
A system as claimed in claim 5 or 8 wherein said expansion means comprises: disassembly means for disassembling said execution path for each process to generate an execution path for each process; and optimization means for optimizing the execution path of each process by deleting redundant parts, said conversion means generates said second concurrent program based on each optimized execution path.
Claim 16
Dependent Claim 90 words
A system as claimed in claim 5 or 8 wherein said expansion means comprises: disassembly means for disassembling said execution path for each process to generate an execution path for each process; and deletion means for deleting redundant parts of the execution path of each process, said conversion means generates said second concurrent program based on each optimized execution path, said disassembly means adding synchronization constraints to each execution path to establish synchronization when disassembling said execution path, and said optimization means removing redundant synchronization constraints from said synchronization constraints.
Claim 17
Independent Claim 142 words
A system for assisting a program designer to detect program errors, said system comprising: generation means for generating an execution path representing all the possible execution sequences of a plurality of sections, each process of a first concurrent program consisting of said plurality of sections; and conversion means for converting said first concurrent program to a second concurrent program executing a sequence of said sections according to said execution path generated by said generation means; expansion means for expanding said execution path by adding branches between sections not having a dependency relation, said expansion means including disassembly means for disassembling said execution path for each process to generate an execution path for each process; and deletion means for deleting redundant parts of the execution path of each process, said conversion means generates said second concurrent program based on each optimized execution path.
Claim 18
Independent Claim 142 words
A system for assisting a program designer to detect program errors, said system comprising: generation means for generating an execution path representing all the possible execution sequences of a plurality of sections, each process of a first concurrent program consisting of said plurality of sections; and conversion means for converting said first concurrent program to a second concurrent program executing a sequence of said sections according to said execution path generated by said generation means; expansion means for expanding said execution path by adding branches between sections not having a dependency relation, said expansion means including disassembly means for disassembling said execution path for each process to generate an execution path for each process; and deletion means for deleting redundant parts of the execution path of each process, said conversion means generates said second concurrent program based on each optimized execution path.
Claim 19
Dependent Claim 38 words
A system as claimed in claim 13 wherein said disassembly means adds synchronization constraints to each execution path to establish synchronization when disassembling said execution path, and said deletion means removes redundant synchronization constraints from said synchronization constraints.
Claim 20
Independent Claim 127 words
A method for assisting a program designer to detect program errors, said method comprising: a division step for dividing each process of a first concurrent program, consisting of a plurality of processes, into a plurality of controllable sections; a detection step for detecting a dependency relation between said sections; a generation step for generating an execution path representing all the possible execution sequences of said sections of each process with the use of branches between said sections; a selection step for selecting said sections at the branches having a dependency relation; and a conversion step for converting said first concurrent program to a second concurrent program executing a sequence of said sections according to said execution path, consisting of branches of sections selected by said selection step.
Claim 21
Independent Claim 127 words
A method for assisting a program designer to detect program errors, said method comprising: a division step for dividing each process of a first concurrent program, consisting of a plurality of processes, into a plurality of controllable sections; a detection step for detecting a dependency relation between said sections; a generation step for generating an execution path representing all the possible execution sequences of said sections of each process with the use of branches between said sections; a selection step for selecting said sections at the branches having a dependency relation; and a conversion step for converting said first concurrent program to a second concurrent program executing a sequence of said sections according to said execution path, consisting of branches of sections selected by said selection step.
Claim 22
Independent Claim 130 words
A method for assisting a program designer to detect program errors, said method comprising: a generation step for generating an execution path representing all the possible execution sequences of a plurality of sections, each process of a first concurrent program consisting of said plurality of sections; and a conversion step for converting said first concurrent program to a second concurrent program executing a sequence of said sections according to said execution path generated by said generation step, wherein said expansion step comprises: a disassembly step for disassembling said execution path for each process to generate an execution path for each process; and a deletion step for deleting redundant parts of the execution path of each process, said conversion step generates said second concurrent program based on each optimized execution path.
Claim 23
Independent Claim 130 words
A method for assisting a program designer to detect program errors, said method comprising: a generation step for generating an execution path representing all the possible execution sequences of a plurality of sections, each process of a first concurrent program consisting of said plurality of sections; and a conversion step for converting said first concurrent program to a second concurrent program executing a sequence of said sections according to said execution path generated by said generation step, wherein said expansion step comprises: a disassembly step for disassembling said execution path for each process to generate an execution path for each process; and a deletion step for deleting redundant parts of the execution path of each process, said conversion step generates said second concurrent program based on each optimized execution path.

References Cited (Backward Citations)

US3905023A Cited
US5048018A Cited
US5682535A Cited
JPH0816429A Cited

USPTO Annuity & Maintenance Windows

Annuity Stage Window Opens Payment Deadline Surcharge Period Until Estimated Fee Status
3.5 Years (Year 4) 2003-05-23 2003-11-22 2004-05-23 $2000.00 Window Closed / Lapsed
7.5 Years (Year 8) 2007-05-23 2007-11-22 2008-05-23 $3760.00 Window Closed / Lapsed
11.5 Years (Year 12) 2011-05-23 2011-11-22 2012-05-23 $7700.00 Window Closed / Lapsed

Assigned Categories & Tags

No categories assigned to this patent yet.

Assign Category Tag