ACM Home Page
Please provide us with feedback. Feedback
Guava: a dialect of Java without data races
Full text PdfPdf (328 KB)
Source Conference on Object Oriented Programming Systems Languages and Applications archive
Proceedings of the 15th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications table of contents
Minneapolis, Minnesota, United States
Pages: 382 - 400  
Year of Publication: 2000
ISBN:1-58113-200-X
Also published in ...
Authors
David F. Bacon  IBM Watson Research Center, P.O. Box 704, Yorktown Heights, NY
Robert E. Strom  IBM Watson Research Center, P.O. Box 704, Yorktown Heights, NY
Ashis Tarafdar  Dept. of Computer Sciences, University of Texas at Austin, Austin, Texas
Sponsor
SIGPLAN: ACM Special Interest Group on Programming Languages
Publisher
ACM  New York, NY, USA
Bibliometrics
Downloads (6 Weeks): 5,   Downloads (12 Months): 36,   Citation Count: 27
Additional Information:

abstract   references   cited by   index terms   collaborative colleagues  

Tools and Actions: Request Permissions Request Permissions    Review this Article  
DOI Bookmark: Use this link to bookmark this Article: http://doi.acm.org/10.1145/353171.353197
What is a DOI?

ABSTRACT

We introduce Guava, a dialect of Java whose rules statically guarantee that parallel threads access shared data only through synchronized methods. Our dialect distinguishes three categories of classes: (1) monitors, which may be referenced from multiple threads, but whose methods are accessed serially; (2) values, which cannot be referenced and therefore are never shared; and (3) objects, which can have multiple references but only from within one thread, and therefore do not need to be synchronized. Guava circumvents the problems associated with today's Java memory model, which must define behavior when concurrent threads access shared memory without synchronization.We present an overview of the syntax and the semantic rules of Guava. We discuss how implementations of Guava can exploit these rules to re-enable compiler optimizations inhibited by standard Java. We discuss how compilers for certain multiprocessor architectures can automatically generate certain programming idioms, such as double-check reads, as optimizations of serialized monitors.


REFERENCES

Note: OCR errors may be found in this Reference List extracted from the full text article. ACM has opted to expose the complete List rather than only correct and linked references.

 
1
ALPHA ARCHITECTURE COMMITTEE. Alpha Architecture Reference Manual, third ed. Digital Press, 1998.
2
 
3
BRINCH HANSEN, P. The programming language Concurrent Pascal. IEEE Trans. Softw. Eng. SE-1, 2 (June 1975), 199-207.
 
4
BRINCH HANSEN, P. The Solo operating system. Software - Practice and Experience 6, 2 (Apr.-June 1976), 141-200.
5
 
6
CARDELLI, L., DONAHUE, J., GLASSMAN, L., JORDAN, M., KALSOW, B., AND NELSON, G. Modula-3 report. Tech. Rep. ORC-1, Olivetti Research Center, 1988.
 
7
 
8
DETLEFS, D. L., LEINO, K. R. M., NELSON, G., AND SAXE, J. B. Extended static checking. Tech. Rep. 159, Compaq Systems Research Center, http://www.resem'ch.digital.com/SRC, 1998.
 
9
 
10
11
 
12
13
 
14
15
 
16
HOLT, R. C. Concurrent Euclid, the Unix System, and Tunis. Addison-Wesley, Reading, Mass., 1983.
 
17
18
19
 
20
MAY, C., SILHA, E., SIMPSON, R., AND WARREN, H., Eds. The PowerPC Architecture. Morgan Kaufmann, 1994.
21
22
 
23
 
24
 
25
 
26
WroTH, N. Design and implementation of Modula. Software - Practice and Experience 7, 1 (Jan.-Feb. 1977), 67-s4.
 
27
WroTH, N. Modula: a language for modular multiprogramming. Software - Practice and Experience 7, 1 (Jam-Feb. 1977), 3-35.

CITED BY  27

Collaborative Colleagues:
David F. Bacon: colleagues
Robert E. Strom: colleagues
Ashis Tarafdar: colleagues