1. A method for ensuring determinacy in states of concurrently shared variables in an application, comprising steps for: using an isolation type from a set of one or more isolation types to declare which variables in the application are to be shared by two or more concurrent tasks of the application; wherein the isolation types include a category of one or more versioned types and a category of one or more cumulative types; wherein each isolation type includes a pre-defined deterministic conflict resolution policy for addressing write-write conflicts between two or more of the concurrent tasks; using a fork-join model to specify concurrent execution of the concurrent tasks; providing a runtime system of the application that, during execution of the application, automatically conceptually replicates the shared declared variables by providing a private local copy of the shared declared variables for each concurrent task on fork and merges them back together on join, so that each task can work with an independent copy of shared declared variables; and wherein merging the shared declared variables back together on join further comprises steps for evaluating the pre-defined deterministic conflict resolution policy of the isolation type of each shared declared variable to determine which of one or more concurrent tasks will be used to perform the merge of each said shared declared variable.