Demonstration venue · read-only. Every page can be browsed; the buttons that would change it are switched off. Create an account to run TaxoReview on your own data.

Sebastian Nanz

dblp:79/1959 · DBLP profile ↗
← Back
26ranked-venue papers
10as first author
0since 2021 · last 2017
—ORCID · none

Domains — the database's venue-derived domains; a paper can count in several

Software engineering, systems software and programming languages · 14 · 5 first-authorTheory of computation · 4 · 3 first-authorSystems, architecture and hardware · 3 · 1 first-authorSecurity and privacy · 2Artificial intelligence and machine learning · 1Human-computer interaction and ubiquitous computing · 1 · 1 first-author

Expertise — from the expertise taxonomy: the topics of the expert's papers under the CCF categories. A weight counts papers with recency: 1 for a paper about the topic, 0.3 when the topic is its context, halved every five years.

Software engineering, system software, and programming languages
3 papers
Concurrent programming · 54% Programming languages and type systems · 32% Empirical software engineering · 11%
Computer networks
1 paper
Network management and operations · 100%

Topics — the 9 heaviest of 9, each with the papers that count most for it

TopicWeightPapersLastEvidence papers
Concurrent programming
concurrency models
0.422015
Efficient and reasonable object-oriented concurrency · ESEC/SIGSOFT FSE 2015
Efficient and reasonable object-oriented concurrency · PPoPP 2015
Concurrent programming › concurrency bugs
data race freedom
0.422015
Efficient and reasonable object-oriented concurrency · ESEC/SIGSOFT FSE 2015
Efficient and reasonable object-oriented concurrency · PPoPP 2015
Programming languages and type systems › concurrent programming languages
concurrent object-oriented programming
0.212015
Efficient and reasonable object-oriented concurrency · PPoPP 2015
Programming languages and type systems
language comparison
0.212015
A Comparative Study of Programming Languages in Rosetta Code · ICSE (1) 2015
Programming languages and type systems
language semantics
0.212015
Efficient and reasonable object-oriented concurrency · PPoPP 2015
Empirical software engineering
mining software repositories
0.212015
A Comparative Study of Programming Languages in Rosetta Code · ICSE (1) 2015
Concurrent programming
synchronization
0.212015
Efficient and reasonable object-oriented concurrency · ESEC/SIGSOFT FSE 2015
Network management and operations
network verification
0.112010
Static analysis of topology-dependent broadcast networks · Inf. Comput. 2010
Runtime systems and virtual machines
concurrent runtime systems
0.112015
Efficient and reasonable object-oriented concurrency · ESEC/SIGSOFT FSE 2015

Methods — techniques the papers use, named apart from their topics

statistical analysis · 0.2runtime optimization · 0.2execution model design · 0.2
YearPublicationVenuePosition
2017 SafeGPU: Contract- and library-based GPGPU for object-oriented languages
Alexey Kolesnichenko, Christopher M. Poskitt, Sebastian Nanz
Comput. Lang. Syst. Struct.3
2015 Contract-based general-purpose GPU programming
abstract
Using GPUs as general-purpose processors has revolutionized parallel computing by offering, for a large and growing set of algorithms, massive data-parallelization on desktop machines. An obstacle to widespread adoption, however, is the difficulty of programming them and the low-level control of the hardware required to achieve good performance. This paper suggests a programming library, SafeGPU, that aims at striking a balance between programmer productivity and performance, by making GPU data-parallel operations accessible from within a classical object-oriented programming language. The solution is integrated with the design-by-contract approach, which increases confidence in functional program correctness by embedding executable program specifications into the program text. We show that our library leads to modular and maintainable code that is accessible to GPGPU non-experts, while providing performance that is comparable with hand-written CUDA code. Furthermore, runtime contract checking turns out to be feasible, as the contracts can be executed on the GPU.
Alexey Kolesnichenko, Christopher M. Poskitt, Sebastian Nanz, Bertrand Meyer 0001
GPCE3
2015 A Comparative Study of Programming Languages in Rosetta Code
abstract
Sometimes debates on programming languages are more religious than scientific. Questions about which language is more succinct or efficient, or makes developers more productive are discussed with fervor, and their answers are too often based on anecdotes and unsubstantiated beliefs. In this study, we use the largely untapped research potential of Rosetta Code, a code repository of solutions to common programming tasks in various languages, which offers a large data set for analysis. Our study is based on 7'087 solution programs corresponding to 745 tasks in 8 widely used languages representing the major programming paradigms (procedural: C and Go, object-oriented: C# and Java, functional: F# and Haskell, scripting: Python and Ruby). Our statistical analysis reveals, most notably, that: functional and scripting languages are more concise than procedural and object-oriented languages, C is hard to beat when it comes to raw speed on large inputs, but performance differences over inputs of moderate size are less pronounced and allow even interpreted languages to be competitive, compiled strongly-typed languages, where more defects can be caught at compile time, are less prone to runtime failures than interpreted or weakly-typed languages. We discuss implications of these results for developers, language designers, and educators.
Sebastian Nanz, Carlo A. Furia
ICSE (1)1
2015 Efficient and reasonable object-oriented concurrency
abstract
Making threaded programs safe and easy to reason about is one of the chief difficulties in modern programming. This work provides an efficient execution model and implementation for SCOOP, a concurrency approach that provides not only data-race freedom but also pre/postcondition reasoning guarantees between threads. The extensions we propose influence the underlying semantics to increase the amount of concurrent execution that is possible, exclude certain classes of deadlocks, and enable greater performance.
Scott West, Sebastian Nanz, Bertrand Meyer 0001
PPoPP2
2015 Efficient and reasonable object-oriented concurrency
abstract
Making threaded programs safe and easy to reason about is one of the chief difficulties in modern programming. This work provides an efficient execution model for SCOOP, a concurrency approach that provides not only data-race freedom but also pre/postcondition reasoning guarantees between threads. The extensions we propose influence both the underlying semantics to increase the amount of concurrent execution that is possible, exclude certain classes of deadlocks, and enable greater performance. These extensions are used as the basis of an efficient runtime and optimization pass that improve performance 15x over a baseline implementation. This new implementation of SCOOP is, on average, also 2x faster than other well-known safe concurrent languages. The measurements are based on both coordination-intensive and data-manipulation-intensive benchmarks designed to offer a mixture of workloads.
Scott West, Sebastian Nanz, Bertrand Meyer 0001
ESEC/SIGSOFT FSE2
2014 Safe and Efficient Data Sharing for Message-Passing Concurrency
Benjamin Morandi, Sebastian Nanz, Bertrand Meyer 0001
COORDINATION2
2013 Concurrent Object-Oriented Development with Behavioral Design Patterns
Benjamin Morandi, Scott West, Sebastian Nanz, Hassan Gomaa
ECSA3
2013 Benchmarking Usability and Performance of Multicore Languages
abstract
Developers face a wide choice of programming languages and libraries supporting multicore computing. Ever more diverse paradigms for expressing parallelism and synchronization become available while their influence on usability and performance remains largely unclear. This paper describes an experiment comparing four markedly different approaches to parallel programming: Chapel, Cilk, Go, and Threading Building Blocks (TBB). Each language is used to implement sequential and parallel versions of six benchmark programs. The implementations are then reviewed by notable experts in the language, thereby obtaining reference versions for each language and benchmark. The resulting pool of 96 implementations is used to compare the languages with respect to source code size, coding time, execution time, and speedup. The experiment uncovers strengths and weaknesses in all approaches, facilitating an informed selection of a language under a particular set of requirements. The expert review step furthermore highlights the importance of expert knowledge when using modern parallel programming approaches.
Sebastian Nanz, Scott West, Kaue Soares da Silveira, Bertrand Meyer 0001
ESEM1
2013 Examining the Expert Gap in Parallel Programming
Sebastian Nanz, Scott West, Kaue Soares da Silveira
Euro-Par1
2013 Design of an empirical study for comparing the usability of concurrent programming languages
Sebastian Nanz, Faraz Torshizi, Michela Pedroni, Bertrand Meyer 0001
Inf. Softw. Technol.1
2012 Who is Accountable for Asynchronous Exceptions?
abstract
Large parts of today's software systems are devoted to detecting and recovering from failures, making exception handling a critical issue in software development. Concurrent software complicates this issue: most concurrent programming languages require a mechanism to deal with asynchronous exceptions, but because of the diverse design choices underlying each language, no approach fits all situations. We introduce a classification of possible approaches to guide the development of asynchronous exception mechanisms, and we show its applicability by deriving a sound and comprehensible mechanism for SCOOP, an object-oriented programming model for concurrency. We describe the key idea of the mechanism using the accountability framework, which precisely defines the obligations of client and supplier regarding the reporting of exceptions. The framework not only provides the necessary intuition to apply the mechanism correctly, it is also useful to comprehend other approaches.
Benjamin Morandi, Sebastian Nanz, Bertrand Meyer 0001
APSEC2
2012 Demonic Testing of Concurrent Programs
Scott West, Sebastian Nanz, Bertrand Meyer 0001
ICFEM2
2012 Performance analysis of SCOOP programs
Benjamin Morandi, Sebastian Nanz, Bertrand Meyer 0001
J. Syst. Softw.2
2011 Empirical assessment of languages for teaching concurrency: Methodology and application
abstract
Concurrency has been rapidly gaining importance in computing, and correspondingly in computing curricula. Concurrent programming is, however, notoriously hard even for expert programmers. New language designs promise to make it easier, but such claims call for empirical validation. We present a methodology for comparing concurrent languages for teaching purposes. A critical challenge is to avoid bias, especially when (as in our example application) the experimenters are also the designers of one of the approaches under comparison. For a study performed as part of a course, it is also essential to make sure that no student is penalized. The methodology addresses these concerns by using self-study material and applying an evaluation scheme that minimizes opportunities for subjective decisions. The example application compares two object-oriented concurrent languages: multithreaded Java and SCOOP. The results show an advantage for SCOOP even though the study participants had previous training in writing multithreaded Java programs. The lessons should be of use to educators interested in teaching concurrency, to researchers looking for objective ways of assessing teaching techniques, and to researchers who want to avoid bias in assessing an approach or tool that they have themselves designed.
Sebastian Nanz, Faraz Torshizi, Michela Pedroni, Bertrand Meyer 0001
CSEE&T1
2011 Design of an Empirical Study for Comparing the Usability of Concurrent Programming Languages
abstract
The recent turn towards multicore processing architectures has made concurrency an important part of mainstream software development. As a result, an increasing number of developers have to learn to write concurrent programs, a task that is known to be hard even for the expert. Language designers are therefore working on languages that promise to make concurrent programming "easier". However, the claim that a new language is more usable than another cannot be supported by purely theoretical considerations, but calls for empirical studies. In this paper, we present the design of a study to compare concurrent programming languages with respect to comprehending and debugging existing programs and writing correct new programs. A critical challenge for such a study is avoiding the bias that might be introduced during the training phase and when interpreting participants' solutions. We address these issues by the use of self-study material and an evaluation scheme that exposes any subjective decisions of the corrector, or eliminates them altogether. We apply our design to a comparison of two object-oriented languages for concurrency, multithreaded Java and SCOOP (Simple Concurrent Object-Oriented Programming), in an academic setting. We obtain results in favor of SCOOP even though the study participants had previous training in writing multithreaded Java programs.
Sebastian Nanz, Faraz Torshizi, Michela Pedroni, Bertrand Meyer 0001
ESEM1
2011 Modal abstractions of concurrent behavior
abstract
We present an effective algorithm for the automatic construction of finite modal transition systems as abstractions of potentially infinite concurrent processes. Modal transition systems are recognized as valuable abstractions for model checking because they allow for the validation as well as refutation of safety and liveness properties. However, the algorithmic construction of finite abstractions from potentially infinite concurrent processes is a missing link that prevents their more widespread usage for model checking of concurrent systems. Our algorithm is a worklist algorithm using concepts from abstract interpretation and operating upon mappings from sets to intervals in order to express simultaneous over- and underapproximations of the multisets of process actions available in a particular state. We obtain a finite abstraction that is 3-valued in both states and transitions and that supports the definition of a 3-valued modal logic for validating as well as refuting properties of systems. The construction is illustrated on a few examples, including the Ingemarsson-Tang-Wong key agreement protocol.
Flemming Nielson, Sebastian Nanz, Hanne Riis Nielson
ACM Trans. Comput. Log.2
2010 A Modular Scheme for Deadlock Prevention in an Object-Oriented Programming Model
Scott West, Sebastian Nanz, Bertrand Meyer 0001
ICFEM2
2010 Deriving concurrent control software from behavioral specifications
abstract
Concurrency is an integral part of many robotics applications, due to the need for handling inherently parallel tasks such as motion control and sensor monitoring. Writing programs for this complex domain can be hard, in particular because of the difficulties of retaining a robust modular design. We propose to use SCOOP, an object-oriented programming model for concurrency which by construction is free of data races, therefore excluding a major class of concurrent programming errors. Synchronization requirements are expressed by waiting on routine preconditions, which turns out to provide a natural framework for implementing coordination requirements in robotics applications. As demonstration application, we describe a control program for hexapod locomotion, whose implementation closely follows the corresponding behavioral specification given by the biological model. We compare the architecture with solutions expressed in more traditional approaches to robotic control applications.
Ganesh Ramanathan, Benjamin Morandi, Scott West, Sebastian Nanz, Bertrand Meyer 0001
IROS4
2010 Static analysis of topology-dependent broadcast networks
Sebastian Nanz, Flemming Nielson, Hanne Riis Nielson
Inf. Comput.1
2010 A logic for state-modifying authorization policies
abstract
Administering and maintaining access control systems is a challenging task, especially in environments with complex and changing authorization requirements. A number of authorization logics have been proposed that aim at simplifying access control by factoring the authorization policy out of the hard-coded resource guard. However, many policies require the authorization state to be updated after a granted access request, for example, to reflect the fact that a user has activated or deactivated a role. Current authorization languages cannot express such state modifications; these still have to be hard-coded into the resource guard. We present a logic for specifying policies where access requests can have effects on the authorization state. The logic is semantically defined by a mapping to Transaction Logic. Using this approach, updates to the state are factored out of the resource guard, thus enhancing maintainability and facilitating more expressive policies that take the history of access requests into account. We also present a sound and complete proof system for reasoning about sequences of access requests. This gives rise to a goal-oriented algorithm for finding minimal sequences that lead to a specified target authorization state.
Moritz Y. Becker, Sebastian Nanz
ACM Trans. Inf. Syst. Secur.2
2009 Mobility Models and Behavioural Equivalence for Wireless Networks
Jens Chr. Godskesen, Sebastian Nanz
COORDINATION2
2008 The Role of Abduction in Declarative Authorization Policies
Moritz Y. Becker, Sebastian Nanz
PADL2
2008 Modal Abstractions of Concurrent Behaviour
Sebastian Nanz, Flemming Nielson, Hanne Riis Nielson
SAS1
2007 Topology-Dependent Abstractions of Broadcast Networks
Sebastian Nanz, Flemming Nielson, Hanne Riis Nielson
CONCUR1
2007 A Logic for State-Modifying Authorization Policies
Moritz Y. Becker, Sebastian Nanz
ESORICS2
2006 A framework for security analysis of mobile wireless networks
Sebastian Nanz, Chris Hankin
Theor. Comput. Sci.1