Network


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

Hotspot


Dive into the research topics where Sven Stork is active.

Publication


Featured researches published by Sven Stork.


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

First-class state change in plaid

Joshua Sunshine; Karl Naden; Sven Stork; Jonathan Aldrich; Éric Tanter

Objects model the world, and state is fundamental to a faithful modeling. Engineers use state machines to understand and reason about state transitions, but programming languages provide little support for building software based on state abstractions. We propose Plaid, a language in which objects are modeled not just in terms of classes, but in terms of changing abstract states. Each state may have its own representation, as well as methods that may transition the object into a new state. A formal model precisely defines the semantics of core Plaid constructs such as state transition and trait-like state composition. We evaluate Plaid through a series of examples taken from the Plaid compiler and the standard libraries of Smalltalk and Java. These examples show how Plaid can more closely model state-based designs, enhancing understandability, enhancing dynamic error checking, and providing reuse benefits.


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

Concurrency by default: using permissions to express dataflow in stateful programs

Sven Stork; Paulo Marques; Jonathan Aldrich

The rise of the multicore era is catapulting concurrency into mainstream programming. Current programming paradigms build in sequentiality, and as a result, concurrency support in those languages forces programmers into low-level reasoning about execution order. In this paper, we introduce a new programming paradigm in which concurrency is the default. Our Aeminium language uses access permissions to express logical dependencies in the code at a higher level of abstraction than sequential order. Therefore compiler/runtime-system can leverage that dependency information to allow concurrent execution. Because in Aeminium programmers specify dependencies rather than control flow, there is no need to engage in difficult, error-prone, and low-level reasoning about execution order or thread interleavings. Developers can instead focus on the design of the program, and benefit as the runtime automatically extracts the concurrency inherent in


International Workshop on Aliasing, Confinement and Ownership in Object-Oriented Programming | 2009

Reducing STM overhead with access permissions

Nels E. Beckman; Yoon Phil Kim; Sven Stork; Jonathan Aldrich

While transactional memory makes concurrent programming more convenient, software transactional memory (STM) is typically associated with a high overhead. In this work we present a technique for reducing overhead associated with STM using access permissions, annotations on method parameters describing how references may alias. This information, which is statically checked for correctness, can be used to eliminate synchronization and logging operations. We have implemented this technique and show that it improves performance on a number of benchmarks.


international conference on software engineering | 2011

Permission-based programming languages (NIER track)

Jonathan Aldrich; Ronald Garcia; Mark Hahnenberg; Manuel Mohr; Karl Naden; Darpan Saini; Sven Stork; Joshua Sunshine; Éric Tanter; Roger Wolff

Linear permissions have been proposed as a lightweight way to specify how an object may be aliased, and whether those aliases allow mutation. Prior work has demonstrated the value of permissions for addressing many software engineering concerns, including information hiding, protocol checking, concurrency, security, and memory management. We propose the concept of a permission-based programming language - a language whose object model, type system, and runtime are all co-designed with permissions in mind. This approach supports an object model in which the structure of an object can change over time, a type system that tracks changing structure in addition to addressing the other concerns above, and a runtime system that can dynamically check permission assertions and leverage permissions to parallelize code. We sketch the design of the permission-based programming language Plaid, and argue that the approach may provide significant software engineering benefits.


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

Plaid: a permission-based programming language

Jonathan Aldrich; Robert L. Bocchino; Ronald Garcia; Mark Hahnenberg; Manuel Mohr; Karl Naden; Darpan Saini; Sven Stork; Joshua Sunshine; Éric Tanter; Roger Wolff

Access permissions (permissions for short) are a lightweight way to specify how an object may be aliased and whether aliases allow mutation. Prior work has demonstrated the value of permissions for addressing many software engineering concerns, including information hiding, protocol checking, concurrency, security, and memory management. We propose a permission-based programming language: that is, a language whose object model, type system, and runtime are all co-designed with permissions in mind. The key elements of such a language are (1) an object model in which the structure of an object can change over time; (2) a type system that tracks changing structure in addition to addressing concerns such as those listed above; and (3) a runtime system that dynamically checks permission assertions and leverages permissions to parallelize code. We sketch the design of the permission-based programming language Plaid and argue that the approach promises significant software engineering benefits.


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

Changing state in the plaid language

Joshua Sunshine; Sven Stork; Karl Naden; Jonathan Aldrich

Plaid is a language in which objects are defined not by fixed classes, but by changing abstract states. We will overview he Plaid programming language through a series of examples drawing from domains like I/O code and web applications. Attendees will write Plaid code and experience its benefits.


programming language design and implementation | 2014

Æminium: a permission based concurrent-by-default programming language approach

Sven Stork; Karl Naden; Joshua Sunshine; Manual Mohr; Alcides Fonseca; Paulo Marques; Jonathan Aldrich

The aim of ÆMINIUM is to study the implications of having a concurrent-by-default programming language. This includes language design, runtime system, performance and software engineering considerations. We conduct our study through the design of the concurrent-by-default ÆMINIUM programming language. ÆMINIUM leverages the permission flow of object and group permissions through the program to validate the programs correctness and to automatically infer a possible parallelization strategy via a dataflow graph. ÆMINIUM supports not only fork-join parallelism but more general dataflow patterns of parallelism. In this paper we present a formal system, called μÆMINIUM, modeling the core concepts of ÆMINIUM. μÆMINIUMs static type system is based on Featherweight Java with ÆMINIUM-specific extensions. Besides checking for correctness ÆMINIUMs type system it also uses the permission flow to compute a potential parallel execution strategy for the program. μÆMINIUMs dynamic semantics use a concurrent-by-default evaluation approach. Along with the formal system we present its soundness proof. We provide a full description of the implementation along with the description of various optimization techniques we used. We implemented ÆMINIUM as an extension of the Plaid programming language, which has first-class support for permissions built-in. The ÆMINIUM implementation and all case studies are publicly available under the General Public License. We use various case studies to evaluate ÆMINIUMs applicability and to demonstrate that ÆMINIUM parallelized code has performance improvements compared to its sequential counterpart. We chose to use case studies from common domains or problems that are known to benefit from parallelization, to show that ÆMINIUM is powerful enough to encode them. We demonstrate through a webserver application, which evaluates ÆMINIUMs impact on latency-bound applications, that ÆMINIUM can achieve a 70% performance improvement over the sequential counterpart. In another case study we chose to implement a dictionary function to evaluate ÆMINIUMs capabilities to express essential data structures. Our evaluation demonstrates that ÆMINIUM can be used to express parallelism in such data-structures and that the performance benefits scale with the amount of annotation effort which is put into the implementation. We chose an integral computationally example to evaluate pure functional programming and computational intensive use cases. Our experiments show that ÆMINIUM is capable of extracting parallelism from functional code and achieving performance improvements up to the limits of Plaids inherent performance bounds. Overall, we hope that the work helps to advance concurrent programming in modern programming environments.


ACM Transactions on Programming Languages and Systems | 2014

Æminium: A Permission-Based Concurrent-by-Default Programming Language Approach

Sven Stork; Karl Naden; Joshua Sunshine; Manuel Mohr; Alcides Fonseca; Paulo Marques; Jonathan Aldrich


Archive | 2012

The Plaid Language: Typed Core Specification

Jonathan Aldrich; Nels E. Beckman; Robert L. Bocchino; Karl Naden; Darpan Saini; Sven Stork; Joshua Sunshine


Archive | 2012

The Plaid Language: Typed Core Specification (CMU-ISR-12-103)

Jonathan Aldrich; Nels E. Beckman; Robert L. Bocchino; Karl Naden; Darpan Saini; Sven Stork; Joshua Sunshine

Collaboration


Dive into the Sven Stork's collaboration.

Top Co-Authors

Avatar

Jonathan Aldrich

Carnegie Mellon University

View shared research outputs
Top Co-Authors

Avatar

Joshua Sunshine

Carnegie Mellon University

View shared research outputs
Top Co-Authors

Avatar

Karl Naden

Carnegie Mellon University

View shared research outputs
Top Co-Authors

Avatar

Darpan Saini

Carnegie Mellon University

View shared research outputs
Top Co-Authors

Avatar

Manuel Mohr

Karlsruhe Institute of Technology

View shared research outputs
Top Co-Authors

Avatar
Top Co-Authors

Avatar

Mark Hahnenberg

Carnegie Mellon University

View shared research outputs
Top Co-Authors

Avatar

Nels E. Beckman

Carnegie Mellon University

View shared research outputs
Top Co-Authors

Avatar

Roger Wolff

Carnegie Mellon University

View shared research outputs
Top Co-Authors

Avatar
Researchain Logo
Decentralizing Knowledge