Proceedings Article10.1145/3131851.3131860
Function definitions for compound values in object-oriented languages
Jacek Chrząszcz,Aleksy Schubert +1 more
- 09 Oct 2017
- pp 61-72
3
TL;DR: This work proposes a type system for an object-oriented Java-like language that facilitates declarative programming while leaving programmers significant freedom in use of imperative features.
read more
Abstract: Declarative programming features are gradually included in the design of object-oriented languages such as Java and C++. These languages recently adopted anonymous function definitions and offer basic primitives that restrict changes on data, namely final and const keywords, respectively.We propose a type system for an object-oriented Java-like language that facilitates declarative programming while leaving programmers significant freedom in use of imperative features. The system allows one to delimit compound value representations and effectively define values that are common in functional programming languages. Given that, we distinguish methods that work as first-order functions on such values. In this framework functions may modify internal working state that is clearly separated from the global state of the program. The system exploits access modes for method arguments, which describe the way the method operates on the given entity representation.
read more
Chat with Paper
AI Agents for this Paper
Find similar papers on Google Scholar, PubMed and Arxiv
Write a critical review of this paper
Analyze citations of this paper to find unaddressed research gaps
Citations
Immutable Objects for a Java-like Language
Christian Haack,Erik Poll,Jan Schäfer,Aleksy Schubert +3 more
- 01 Jan 2007
TL;DR: A Java-like language with immutability specifications and a static type system for verifying immutable objects and a class modifier immutable specifies that all class instances are immutable objects is extended.
35
•Posted Content
Formalisation of a frame stack semantics for a Java-like language.
Aleksy Schubert,Jacek Chrzaszcz +1 more
TL;DR: This work presents a Coq formalisation of the small-step operational semantics of Jafun, a small Java-like language with classes, and makes a mechanised proof that the operational semantics for the untyped version of the semantics agrees with the one for the typed one.
2
Formalisation of a Frame Stack Semantics for a Java-like Language
Aleksy Schubert,Jacek Chrząszcz +1 more
TL;DR: This paper formalises the operational semantics of Jafun, a Java-like language, using Coq, enabling the specification and proof of invariants and a type system that classifies methods as extensional functions on compound values.
References
Featherweight Java: a minimal core calculus for Java and GJ
TL;DR: This work extends Featherweight Java with generic classes in the style of GJ and gives a detailed proof of type safety, which formalizes for the first time some of the key features ofGJ.
•Book
Purely functional data structures
Chris Okasaki
- 01 Jan 1998
TL;DR: This work describes several techniques for designing functional data structures, and numerous original data structures based on these techniques, including multiple variations of lists, queues, double-ended queues, and heaps, many supporting more exotic features such as random access or efficient catenation.
756
Ownership types for flexible alias protection
David G. Clarke,John Potter,James Noble +2 more
- 01 Oct 1998
TL;DR: Ownership types form a static type system that indicates object ownership, which provides a flexible mechanism to limit the visibility of object references and restrict access paths to objects, thus controlling a system's dynamic topology.
Parameterized object sensitivity for points-to analysis for Java
TL;DR: This work presents object sensitivity, a new form of context sensitivity for flow-insensitive points-to analysis for Java, and proposes a parameterization framework that allows analysis designers to control the tradeoffs between cost and precision in the object-sensitive analysis.
488
Fundamental Concepts in Programming Languages
Christopher S. Strachey
- 01 Apr 2000
TL;DR: This paper forms the substance of a course of lectures given at the International Summer School in Computer Programming at Copenhagen in August, 1967, and was originally given from notes and the paper was written after the course was finished.
Related Papers (5)
John C. Mitchell,Kathleen Fisher +1 more
- 01 Jan 1996
Nathaniel Nystrom,Olivier Tardieu,Igor Peshansky,Vijay Saraswat +3 more
- 01 Jan 2009