Programming system and thread synchronization mechanisms for the development of selectively sequential and multithreaded computer programs
First Claim
1. A computerized method of operating a programming language, comprising:
- defining equivalence annotations within the programming language which indicate to a program development system of the programming language information about sequential execution of statements written within the programming language, wherein said statements must be executed in a multithreaded manner associated with said annotations; and
developing the programming language as a sequential execution or as a substantially simultaneous execution based on contents of the equivalence annotations.
2 Assignments
0 Petitions
Accused Products
Abstract
A structured multithreaded programming system is described for integrated use with existing and new programming languages and systems. The structured multithreaded programming system enables programs to be developed which include both multithreaded and multithreadable code constructs. The multithreaded code constructs require explicitly concurrent execution. The multithreadable code constructs can be executed either sequentially or concurrently, at the selection of the programmer or computer user. When executed concurrently, the different threads of execution in a multithreaded program developed with this system can be synchronized using innovative synchronization objects. One type of synchronization object is a special type of counter, which can be constrained to be monotonically increasing in value. Another related type of synchronization object is a special type of flag, which can be constrained to have its value set monotonically.
109 Citations
6 Claims
-
1. A computerized method of operating a programming language, comprising:
-
defining equivalence annotations within the programming language which indicate to a program development system of the programming language information about sequential execution of statements written within the programming language, wherein said statements must be executed in a multithreaded manner associated with said annotations; and
developing the programming language as a sequential execution or as a substantially simultaneous execution based on contents of the equivalence annotations.
-
-
2. A computerized method of operating a programming language, comprising:
-
defining equivalence annotations wherein said equivalence annotations are pragmas within the programming language, which indicate to a program development system of the programming language, information about sequential execution of statements written within the programming language and associated with said equivalence annotations; and
developing programs as a sequential execution or as a substantially simultaneous execution based on contents of the equivalence annotations.
-
-
3. A computerized method of operating a program language, comprising:
-
defining equivalence annotations within a programming language which indicate to a program development system of the programming language information about sequential execution of statements written within the programming language, wherein the equivalence annotations indicate that the statements are multithreadable and associated with said annotations; and
developing programs as a sequential execution or as a substantially simultaneous execution, based on contents of the equivalence annotations, and synchronizing access of threads to shared memory using a specially defined synchronization;
synchronization counter;
wherein said synchronization counter is monotonically increasing, cannot be decreased, and prevents thread operation during its check operation.
-
-
4. A computerized method of operating a program language, comprising:
-
defining equivalence annotations within a programming language which indicate to a program development system of the programming language information about sequential execution of statements written within the programming language, wherein the equivalence annotations indicate that the statements are multithreadable and associated with said annotations;
developing programs as a sequential execution or as a substantially simultaneous execution, based on contents of the equivalence annotations; and
synchronizing access of threads to shared memory using a specially defined synchronization;
wherein said synchronization flag is monotonically increasing, cannot be decreased, and prevents thread operation during its check operation.
-
-
5. A computerized method of operating a program language, comprising:
-
defining equivalence annotations wherein the equivalence annotations indicate that statements are multithreadable and associated with said annotations within a programming language which indicate to a program development system of the programming language information about sequential execution of said statements written within the programming language;
developing programs as a sequential execution or as a substantially simultaneous execution based on contents of the equivalence annotations; and
synchronizing access of threads to shared memory using a specially defined synchronization;
wherein said synchronization counter includes a check operation which suspends a calling thread. - View Dependent Claims (6)
-
Specification