Energy types
- 19 October 2012
- conference paper
- conference paper
- Published by Association for Computing Machinery (ACM) in Proceedings of the ACM international conference on Object oriented programming systems languages and applications - OOPSLA '12
- Vol. 47 (10), 831-850
- https://doi.org/10.1145/2384616.2384676
Abstract
This paper presents a novel type system to promote and facilitate energy-aware programming. Energy Types is built upon a key insight into today's energy-efficient systems and applications: despite the popular perception that energy and power can only be described in joules and watts, real-world energy management is often based on discrete phases and modes, which in turn can be reasoned about by type systems very effectively. A phase characterizes a distinct pattern of program workload, and a mode represents an energy state the program is expected to execute in. This paper describes a programming model where phases and modes can be intuitively specified by programmers or inferred by the compiler as type information. It demonstrates how a type-based approach to reasoning about phases and modes can help promote energy efficiency. The soundness of our type system and the invariants related to inter-phase and inter-mode interactions are rigorously proved. Energy Types is implemented as the core of a prototyped object-oriented language ET for smartphone programming. Preliminary studies show ET can lead to significant energy savings for Android Apps.Keywords
This publication has 31 references indexed in Scilit:
- Architecture support for disciplined approximate programmingPublished by Association for Computing Machinery (ACM) ,2012
- Hybrid type checkingACM Transactions on Programming Languages and Systems, 2010
- Profile-guided static typing for dynamic scripting languagesPublished by Association for Computing Machinery (ACM) ,2009
- Gradual Typing for ObjectsLecture Notes in Computer Science, 2007
- Variant parametric typesACM Transactions on Programming Languages and Systems, 2006
- Parameterized object sensitivity for points-to analysis for JavaACM Transactions on Software Engineering and Methodology, 2005
- The design, implementation, and evaluation of a compiler algorithm for CPU energy reductionPublished by Association for Computing Machinery (ACM) ,2003
- Featherweight JavaACM Transactions on Programming Languages and Systems, 2001
- Region-Based Memory ManagementInformation and Computation, 1997
- Low-power CMOS digital designIEEE Journal of Solid-State Circuits, 1992