Konstantinos Sagonas
Senior Lecturer/Associate Professor at Department of Information Technology; Division of Computing Science
- Telephone:
- +46 18 471 10 56
- E-mail:
- Konstantinos.Sagonas@it.uu.se
- Visiting address:
- Hus 10, Lägerhyddsvägen 1
- Postal address:
- Box 337
751 05 UPPSALA
Senior Lecturer/Associate Professor at Department of Information Technology; Division of Computer Systems
- Visiting address:
- Hus 10, Lägerhyddsvägen 1
- Postal address:
- Box 337
751 05 UPPSALA
- ORCID:
- 0000-0001-9657-0179
More information is available to staff who log in.
Short presentation
I am a computer scientist.
I am also a terrible e-mail responder, so contact me on the phone if you want some reaction.
In my publications, I use the first name in my passport (Konstantinos), but I usually go by the name Kostis (NB: its correct pronunciation has the intonation in the second syllable).
You can find more information about my research output on my DBLP entry or on Google Scholar, where you can also find a photo of mine and an up-to-date list of my research areas.
Keywords
- computer science
Publications
Selection of publications
- Optimal stateless model checking for reads-from equivalence under sequential consistency (2019)
- Stateless model checking of the Linux kernel's read-copy update (RCU) (2019)
- Optimal dynamic partial order reduction with observers (2018)
- Queue Delegation Locking (2018)
- Automating Targeted Property-Based Testing (2018)
- Progress on Algorithms for Stateless Model Checking (2018)
- A contention adapting approach to concurrent ordered sets (2018)
- Lock-free Contention Adapting Search Trees (2018)
- Source Sets (2017)
- Comparing source sets and persistent sets for partial order reduction (2017)
- Stateless model checking for TSO and PSO (2017)
- The shared-memory interferences of Erlang/OTP built-ins (2017)
- Testing And Verifying Chain Repair Methods For CORFU Using Stateless Model Checking (2017)
- Selected and extended papers from Partial Evaluation and Program Manipulation 2015 (PEPM ' 15) (2017)
- Concolic testing for functional languages (2017)
- Stateless model checking of the Linux kernel's hierarchical read-copy-update (tree RCU) (2017)
- Targeted property-based testing (2017)
- The Contention Avoiding Concurrent Priority Queue (2017)
- Scaling Reliably (2017)
- The Nifty way to call hell from heaven (2016)
- Stateless model checking for TSO and PSO (2015)
- ProFuN TG (2015)
- ProFuN TG (2015)
- Enabling design of performance-controlled sensor network applications through task allocation and reallocation (2015)
- ProFuN TG (2015)
- Property-Based Testing of Sensor Networks (2015)
- Contention adapting search trees (2015)
- Optimal dynamic partial order reduction (2014)
- Static safety guarantees for a low-level multithreaded language with regions (2014)
- Delegation locking libraries for improved performance of multithreaded programs (2014)
- More scalable ordered set for ETS using adaptation (2014)
- On using Erlang for parallelization (2013)
- RELEASE (2013)
- Systematic testing for detecting concurrency errors in Erlang programs (2013)
- On the scalability of the Erlang term storage (2013)
- Precise explanation of success typing errors (2013)
- A scalability benchmark suite for Erlang/OTP (2012)
- On preserving term sharing in the Erlang virtual machine (2012)
- ErLLVM (2012)
- Detection of asynchronous message passing errors using static analysis (2011)
- A type and effect system for deadlock avoidance in low-level languages (2011)
- Static detection of race conditions in Erlang (2010)
- Race-free and memory-safe multithreading (2010)
- A concurrent language with a uniform treatment of regions and locks (2010)
- Using static analysis to detect type errors and concurrency defects in Erlang programs (2010)
- Automatic refactoring of Erlang programs (2009)
- Gradual Typing of Erlang Programs (2008)
- Applications, Implementation and Performance Evaluation of Bit Stream Programming in Erlang (2007)
- A language for specifying type contracts in Erlang and its interaction with success typings (2007)
- Detecting defects in Erlang programs using static analysis (2007)
- Demand-Driven Indexing of Prolog Clauses (2007)
- Message analysis for concurrent programs using message passing (2006)
- Practical type inference based on success typings (2006)
- Efficient manipulation of binary data using pattern matching (2006)
- Tabling in Mercury: Design and Implementation (2006)
- Efficient Memory Management for Concurrent Programs that Use Message Passing (2006)
- Mark and Split (2006)
- Bit-level Binaries and Generalized Comprehensions in Erlang (2005)
- Efficiently Compiling a Functional Language on AMD64: The HiPE Experience (2005)
- Experience from Developing the Dialyzer: A Static Analysis Tool Detecting Defects in Erlang Applications (2005)
- Proceedings of the 2005 ACM SIGPLAN Workshop on Erlang (2005)
- Bit-level binaries and generalized comprehensions in Erlang (2005)
- TypEr: A Type Annotator of Erlang Code (2005)
- Efficiently Compiling a Functional Language on AMD64 (2005)
- Adaptive Pattern Matching on Binary Data (2004)
- Detecting Software Defects in Telecom Applications Through Lightweight Static Analysis: A War Story (2004)
- HiPE on AMD64 (2004)
- Just Enough Tabling (2004)
- Message Analysis-Guided Allocation and Low-Pause Incremental Garbage Collection in a Concurrent Language (2004)
- Message Analysis for Concurrent Languages (2003)
- The development of the HiPE system (2003)
- ASTEC: An Experience in the Establishment of Collaboration between Academia and Industry (2003)
- All you wanted to know about the HiPE compiler (2003)
- Experimental Evaluation and Improvements to Linear Scan Register Allocation (2003)
- Native Code Compilation of Erlang's Bit Syntax (2002)
- Linear Scan Register Allocation in a High-Performance Erlang Compiler. (2002)
- Heap Architectures for Concurrent Languages using Message Passing (2002)
- Unboxed Compilation of Floating Point Arithmetic in a Dynamically Typed Language Environment. (2002)
- On Enabling the WAM with Region Support (2002)
- The HiPE/x86 Erlang Compiler: System Description and Performance Evaluation. (2002)
- On Reducing Interprocess Communication Overhead in Concurrent Programs. (2002)
- Segment Order Preserving and Generational Garbage Collection for Prolog (2002)
- Heap Memory Management in Prolog with Tabling: Practice and Experience (2001)
- Termination Proofs for Logic Programs with Tabling (2001)
- CAT: the Copying Approach to Tabling (1999)
- Modular termination proofs for Prolog with tabling (1999)
Recent publications
- Parsimonious Optimal Dynamic Partial Order Reduction (2024)
- Scalable Tree-based Register Automata Learning (2024)
- SMBugFinder (2024)
- Tailoring Stateless Model Checking for Event-Driven Multi-Threaded Programs (2023)
- EDHOC-Fuzzer (2023)
All publications
Articles
- Lock-free Contention Adapting Search Trees (2021)
- Optimal stateless model checking for reads-from equivalence under sequential consistency (2019)
- Stateless model checking of the Linux kernel's read-copy update (RCU) (2019)
- Queue Delegation Locking (2018)
- Effective Stateless Model Checking for C/C++ Concurrency (2018)
- A contention adapting approach to concurrent ordered sets (2018)
- Source Sets (2017)
- Stateless model checking for TSO and PSO (2017)
- Selected and extended papers from Partial Evaluation and Program Manipulation 2015 (PEPM ' 15) (2017)
- Concolic testing for functional languages (2017)
- Scaling Reliably (2017)
- Static safety guarantees for a low-level multithreaded language with regions (2014)
- Message analysis for concurrent programs using message passing (2006)
- Efficient manipulation of binary data using pattern matching (2006)
- Efficient Memory Management for Concurrent Programs that Use Message Passing (2006)
- The development of the HiPE system (2003)
- ASTEC: An Experience in the Establishment of Collaboration between Academia and Industry (2003)
- Experimental Evaluation and Improvements to Linear Scan Register Allocation (2003)
- Heap Memory Management in Prolog with Tabling: Practice and Experience (2001)
- Termination Proofs for Logic Programs with Tabling (2001)
- CAT: the Copying Approach to Tabling (1999)
Books
- Functional and Logic Programming (2020)
- Proceedings of the 2005 ACM SIGPLAN Workshop on Erlang (2005)
Chapters
Conferences
- Parsimonious Optimal Dynamic Partial Order Reduction (2024)
- Scalable Tree-based Register Automata Learning (2024)
- SMBugFinder (2024)
- Tailoring Stateless Model Checking for Event-Driven Multi-Threaded Programs (2023)
- EDHOC-Fuzzer (2023)
- Applying Symbolic Execution to Test Implementations of a Network Protocol Against its Specification (2022)
- DTLS-Fuzzer (2022)
- Awaiting for Godot (2022)
- So Many Fuzzers, So Little Time (2022)
- TSOPER (2021)
- Fifteen Years of Successfully Dialyzing Erlang and Elixir Code (2021)
- Analysis of DTLS Implementations Using Protocol State Fuzzing (2020)
- Parallel Graph-Based Stateless Model Checking (2020)
- Grammar-Based Testing for Little Languages (2020)
- Concolic Testing of Higher-order Functional Languages (2019)
- Optimal dynamic partial order reduction with observers (2018)
- HiPErJiT (2018)
- Automating Targeted Property-Based Testing (2018)
- Progress on Algorithms for Stateless Model Checking (2018)
- Lock-free Contention Adapting Search Trees (2018)
- The shared-memory interferences of Erlang/OTP built-ins (2017)
- Testing And Verifying Chain Repair Methods For CORFU Using Stateless Model Checking (2017)
- Stateless model checking of the Linux kernel's hierarchical read-copy-update (tree RCU) (2017)
- Targeted property-based testing (2017)
- The Contention Avoiding Concurrent Priority Queue (2017)
- The Nifty way to call hell from heaven (2016)
- Stateless model checking for TSO and PSO (2015)
- ProFuN TG (2015)
- ProFuN TG (2015)
- Enabling design of performance-controlled sensor network applications through task allocation and reallocation (2015)
- ProFuN TG (2015)
- Concolic Testing for Functional Languages (2015)
- Property-Based Testing of Sensor Networks (2015)
- Contention adapting search trees (2015)
- Optimal dynamic partial order reduction (2014)
- Brief announcement (2014)
- Delegation locking libraries for improved performance of multithreaded programs (2014)
- More scalable ordered set for ETS using adaptation (2014)
- On using Erlang for parallelization (2013)
- RELEASE (2013)
- Systematic testing for detecting concurrency errors in Erlang programs (2013)
- On the scalability of the Erlang term storage (2013)
- Precise explanation of success typing errors (2013)
- A scalability benchmark suite for Erlang/OTP (2012)
- On preserving term sharing in the Erlang virtual machine (2012)
- ErLLVM (2012)
- Detection of asynchronous message passing errors using static analysis (2011)
- A type and effect system for deadlock avoidance in low-level languages (2011)
- Static detection of race conditions in Erlang (2010)
- Race-free and memory-safe multithreading (2010)
- A concurrent language with a uniform treatment of regions and locks (2010)
- Using static analysis to detect type errors and concurrency defects in Erlang programs (2010)
- Automatic refactoring of Erlang programs (2009)
- Gradual Typing of Erlang Programs (2008)
- Applications, Implementation and Performance Evaluation of Bit Stream Programming in Erlang (2007)
- A language for specifying type contracts in Erlang and its interaction with success typings (2007)
- Detecting defects in Erlang programs using static analysis (2007)
- Demand-Driven Indexing of Prolog Clauses (2007)
- Practical type inference based on success typings (2006)
- Tabling in Mercury: Design and Implementation (2006)
- Mark and Split (2006)
- Bit-level Binaries and Generalized Comprehensions in Erlang (2005)
- Efficiently Compiling a Functional Language on AMD64: The HiPE Experience (2005)
- Experience from Developing the Dialyzer: A Static Analysis Tool Detecting Defects in Erlang Applications (2005)
- Bit-level binaries and generalized comprehensions in Erlang (2005)
- TypEr: A Type Annotator of Erlang Code (2005)
- Efficiently Compiling a Functional Language on AMD64 (2005)
- Adaptive Pattern Matching on Binary Data (2004)
- Detecting Software Defects in Telecom Applications Through Lightweight Static Analysis: A War Story (2004)
- HiPE on AMD64 (2004)
- Just Enough Tabling (2004)
- Message Analysis-Guided Allocation and Low-Pause Incremental Garbage Collection in a Concurrent Language (2004)
- Message Analysis for Concurrent Languages (2003)
- All you wanted to know about the HiPE compiler (2003)
- Native Code Compilation of Erlang's Bit Syntax (2002)
- Linear Scan Register Allocation in a High-Performance Erlang Compiler. (2002)
- Heap Architectures for Concurrent Languages using Message Passing (2002)
- Unboxed Compilation of Floating Point Arithmetic in a Dynamically Typed Language Environment. (2002)
- On Enabling the WAM with Region Support (2002)
- The HiPE/x86 Erlang Compiler: System Description and Performance Evaluation. (2002)
- On Reducing Interprocess Communication Overhead in Concurrent Programs. (2002)
- Segment Order Preserving and Generational Garbage Collection for Prolog (2002)
- Modular termination proofs for Prolog with tabling (1999)
- Automata-Based Automated Detection of State Machine Bugs in Protocol Implementations