ACM Home Page
Please provide us with feedback. Feedback
A type system for preventing data races and deadlocks in the java virtual machine language: 1
Full text PdfPdf (269 KB)
Source
Language, Compiler and Tool Support for Embedded Systems archive
Proceedings of the 2007 ACM SIGPLAN/SIGBED conference on Languages, compilers, and tools for embedded systems table of contents
San Diego, California, USA
SESSION: Reliability table of contents
Page: 10  
Year of Publication: 2007
ISBN:978-1-59593-632-5
Also published in ...
Authors
Pratibha Permandla  University of Michigan, Ann Arbor, MI
Michael Roberson  University of Michigan, Ann Arbor, MI
Chandrasekhar Boyapati  University of Michigan, Ann Arbor, MI
Sponsors
ACM: Association for Computing Machinery
SIGBED: ACM Special Interest Group on Embedded Systems
SIGARCH: ACM Special Interest Group on Computer Architecture
SIGMICRO: ACM Special Interest Group on Microarchitectural Research and Processing
SIGPLAN: ACM Special Interest Group on Programming Languages
SIGDA: ACM Special Interest Group on Design Automation
Publisher
ACM  New York, NY, USA
Bibliometrics
Downloads (6 Weeks): 11,   Downloads (12 Months): 60,   Citation Count: 0
Additional Information:

abstract   references   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/1254766.1254768
What is a DOI?

ABSTRACT

In previous work on SafeJava we presented a type system extension to the Java source language that statically prevents data races and deadlocks in multithreaded programs. SafeJava is expressive enough to support common programming patterns, its type checking is fast and scalable, and it requires little programming overhead. SafeJava thus offers a promising approach for making multithreaded programs more reliable. This paper presents a corresponding type system extension for the Java virtual machine language (JVML). We call the resulting language SafeJVML. Well-typed SafeJVML programs are guaranteed to be free of data races and deadlocks. Designing a corresponding type system for JVML is important because most Java code is shipped in the JVML format. Designing acorresponding type system for JVML is nontrivial because of important differences between Java and JVML. In particular, the absence of block structure in JVML programs and the fact that they do not use named local variables the way Java programs do make the type systems for Java and JVML significantly different. For example, verifying absence of races and deadlocks in JVML programs requires performing an alias analysis, something that was not necessary for verifying absence of races and deadlocks in Java programs. This paper presents static and dynamic semantics for Safe JVML. It also includes a proof that the SafeJVML type system is sound and that it prevents data races and deadlocks. To the best of our knowledge, this is the first type system for JVML that statically ensures absence of synchronization errors.


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
2
3
 
4
Peter Bertelsen. Dynamic semantics of Java bytecode. In Workshop on Principles of Abstract Machines, 1998.
 
5
6
7
8
9
10
11
12
13
 
14
 
15
16
17
 
18
19
20
 
21
22
23
 
24
25
 
26
Cosimo Laneve and Gaetano Bigliardi. A type system for JVM threads. In The Third ACM SIGPLAN Workshop on Types in Compilation (TIC), September 2000.
 
27
28
 
29
30

Collaborative Colleagues:
Pratibha Permandla: colleagues
Michael Roberson: colleagues
Chandrasekhar Boyapati: colleagues