Conference proceeding
Java(UI): Effects for Controlling UI Object Access
ECOOP 2013 - OBJECT-ORIENTED PROGRAMMING, Vol.7920, pp.179-204
Lecture Notes in Computer Science
01 Jan 2013
Abstract
Most graphical user interface (GUI) libraries forbid accessing UI elements from threads other than the UI event loop thread. Violating this requirement leads to a program crash or an inconsistent UI. Unfortunately, such errors are all too common in GUI programs.
We present a polymorphic type and effect system that prevents non-UI threads from accessing UI objects or invoking UI-thread-only methods. The type system still permits non-UI threads to hold and pass references to UI objects. We implemented this type system for Java and annotated 8 Java programs (over 140KLOC) for the type system, including several of the most popular Eclipse plugins. We confirmed bugs found by unsound prior work, found an additional bug and code smells, and demonstrated that the annotation burden is low.
We also describe code patterns our effect system handles less gracefully or not at all, which we believe offers lessons for those applying other effect systems to existing code.
Metrics
2 Record Views
Details
- Title
- Java(UI): Effects for Controlling UI Object Access
- Creators
- Colin S. Gordon - University of WashingtonWerner Dietl - University of WashingtonMichael D. Ernst - University of WashingtonDan Grossman - University of Washington
- Contributors
- G Castagna (Editor)
- Publication Details
- ECOOP 2013 - OBJECT-ORIENTED PROGRAMMING, Vol.7920, pp.179-204
- Series
- Lecture Notes in Computer Science
- Publisher
- Springer Nature
- Number of pages
- 26
- Resource Type
- Conference proceeding
- Language
- English
- Academic Unit
- Computer Science (Computing)
- Identifiers
- 991021868092904721
UN Sustainable Development Goals (SDGs)
This output has contributed to the advancement of the following goals:
Source: InCites
InCites Highlights
These are selected metrics from InCites Benchmarking & Analytics tool, related to this output
- Web of Science research areas
- Computer Science, Software Engineering
- Computer Science, Theory & Methods