skip to main content
10.1145/1960518.1960522acmotherconferencesArticle/Chapter ViewAbstractPublication PagesmodularityConference Proceedingsconference-collections
research-article

Magic for the masses: safer high-level low-level programming through customizable static analyses

Published: 22 March 2011 Publication History

Abstract

Writing high-performance virtual machines in a high-level language requires an escape-hatch, such that unavoidable low-level tasks can be performed efficiently. To this end, the org.vmmagic framework used by Jikes RVM and other VMs makes it possible to extend the Java language with the needed low-level facilities. For these facilities and the constraints they impose, though, tool support is almost nonexistent, making it difficult for implementers not to violate the additional constraints imposed by the language extension. We thus propose an declarative approach based on customizable static analyses to make specification and checking of these constraints easily accessible to implementers

References

[1]
B. Alpern, C. R. Attanasio, A. Cocchi, D. Lieber, S. Smith, T. Ngo, J. J. Barton, S. F. Hummel, J. C. Sheperd, and M. Mergen. Implementing Jalape no in Java. In Proceedings of OOPSLA '99, 1999.
[2]
D. Beyer, C. Lewerentz, and A. Noack. Efficient relational calculation for software analysis. IEEE Transactions on Software Engineering, 31(2):137--149, 2005.
[3]
E. Bodden, A. Sewe, J. Sinschek, M. Mezini, and H. Oueslati. Taming reection: Aiding static analysis in the presence of reection and custom class loaders. In Proceedings of ICSE, 2011. (to appear).
[4]
V. Durelli, K. Scannavino, and M. Delamaro. A systematic mapping study on high-level language virtual machines. In Proceedings of VMIL '10, 2010.
[5]
M. Eichberg, S. Kloppenburg, K. Klose, and M. Mezini. Defining and continuous checking of structural program dependencies. In Proceedings of ICSE, 2008.
[6]
D. Frampton, S. M. Blackburn, P. Cheng, R. J. Garner, D. Grove, J. E. B. Moss, and S. I. Salishev. Demystifying magic: high-level low-level programming. In Proceedings of VEE '09, 2009.
[7]
K. Mens, A. Kellens, F. Pluquet, and R. Wuyts. Co-evolving code and design with intensional views: A case study. Computer Languages, Systems & Structures, 32(2):140--156, 2006.
[8]
R. Terra and M. Valente. A dependency constraint language to manage object-oriented software architectures. Software: Practice and Experience, 39(12):1073--1094, 2009. 5See http://labs.oracle.com

Recommendations

Reviews

Wes Munsil

Readers of this paper may experience a certain sense of incompleteness on coming to its end without finding one of the claims in its introduction satisfied; to wit, "We show that the resulting specifications can be used to automatically check for violations at development time as opposed to just-in-time compile time." Assert it, indeed they do; show it, they do not. Showing it would require substantially more discussion of the operation of a "Static Analysis Engine (SAE) developed by one of the authors" and called variously "Unison" or "Unisson," for which no bibliographic reference is given. The subject matter of the paper will be of interest to designers of programming languages and implementers of compilers and their runtime support systems. One hopes that a future paper (perhaps the one appearing as Reference 3 in this paper) will provide more in the way of application and experience. Online Computing Reviews Service

Access critical reviews of Computing literature here

Become a reviewer for Computing Reviews.

Comments

Information & Contributors

Information

Published In

cover image ACM Other conferences
MISS '11: Proceedings of the 1st workshop on Modularity in systems software
March 2011
34 pages
ISBN:9781450306478
DOI:10.1145/1960518
Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

In-Cooperation

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 22 March 2011

Permissions

Request permissions for this article.

Check for updates

Author Tags

  1. Java annotations
  2. Jikes RVM
  3. high-level low-level programming
  4. static analyses

Qualifiers

  • Research-article

Conference

AOSD'11

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • 0
    Total Citations
  • 136
    Total Downloads
  • Downloads (Last 12 months)2
  • Downloads (Last 6 weeks)0
Reflects downloads up to 01 Jan 2025

Other Metrics

Citations

View Options

Login options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Media

Figures

Other

Tables

Share

Share

Share this Publication link

Share on social media