US 11,748,129 B2
Simulated change of immutable objects during execution runtime
James Harry Belsey, London (GB); Cuneyt Varol, New York, NY (US); Gjeta Gjyshinca, London (GB); Dmitry Zaslavsky, Edison, NJ (US); Peter Christian Boehm, London (GB); Michael James Dominic Skells, London (GB); and Albert Eugene Novark, New York, NY (US)
Assigned to Morgan Stanley Services Group Inc., New York, NY (US)
Filed by Morgan Stanley Services Group Inc., New York, NY (US)
Filed on Oct. 15, 2020, as Appl. No. 17/71,498.
Prior Publication US 2022/0121462 A1, Apr. 21, 2022
This patent is subject to a terminal disclaimer.
Int. Cl. G06F 9/455 (2018.01); G06F 8/41 (2018.01); G06F 9/448 (2018.01)
CPC G06F 9/45516 (2013.01) [G06F 8/41 (2013.01); G06F 9/4493 (2018.02); G06F 2212/60 (2013.01)] 25 Claims
OG exemplary drawing
 
1. A system for executing software, comprising:
a computing device comprising at least one processor and non-transitory memory storing first software instructions for a code execution module such that, when the first software instructions are executed by the at least one processor, the at least one processor will:
establish a platform-independent architecture for managing a simulated change apparatus that maintains logical immutability of software nodes described in a programming language syntax;
receive, for execution by the code execution module, second software instructions;
create one or more immutable software nodes declared by the second software instructions;
determine that the second software instructions comprise an instruction to begin a simulated change at runtime of the one or more immutable software nodes;
store the simulated change in the simulated change apparatus;
create a cache to store results of one or more operations of the second software instructions, wherein the cache is a cross-scenario cache used by distinct scenarios that each have a different set of simulated changes, but wherein at least one entry in the cache is shared by at least two of the distinct scenarios;
using the simulated change apparatus, perform the one or more operations of the second software instructions as if the one or more immutable software nodes had been changed in the non-transitory memory, during a period of time where each of the one or more immutable software nodes is guaranteed to retain logical immutability; and
output results of the one or more operations.