An Exception Monitoring System for Java
|
|
|
- Gordon Owens
- 10 years ago
- Views:
Transcription
1 An Exception Monitoring System for Java Heejung Ohe and Byeong-Mo Chang Department of Computer Science, Sookmyung Women s University, Seoul , Korea {lutino, [email protected] Abstract. Exception mechanism is important for the development of robust programs to make sure that exceptions are handled appropriately at run-time. In this paper, we develop a dynamic exception monitoring system, which can trace handling and propagation of thrown exceptions in real-time. With this tool, programmers can examine exception handling process in more details and handle exceptions more effectively. Programmers can also trace only interesting exceptions by selecting options before execution. It can also provides profile information after execution, which summarizes exception handling in each method during execution. To reduce performance overhead, we implement the system based on code inlining, and presents some experimental results. Keywords: Java, exception propagation, exception analysis. 1 Introduction Exception handling is important in modern software development because it can support the development of robust programs with reliable error detection, and fast error handling. Java provides facilities to allow the programmer to define, throw and catch exceptional conditions. Because uncaught exceptions will abort the program s execution, it is important for the development of robust programs to make sure that exceptions are handled appropriately at run-time. However, it is not easy for programmers to trace and handle exceptions effectively. A number of static exception analyses including our previous works have been proposed based on static analysis framework [2, 3, 9, 10]. They approximate all possible exceptions, and don t consider unchecked exceptions usually. The static analysis information is usually used to check that all uncaught (checked) exceptions are specified in the method header. They, however, are not able to provide exact information on how exceptions are thrown, caught and propagated at runtime. To assist developing robust software, we need a tool to trace or monitor raised exceptions effectively during execution. For example, J2ME Wireless Tool This Research was supported by the Sookmyung Women s University Research Grants N. Guelfi (Ed.): RISE 2004, LNCS 3475, pp , c Springer-Verlag Berlin Heidelberg 2005
2 72 H. Ohe and B.-M. Chang Kit(WTK), a dynamic analysis tool, provides just the names of exceptions, whenever exceptions are thrown, but it cannot trace how thrown exceptions are handled and propagated. In addition, J2ME WTK is too slow when tracing exceptions, because it relies on JVMPI. Programmers cannot trace propagation and handling of exceptions with this tool. To develop reliable and robust Java programs, programmers need a more powerful tool, which can trace exception propagation and exception handling during execution. In this paper, we develop a dynamic exception monitoring system, which can trace how thrown exceptions(including unchecked exceptions) are handled and propagated in real-time. Programmers can examine exception handling process in more details and handle exceptions more effectively. Moreover, programmers can trace only interesting exceptions by selecting options before execution. It also provides profile information after execution, which summarizes exception handling in each method during execution. To reduce performance overhead, we design the system based on code inlining. Input programs are transformed by inlining codes so as to trace only interesting exceptions according to user options. The transformed programs produce trace information during execution, and profile information after execution. We implement the event monitoring system in Java based on Barat [1], which is a front-end for a Java compiler. We also present some experimental results, which can show the effectiveness of the system. The rest of this paper is organized as follows. The next section gives preliminaries on exceptions. Section 3 describes overall design of the system. Section 4 describes the implementation of the system, and Section 5 presents some experiments. Section 6 concludes this paper and discusses further research topics. 2 Preliminaries Like normal objects, exceptions can be defined by classes, instantiated, assigned to variables, passed as parameters, etc. Exception facilities in Java allow the programmer to define, throw and catch exceptional conditions. The throw statement throw e 0 evaluates e 0 first, and then throws the exception object. The try statement try S 1 catch (c x) S 2 evaluates S 1 first. If the statement S 1 executes normally without thrown exception, the try-catch statement executes normally. If an exception is thrown from S 1 and its class is covered by c then the handler expression S 2 is evaluated with the exception object bound to x. If the thrown exception is not covered by class c then the thrown exception continues to propagate back along the call chain until it meets another handler. The programmers have to declare in a method definition any exception class whose exceptions may escape from its body. The formal semantics of Java was proposed in [5] with exception throwing, propagation and handling taken into consideration. Let s consider a simple example in Figure 1, which shows exception propagation. The thrown exception E1 from the method m2 is propagated through m2 and m1, and caught by the try-catch in the main method. The exception
3 class Demo{ public static void main(string[] args ) throws E2 { try { m1( ); catch (E1 x) { ;... m3( ); void m1( ) throws E1{ m2( ); void m2( ) throws E1{ if (...) throw new E1(); An Exception Monitoring System for Java 73 void m3( ) throws E2 { if (...) throw new E2(); if (...) m3( ); Fig. 1. An example program for exception propagation E2 may be thrown from the method m3. If it is thrown, then it is propagated until the main method and not caught. The method m3 also has a recursive call to itself, so that the thrown exception E2 may be propagated back through the recursive calls. Because uncaught exceptions will abort the program s execution, it is important for the development of robust programs to check that exceptions are handled appropriately at run-time. 3 Design Considerations There are several ways that monitors can mediate all application operations. A traditional reference monitor is implemented by halting execution before certain machine instructions and invoking the reference monitor with the instruction as input. An alternate implementation, not limited by hardware support, runs applications inside an interpreter like JVM that executes the application code and invokes a reference monitor before each instruction. JVMPI(JVM Profiler Interface) follows this approach. However, this approach has unacceptable performance overhead [6], since a cost is incurred on every executed instruction. The third option inlines reference monitors in the target software. This approach is shown to overcome the limitations of traditional reference monitors, yet exhibits reasonable performance [6].
4 74 H. Ohe and B.-M. Chang Fig. 2. Inlined monitor [6] Fig. 3. System architecture An inlined reference monitor is obtained by modifying an application to include the functionality of a reference monitor. As in Figure 2, IRMs are inserted into applications by a rewriter or transformer that reads a target application and a policy, and produces a secured application, whose execution monitors its execution. The inlining approach is shown to be efficient for monitoring Java programs in [6]. We follow the inlining approach to design a dynamic exception monitoring system for efficiency. We take the following things into consideration in the design. The first one is to provide users with options to select interesting exceptions. By selecting options before execution, users can focus on interesting exceptions and methods by tracing only interesting exceptions in real-time. This option can also contribute in reducing performance overhead, because it makes the system to trace only interesting exceptions instead of all exceptions. The second one is to provide a profile option to produce profile information after execution, which summarizes exception throwing and handling during execution. The third one is to reduce performance overhead. We try to reduce performance overhead by inlining code instead of using JVMPI. An input program P is transformed into a
5 An Exception Monitoring System for Java 75 program P by inlinig codes so as to trace only interesting exceptions according to user options. The transformed program P will trace how thrown exceptions are handled and propagated during execution, and give profile information on exception handling after execution. Overall architecture of the system is shown in Figure 3. This system consists of four steps as in Figure 3. The function of each step is as follows: The first step extracts exception-related constructs by static analysis. This static information is used to give users options. The second step is option selection, where users can select interesting exceptions and methods using the static exception information. Users can trace only interesting exceptions and methods by selecting options in this step. The third step is a transformer, which transforms an input program P into a program P by inlining codes so as to trace only interesting exceptions according to user options. The fourth step is to compile and execute the transformed program P. It is to be executed on Java 2 SDK or J2ME WTK. 4 Implementation The exception monitoring system is implemented in Java based on Barat [1], which is a front-end for a Java compiler. Barat builds an abstract syntax tree for an input Java program and enriches it with type and name analysis information. It also provides interfaces for traversing abstract syntax trees, based on visitor design pattern in [7]. We can traverse AST nodes and do some actions or operations at visiting each node using a visitor, which is a tree traverse routine based on design patterns. Barat provides several visitors as basic visitors: DescendingVisitor which traverses every AST node in depth-first order and OuputVisitor which outputs input programs by traversing AST nodes. We can develop a static analyzer by implementing visitors to do necessary actions or operations at visiting AST nodes by extending basic visitors [1]. As described in Figure 3, our system consists of four steps. We implement the first three steps. The last step is a real execution on Java SDK. A main window for selecting options is shown in Figure 5, which shows all files in the package of a benchmark program Check from specjvm98. After users select files from the package, the window displays a list of exceptions, handlers and methods based on the static analysis information. Then, users can select only interesting exceptions, handlers and methods among them. By selecting options, users can get only interesting trace information and focus on interesting exceptions when debugging. Fig. 4. Architecture of Barat
6 76 H. Ohe and B.-M. Chang Fig. 5. Menu window Class TransformVisitor extends OutputVisitor{ visitthrow{ // Print the location of thrown exception and its type visittry{ // Print the location of try statement visitcatch{ // Print the location of catch statement, the type of caught exception // call printstacktrace() method visitmethod{ // Print the method information and record exception propagation // via this method Fig. 6. Structure of TransformVisitor
7 An Exception Monitoring System for Java 77 Fig. 7. Transformed program To provide users with options, we implement a static analyzer to extract exception-related constructs by extending DescendingVisitor. It extracts static information about possible exceptions and methods by analyzing input programs statically. In particular, it extracts static program constructs on exception raising, handling and methods. We implement a program transformer called TransformVisitor by extending OuputVisitor, which transforms an input program P into a program P by inlining codes so as to trace handling and propagation of thrown exceptions according to selected options. Figure 6 shows overall structure of the program transformer. A fragment of the transformed Check program is displayed in Figure 7. This figure shows main method and syncmethod2 which is called from the main method. The codes in the box are inlined codes by the transformer. The transformed program is to be executed automatically in Java 2 SDK. This transformed code traces how thrown exceptions are handled and propagated in real-time during execution. In addition, it can also profile exception handling of each method during execution and shows the number of thrown, caught, and uncaught exceptions for each method after execution. 5 Experiments We have implemented the system with SDK on Pentium 4 processor and Window XP. We first tested it with Check from specjvm98, which is a program to check that the JVM fits the requirements of the benchmark.
8 78 H. Ohe and B.-M. Chang When we execute the transformed program, we can trace handling and propagation of thrown exceptions (including runtime exceptions) as in Figure 8. It shows the location and exception type when an exception is thrown. It also shows the propagated path when an propagated exception is caught by a catchclause. For example, the propagation path of ArithmeticException, when it is caught at line 659, is shown in Figure 8 When the program terminates, it profiles the thrown, caught, and propagated exceptions of each method. Figure 9 shows the names and numbers of thrown, caught and propagated exceptions of each method. It also shows the name of exceptions, which is specified by throws clause at method headers. For example, ArithmeticException is specified at PepTest.syncMethod2. Fig. 8. Trace of Check program We have experimented the system with five Java benchmark programs. The first one is the small server connecting program ServerStuff. The second one is Linpack benchmark, which is to solve a dense system of linear equations. The third one is Check from specjvm98. The fourth one is Jess from specjvm98, which is an expert system shell based on NASA s CLIPS program. The last one is Rex from gnu, which matches a regular expression against strings. Table 1 first shows the numbers of lines of benchmark programs before and after inlining, and then shows the number of thrown exceptions, the number of caught exceptions, and the number of propagated exceptions for each benchmark. If an exception is propagated, it is counted as propagated exceptions at every
9 An Exception Monitoring System for Java 79 Fig. 9. Profile of Check program Table 1. Experiments with benchmark programs Programs Lines(before) Lines(after) Throw Caught Propagated ServerStuff Linpack Check Jess Rex method, through which it is propagated back. So a propagated exception can be counted multiply. The listed figures of Jess represents propagation of a thrown exception when an input with wrong syntax is given. The listed figures of Rex also represents propagation of a thrown exception when a wrong option is given. The listed figures of Check represents the many numbers of thrown, handled and propagated exceptions.
10 80 H. Ohe and B.-M. Chang 6 Related Works In [10, 11], the usage patterns of exception-handling constructs in Java programs were studied to show that exception-handling constructs are used frequently in Java programs and more accurate exception flow information is necessary. Exception analyses have been studied actively based on static analysis framework [2, 3, 12, 9]. Static exception analyses analyze input programs before execution and provide approximate information about all possible uncaught exceptions of each method. In Java[8], the JDK compiler ensures, by an intraprocedural analysis, that clients of a method either handle the exceptions declared by that method, or explicitly specify them at method header. In [9], a tool called Jex was developed to analyze uncaught exceptions in Java. It can extract the uncaught exceptions in Java programs, and generate views of the exception structure. In our previous work [2, 12], we proposed interprocedural exception analysis that estimates uncaught exceptions independently of programmers s specified exceptions. We compared our analysis with JDK-style analysis by experiments on realistic Java programs. We also have shown that our analysis can detect uncaught exceptions, unnecessary catch and throws clauses effectively. Static analysis techniques, however, cannot provide information about actual execution. So, dynamic analysis techniques have also been studied to provide information about actual execution [4, 13, 14]. Several dynamic analysis tools are developed for Java including J2ME Wireless Toolkit [14] and AdaptJ [13]. Recent J2ME Wireless Toolkit can trace method calls, exceptions and class loading as well as memory usage using JVMPI. However, it provides just the names of exceptions whenever exceptions are thrown. Moreover, JVMPI imposes heavy burden on performance overhead, which makes execution speed too slow. It is hard to trace interesting parts of programs effectively, because all codes including libraries are included in the trace. AdaptJ don t provide any exception-related information during execution. Our current work differs from the previous static works in that the previous works focus on estimating uncaught exceptions rather than providing information on the propagation paths of thrown exceptions. Our monitoring system can trace in real-time how thrown exceptions including unchecked exceptions are handled and propagated during execution. This trace function has not been supported by any dynamic systems yet. 7 Conclusion We have developed a dynamic exception monitoring system, which can help programmers trace and handle exceptions effectively. Using this system, programmers can examine exception handling process in more details by tracing only interesting exceptions, and can handle exceptions more effectively. To reduce performance overhead, we have designed the system based on inlined reference monitor. We are extending this system in two directions. The first one is to visualize exception trace and profile information, which can give more insights to
11 An Exception Monitoring System for Java 81 programmers. The second one is to adapt this system to J2ME programs, which are widely used in mobile environment. References 1. B. Bokowski, Andre Spiegel. Barat A Front-End for Java. Technical Report B December B.-M. Chang, J. Jo, K. Yi, and K. Choe, Interprocedural Exception Analysis for Java, Proceedings of ACM Symposium on Applied Computing, pp , Mar J.-D. Choi, D. Grove, M. Hind, and V. Sarkar, Efficient and precise modeling of exceptions for analysis of Java programs, Proceedings of 99 ACM SIGPLAN- SIGSOFT Workshop on Program Analysis for Software Tools and Engineering, September 1999, pp B. Dufour, K. Driesen, L. Hendren and C. Verbrugge. Dynamic Metrics for Java. Proceedings of ACM OOPSLA 03, October, 2003, Anaheim, CA. 5. S. Drossopoulou, and T. Valkevych, Java type soundness revisited. Techical Report, Imperial College, November Also available from: scd. 6. U. Erlingsson, The inlined reference monitor approach to secure policy enforcement, Ph.D thesis, Cornell University, January E. Gamma, R. Helm, R. Johnson and J. Vlissides, Design Patterns:Elements of Reusable Object-Oriented Software, Addison-Wesley, J. Gosling, B. Joy, and G. Steele, The Java Programming Language Specification, Addison-Wesley, M. P. Robillard and G. C. Murphy, Analyzing exception flow in Java programs, in Proc. of 99 European Software Engineering Conference and ACM SIGSOFT Symposium on Foundations of Software Engineering, pp B. G. Ryder, D. Smith, U. Kremer, M. Gordon, and N. Shah, A static study of Java exceptions using JESP, Tech. Rep. DCS-TR-403, Rutgers University, Nov S. Sinha and M. Harrold, Analysis and testing of programs with exception-handling constructs, IEEE Transations on Software Engineering 26(9) (2000). 12. K. Yi and B.-M. Chang Exception analysis for Java, ECOOP Workshop on Formal Techniques for Java Programs, June 1999, Lisbon, Portugal. 13. AdaptJ:A Dynamic Application Profiling Toolkit for Java, bdufou1/adaptj 14. Sun Microsystems, J2ME Wireless Toolkit,
A Thread Monitoring System for Multithreaded Java Programs
A Thread Monitoring System for Multithreaded Java Programs Sewon Moon and Byeong-Mo Chang Department of Computer Science Sookmyung Women s University, Seoul 140-742, Korea [email protected], [email protected]
I. INTRODUCTION. International Journal of Computer Science Trends and Technology (IJCST) Volume 3 Issue 2, Mar-Apr 2015
RESEARCH ARTICLE An Exception Monitoring Using Java Jyoti Kumari, Sanjula Singh, Ankur Saxena Amity University Sector 125 Noida Uttar Pradesh India OPEN ACCESS ABSTRACT Many programmers do not check for
Why Do Developers Neglect Exception Handling?
Why Do Developers Neglect Exception Handling? Hina Shah, Carsten Görg, Mary Jean Harrold College of Computing, Georgia Institute of Technology, Atlanta, Georgia, U.S.A. {hinashah,goerg,harrold}@cc.gatech.edu
Checking Access to Protected Members in the Java Virtual Machine
Checking Access to Protected Members in the Java Virtual Machine Alessandro Coglio Kestrel Institute 3260 Hillview Avenue, Palo Alto, CA 94304, USA Ph. +1-650-493-6871 Fax +1-650-424-1807 http://www.kestrel.edu/
Technical paper review. Program visualization and explanation for novice C programmers by Matthew Heinsen Egan and Chris McDonald.
Technical paper review Program visualization and explanation for novice C programmers by Matthew Heinsen Egan and Chris McDonald Garvit Pahal Indian Institute of Technology, Kanpur October 28, 2014 Garvit
Integrating TAU With Eclipse: A Performance Analysis System in an Integrated Development Environment
Integrating TAU With Eclipse: A Performance Analysis System in an Integrated Development Environment Wyatt Spear, Allen Malony, Alan Morris, Sameer Shende {wspear, malony, amorris, sameer}@cs.uoregon.edu
Portable Profiling of Memory Allocation in Java
Portable Profiling of Memory Allocation in Java Walter Binder Ecole Polytechnique Fédérale de Lausanne (EPFL) Artificial Intelligence Laboratory CH-1015 Lausanne, Switzerland [email protected] Abstract.
Instrumentation Software Profiling
Instrumentation Software Profiling Software Profiling Instrumentation of a program so that data related to runtime performance (e.g execution time, memory usage) is gathered for one or more pieces of the
Write Barrier Removal by Static Analysis
Write Barrier Removal by Static Analysis Karen Zee and Martin Rinard Laboratory for Computer Science Massachusetts Institute of Technology Cambridge, MA 02139 {kkz, [email protected] ABSTRACT We present
Component visualization methods for large legacy software in C/C++
Annales Mathematicae et Informaticae 44 (2015) pp. 23 33 http://ami.ektf.hu Component visualization methods for large legacy software in C/C++ Máté Cserép a, Dániel Krupp b a Eötvös Loránd University [email protected]
Towards Software Configuration Management for Test-Driven Development
Towards Software Configuration Management for Test-Driven Development Tammo Freese OFFIS, Escherweg 2, 26121 Oldenburg, Germany [email protected] Abstract. Test-Driven Development is a technique where
An Overview of Java. overview-1
An Overview of Java overview-1 Contents What is Java Major Java features Java virtual machine Java programming language Java class libraries (API) GUI Support in Java Networking and Threads in Java overview-2
2 Introduction to Java. Introduction to Programming 1 1
2 Introduction to Java Introduction to Programming 1 1 Objectives At the end of the lesson, the student should be able to: Describe the features of Java technology such as the Java virtual machine, garbage
Topics. Introduction. Java History CS 146. Introduction to Programming and Algorithms Module 1. Module Objectives
Introduction to Programming and Algorithms Module 1 CS 146 Sam Houston State University Dr. Tim McGuire Module Objectives To understand: the necessity of programming, differences between hardware and software,
Installing Java. Table of contents
Table of contents 1 Jargon...3 2 Introduction...4 3 How to install the JDK...4 3.1 Microsoft Windows 95... 4 3.1.1 Installing the JDK... 4 3.1.2 Setting the Path Variable...5 3.2 Microsoft Windows 98...
Departamento de Investigación. LaST: Language Study Tool. Nº 143 Edgard Lindner y Enrique Molinari Coordinación: Graciela Matich
Departamento de Investigación LaST: Language Study Tool Nº 143 Edgard Lindner y Enrique Molinari Coordinación: Graciela Matich Noviembre 2005 Para citar este documento: Lindner, Edgard; Enrique Molinari,
On the Relation between Design Contracts and Errors: A Software Development Strategy
On the Relation between Design Contracts and Errors: A Software Development Strategy Eivind J. Nordby, Martin Blom, Anna Brunstrom Computer Science, Karlstad University SE-651 88 Karlstad, Sweden {Eivind.Nordby,
Structural Design Patterns Used in Data Structures Implementation
Structural Design Patterns Used in Data Structures Implementation Niculescu Virginia Department of Computer Science Babeş-Bolyai University, Cluj-Napoca email address: [email protected] November,
Gadget: A Tool for Extracting the Dynamic Structure of Java Programs
Gadget: A Tool for Extracting the Dynamic Structure of Java Programs Juan Gargiulo and Spiros Mancoridis Department of Mathematics & Computer Science Drexel University Philadelphia, PA, USA e-mail: gjgargiu,smancori
A FRAMEWORK FOR MANAGING RUNTIME ENVIRONMENT OF JAVA APPLICATIONS
A FRAMEWORK FOR MANAGING RUNTIME ENVIRONMENT OF JAVA APPLICATIONS Abstract T.VENGATTARAMAN * Department of Computer Science, Pondicherry University, Puducherry, India. A.RAMALINGAM Department of MCA, Sri
Designing with Exceptions. CSE219, Computer Science III Stony Brook University http://www.cs.stonybrook.edu/~cse219
Designing with Exceptions CSE219, Computer Science III Stony Brook University http://www.cs.stonybrook.edu/~cse219 Testing vs. Debugging Testing Coding Does the code work properly YES NO 2 Debugging Testing
PERFORMANCE MONITORING OF JAVA COMPONENT-ORIENTED DISTRIBUTED APPLICATIONS
PERFORMANCE MONITORING OF JAVA COMPONENT-ORIENTED DISTRIBUTED APPLICATIONS Adrian Mos, John Murphy Performance Engineering Lab, Dublin City University Glasnevin, Dublin 9, Ireland Tel: +353 1 700-8762,
Load balancing using Remote Method Invocation (JAVA RMI)
Load balancing using Remote Method Invocation (JAVA RMI) Ms. N. D. Rahatgaonkar 1, Prof. Mr. P. A. Tijare 2 1 Department of Computer Science & Engg and Information Technology Sipna s College of Engg &
A Scalable Technique for Characterizing the Usage of Temporaries in Framework-intensive Java Applications
A Scalable Technique for Characterizing the Usage of Temporaries in Framework-intensive Java Applications Bruno Dufour Dept of Computer Science Rutgers University [email protected] Barbara G. Ryder
SQLMutation: A tool to generate mutants of SQL database queries
SQLMutation: A tool to generate mutants of SQL database queries Javier Tuya, Mª José Suárez-Cabal, Claudio de la Riva University of Oviedo (SPAIN) {tuya cabal claudio} @ uniovi.es Abstract We present a
A First Set of Design Patterns for Algorithm Animation
Fifth Program Visualization Workshop 119 A First Set of Design Patterns for Algorithm Animation Guido Rößling CS Department, TU Darmstadt Hochschulstr. 10 64289 Darmstadt, Germany [email protected] Abstract
Java Coding Practices for Improved Application Performance
1 Java Coding Practices for Improved Application Performance Lloyd Hagemo Senior Director Application Infrastructure Management Group Candle Corporation In the beginning, Java became the language of the
General Flow-Sensitive Pointer Analysis and Call Graph Construction
General Flow-Sensitive Pointer Analysis and Call Graph Construction Endre Horváth, István Forgács, Ákos Kiss, Judit Jász and Tibor Gyimóthy University of Szeged 4D Soft Ltd. Aradi Vértanúk tere 1. Soroksári
C Compiler Targeting the Java Virtual Machine
C Compiler Targeting the Java Virtual Machine Jack Pien Senior Honors Thesis (Advisor: Javed A. Aslam) Dartmouth College Computer Science Technical Report PCS-TR98-334 May 30, 1998 Abstract One of the
PART IV Performance oriented design, Performance testing, Performance tuning & Performance solutions. Outline. Performance oriented design
PART IV Performance oriented design, Performance testing, Performance tuning & Performance solutions Slide 1 Outline Principles for performance oriented design Performance testing Performance tuning General
A Content-Based Load Balancing Algorithm for Metadata Servers in Cluster File Systems*
A Content-Based Load Balancing Algorithm for Metadata Servers in Cluster File Systems* Junho Jang, Saeyoung Han, Sungyong Park, and Jihoon Yang Department of Computer Science and Interdisciplinary Program
Online Recruitment System 1. INTRODUCTION
1. INTRODUCTION This project Online Recruitment System is an online website in which jobseekers can register themselves online and apply for job and attend the exam. Online Recruitment System provides
Characteristics of Java (Optional) Y. Daniel Liang Supplement for Introduction to Java Programming
Characteristics of Java (Optional) Y. Daniel Liang Supplement for Introduction to Java Programming Java has become enormously popular. Java s rapid rise and wide acceptance can be traced to its design
GameTime: A Toolkit for Timing Analysis of Software
GameTime: A Toolkit for Timing Analysis of Software Sanjit A. Seshia and Jonathan Kotker EECS Department, UC Berkeley {sseshia,jamhoot}@eecs.berkeley.edu Abstract. Timing analysis is a key step in the
Dynamic Adaptability of Services in Enterprise JavaBeans Architecture
1. Introduction Dynamic Adaptability of Services in Enterprise JavaBeans Architecture Zahi Jarir *, Pierre-Charles David **, Thomas Ledoux ** [email protected], {pcdavid, ledoux}@emn.fr (*) Faculté
CS 111 Classes I 1. Software Organization View to this point:
CS 111 Classes I 1 Software Organization View to this point: Data Objects and primitive types Primitive types operators (+, /,,*, %). int, float, double, char, boolean Memory location holds the data Objects
Reducing Transfer Delay Using Java Class File Splitting and Prefetching
Reducing Transfer Delay Using Java Class File Splitting and Prefetching Chandra Krintz Brad Calder Urs Hölzle Department of Computer Science and Engineering University of California, San Diego ckrintz,calder
Excerpts from Chapter 4, Architectural Modeling -- UML for Mere Mortals by Eric J. Naiburg and Robert A. Maksimchuk
Excerpts from Chapter 4, Architectural Modeling -- UML for Mere Mortals by Eric J. Naiburg and Robert A. Maksimchuk Physical Architecture As stated earlier, architecture can be defined at both a logical
Integration of Application Business Logic and Business Rules with DSL and AOP
Integration of Application Business Logic and Business Rules with DSL and AOP Bogumiła Hnatkowska and Krzysztof Kasprzyk Wroclaw University of Technology, Wyb. Wyspianskiego 27 50-370 Wroclaw, Poland [email protected]
Application-only Call Graph Construction
Application-only Call Graph Construction Karim Ali and Ondřej Lhoták David R. Cheriton School of Computer Science, University of Waterloo Abstract. Since call graphs are an essential starting point for
Database Application Developer Tools Using Static Analysis and Dynamic Profiling
Database Application Developer Tools Using Static Analysis and Dynamic Profiling Surajit Chaudhuri, Vivek Narasayya, Manoj Syamala Microsoft Research {surajitc,viveknar,manojsy}@microsoft.com Abstract
Interpreters and virtual machines. Interpreters. Interpreters. Why interpreters? Tree-based interpreters. Text-based interpreters
Interpreters and virtual machines Michel Schinz 2007 03 23 Interpreters Interpreters Why interpreters? An interpreter is a program that executes another program, represented as some kind of data-structure.
Introduction to Object-Oriented Programming
Introduction to Object-Oriented Programming Programs and Methods Christopher Simpkins [email protected] CS 1331 (Georgia Tech) Programs and Methods 1 / 8 The Anatomy of a Java Program It is customary
Static detection of C++ vtable escape vulnerabilities in binary code
Static detection of C++ vtable escape vulnerabilities in binary code David Dewey Jonathon Giffin School of Computer Science Georgia Institute of Technology ddewey, [email protected] Common problem in C++
The first time through running an Ad Hoc query or Stored Procedure, SQL Server will go through each of the following steps.
SQL Query Processing The first time through running an Ad Hoc query or Stored Procedure, SQL Server will go through each of the following steps. 1. The first step is to Parse the statement into keywords,
Install Java Development Kit (JDK) 1.8 http://www.oracle.com/technetwork/java/javase/downloads/index.html
CS 259: Data Structures with Java Hello World with the IntelliJ IDE Instructor: Joel Castellanos e-mail: joel.unm.edu Web: http://cs.unm.edu/~joel/ Office: Farris Engineering Center 319 8/19/2015 Install
Software Metrics in Static Program Analysis
www.redlizards.com Software Metrics in Static Program Analysis ICFEM, 11/18/2010 Andreas Vogelsang 1, Ansgar Fehnker 2, Ralf Huuck 2, Wolfgang Reif 3 1 Technical University of Munich 2 NICTA, Sydney 3
Java Application Developer Certificate Program Competencies
Java Application Developer Certificate Program Competencies After completing the following units, you will be able to: Basic Programming Logic Explain the steps involved in the program development cycle
TEACHING COMPUTER PROGRAMMING WITH PROGRAM ANIMATION
TEACHING COMPUTER PROGRAMMING WITH PROGRAM ANIMATION Theodore S. Norvell and Michael P. Bruce-Lockhart Electrical and Computer Engineering Faculty of Engineering and Applied Science Memorial University
Java Technology in the Design and Implementation of Web Applications
Java Technology in the Design and Implementation of Web Applications Kavindra Kumar Singh School of Computer and Systems Sciences Jaipur National University Jaipur Abstract: This paper reviews the development
FPGA area allocation for parallel C applications
1 FPGA area allocation for parallel C applications Vlad-Mihai Sima, Elena Moscu Panainte, Koen Bertels Computer Engineering Faculty of Electrical Engineering, Mathematics and Computer Science Delft University
Composing Concerns with a Framework Approach
Composing Concerns with a Framework Approach Constantinos A. Constantinides 1,2 and Tzilla Elrad 2 1 Mathematical and Computer Sciences Department Loyola University Chicago [email protected] 2 Concurrent
Object Instance Profiling
Object Instance Profiling Lubomír Bulej 1,2, Lukáš Marek 1, Petr Tůma 1 Technical report No. 2009/7, November 2009 Version 1.0, November 2009 1 Distributed Systems Research Group, Department of Software
PC Based Escape Analysis in the Java Virtual Machine
PC Based Escape Analysis in the Java Virtual Machine Manfred Jendrosch, Gerhard W. Dueck, Charlie Gracie, and AndréHinkenjann Abstract Current computer architectures are multi-threaded and make use of
Reconfigurable Architecture Requirements for Co-Designed Virtual Machines
Reconfigurable Architecture Requirements for Co-Designed Virtual Machines Kenneth B. Kent University of New Brunswick Faculty of Computer Science Fredericton, New Brunswick, Canada [email protected] Micaela Serra
Creating a Java application using Perfect Developer and the Java Develo...
1 of 10 15/02/2010 17:41 Creating a Java application using Perfect Developer and the Java Development Kit Introduction Perfect Developer has the facility to execute pre- and post-build steps whenever the
An evaluation of the Java Card environment
An evaluation of the Java Card environment Christophe Rippert, Daniel Hagimont Contact: Christophe Rippert, Sirac Laboratory INRIA Rhône-Alpes, 655 avenue de l Europe Montbonnot 38334 St Ismier Cedex,
ASM: a code manipulation tool to implement adaptable systems
ASM: a code manipulation tool to implement adaptable systems Eric Bruneton, Romain Lenglet, Thierry Coupaye France Télécom R&D, DTL/ASR 28, chemin du Vieux Chêne BP 98, 38243 MEYLAN cedex {Eric.Bruneton,Romain.Lenglet,Thierry.Coupaye}@rd.francetelecom.com
Introduction to Java
Introduction to Java The HelloWorld program Primitive data types Assignment and arithmetic operations User input Conditional statements Looping Arrays CSA0011 Matthew Xuereb 2008 1 Java Overview A high
A Pattern for Designing Abstract Machines
The Machine A Pattern for Designing Machines Julio García-Martín Miguel Sutil-Martín Universidad Politécnica de Madrid 1. Because of the increasing gap between modern high-level programming languages and
Virtual Machine Learning: Thinking Like a Computer Architect
Virtual Machine Learning: Thinking Like a Computer Architect Michael Hind IBM T.J. Watson Research Center March 21, 2005 CGO 05 Keynote 2005 IBM Corporation What is this talk about? Virtual Machines? 2
Real Time Network Server Monitoring using Smartphone with Dynamic Load Balancing
www.ijcsi.org 227 Real Time Network Server Monitoring using Smartphone with Dynamic Load Balancing Dhuha Basheer Abdullah 1, Zeena Abdulgafar Thanoon 2, 1 Computer Science Department, Mosul University,
Code Generation for High-Assurance Java Card Applets
Code Generation for High-Assurance Java Card Applets Alessandro Coglio Kestrel Institute 3260 Hillview Avenue, Palo Alto, CA 94304, USA Ph. +1-650-493-6871 Fax +1-650-424-1807 http://www.kestrel.edu/ coglio
No no-argument constructor. No default constructor found
Every software developer deals with bugs. The really tough bugs aren t detected by the compiler. Nasty bugs manifest themselves only when executed at runtime. Here is a list of the top ten difficult and
www.virtualians.pk CS506 Web Design and Development Solved Online Quiz No. 01 www.virtualians.pk
CS506 Web Design and Development Solved Online Quiz No. 01 Which of the following is a general purpose container? JFrame Dialog JPanel JApplet Which of the following package needs to be import while handling
Fundamentals of Java Programming
Fundamentals of Java Programming This document is exclusive property of Cisco Systems, Inc. Permission is granted to print and copy this document for non-commercial distribution and exclusive use by instructors
PROBLEM SOLVING SEVENTH EDITION WALTER SAVITCH UNIVERSITY OF CALIFORNIA, SAN DIEGO CONTRIBUTOR KENRICK MOCK UNIVERSITY OF ALASKA, ANCHORAGE PEARSON
PROBLEM SOLVING WITH SEVENTH EDITION WALTER SAVITCH UNIVERSITY OF CALIFORNIA, SAN DIEGO CONTRIBUTOR KENRICK MOCK UNIVERSITY OF ALASKA, ANCHORAGE PEARSON Addison Wesley Boston San Francisco New York London
Tool Support for Inspecting the Code Quality of HPC Applications
Tool Support for Inspecting the Code Quality of HPC Applications Thomas Panas Dan Quinlan Richard Vuduc Center for Applied Scientific Computing Lawrence Livermore National Laboratory P.O. Box 808, L-550
The Java Series. Java Essentials I What is Java? Basic Language Constructs. Java Essentials I. What is Java?. Basic Language Constructs Slide 1
The Java Series Java Essentials I What is Java? Basic Language Constructs Slide 1 What is Java? A general purpose Object Oriented programming language. Created by Sun Microsystems. It s a general purpose
A Design Pattern for Efficient Retrieval of Large Data Sets from Remote Data Sources
A Design Pattern for Efficient Retrieval of Large Data Sets from Remote Data Sources Brad Long Australian Development Centre, Oracle Corporation, Brisbane, Qld. 4000, Australia. [email protected] and
A Performance Study of Load Balancing Strategies for Approximate String Matching on an MPI Heterogeneous System Environment
A Performance Study of Load Balancing Strategies for Approximate String Matching on an MPI Heterogeneous System Environment Panagiotis D. Michailidis and Konstantinos G. Margaritis Parallel and Distributed
XFlash A Web Application Design Framework with Model-Driven Methodology
International Journal of u- and e- Service, Science and Technology 47 XFlash A Web Application Design Framework with Model-Driven Methodology Ronnie Cheung Hong Kong Polytechnic University, Hong Kong SAR,
Reducing Memory in Software-Based Thread-Level Speculation for JavaScript Virtual Machine Execution of Web Applications
Reducing Memory in Software-Based Thread-Level Speculation for JavaScript Virtual Machine Execution of Web Applications Abstract Thread-Level Speculation has been used to take advantage of multicore processors
CHAPTER 10: WEB SERVICES
Chapter 10: Web Services CHAPTER 10: WEB SERVICES Objectives Introduction The objectives are: Provide an overview on how Microsoft Dynamics NAV supports Web services. Discuss historical integration options,
Getting Started with the Internet Communications Engine
Getting Started with the Internet Communications Engine David Vriezen April 7, 2014 Contents 1 Introduction 2 2 About Ice 2 2.1 Proxies................................. 2 3 Setting Up ICE 2 4 Slices 2
Encapsulating Crosscutting Concerns in System Software
Encapsulating Crosscutting Concerns in System Software Christa Schwanninger, Egon Wuchner, Michael Kircher Siemens AG Otto-Hahn-Ring 6 81739 Munich Germany {christa.schwanninger,egon.wuchner,michael.kircher}@siemens.com
ARM-BASED PERFORMANCE MONITORING FOR THE ECLIPSE PLATFORM
ARM-BASED PERFORMANCE MONITORING FOR THE ECLIPSE PLATFORM Ashish Patel, Lead Eclipse Committer for ARM, IBM Corporation Oliver E. Cole, President, OC Systems, Inc. The Eclipse Test and Performance Tools
Modeling Turnpike: a Model-Driven Framework for Domain-Specific Software Development *
for Domain-Specific Software Development * Hiroshi Wada Advisor: Junichi Suzuki Department of Computer Science University of Massachusetts, Boston [email protected] and [email protected] Abstract. This
IBM SDK, Java Technology Edition Version 1. IBM JVM messages IBM
IBM SDK, Java Technology Edition Version 1 IBM JVM messages IBM IBM SDK, Java Technology Edition Version 1 IBM JVM messages IBM Note Before you use this information and the product it supports, read the
