Network


Latest external collaboration on country level. Dive into details by clicking on the dots.

Hotspot


Dive into the research topics where Johan Östlund is active.

Publication


Featured researches published by Johan Östlund.


symposium on principles of programming languages | 2010

Integrating typed and untyped code in a scripting language

Tobias Wrigstad; Francesco Zappa Nardelli; Sylvain Lebresne; Johan Östlund; Jan Vitek

Many large software systems originate from untyped scripting language code. While good for initial development, the lack of static type annotations can impact code-quality and performance in the long run. We present an approach for integrating untyped code and typed code in the same system to allow an initial prototype to smoothly evolve into an efficient and robust program. We introduce like types , a novel intermediate point between dynamic and static typing. Occurrences of like types variables are checked statically within their scope but, as they may be bound to dynamic values, their usage is checked dynamically. Thus like types provide some of the benefits of static typing without decreasing the expressiveness of the language. We provide a formal account of like types in a core object calculus and evaluate their applicability in the context of a new scripting language.


conference on object-oriented programming systems, languages, and applications | 2009

Thorn: robust, concurrent, extensible scripting on the JVM

Bard Bloom; John Field; Nathaniel Nystrom; Johan Östlund; Gregor Richards; Rok Strniša; Jan Vitek; Tobias Wrigstad

Scripting languages enjoy great popularity due to their support for rapid and exploratory development. They typically have lightweight syntax, weak data privacy, dynamic typing, powerful aggregate data types, and allow execution of the completed parts of incomplete programs. The price of these features comes later in the software life cycle. Scripts are hard to evolve and compose, and often slow. An additional weakness of most scripting languages is lack of support for concurrency - though concurrency is required for scalability and interacting with remote services. This paper reports on the design and implementation of Thorn, a novel programming language targeting the JVM. Our principal contributions are a careful selection of features that support the evolution of scripts into industrial grade programs - e.g., an expressive module system, an optional type annotation facility for declarations, and support for concurrency based on message passing between lightweight, isolated processes. On the implementation side, Thorn has been designed to accommodate the evolution of the language itself through a compiler plugin mechanism and target the Java virtual machine.


asian symposium on programming languages and systems | 2008

Minimal Ownership for Active Objects

Dave Clarke; Tobias Wrigstad; Johan Östlund; Einar Broch Johnsen

Active objects offer a structured approach to concurrency, encapsulating both unshared state and a thread of control. For efficient data transfer, data should be passed by reference whenever possible, but this introduces aliasing and undermines the validity of the active objects. This paper proposes a minimal variant of ownership types that preserves the required race freedom invariant yet enables data transfer by reference between active objects (that is, without copying) in many cases, and a cheap clone operation where copying is necessary. Our approach is general and should be adaptable to several existing active object systems.


46th International Conference, TOOLS EUROPE 2008, Zurich, Switzerland, June 30 - July 4, 2008. | 2008

Ownership, Uniqueness, and Immutability

Johan Östlund; Tobias Wrigstad; Dave Clarke; Beatrice Åkerblom

Programming in an object-oriented language demands a fine balance between flexibility and control. At one level, objects need to interact freely to achieve our implementation goals. At a higher level, architectural constraints that ensure the system can be understood by new developers and can evolve as requirements change must be met. To resolve this tension, researchers have developed type systems expressing ownership and behavioural restrictions such as immutability. This work reports on our consolidation of the resulting discoveries into a single programming language. Our language, Joe 3 , imposes little additional syntactic overhead, yet can encode powerful patterns such as fractional permissions and the reference modes of Flexible Alias Protection.


Proceedings for the 1st workshop on Script to Program Evolution | 2009

Understanding the dynamics of JavaScript

Sylvain Lebresne; Gregor Richards; Johan Östlund; Tobias Wrigstad; Jan Vitek

We report on preliminary results on understanding the nature of JavaScript programs. Our investigation is motivated by the goal of developing a type system for JavaScript programs. As a prelude, we decide to gain a better understanding of the dynamic behaviour of JavaScript programs. In particular we are interested in understanding how dynamic JavaScript programs are in the real world.


conference on object-oriented programming systems, languages, and applications | 2009

Thorn: robust concurrent scripting on the JVM

Bard Bloom; John Field; Nathaniel Nystrom; Johan Östlund; Gregor Richards; Rok Strniša; Jan Vitek; Tobias Wrigstad

Scripting languages enjoy great popularity due to their support for rapid and exploratory development. They typically have lightweight syntax, weak data privacy, dynamic typing, powerful aggregate data types, and allow execution of the completed parts of incomplete programs. The price of these features comes later in the software life cycle. Scripts are hard to evolve and compose, and often slow. An additional weakness of most scripting languages is lack of support for concurrency - though concurrency is required for scalability and interacting with remote services. This paper reports on the design and implementation of Thorn, a novel programming language targeting the JVM. Our principal contributions are a careful selection of features that support the evolution of scripts into industrial grade programs e.g., an expressive module system, an optional type annotation facility for declarations, and support for concurrency based on message passing between lightweight, isolated processes. On the implementation side, Thorn has been designed to accommodate the evolution of the language itself through a compiler plugin mechanism and target the Java virtual machine.


2012 International Workshop on Languages for the Multi-core Era | 2012

The Joelle Programming Language : Evolving Java Programs Along Two Axes of Parallel Eval

Johan Östlund; Stephan Brandauer; Tobias Wrigstad


International Workshop on Aliasing, Confinement and Ownership in object-oriented programming: IWACO at ECOOP | 2011

Owners as Ombudsmen : Multiple Aggregate Entry Points for Ownership Types

Tobias Wrigstad; Johan Östlund


International Workshop on Aliasing, Confinement and Ownership in object-oriented programming: IWACO at ECOOP | 2011

Regions as Owners : A Discussion on Ownership-based Effects in Practice

Johan Östlund; Tobias Wrigstad


Typing, Analysis and Verification of Heap-Manipulating Programs | 2009

Minimal Ownership for Active Objects.

David Clarke; Tobias Wrigstad; Johan Östlund; Einar Broch Johnsen

Collaboration


Dive into the Johan Östlund's collaboration.

Top Co-Authors

Avatar
Top Co-Authors

Avatar
Top Co-Authors

Avatar
Top Co-Authors

Avatar
Top Co-Authors

Avatar
Top Co-Authors

Avatar
Top Co-Authors

Avatar
Top Co-Authors

Avatar

Rok Strniša

University of Cambridge

View shared research outputs
Researchain Logo
Decentralizing Knowledge