skip to main content
10.1145/2414740.2414746acmconferencesArticle/Chapter ViewAbstractPublication PagessplashConference Proceedingsconference-collections
research-article

Bypassing portability pitfalls of high-level low-level programming

Published: 21 October 2012 Publication History

Abstract

Program portability is an important software engineering consideration. However, when high-level languages are extended to effectively implement system projects for software engineering gain and safety, portability is compromised--high-level code for low-level programming cannot execute on a stock runtime, and, conversely, a runtime with special support implemented will not be portable across different platforms.
We explore the portability pitfall of high-level low-level programming in the context of virtual machine implementation tasks. Our approach is designing a restricted high-level language called RJava, with a flexible restriction model and effective low-level extensions, which is suitable for different scopes of virtual machine implementation, and also suitable for a low-level language bypass for improved portability. Apart from designing such a language, another major outcome from this work is clearing up and sharpening the philosophy around language restriction in virtual machine design. In combination, our approach to solving portability pitfalls with RJava favors virtual machine design and implementation in terms of portability and robustness.

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 Jalapeno in Java. In Proceedings of the 14th ACM SIGPLAN Conference on Object-Oriented Programming, Systems, Languages, and Applications, OOPSLA'99, pages 314--324. ACM, 1999.
[2]
B. Alpern, M. Butrico, A. Cocchi, J. Dolby, S. Fink, D. Grove, and T. Ngo. Experiences Porting the Jikes RVM to Linux/IA32. In Proceedings of the 2nd Java(TM) Virtual Machine Research and Technology Symposium, JVM'02, pages 51--64. USENIX Association, 2002.
[3]
D. Ancona, M. Ancona, A. Cuni, and N. D. Matsakis. RPython: a Step Towards Reconciling Dynamically and Statically Typed OO Languages. In Proceedings of the 2007 symposium on Dynamic languages, DLS'07, pages 53--64, New York, NY, USA, 2007. ACM. ISBN 978--1--59593--868--8. 10.1145/1297081.1297091. URL http://doi.acm.org/10.1145/1297081.1297091.
[4]
Apache. DRLVM -- Dynamic Runtime Layer Virtual Machine. http://harmony.apache.org/subcomponents/drlvm/, 2009.
[5]
S. M. Blackburn, P. Cheng, and K. S. McKinley. Oil and Water? High Performance Garbage Collection in Java with MMTk. In Proceedings of the 26th International Conference on Software Engineering, ICSE'04, pages 137--146. IEEE Computer Society, 2004\natexlaba.
[6]
S. M. Blackburn, P. Cheng, and K. S. McKinley. Myths and Realities: the Performance Impact of Garbage Collection. In Proceedings of the joint international conference on Measurement and modeling of computer systems, SIGMETRICS'04/Performance'04, pages 25--36, New York, NY, USA, 2004. ACM. ISBN 1--58113--873--3. 10.1145/1005686.1005693. URL http://doi.acm.org/10.1145/1005686.1005693.
[7]
S. M. Blackburn, S. I. Salishev, M. Danilov, O. A. Mokhovikov, A. A. Nashatyrev, P. A. Novodvorsky, V. I. Bogdanov, X. F. Li, and D. Ushakov. The Moxie JVM experience. Technical Report TR-CS-08-01, Australian National University, Department of Computer Science, May 2008.
[8]
C2 Wiki. Restricted Programming Language. http://c2.com/cgi/wiki?RestrictedProgrammingLanguage.
[9]
K. Driesen and U. Hölzle. The Direct Cost of Virtual Function Calls in C++. In Proceedings of the 11th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications, OOPSLA'96, pages 306--323, New York, NY, USA, 1996. ACM. ISBN 0--89791--788-X. 10.1145/236337.236369. URL http://doi.acm.org/10.1145/236337.236369.
[10]
C. Flack, T. Hosking, and J. Vitek. Idioms in Ovm. Technical Report CSD-TR-03-017, Purdue University, 2003.
[11]
D. Frampton. Garbage Collection and the Case for High-level Low-level Programming. PhD thesis, Australian National University, 2010.
[12]
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 the 2009 ACM SIGPLAN/SIGOPS international conference on Virtual execution environments, VEE'09, pages 81--90. ACM, 2009.
[13]
R. Garner. phJMTK: A Portabl Memory Management Toolkit. PhD thesis, Australian National University, 2003.
[14]
N. Geoffray, G. Thomas, J. Lawall, G. Muller, and B. Folliot. VMKit: a Substrate for Managed Runtime Environments. In Proceedings of the 6th ACM SIGPLAN/SIGOPS international conference on Virtual execution environments, VEE'10, pages 51--62. ACM, 2010.
[15]
T. Hallgren, M. P. Jones, R. Leslie, and A. Tolmach. A Principled Approach to Operating System Construction in Haskell. In Proceedings of the tenth ACM SIGPLAN international conference on Functional programming, ICFP'05, pages 116--128, New York, NY, USA, 2005. ACM. ISBN 1--59593-064--7. 10.1145/1086365.1086380. URL http://doi.acm.org/10.1145/1086365.1086380.
[16]
G. Hunt, J. Larus, M. Abadi, M. Aiken, P. Barham, M. Fahndrich, C. Hawblitzel, O. Hodson, S. Levi, N. Murphy, B. Steensgaard, D. Tarditi, T. Wobber, and B. Zill. An overview of the Singularity project. Technical Report MSR-TR-2005--135, Microsoft Research, 2005.
[17]
S. McConnell. Code Complete. Microsoft Press, 1993.
[18]
K. Palacz, J. Baker, C. Flack, C. Grothoff, H. Yamauchi, and J. Vitek. Engineering a Common Intermediate Representation for the Ovm Framework. Science of Computer Programming, 57: 357--378, September 2005.
[19]
M. Paleczny, C. Vick, and C. Click. The Java HotspotTM Server Compiler. In Proceedings of the 2001 Symposium on JavaTM Virtual Machine Research and Technology Symposium - Volume 1, JVM'01, pages 1--1, Berkeley, CA, USA, 2001. USENIX Association. URL http://dl.acm.org/citation.cfm?id=1267847.1267848.
[20]
PMD Project. Pmd. http://pmd.sourceforge.net/pmd-5.0.0/.
[21]
E. Prangsma. Why Java is practical for modern operating systems, 2005. Presentation only. See http://www.jnode.org.
[22]
A. Rigo and S. Pedroni. PyPy's Approach to Virtual Machine Construction. In Companion to the 21st ACM SIGPLAN Symposium on Object-Oriented Programming Systems, Languages, and Applications, OOPSLA'06, pages 944--953. ACM, 2006.
[23]
RPython Coding Guide. Rpython. http://doc.pypy.org/en/latest/coding-guide.html\#id1.
[24]
Sable Research Group, McGill. Soot: a java optimization framework. http://www.sable.mcgill.ca/soot/.
[25]
J. Sieka. J2c project. http://code.google.com/a/eclipselabs.org/p/j2c/, 2012.
[26]
D. Simon, C. Cifuentes, D. Cleal, J. Daniels, and D. White. Java on the Bare Metal of Wireless Sensor Devices: The Squawk Java Virtual Machine. In Proceedings of the 2nd International Conference on Virtual Execution Environments, VEE'06, pages 78--88. ACM, 2006.
[27]
D. Ungar, A. Spitz, and A. Ausch. Constructing a Metacircular Virtual Machine in an Exploratory Programming Environment. In Companion to the 20th annual ACM SIGPLAN Conference on Object-Oriented Programming, Systems, Languages, and Applications, OOPSLA'05, pages 11--20. ACM, 2005.
[28]
C. Wimmer, M. Haupt, M. L. V. D. Vanter, M. Jordan, L. Daynes, and D. Simon. Maxine: An Approachable Virtual Machine For, and In, Java. Technical report, Oracle Labs, 2012.

Cited By

View all
  • (2018)Privacy Protection Method Based on Access Control2018 Asia-Pacific Signal and Information Processing Association Annual Summit and Conference (APSIPA ASC)10.23919/APSIPA.2018.8659546(254-259)Online publication date: Nov-2018

Index Terms

  1. Bypassing portability pitfalls of high-level low-level programming

    Recommendations

    Comments

    Information & Contributors

    Information

    Published In

    cover image ACM Conferences
    VMIL '12: Proceedings of the sixth ACM workshop on Virtual machines and intermediate languages
    October 2012
    66 pages
    ISBN:9781450316330
    DOI:10.1145/2414740
    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]

    Sponsors

    Publisher

    Association for Computing Machinery

    New York, NY, United States

    Publication History

    Published: 21 October 2012

    Permissions

    Request permissions for this article.

    Check for updates

    Author Tags

    1. high-level low-level programming
    2. portability
    3. restricted language
    4. virtual machine

    Qualifiers

    • Research-article

    Conference

    SPLASH '12
    Sponsor:

    Acceptance Rates

    Overall Acceptance Rate 4 of 4 submissions, 100%

    Upcoming Conference

    Contributors

    Other Metrics

    Bibliometrics & Citations

    Bibliometrics

    Article Metrics

    • Downloads (Last 12 months)3
    • Downloads (Last 6 weeks)0
    Reflects downloads up to 07 Mar 2025

    Other Metrics

    Citations

    Cited By

    View all
    • (2018)Privacy Protection Method Based on Access Control2018 Asia-Pacific Signal and Information Processing Association Annual Summit and Conference (APSIPA ASC)10.23919/APSIPA.2018.8659546(254-259)Online publication date: Nov-2018

    View Options

    Login options

    View options

    PDF

    View or Download as a PDF file.

    PDF

    eReader

    View online with eReader.

    eReader

    Figures

    Tables

    Media

    Share

    Share

    Share this Publication link

    Share on social media