Philippe Suter

dblp:21/7729 · DBLP profile ↗
← Back
17ranked-venue papers
3as 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 · 16 · 3 first-authorDatabases, data management, data science and information retrieval · 2Theory of computation · 2Artificial intelligence and machine learning · 1

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 synthesis and code generation · 34% Program analysis · 25% Programming languages and type systems · 22%
Theoretical computer science
3 papers
Automated reasoning and model checking · 74% Logic in computer science · 26%

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

TopicWeightPapersLastEvidence papers
Program synthesis and code generation › formal synthesis
functional synthesis
0.222010
Complete functional synthesis · PLDI 2010
Comfusy: A Tool for Complete Functional Synthesis · CAV 2010
Program synthesis and code generation › inductive program synthesis
recursive program synthesis
0.212013
Synthesis modulo recursive functions · OOPSLA 2013
Programming languages and type systems › programming paradigms
constraint programming
0.112012
Constraints as control · POPL 2012
Programming languages and type systems
language design
0.112012
Constraints as control · POPL 2012
Program verification
decision procedure
0.112010
Decision procedures for algebraic data types with abstractions · POPL 2010
Program analysis
static analysis
0.112010
Phantm: PHP analyzer for type mismatch · SIGSOFT FSE 2010
Program analysis
type analysis
0.112010
Phantm: PHP analyzer for type mismatch · SIGSOFT FSE 2010
Program analysis › type analysis
type error detection
0.112010
Phantm: PHP analyzer for type mismatch · SIGSOFT FSE 2010
Automated reasoning and model checking
decision procedures
0.112010
Decision procedures for algebraic data types with abstractions · POPL 2010
Logic in computer science › type theory
algebraic data types
0.012013
Synthesis modulo recursive functions · OOPSLA 2013
Program analysis › data flow analysis
flow-sensitive analysis
0.012010
Phantm: PHP analyzer for type mismatch · SIGSOFT FSE 2010
Programming languages and type systems › language design
language extension
0.012010
Complete functional synthesis · PLDI 2010
Automated reasoning and model checking
satisfiability
0.012010
Comfusy: A Tool for Complete Functional Synthesis · CAV 2010

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

satisfiability modulo theories · 0.3counterexample-guided synthesis · 0.3term algebra · 0.2catamorphisms · 0.2SMT · 0.2symbolic reasoning · 0.1monadic for construct · 0.1procedure summarization · 0.1flow-sensitive analysis · 0.1decision procedures · 0.1
YearPublicationVenuePosition
2017 Who you gonna call?: analyzing web requests in Android applications
abstract
Relying on ubiquitous Internet connectivity, applications on mobile devices frequently perform web requests during their execution. They fetch data for users to interact with, invoke remote functionalities, or send user-generated content or meta-data. These requests collectively reveal common practices of mobile application development, like what external services are used and how, and they point to possible negative effects like security and privacy violations, or impacts on battery life. In this paper, we assess different ways to analyze what web requests Android applications make. We start by presenting dynamic data collected from running 20 randomly selected Android applications and observing their network activity. Next, we present a static analysis tool, Stringoid, that analyzes string concatenations in Android applications to estimate constructed URL strings. Using Stringoid, we extract URLs from 30, 000 Android applications, and compare the performance with a simpler constant extraction analysis. Finally, we present a discussion of the advantages and limitations of dynamic and static analyses when extracting URLs, as we compare the data extracted by Stringoid from the same 20 applications with the dynamically collected data.
Marianna Rapoport, Philippe Suter, Erik Wittern, Ondrej Lhoták, Julian Dolby
MSR2
2016 A look at the dynamics of the JavaScript package ecosystem
abstract
The node package manager (npm) serves as the frontend to a large repository of JavaScript-based software packages, which foster the development of currently huge amounts of server-side Node. js and client-side JavaScript applications. In a span of 6 years since its inception, npm has grown to become one of the largest software ecosystems, hosting more than 230, 000 packages, with hundreds of millions of package installations every week. In this paper, we examine the npm ecosystem from two complementary perspectives: 1) we look at package descriptions, the dependencies among them, and download metrics, and 2) we look at the use of npm packages in publicly available applications hosted on GitHub. In both perspectives, we consider historical data, providing us with a unique view on the evolution of the ecosystem. We present analyses that provide insights into the ecosystem's growth and activity, into conflicting measures of package popularity, and into the adoption of package versions over time. These insights help understand the evolution of npm, design better package recommendation engines, and can help developers understand how their packages are being used.
Erik Wittern, Philippe Suter, Shriram Rajagopalan
MSR2
2014 Stream Processing with a Spreadsheet
Mandana Vaziri, Olivier Tardieu, Rodric M. Rabbah, Philippe Suter, Martin Hirzel
ECOOP4
2013 Synthesis modulo recursive functions
abstract
We describe techniques for synthesis and verification of recursive functional programs over unbounded domains. Our techniques build on top of an algorithm for satisfiability modulo recursive functions, a framework for deductive synthesis, and complete synthesis procedures for algebraic data types. We present new counterexample-guided algorithms for constructing verified programs. We have implemented these algorithms in an integrated environment for interactive verification and synthesis from relational specifications. Our system was able to synthesize a number of useful recursive functions that manipulate unbounded numbers and data structures.
Etienne Kneuss, Ivan Kuraj, Viktor Kuncak, Philippe Suter
OOPSLA4
2013 Executing Specifications Using Synthesis and Constraint Solving
Viktor Kuncak, Etienne Kneuss, Philippe Suter
RV3
2013 Reductions for Synthesis Procedures
Swen Jacobs, Viktor Kuncak, Philippe Suter
VMCAI3
2013 Functional synthesis for linear arithmetic and sets
Viktor Kuncak, Mikaël Mayer, Ruzica Piskac, Philippe Suter
Int. J. Softw. Tools Technol. Transf.4
2012 Constraints as control
abstract
We present an extension of Scala that supports constraint programming over bounded and unbounded domains. The resulting language, Kaplan, provides the benefits of constraint programming while preserving the existing features of Scala. Kaplan integrates constraint and imperative programming by using constraints as an advanced control structure; the developers use the monadic 'for' construct to iterate over the solutions of constraints or branch on the existence of a solution. The constructs we introduce have simple semantics that can be understood as explicit enumeration of values, but are implemented more efficiently using symbolic reasoning. Kaplan programs can manipulate constraints at run-time, with the combined benefits of type-safe syntax trees and first-class functions. The language of constraints is a functional subset of Scala, supporting arbitrary recursive function definitions over algebraic data types, sets, maps, and integers.
Ali Sinan Köksal, Viktor Kuncak, Philippe Suter
POPL3
2011 Scala to the Power of Z3: Integrating SMT and Programming
Ali Sinan Köksal, Viktor Kuncak, Philippe Suter
CADE3
2011 Satisfiability Modulo Recursive Programs
Philippe Suter, Ali Sinan Köksal, Viktor Kuncak
SAS1
2011 Sets with Cardinality Constraints in Satisfiability Modulo Theories
Philippe Suter, Robin Steiger, Viktor Kuncak
VMCAI1
2010 Comfusy: A Tool for Complete Functional Synthesis
Viktor Kuncak, Mikaël Mayer, Ruzica Piskac, Philippe Suter
CAV4
2010 Complete functional synthesis
abstract
Synthesis of program fragments from specifications can make programs easier to write and easier to reason about. To integrate synthesis into programming languages, synthesis algorithms should behave in a predictable way - they should succeed for a well-defined class of specifications. They should also support unbounded data types such as numbers and data structures. We propose to generalize decision procedures into predictable and complete synthesis procedures. Such procedures are guaranteed to find code that satisfies the specification if such code exists. Moreover, we identify conditions under which synthesis will statically decide whether the solution is guaranteed to exist, and whether it is unique. We demonstrate our approach by starting from decision procedures for linear arithmetic and data structures and transforming them into synthesis procedures. We establish results on the size and the efficiency of the synthesized code. We show that such procedures are useful as a language extension with implicit value definitions, and we show how to extend a compiler to support such definitions. Our constructs provide the benefits of synthesis to programmers, without requiring them to learn new concepts or give up a deterministic execution model.
Viktor Kuncak, Mikaël Mayer, Ruzica Piskac, Philippe Suter
PLDI4
2010 Decision procedures for algebraic data types with abstractions
abstract
We describe a family of decision procedures that extend the decision procedure for quantifier-free constraints on recursive algebraic data types (term algebras) to support recursive abstraction functions. Our abstraction functions are catamorphisms (term algebra homomorphisms) mapping algebraic data type values into values in other decidable theories (e.g. sets, multisets, lists, integers, booleans). Each instance of our decision procedure family is sound; we identify a widely applicable many-to-one condition on abstraction functions that implies the completeness. Complete instances of our decision procedure include the following correctness statements: 1) a functional data structure implementation satisfies a recursively specified invariant, 2) such data structure conforms to a contract given in terms of sets, multisets, lists, sizes, or heights, 3) a transformation of a formula (or lambda term) abstract syntax tree changes the set of free variables in the specified way.
Philippe Suter, Mirco Dotta, Viktor Kuncak
POPL1
2010 Runtime Instrumentation for Precise Flow-Sensitive Type Analysis
Etienne Kneuss, Philippe Suter, Viktor Kuncak
RV2
2010 Phantm: PHP analyzer for type mismatch
abstract
We present Phantm, a static analyzer that uses a flow-sensitive analysis to detect type errors in PHP applications. Phantm can infer types for nested arrays, and can leverage runtime information and procedure summaries for more precise results. Phantm found over 200 true problems when applied to three applications with over 50'000 lines of code, including the popular DokuWiki code base.
Etienne Kneuss, Philippe Suter, Viktor Kuncak
SIGSOFT FSE2
2010 Building a Calculus of Data Structures
Viktor Kuncak, Ruzica Piskac, Philippe Suter, Thomas Wies
VMCAI3