Johan Östlund
Purdue University
Network
Latest external collaboration on country level. Dive into details by clicking on the dots.
Publication
Featured researches published by Johan Östlund.
symposium on principles of programming languages | 2010
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
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
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
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
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
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
Johan Östlund; Stephan Brandauer; Tobias Wrigstad
International Workshop on Aliasing, Confinement and Ownership in object-oriented programming: IWACO at ECOOP | 2011
Tobias Wrigstad; Johan Östlund
International Workshop on Aliasing, Confinement and Ownership in object-oriented programming: IWACO at ECOOP | 2011
Johan Östlund; Tobias Wrigstad
Typing, Analysis and Verification of Heap-Manipulating Programs | 2009
David Clarke; Tobias Wrigstad; Johan Östlund; Einar Broch Johnsen