1460735040-3e0227d5-cf51-4b78-9a15-65c4bcb978bf

1. A method on an information processing device for reporting any behavioral differences after composing two or more class hierarchies 1 and 2 with associated applications A1 and A2 respectively, the method on the information processing device comprising:
creating a composed hierarchy 3 by analyzing a hierarchy 1 and a hierarchy 2;
creating well-defined methods andor fields in one or more classes of the hierarchy 3 by analyzing the hierarchy 1 and the hierarchy 2 and user-supplied information;
associating a definition of a method M in a class D in a hierarchy with each executed call to a definition of a method M\u2032 in a class C in the hierarchy where class D is a subtype of class C in a behavior in the hierarchy for each of an application A1 and an application A2, wherein the method M and the method M\u2032 have an identical signature;
testing if two behaviors across the hierarchy 1 and the hierarchy 3 are different by comparing a behavior B3 of the application A1 in the composed hierarchy 3 with a behavior B1 of the application A1 in the hierarchy 1 and reporting any differences therebetween; and
testing if two behaviors across the hierarchy 2 and the hierarchy 3 are different by comparing a behavior B4 of the application A2 in the composed hierarchy 3 with a behavior B2 of the application A2 in the hierarchy 2 and reporting any differences therebetween.
2. The method of claim 1, further comprising:
determining a behavior B1 of the application A1 in the hierarchy 1 by associating a method definition M1\u2032 in a class D1 in the hierarchy 1 with each executed call to a method M1 in class C1 in the hierarchy 1, wherein the class D1 is a subtype of the class C1 in the hierarchy 1 and wherein the method M1 and the method M1\u2032 have an identical signature;
determining a behavior B2 of the application A2 in the hierarchy 2 by associating a method definition M2\u2032 in a class D2 in the hierarchy 2 with each executed call to a method M2 in class C2 in the hierarchy 2, wherein the class D2 is a subtype of the C2 in the hierarchy 2 and wherein the method M2 and the method M2\u2032 have an identical signature;
determining a behavior B3 of the application A1 in the hierarchy 3 by associating a method definition M3\u2032 in a class D3 in the hierarchy 3 with each executed call to a method M3 in class C3 in the hierarchy 3, wherein the class D3 is a subtype of the C3 in the hierarchy 3, wherein the method M3 and the method M3\u2032 have an identical signature; and
determining a behavior B4 of the application A2 in the hierarchy 3 by associating a method definition M4\u2032 in a class D4 in the hierarchy 3 with each executed call to a method M4 in class C4 in the hierarchy 3, wherein the class D4 is a subtype of the C4 in the hierarchy 3, wherein the method M4 and the method M4\u2032 have an identical signature.
3. The method of claim 1, further comprising:
determining, using program analysis, at least one of the following:
if the behavior of application A1 when executed against the composed hierarchy 3 differs from the behavior of application A1 when executed against the hierarchy 1; and
if the behavior of application A2 when executed against the composed hierarchy 3 differs from the behavior of application A2 when executed against the hierarchy 2.
4. The method of claim 1, wherein the creating of the well-defined methods and fields of the composed hierarchy 3 includes using the user-supplied information to resolve conflicts between methods andor fields that originate from the hierarchy 1 and the hierarchy 2.
5. The method of claim 1, further comprising:
reporting at least one of the composed hierarchy 1 and the composed hierarchy 2 is behavior-preserving in response to zero behavior differences having been reported.
6. The method of claim 1, wherein the creating of the well-defined classes in the composed hierarchy 3 is a basic composition involving the hierarchy 1 and the hierarchy 2 and where the hierarchy 1 and the hierarchy 2 do not contain static interference.
7. The method of claim 1, wherein the creating of the well-defined classes in the composed hierarchy 3 is an overriding composition involving the hierarchy 1 and the hierarchy 2 where the hierarchy 1 and the hierarchy 2 contains static interference.
8. The method of claim 1, wherein the creating of the well-defined classes in the composed hierarchy 3 is an overriding composition involving the hierarchy 1 and the hierarchy 3 and where the determining, using program analysis, includes precedence of members as part of the user-supplied information and where the hierarchy 1 and the hierarchy 2 contains static interference.
9. The method of claim 8, wherein the determining, using program analysis, includes determining if the composition of the hierarchy 1 and the hierarchy 2 contains dynamic interference.
10. The method of claim 8, wherein the determining, using program analysis, includes using impact analysis to determine any parts of the application A1 andor any parts of the application A2 whose behavior have changed.
11. The method of claim 9, wherein the determining, using program analysis, includes using impact analysis to determine any parts of the application A1 andor parts of the application A2 whose behavior have changed.
12. A method on an information processing device of composing two or more input class hierarchies 1 and 2 with associated applications A1 and A2 respectively, the method on the information processing device comprising:
determining a union of any inheritance relations in two or more input class hierarchies 1 and 2;
determining one or more cycles in a transitive closure of the inheritance relations, and constructing a set of equivalence classes \u03b5 corresponding to the cycles;
creating of a class in a composed hierarchy 3 for each equivalence class in \u03b5;
associating a definition of a method M in a class D in a hierarchy with each executed call to a definition of a method M\u2032 in a class C in the hierarchy where class D is a subtype of class C in a behavior in the hierarchy for each of an application A1 and an application A2, wherein the method M and the method M\u2032 have an identical signature;
associating a name and a set of members with each class in the composed hierarchy 3;
creating inheritance relations in the composed hierarchy 3;
testing if two behaviors across the hierarchy 1 and the hierarchy 3 are different by comparing a behavior of the application A1 in the composed hierarchy 3 with a behavior of the application A1 in the hierarchy 1, and reporting any differences therebetween; and
testing if two behaviors across the hierarchy 2 and the hierarchy 3 are different by comparing a behavior of the application A2 in the composed hierarchy 3 with a behavior of the application A2 in the hierarchy 2, and reporting any differences therebetween.
13. The method of claim 12, further comprising:
determining a behavior B1 of the application A1 in the hierarchy 1 by associating a method definition M1\u2032 in a class D1 in the hierarchy 1 with each executed call to a method M1 in class C1 in the hierarchy 1, wherein the class D1 is a subtype of the class C1 in the hierarchy 1 and wherein the method M1 and the method M1\u2032 have an identical signature;
determining a behavior B2 of the application A2 in the hierarchy 2 by associating a method definition M2\u2032 in a class D2 in the hierarchy 2 with each executed call to a method M2 in class C2 in the hierarchy 2, wherein the class D2 is a subtype of the C2 in the hierarchy 2 and wherein the method M2 and the method M2\u2032 have an identical signature;
determining a behavior B3 of the application A1 in the hierarchy 3 by associating a method definition M3\u2032 in a class D3 in the hierarchy 3 with each executed call to a method M3 in class C3 in the hierarchy 3, wherein the class D3 is a subtype of the C3 in the hierarchy 3, wherein the method M3 and the method M3\u2032 have an identical signature; and
determining a behavior B4 of the application A2 in the hierarchy 3 by associating a method definition M4\u2032 in a class D4 in the hierarchy 3 with each executed call to a method M4 in a class C4 in the hierarchy 3, wherein the class D4 is a subtype of the C4 in the hierarchy 3, wherein the method M4 and the method M4\u2032 have an identical signature.
14. A physical computer readable medium including computer instructions for execution on an information processing device for composing two or more class hierarchies 1 and 2 with associated applications A1 and A2 respectively, the computer instructions comprising programming instructions for:
creating a composed hierarchy 3 by analyzing a hierarchy 1 and a hierarchy 2;
creating well-defined methods andor fields in one or more classes of the hierarchy 3 by analyzing the hierarchy 1 and the hierarchy 2 and user-supplied information;
associating a definition of a method M in a class D in a hierarchy with each executed call to a definition of a method M\u2032 in a class C in the hierarchy where class D is a subtype of class C in a behavior in the hierarchy for each of an application A1 and an application A2, wherein the method M and the method M\u2032 have an identical signature;
testing if two behaviors across the hierarchy 1 and the hierarchy 3 are different by comparing a behavior B3 of the application A1 in the composed hierarchy 3 with a behavior B1 of the application A1 in the hierarchy 1 and reporting any differences therebetween; and
testing if two behaviors across the hierarchy 2 and the hierarchy 3 are different by comparing a behavior B4 of the application A2 in the composed hierarchy 3 with a behavior B2 of the application A2 in the hierarchy 2, and reporting any differences therebetween.
15. The computer readable medium of claim 14, further comprising the programming instructions of:
determining a behavior B1 of the application A1 in the hierarchy 1 by associating a method definition M1\u2032 in a class D1 in the hierarchy 1 with each executed call to a method M1 in class C1 in the hierarchy 1, wherein the class D1 is a subtype of the class C1 in the hierarchy 1 and wherein the method M1 and the method M1\u2032 have an identical signature;
determining a behavior B2 of the application A2 in the hierarchy 1 by associating a method definition M2\u2032 in a class D2 in the hierarchy 2 with each executed call to a method M2 in class C2 in the hierarchy 2, wherein the class D2 is a subtype of the C2 in the hierarchy 2 and wherein the method M2 and the method M2\u2032 have an identical signature;
determining a behavior B3 of the application A1 in the hierarchy 3 by associating a method definition M3\u2032 in a class D3 in the hierarchy 3 with each executed call to a method M3 in class C3 in the hierarchy 3, wherein the class D3 is a subtype of the C3 in the hierarchy 3, wherein the method M3 and the method M3\u2032 have an identical signature; and
determining a behavior B4 of the application A2 in the hierarchy 3 by associating a method definition M4\u2032 in a class D4 in the hierarchy 3 with each executed call to a method M4 in class C4 in the hierarchy 3, wherein the class D4 is a subtype of the C4 in the hierarchy 3, wherein the method M4 and the method M4\u2032 have an identical signature.
16. The computer readable medium of claim 15, further comprising the programming instructions of:
determining, using program analysis, at least one of the following:
if the behavior of application A1 when executed against the composed hierarchy 3 differs from the behavior of application A1 when executed against the hierarchy 1; and
if the behavior of application A2 when executed against the composed hierarchy 3 differs from the behavior of application A2 when executed against the hierarchy 2.
17. The computer readable medium of claim 15, wherein the programming instruction of creating of the well-defined methods and fields of the composed hierarchy 3 includes using the user-supplied information to resolve conflicts between methods andor fields that originate from the hierarchy 1 and the hierarchy 2.
18. The computer readable medium of claim 15, further comprising the programming instruction of:
reporting at least one of the composed hierarchy 1 and the composed hierarchy 2 is behavior-preserving in response to zero behavior differences having been reported.
19. The computer readable medium of claim 15, wherein the programming instruction of creating of the well-defined classes in the composed hierarchy 3 is a basic composition involving the hierarchy 1 and the hierarchy 2 and where the hierarchy 1 and the hierarchy 2 do not contain static interference.
20. The computer readable medium of claim 15, wherein the programming instruction of creating of the well-defined classes in the composed hierarchy 3 is an overriding composition involving the hierarchy 1 and the hierarchy 2 and where the hierarchy 1 and the hierarchy 2 contains static interference.
21. The computer readable medium of claim 20, wherein the programming instruction of creating of the well-defined classes in the composed hierarchy 3 is an overriding composition involving the hierarchy 1 and the hierarchy 3 and where the determining, using program analysis, includes precedence of members as part of the user-supplied information and where the hierarchy 1 and the hierarchy 2 contains static interference.
22. The computer readable medium of claim 21, wherein the programming instruction of determining, using program analysis, includes determining if the composition of the hierarchy 1 and the hierarchy 2 contains dynamic interference.
23. The computer readable medium of claim 21, wherein the programming instruction of determining, using program analysis, includes using impact analysis to determine any parts of the application A1 andor any parts of the application A2 whose behavior have changed.
24. The computer readable medium of claim 22, wherein the programming instruction of using program analysis, includes using impact analysis to determine any parts of the application A1 andor parts of the application A2 whose behavior have changed.
25. A physical computer readable medium including computer instructions for execution on an information processing device for composing two or more class hierarchies 1 and 2 with associated applications A1 and A2 respectively, the computer instructions comprising instructions for:
determining a union of any inheritance relations in two or more input class hierarchies 1 and 2;
determining one or more cycles in a transitive closure of the inheritance relations, and constructing a set of equivalence classes \u03b5 corresponding to the cycles;
associating a name and a set of members with each class;
creating inheritance relations in the composed hierarchy 3;
associating a definition of a method M in a class D in a hierarchy with each executed call to a definition of a method M\u2032 in a class C in the hierarchy where class D is a subtype of class C in a behavior in the hierarchy for each of an application A1 and an application A2, wherein the method M and the method M\u2032 have an identical signature;
creating of a class in a composed hierarchy 3 for each equivalence class in \u03b5; testing if two behaviors across the hierarchy 1 and the hierarchy 3 are different by comparing a behavior B3 of the application A1 in the composed hierarchy 3 with a behavior B1 of the application A1 in the hierarchy 1 and reporting any differences therebetween; and
testing if two behaviors across the hierarchy 3 and the hierarchy 3 are different by comparing a behavior b4 of the application A2 in the composed hierarchy 3 with a behavior B2 of the application A2 in the hierarchy 2, and reporting any differences therebetween.
26. The computer readable medium of claim 25, further comprising the programming instructions of:
determining a behavior B1 of the application A1 in the hierarchy 1 by associating a method definition M1\u2032 in a class D1 in the hierarchy 1 with each executed call to a method M1 in class C1 in the hierarchy 1, wherein the class D1 is a subtype of the class C1 in the hierarchy 1 and wherein the method M1 and the method M1\u2032 have an identical signature;
determining a behavior B2 of the application A2 in the hierarchy 2 by associating a method definition M2\u2032 in a class D2 in the hierarchy 2 with each executed call to a method M2 in class C2 in the hierarchy 2, wherein the class D2 is a subtype of the C2 in the hierarchy 2 and wherein the method M2 and the method M2\u2032 have an identical signature;
determining a behavior B3 of the application A1 in the hierarchy 3 by associating a method definition M3\u2032 in a class D3 in the hierarchy 3 with each executed call to a method M3 in class C3 in the hierarchy 3, wherein the class D3 is a subtype of the C3 in the hierarchy 3, wherein the method M3 and the method M3\u2032 have an identical signature; and
determining a behavior B4 of the application A2 in the hierarchy 3 by associating a method definition M4\u2032 in a class D4 in the hierarchy 3 with each executed call to a method M4 in class C4 in the hierarchy 3, wherein the class D4 is a subtype of the C4 in the hierarchy 3, wherein the method M4 and the method M4\u2032 have an identical signature.
27. A computer system for composing two or more class hierarchies 1 and 2 with associated applications A1 and A2 respectively, the computer system comprising:
a processor coupled to memory for executing a software program to perform: means for creating a composed hierarchy 3 by analyzing a hierarchy 1 and a hierarchy 2;
means for creating well-defined methods andor fields created in one or more classes of the hierarchy 3 by analyzing the hierarchy 1 and the hierarchy 2 and user-supplied information;
means for associating a definition of a method M in a class D in a hierarchy with each executed call to a definition of a method M\u2032 in a class C in the hierarchy where class D is a subtype of class C in a behavior in the hierarchy for each of an application A1 and an application A2, wherein the method M and the method M\u2032 have an identical signature;
means for testing if two behaviors across the hierarchy 1 and the hierarchy 3 are different by comparing a behavior B3 of the application A1 in the composed hierarchy 3 with a behavior B1 of the application A1 in the hierarchy 1 and reporting any differences therebetween; and
means for testing if two behaviors across the hierarchy 2 and the hierarchy 3 are different by comparing a behavior B4 of the application A2 in the composed hierarchy 3 with a behavior B2 of the application A2 in the hierarchy 2, and reporting any differences therebetween.
28. The computer system of claim 27, further comprising:
determining a behavior B1 of the application A1 in the hierarchy 1 by associating a method definition M1\u2032 in a class D1 in the hierarchy 1 with each executed call to a method M1 in class C1 in the hierarchy 1, wherein the class D1 is a subtype of the class C1 in the hierarchy 1 and wherein the method M1 and the method M1\u2032 have an identical signature;
determining a behavior B2 of the application A2 in the hierarchy 2 by associating a method definition M2\u2032 in a class D2 in the hierarchy 2 with each executed call to a method M2 in class C2 in the hierarchy 2, wherein the class D2 is a subtype of the C2 in the hierarchy 2 and wherein method M2 and the method M2\u2032 have an identical signature;
determining a behavior B3 of the application A1 in the hierarchy 3 by associating a method definition M3\u2032 in a class D3 in the hierarchy 3 with each executed call to a method M3 in class C3 in the hierarchy 3, wherein the class D3 is a subtype of the C3 in the hierarchy 3, wherein the method M3 and the method M3\u2032 have an identical signature; and
determining a behavior B4 of the application A2 in the hierarchy 3 by associating a method definition M4\u2032 in a class D4 in the hierarchy 3 with each executed call to a method M4 in class C4 in the hierarchy 3, wherein the class D4 is a subtype of the C4 in the hierarchy 3, wherein the method M4 and the method M4\u2032 have an identical signature.
29. The computer system of claim 28, further comprising:
means for determining, using program analysis, at least one of the following:
if the behavior of application A1 when executed against the composed hierarchy 3 differs from the behavior of application A1 when executed against the hierarchy 1; and
if the behavior of application A2 when executed against the composed hierarchy 3 differs from the behavior of application A2 when executed against the hierarchy 2.

The claims below are in addition to those above.
All refrences to claim(s) which appear below refer to the numbering after this setence.

1. A system implemented in a pulse width modulated (PWM) amplifier, comprising:
an output stage having
a high-side switch configured to receive a high-side PWM signal, wherein the high-side PWM signal is applied to the high-side switch to turn the high-side switch on and off, and
a low-side switch configured to receive a low-side PWM signal, wherein the low-side PWM signal is applied to the low-side switch to turn the low-side switch on and off; and

shutdown circuitry coupled to the output stage and configured to inhibit shutdown of the output stage during periods in which shutdown would cause minimum pulse width violations.
2. The system of claim 1, wherein the shutdown circuitry is further configured to prevent deassertion of shutdown of the output stage during periods in which deassertion of shutdown would cause minimum pulse width violations.
3. The system of claim 1, wherein the shutdown circuitry is implemented in a PWM modulator of the PWM amplifier, wherein the PWM modulator is configured to generate the high-side and low-side PWM signals.
4. The system of claim 3, wherein the shutdown circuitry is configured to receive a shutdown signal and to deassert the high-side and low-side PWM signals at a time at which deassertion of the high-side and low-side PWM signals will not cause minimum pulse width violations.
5. The system of claim 4, wherein the shutdown circuitry is configured to generate blockout intervals during which deassertion of the high-side and low-side PWM signals is inhibited.
6. The system of claim 5, wherein if the shutdown signal is asserted during one of the blockout intervals, the high-side and low-side PWM signals are deasserted at the end of the blockout interval.
7. The system of claim 5, wherein if the shutdown signal is deasserted during one of the blockout intervals, assertion of the high-side and low-side PWM signals is disabled during the blockout interval and enabled at the end of the blockout interval.
8. The system of claim 3, wherein the shutdown circuitry is configured to: identify one or more blockout intervals where deassertion of the high-side and low-side signals would violate minimum pulse widths; and inhibit deassertion of the high-side and low-side PWM signals during the blockout intervals.
9. The system of claim 8, wherein the shutdown circuitry is configured to inhibit deassertion of the high-side and low-side PWM signals within 1 minimum pulse width of a rising edge or a falling edge of a pulse in one of the high-side and low-side PWM signals.
10. A method implemented in a pulse width modulated (PWM) amplifier, comprising:
generating a high-side PWM signal and a low-side PWM signal;
receiving a shutdown signal; and
when the shutdown signal is asserted,
inhibiting deassertion of the PWM signals during periods in which deassertion of the PWM signals would cause minimum pulse width violations, and
enabling deassertion of the PWM signals during periods in which deassertion of the PWM signals would not cause minimum pulse width violations.
11. The method of claim 10, further comprising: when the shutdown signal is asserted,
inhibiting reassertion of the PWM signals during periods in which reassertion of the PWM signals would cause minimum pulse width violations, and
enabling reassertion of the PWM signals during periods in which reassertion of the PWM signals would not cause minimum pulse width violations.
12. The method of claim 10, wherein the method is implemented in a PWM modulator of the PWM amplifier.
13. The method of claim 12, further comprising generating blockout intervals during which deassertion of the high-side and low-side PWM signals is inhibited.
14. The method of claim 13, further comprising, if the shutdown signal is asserted during one of the blockout intervals, deasserting the high-side and low-side PWM signals at the end of the blockout interval.
15. The method of claim 13, further comprising, if the shutdown signal is deasserted during one of the blockout intervals, reasserting the high-side and low-side PWM signals at the end of the blockout interval.
16. The method of claim 13, wherein each blockout interval comprises an interval beginning 1 minimum pulse width before and ending 1 minimum pulse width after a rising or falling edge of one of the high-side and low-side PWM signals.
17. The method of claim 13, further comprising applying the PWM signals to an output stage of the PWM amplifier.