Allowing Systematic And, Pascal Eugster · 2003
Many Java programs have sources of non-determinism, where a program depends upon factors that cannot be controlled. Such sources include (true) random numbers or the inherent non-determinism in concurrent threads, where the thread schedule is determined by the environment and varies between executions. This makes classical testing and fault-finding very inefficient: due to the non-deterministic nature of concurrent programs, a program run can no longer be reproduced reliably, and a fault may not manifest itself except under rare circumstances. Therefore the wish arises to test a program, under all possible outcomes. Different thread schedules are of primary interest.
Cited by 0
Type-separated Bytecode, Wolfram Amme · 2008
Abstract. Java Bytecode is currently the most used mobile code representation, although it contains some well-known major flaws. In the paper we introduce the principle operation of type-separated bytecode. Type-separated bytecode is a new intermediate representation that compensates some of the drawbacks introduced by Java Bytecode. In particular the use of type-separated bytecode can considerably speed-up the verification process and supports optimizations performed on the producer side of a mobile code generation system. This is especially important when using bytecode on constrained devices like JavaCards or in embedded systems. 1
Cited by 0
Kalman, Ondřej · Brno University of Technology Digital Library (Brno University of Technology) · 2014
Cílem této práce je srovnání dvou virtuálních strojů Javy a to virtuálního stroje HotSpot a~virtuálního stroje JamVM. Úvodní část práce čtenáře seznamuje s platformou Java, jsou zde také shrnuty obecné vlastnosti a principy funkčnosti všech virtuálních strojů Javy. Na tento teoretický úvod poté navazuje kapitola, ve které jsou srovnány klíčové vlastnosti virtuálních strojů HotSpot a JamVM. Na základě těchto vlastností je poté navržena a popsána sada výkonnostních testů, které byly v rámci této práce implementovány a provedeny. Poslední kapitoly této práce jsou věnovány prezentaci výsledků provedených výkonnostních testů a jejich vyhodnocení.
Cited by 0
In Standard Ml, Laura Korte, Supervised Stephen Gilmore · 2007
This thesis describes the MLJVM, a Java Virtual Machine written in the impure functional language Standard ML. Being the first of its kind in this functional approach, my thesis provides not only a detailed description of the implementation of the MLJVM, but also some insight into the pros and cons of a functional JVM.
Cited by 0
Martin Bůna · Digital Repository (National Repository of Grey Literature) · 2015
The primary objective of this bachelor thesis is to analyse the virtual machine of Java. The virtual machine is first put in the context of virtualization and then the reason of the success of the concept of such virtual machine is shown. The virtual machine is discussed in detail in the next part of this thesis and the basic structure and principles upon which the virtual machine works are explained. In the end the primary language constructs of Java are shown in connection with the virtual machine.
Cited by 0
Dalheimer, Matthias Kalle · 1997
Cited by 0
Karakaya, Ahmet · Marmara University Open Access System · 2008
JAVA SANAL MAKİNA TASARIMI VE GELİŞTİRİLMESİ\nBu tezde “bizimJVM” diye adlandırılan bir Java Sanal Makinanın tasarımı ve geliştirilmesi anlatılmıştır. Kolaylık olması açısından "thread synchronization" ,"garbage collector" ve "exception handler" gibi bazı özellikler tez kapsamında geliştirilen programa eklenmemiştir.\n\tbizimJVM, Java programlama dili kullanılarak geliştirilmiştir. Bu yüzden programın çalışması için başka bir Java sanal makinaya ihtiyaç vardır. Başka bir deyişle, bizimJVM özel bir cihaz veya işletim sistemi için tasarlanmamıştır. Bu nedenle makina kodları ile uğraşmak zorunda kalınmadı. Sıradan bir JVM mimarisinde, bir Java programının icrası için "bytecode"larını makina kodlarına direk dönüştürme veya bunları dinamik olarak derleme gibi yöntemler kullanılır. bizimJVM’in tasarımı ise "bytecode"ların direk dönüştürülmesi ve icrası yöntemine dayanır.\n\tbizimJVM emirlerin grafiksel bir arayüz üzerinden takip edilmesine olanak sağlayan bir araç olarak tasarlandı. Bu, metot çağrılarını takip etmemize ve değişkenlerin değerlerine erişmemize olanak sağlar. Bunlarla birlikte, derlenmiş bir çok Java programı yığın işlemleri takip edilerek koşturulabilir.\n\tNormalde sistem kaynaklarına erişebilmek için "Java API" dosyaları yüklenip kullanılmak zorundadır. Yanlız tez kapsamında geliştirilen programda sistem kaynaklarını kullanan metotlar "Java Reflection" yöntemini kullanarak icra edildi.\nAnahtar Kelimeler: Java, JVM, Java Sanal Makina, Bytecode, Class dosyası, tasarım\n ABSTRACT\nJVM DESIGN AND IMPLEMENTATION\nThis thesis describes the design and implementation of Java Virtual Machine infrastructure, called bizimJVM. Some basic components, thread synchronization, garbage collector and exception handler features were ignored for simplicity.\nbizimJVM is implemented using Java programming language, thus it is required another Java Virtual Machine to be run. In other words, bizimJVM is not designed for a particular host machine or operating system. Therefore, machine coding was not done. In an ordinary JVM architecture, there are several techniques such as interpreting bytecodes, compiling it while executing or combination of both techniques used to execute a Java program in a JVM. The present design is based on the interpreting technique. \nbizimJVM is indented to serve as a tool that can be used to debug the instructions on a graphical interface. It also allows us to track the method invocation and to look at the value of local variables. Besides that, most compiled Java programs can be executed step by step while watching stack operations.\nNormally it is required to load and then use the Java API files to access the system resources such as I/O. However in the present implementation Java Reflection technique was used to invoke the methods which use the system resources\nKeywords: Java, JVM, Bytecode, Class file, design
Cited by 0Open access
Guliyev Latif · ELTE Digital Institutional Repository (EDIT) (Eötvös Loránd University) · 2020
Questions: 1. Is it possible to apply Hot Migration on Java? 2. What are the safety conditions of moving processes? 3. What are the technical difficulties and limitations of moving threads by using cold and hot migration techniques?
Cited by 0
Défago, X. · Infoscience (Ecole Polytechnique Fédérale de Lausanne) · 1996
Cited by 0Open access
Bayer, Jan · Brno University of Technology Digital Library (Brno University of Technology) · 2018
Tato bakalářská práce se věnuje problematice perzistence v jazyce Java. Představuje a porovnává existující standardy a systémy, a zabývá se návrhem a implementací perzistenčního prostředí pro platformu Java SE s výstupem ve formě XML souborů.
Cited by 0Open access
Kuo-Yi Chen, J. Morris Chang, Ting‐Wei Hou · IEEE Transactions on Cloud Computing · 2015
The power-saving opportunities of long-running application servers which execute on multi-core systems are studied in this paper. The research goal is to develop an efficient power-saving strategy of application servers with the minimum performance degradation in cloud environments. The power-saving strategy is based on the run-time information which is already available in a JVM, the base software component of application servers. Several key findings are revealed through this study. First, the particular behavior of application servers, also known as phases, can be related to the run-time information of a JVM. Thus the phases of an application server can be predicted before the applications actually execute on hardware. Secondly, some particular phases are observed in this study and used to establish the power-saving strategy, such as memory phases and execute phases. Finally, a new finding of idle phase is proposed to reduce significant energy wastage without performance degradations. Based on these findings, a set of power-saving algorithms is proposed and implemented with two widely used JVMs, Sun's Hotspot and Jikes RVM. With the experiments of five multi-threaded benchmarks and two web application benchmarks, the use of proposed power-saving strategy leads to the lowest value of energy-delay product among the other power-saving techniques, and the performance degradation is well below 6 percent.
Cited by 3
Robert Stärk, Joachim Schmid, Egon Börger · 2001
State Machines which one may view as code written in an abstract programming language, can be applied to other virtual machines and to other programming languages as well. The target readers are practitioners---programmers, implementors, standardizers, lecturers, students---who need for their work a complete, correct, and at the same time transparent definition, and an executable model of the language and of the virtual machine underlying its intended implementation. As a consequence, in our models for the language and the machine, we first of all try to directly and faithfully reflect, in a complete way, as far as possible without becoming inconsistent, and in an unambiguous yet for the human reader graspable way, the intuitions and design decisions which are expressed in the reference manuals [18, 23] and underlie the current implementations of the language and the machine. We clarify various ambiguities and inconsistencies we discovered in the manuals and in the implementations, concerning fundamental notions like legal Java program, legal bytecode, verifiable bytecode, etc. Our analysis of the JVM bytecode verifier, which we relate to the static analysis of the Java parser (rules of definite assignment and reachability analysis), goes beyond the work of Stata and Abadi [34], Qian [27, 28], Freund and Mitchell [16], and O'Callahan [26]. 1.1 The goals of the book 3 In this introduction, we give an overview of the general goals of the book, its contents, the structuring techniques we use for decomposing Java and the JVM, and the literature we used. For additional information on the book and updates made after its publication, see the Home Page of Jbook at http://www.inf.ethz.ch/~jbook. 1.1 The goals of the book Our main goal is not to write an introduction to progr...
Cited by 0
Hartel, Pieter H., Moreau, L.A.V. · ePrints Soton (University of Southampton) · 2001
State Machine Semantics (ASM), Axiomatic Semantics (AS), Context Rewriting semantics (CR), Continuation or monad Semantics (CS), Denotational Semantics (DS), Natural Semantics (NS), Operational Semantics (OS), Structural Operational Semantics (SOS), or a semantic embedding in a higher odrder logic (HOL).
Cited by 1Open access
K. John Gough, Diane Corney · QUT ePrints (Queensland University of Technology) · 2000
The portability and runtime safety of programs which are executed on the Java Virtual Machine (JVM) makes the JVM an attractive target for compilers of languages other than Java. Unfortunately, the JVM was designed with language Java in mind, and lacks many of the primitives required for a straight forward implementation of other languages. Here, we discuss how the JVM may be used to implement other object oriented languages. As a practical example of the possibilities, we report on a comprehensive case study. The open source Gardens Point Component Pascal compiler compiles the entire Component Pascal language, a dialect of Oberon 2, to JVM bytecodes. This compiler achieves runtime efficiencies which are comparable to native code implementations of procedural languages.
Cited by 0Open access
Antero Taivalsaari, Antero Taivalsaari · 1998
: JavaInJava is a Java virtual machine written in the Java TM programming language. The system was built at Sun Microsystems Laboratories in order to examine the feasibility of constructing high-quality virtual machines using the Java programming language and to experiment with new virtual machine implementation techniques. In this paper we describe the overall architecture of JavaInJava and summarize a number of interesting technical issues that were encountered during its implementation. email address: antero.taivalsaari@eng.sun.com Copyright 1998 Sun Microsystems, Inc. The SML Technical Report Series is published by Sun Microsystems Laboratories, a division of Sun Microsystems, Inc. Printed in U.S.A. Unlimited copying without fee is permitted provided that the copies are not made nor distributed for direct commercial advantage, and credit to the source is given. Otherwise, no part of this work covered by copyright hereon may be reproduced in any form or by any means graphic, ...
Cited by 0
Michael Franz · IEEE Software · 1998
Java's portability and platform independence have made it the language of choice for developing Web-based applications. Yet Java actually consists of three parts: a language, a rich class library, and a distribution standard based on a virtual machine. It is this third link that the author considers most vulnerable to replacement. He explains why this is likely, drawing on his experience developing an alternative scheme to support software transportability, and given the eventual deployment of dynamic code generators.
Cited by 5
Fabian Breg, Constantine D. Polychronopoulos · Concurrency and Computation Practice and Experience · 2003
Abstract Distributed computing has become increasingly popular in the high‐performance community. Java's remote method invocation (RMI) provides a simple, yet powerful method for implementing parallel algorithms. The performance of RMI has been less than adequate, however, and object serialization is often identified as a major performance inhibitor. We believe that object serialization is best performed in the Java Virtual Machine (JVM), where information regarding object layout and hardware communication resources are readily available. We implement a subset of Java's object serialization protocol in native code, using the Java Native Interface (JNI) and JVM internals. Experiments show that our approach is up to eight times faster than Java's original object serialization protocol for array objects. Also, for linked data structures our approach obtains a moderate speedup and better scalability. Evaluation of our object serialization implementation in an RMI framework indicates that a higher throughput can be obtained. Parallel applications, written using RMI, obtain better speedups and scalability when this more efficient object serialization is used. Copyright © 2003 John Wiley & Sons, Ltd.
Cited by 7
Blount, Tom, Shi, Jian · EdShare Southampton (University of Southampton)
Cited by 0
Gennady G. Pekhimenko · 2007
This document describes the progress of the project on porting existing YETI [7] for x86 architecture. It shows what changes were made in the existing YETI project, gives short literature survey with some details in YETI design and describes what results were obtained on the SPECjvm98 benchmark. 1
Cited by 0
Lindholm, Tim · CERN Document Server (European Organization for Nuclear Research) · 2014
Cited by 0