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. A simulation from public publication records: the people listed were not invited and did not agree to review.
? Tutorial for this page

Matko Botincan

dblp:64/7537 · DBLP profile ↗
← Back
6ranked-venue papers
5as first author
0since 2021 · last 2013
—ORCID · none

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

Software engineering, systems software and programming languages · 5 · 4 first-authorSystems, architecture and hardware · 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
6 papers
Program verification · 46% Concurrent programming · 17% Compilers and program optimization · 14%
Computer architecture, parallel and distributed computing, and storage systems
2 papers
Parallel and multicore computing · 100%

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

TopicWeightPapersLastEvidence papers
Program verification › program logic
separation logic
0.752013
Proof-Directed Parallelization Synthesis by Separation Logic · ACM Trans. Program. Lang. Syst. 2013
Resource-sensitive synchronization inference by abduction · POPL 2012
jStar-eclipse: an IDE for automated verification of Java programs · SIGSOFT FSE 2011
Program verification › abstraction refinement
counterexample-guided abstraction refinement
0.212013
Sigma*: symbolic learning of input-output specifications · POPL 2013
Program analysis › symbolic execution
dynamic symbolic execution
0.212013
Sigma*: symbolic learning of input-output specifications · POPL 2013
Parallel and multicore computing
parallel programming models
0.212013
Proof-Directed Parallelization Synthesis by Separation Logic · ACM Trans. Program. Lang. Syst. 2013
Compilers and program optimization
parallelization
0.112012
Resource-sensitive synchronization inference by abduction · POPL 2012
Compilers and program optimization
synchronization insertion
0.112012
Resource-sensitive synchronization inference by abduction · POPL 2012
Concurrent programming › synchronization
synchronization synthesis
0.112012
Resource-sensitive synchronization inference by abduction · POPL 2012
Program verification
automated verification
0.112011
jStar-eclipse: an IDE for automated verification of Java programs · SIGSOFT FSE 2011
Concurrent programming › concurrency bugs
data race freedom
0.112011
Safe asynchronous multicore memory operations · ASE 2011
Program verification › code-level verification
java verification
0.112011
jStar-eclipse: an IDE for automated verification of Java programs · SIGSOFT FSE 2011
Programming languages and type systems › language-based security
memory safety
0.112011
Safe asynchronous multicore memory operations · ASE 2011
Program analysis › static analysis
dependency analysis
0.122013
Proof-Directed Parallelization Synthesis by Separation Logic · ACM Trans. Program. Lang. Syst. 2013
Resource-sensitive synchronization inference by abduction · POPL 2012
Compilers and program optimization › code generation
parallel code generation
0.012013
Sigma*: symbolic learning of input-output specifications · POPL 2013
User interface design and tools › programming environments
integrated development environment
0.012011
jStar-eclipse: an IDE for automated verification of Java programs · SIGSOFT FSE 2011
Parallel and multicore computing
multicore programming
0.012011
Safe asynchronous multicore memory operations · ASE 2011

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

separation logic · 1.1frame inference · 0.5abduction · 0.5numerical abstract domains · 0.2SMT solver · 0.2symbolic transducers · 0.2dynamic symbolic execution · 0.2counterexample-guided abstraction refinement · 0.2
YearPublicationVenuePosition
2013 Sigma*: symbolic learning of input-output specifications
abstract
We present Sigma*, a novel technique for learning symbolic models of software behavior. Sigma* addresses the challenge of synthesizing models of software by using symbolic conjectures and abstraction. By combining dynamic symbolic execution to discover symbolic input-output steps of the programs and counterexample guided abstraction refinement to over-approximate program behavior, Sigma* transforms arbitrary source representation of programs into faithful input-output models. We define a class of stream filters---programs that process streams of data items---for which Sigma* converges to a complete model if abstraction refinement eventually builds up a sufficiently strong abstraction. In other words, Sigma* is complete relative to abstraction. To represent inferred symbolic models, we use a variant of symbolic transducers that can be effectively composed and equivalence checked. Thus, Sigma* enables fully automatic analysis of behavioral properties such as commutativity, reversibility and idempotence, which is useful for web sanitizer verification and stream programs compiler optimizations, as we show experimentally. We also show how models inferred by Sigma* can boost performance of stream programs by parallelized code generation.
Matko Botincan, Domagoj Babic
POPL1
2013 Proof-Directed Parallelization Synthesis by Separation Logic
abstract
We present an analysis which takes as its input a sequential program, augmented with annotations indicating potential parallelization opportunities, and a sequential proof, written in separation logic, and produces a correctly synchronized parallelized program and proof of that program. Unlike previous work, ours is not a simple independence analysis that admits parallelization only when threads do not interfere; rather, we insert synchronization to preserve dependencies in the sequential program that might be violated by a naïve translation. Separation logic allows us to parallelize fine-grained patterns of resource usage, moving beyond straightforward points-to analysis. The sequential proof need only represent shape properties, meaning we can handle complex algorithms without verifying every aspect of their behavior. Our analysis works by using the sequential proof to discover dependencies between different parts of the program. It leverages these discovered dependencies to guide the insertion of synchronization primitives into the parallelized program, and to ensure that the resulting parallelized program satisfies the same specification as the original sequential program, and exhibits the same sequential behavior. Our analysis is built using frame inference and abduction, two techniques supported by an increasing number of separation logic tools.
Matko Botincan, Mike Dodds, Suresh Jagannathan
ACM Trans. Program. Lang. Syst.1
2012 Resource-sensitive synchronization inference by abduction
abstract
We present an analysis which takes as its input a sequential program, augmented with annotations indicating potential parallelization opportunities, and a sequential proof, written in separation logic, and produces a correctly-synchronized parallelized program and proof of that program. Unlike previous work, ours is not an independence analysis; we insert synchronization constructs to preserve relevant dependencies found in the sequential program that may otherwise be violated by a naive translation. Separation logic allows us to parallelize fine-grained patterns of resource-usage, moving beyond straightforward points-to analysis. Our analysis works by using the sequential proof to discover dependencies between different parts of the program. It leverages these discovered dependencies to guide the insertion of synchronization primitives into the parallelized program, and to ensure that the resulting parallelized program satisfies the same specification as the original sequential program, and exhibits the same sequential behaviour. Our analysis is built using frame inference and abduction, two techniques supported by an increasing number of separation logic tools.
Matko Botincan, Mike Dodds, Suresh Jagannathan
POPL1
2011 Safe asynchronous multicore memory operations
abstract
Asynchronous memory operations provide a means for coping with the memory wall problem in multicore processors, and are available in many platforms and languages, e.g., the Cell Broadband Engine, CUDA and OpenCL. Reasoning about the correct usage of such operations involves complex analysis of memory accesses to check for races. We present a method and tool for proving memory-safety and race-freedom of multicore programs that use asynchronous memory operations. Our approach uses separation logic with permissions, and our tool automates this method, targeting a C-like core language. We describe our solutions to several challenges that arose in the course of this research. These include: syntactic reasoning about permissions and arrays, integration of numerical abstract domains, and utilization of an SMT solver. We demonstrate the feasibility of our approach experimentally by checking absence of DMA races on a set of programs drawn from the IBM Cell SDK.
Matko Botincan, Mike Dodds, Alastair F. Donaldson, Matthew J. Parkinson
ASE1
2011 Automatic safety proofs for asynchronous memory operations
abstract
We present a work-in-progress proof system and tool, based on separation logic, for analysing memory safety of multicore programs that use asynchronous memory operations. Categories and Subject Descriptors F.3.1 [Logics and Meanings
Matko Botincan, Mike Dodds, Alastair F. Donaldson, Matthew J. Parkinson
PPoPP1
2011 jStar-eclipse: an IDE for automated verification of Java programs
abstract
jStar is a tool for automatically verifying Java programs. It uses separation logic to support abstract reasoning about object specifications. jStar can verify a number of challenging design patterns, including Subject/Observer, Visitor, Factory and Pooling. However, to use jStar one has to deal with a family of command-line tools that expect specifications in separate files and diagnose the errors by inspecting the text output from these tools.
Daiva Naudziuniene, Matko Botincan, Dino Distefano, Mike Dodds, Radu Grigore, Matthew J. Parkinson
SIGSOFT FSE2