Selected tools for Java class and bytecode inspection in the educational environment

Tomaž Dobravec 1
  • 1 Faculty of Computer and Information Science, University of Ljubljana, Slovenia

Abstract

Java is not only a modern, powerful, and frequently used programming language, but together with Java Virtual Machine it represents a novel dynamic approach of writing and executing computer programs. The fact that Java programs are executed in a controlled environment has several important implications that define the nature of the language and makes it different from the traditional C-like languages. Knowing the detailed differences between the two types of languages and execution environments is a part of the holistic education of a computer engineer.

In this paper, we present some behind-the-scene details about the Java Virtual Machine and we show how these details could be used in the educational process to demonstrate the differences and to emphasise the advantages of the dynamic programming approach when compared to the static one. After presenting some information about class files and about the internal structure and operation of the Java Virtual Machine we demonstrate the usage of public domain programs that could be used in the educational process to put these theoretical concepts into practice.

If the inline PDF is not rendering correctly, you can download the PDF file here.

  • [1] TIOBE Software BV. Tiobe index (june 2019). www.tiobe.com/tiobe-index, 2019

  • [2] Pierre Carbonnelle. Pypl popularity of programming language. pypl.github.io/PYPL.html, 2019

  • [3] Dr. Garbage Community. Dr. garbage tools. http://drgarbagetools.sourceforge.net, 2019

  • [4] Tomaž Dobravec. Java virtual machine educational tools. In William Steingartner, editor, Proceedings of the Informatics 2019, Piscataway, IEEE. cop,. Poprad, Slovakia, November 2019, 82–86

  • [5] Matevž Fabjančič. A GUI for the PyJVM. https://pypi.org/project/pyjvmgui, 2018

  • [6] Matevž Fabjančič. Simulating Java bytecode execution (in Slovene language). diploma thesis (mentor: T. Dobravec), Faculty of Computer and Information Science, University of Ljubljana, 2018

  • [7] James Gosling, Bill Joy, Guy Steele, Gilad Bracha, and Alex Buckley. The Java™ Language Specification, Java SE 8 Edition. Oracle America, Inc., California, USA, 2014

  • [8] Klemen Kloboves, Jurij Mihelič, Patricio Bulić, and Tomaž Dobravec. FPGA-based SIC/XE processor and supporting toolchain. International journal of engineering education, 2017, A(6), 1927–1939

  • [9] Tim Lindholm, Frank Yellin, Gilad Bracha, and Alex Buckley. The Java™ Virtual Machine Specification, Java SE 8 Edition. Oracle America, Inc., California, USA, 2014

  • [10] Tanmay K. M. Java class file editor. http://classeditor.sourceforge.net, 2004

  • [11] Jurij Mihelič and Tomaž Dobravec. SicSim : a simulator of the educational SIC/XE computer for a system-software course. Computer applications in engineering education, 2015, 23(1), 137–146

  • [12] Stephen O’Grady. The redmonk programming language rankings: January 2019. https://redmonk.com/sogrady/2019/03/20/language-rankings-1-19, 2019

  • [13] Andrew Romanenco. PyJVM - Java 7 virtual machine implemented in pure python. https://github.com/andrewromanenco/pyjvm, 2014

  • [14] Bill Venners. The lean, mean, virtual machine. JavaWorld, 1996

OPEN ACCESS

Journal + Issues

Search