Generics in Java ≈ Generics in Java
View article
MJ: An imperative core calculus for Java and Java with effects Open
In order to study rigorously object-oriented languages such as Java or C#, a common practice is to define lightweight fragments, or calculi, which are sufficiently small to facilitate formal proofs of key properties. However many of the cu…
View article
JBMC: A Bounded Model Checking Tool for Verifying Java Bytecode Open
We present a bounded model checking tool for verifying Java bytecode, which is built on top of the CPROVER framework, named Java Bounded Model Checker (JBMC). JBMC processes Java bytecode together with a model of the standard Java librarie…
View article
Mapping API elements for code migration with vector representations Open
Problem. Code migration between languages is challenging partly because different languages require developers to use different software libraries and frameworks. For example, in Java, Java Development Kit library (JDK) is a popular toolki…
View article
A deeper look into bug fixes Open
Many implementations of research techniques that automatically repair software bugs target programs written in C. Work that targets Java often begins from or compares to direct translations of such techniques to a Java context. However, Ja…
View article
Java and scala's type systems are unsound: the existential crisis of null pointers Open
We present short programs that demonstrate the unsoundness of Java and Scala's current type systems. In particular, these programs provide parametrically polymorphic functions that can turn any type into any type without (down)casting. For…
View article
Empirical Study of Usage and Performance of Java Collections Open
Collection data structures have a major impact on the performance of applications, especially in languages such as Java, C#, or C++. This requires a developer to select an appropriate collection from a large set of possibilities, including…
View article
A Software Architecture for Java Programming Learning Assistant System Open
For advancements of Java programming educations, we have developed a Web-based Java Programming Learning System (JPLAS). JPLAS provides four problems with different levels, namely, element fill-inblank problem, value trace problem, stateme…
View article
Formal Language Recognition with the Java Type Checker Open
This paper is a theoretical study of a practical problem: the automatic generation of Java Fluent APIs from their specification. We explain why the problem's core lies with the expressive power of Java generics. Our main result is that aut…
View article
FAMIX Java language plug-in 1.0 Open
This document describes the language plug-in to the FAMIX 2.0 model for the Java programming language. It handles interpretation issues concerning Java in FAMIX and the extension of the FAMIX model for Jav specific features.
View article
Formal Specification with the Java Modeling Language Open
This text is a general, self contained, and tool independent introduction into the Java Modeling Language, JML. It appears in a book about the KeY approach and tool for the verification of Java software, because JML is the dominating start…
View article
A Co-contextual Type Checker for Featherweight Java Open
This paper addresses compositional and incremental type checking for object-oriented programming languages. Recent work achieved incremental type checking for structurally typed functional languages through co-contextual typing rules, a co…
View article
Java and scala's type systems are unsound: the existential crisis of null pointers Open
We present short programs that demonstrate the unsoundness of Java and Scala's current type systems. In particular, these programs provide parametrically polymorphic functions that can turn any type into any type without (down)casting. For…
View article
Javardise: a structured code editor for programming pedagogy in Java Open
The syntax of a programming language is the textual form - that conforms to a grammar - to express instructions of a programming model. The key idea of structured code editors is to constrain editing to syntactically valid program code, th…
View article
Integrating R and Java for Enhancing Interactivity of Algorithmic Data Analysis Software Solutions Open
Conceiving software solutions for statistical processing and algorithmic data analysis involves handling diverse data, fetched from various sources and in different formats, and presenting the results in a suggestive, tailorable manner. Ou…
View article
Writing Between the Lines: How Novices Construct Java Programs Open
Novices frequently learn to program using text-based programming, in languages such as Java. Programs can be constructed in a variety of different ways. Novices may write them sequentially, one line after another, or they may use top-down …
View article
Exploring the Eolang-Java Integration and Interoperability Open
In recent times, the subject of interoperability has become very popular. In large-scale software applications development, it is a common practice to combine multiple languages in solving peculiar problems and developing robust solutions.…
View article
A Java typestate checker supporting inheritance Open
Detecting programming errors in software is increasingly important, and building tools that \nhelp developers with this task is a crucial area of investigation on which the industry \ndepends. Leveraging on the observation that in Object-O…
View article
Java for Absolute Beginners Open
Write your first code in Java using simple, step-by-step examples that make learning easy. With this book you'll be able to pick up the concepts without fuss. Java for Absolute Beginners gives you all you need to start your Java programmin…
View article
An approach for formal verification of updated Java bytecode programs Open
This paper deals with formal specification and verification of Java bytecode update. Programs update for Java applications has gained a wide interest since it is used for several purposes: transforming semantics of a program, adding featur…
View article
A history of the Groovy programming language Open
This paper describes the history of the Groovy programming language. At the time of Groovy’s inception, Java was a dominant programming language with a wealth of useful libraries. Despite this, it was perceived by some to be evolving slowi…
View article
Writing JML Specifications Using Java 8 Streams Open
JML is a formal behavioral interface specification language for Java to document Java program modules such as classes and interfaces. When composing JML specifications, one frequently writes assertions involving a collection of values. In …
View article
Java APIs, Extensions and Libraries Open
This book shows readers how to use Java APIs, extensions, and modules such as Java EE integration, mobile Java modules, and JavaFX. This book completes the Apress Java learning journey and is a comprehensive approach to learning Java APIs,…
View article
Towards a Java Subtyping Operad (extended version). Open
The subtyping relation in Java exhibits self-similarity. The self-similarity in Java subtyping is interesting and intricate due to the existence of wildcard types and, accordingly, the existence of three subtyping rules for generic types: …
View article
Comparison of C++ and Java in Implementing Introductory Programming Algorithms Open
Computer programming is the heart of computer science and C++ and Java are the most popular and widely used languages. The performance of C++ and Java programming languages has been benchmarked using robotics, numerical, genetic and evolut…
View article
An Algorithm to Transform XML Schema into Java Codes Open
This paper implements a transformation algorithm, which is used to transform XML Schema into Java codes. Based on the algorithm design, we first defined a Java class, which is used to implement paring unit of the algorithm. Secondly, we de…
View article
On the Generalizability of Deep Learning-based Code Completion Across Programming Language Versions Open
Code completion is a key feature of Integrated Development Environments (IDEs), aimed at predicting the next tokens a developer is likely to write, helping them write code faster and with less effort. Modern code completion approaches are …
View article
Recaf: Java dialects as libraries Open
Mainstream programming languages like Java have limited support for language extensibility. Without mechanisms for syntactic abstraction, new programming styles can only be embedded in the form of libraries, limiting expressiveness. In thi…
View article
Practical Inference of Nullability Types Open
NullPointerExceptions (NPEs), caused by dereferencing null, fre- quently cause crashes in Java programs. Pluggable type checking is highly effective in preventing Java NPEs. However, this approach is difficult to adopt for large, existing …
View article
A Complex Java Code Generator for ACL2 Based on a Shallow Embedding of ACL2 in Java Open
This paper describes a code generator that translates ACL2 constructs to\ncorresponding Java constructs, according to a shallow embedding of ACL2 in\nJava. Starting from purely functional ACL2 code, the generated Java code\nexhibits impera…
View article
Automatic comment generation using only source code Open
Bu çalışmada, kaynak kodlara metot seviyesinde yorum ekleme işinin otomatikleştirilmesi anlatılmaktadır. Kodların, Java programlama dilinin sözdizim kurallarına uygun olması yeterli olup, çalışabilir durumda olması beklenmemektedir. Yorum …