Nurit Dor

dblp:72/5710 · DBLP profile ↗
← Back
11ranked-venue papers
6as first author
0since 2021 · last 2019
—ORCID · none

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

Software engineering, systems software and programming languages · 11 · 6 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
7 papers
Program analysis · 84% Program synthesis and code generation · 5% Compilers and program optimization · 5%
Network and information security
2 papers
Systems and software security · 100%

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

TopicWeightPapersLastEvidence papers
Program analysis
static analysis
0.752019
From typestate verification to interpretable deep models (invited talk abstract) · ISSTA 2019
Field-sensitive program dependence analysis · SIGSOFT FSE 2010
Effective typestate verification in the presence of aliasing · ACM Trans. Softw. Eng. Methodol. 2008
Program analysis › type-based analysis
typestate analysis
0.532019
From typestate verification to interpretable deep models (invited talk abstract) · ISSTA 2019
Effective typestate verification in the presence of aliasing · ACM Trans. Softw. Eng. Methodol. 2008
Effective typestate verification in the presence of aliasing · ISSTA 2006
Program analysis › static analysis
pointer analysis
0.422019
From typestate verification to interpretable deep models (invited talk abstract) · ISSTA 2019
Effective typestate verification in the presence of aliasing · ISSTA 2006
Program synthesis and code generation
code completion
0.112019
From typestate verification to interpretable deep models (invited talk abstract) · ISSTA 2019
Compilers and program optimization
dependence analysis
0.112010
Field-sensitive program dependence analysis · SIGSOFT FSE 2010
Program analysis › static analysis
dependency analysis
0.112010
Field-sensitive program dependence analysis · SIGSOFT FSE 2010
Software maintenance and evolution
change impact analysis
0.112008
Customization change impact analysis for erp professionals via program slicing · ISSTA 2008
Program analysis › data flow analysis
context-sensitive dataflow analysis
0.112008
Effective typestate verification in the presence of aliasing · ACM Trans. Softw. Eng. Methodol. 2008
Program analysis › static analysis
program slicing
0.112008
Customization change impact analysis for erp professionals via program slicing · ISSTA 2008
Program analysis › data flow analysis
value-flow analysis
0.012004
Software validation via scalable path-sensitive value flow analysis · ISSTA 2004
Systems and software security › memory safety › memory error detection
buffer overflow detection
0.012003
CSSV: towards a realistic tool for statically detecting all buffer overflows in C · PLDI 2003
Systems and software security
memory safety
0.012003
CSSV: towards a realistic tool for statically detecting all buffer overflows in C · PLDI 2003
Software maintenance and evolution
program comprehension
0.012008
Customization change impact analysis for erp professionals via program slicing · ISSTA 2008
Programming languages and type systems › programming paradigms › imperative languages
c
0.012003
CSSV: towards a realistic tool for statically detecting all buffer overflows in C · PLDI 2003

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

aliasing information · 0.4access paths · 0.4abstract domain · 0.4static analysis · 0.2staged verification · 0.1transitive dependence analysis · 0.1alias analysis · 0.1program slicing · 0.1parametric abstract domain · 0.1abstract interpretation · 0.1bit-vectorization · 0.0
YearPublicationVenuePosition
2019 From typestate verification to interpretable deep models (invited talk abstract)
abstract
The paper ``Effective Typestate Verification in the Presence of Aliasing'' was published in the International Symposium on Software Testing and Analysis (ISSTA) 2006 Proceedings, and has now been selected to receive the ISSTA 2019 Retrospective Impact Paper Award. The paper described a scalable framework for verification of typestate properties in real-world Java programs. The paper introduced several techniques that have been used widely in the static analysis of real-world programs. Specifically, it introduced an abstract domain combining access-paths, aliasing information, and typestate that turned out to be simple, powerful, and useful. We review the original paper and show the evolution of the ideas over the years. We show how some of these ideas have evolved into work on machine learning for code completion, and discuss recent general results in machine learning for programming.
Eran Yahav, Stephen J. Fink, Nurit Dor, G. Ramalingam, Emmanuel Geay
ISSTA3
2010 Field-sensitive program dependence analysis
abstract
Statement st transitively depends on statement stseed if the execution of stseed may affect the execution of st. Computing transitive program dependences is a fundamental operation in many automatic software analysis tools. Existing tools find it challenging to compute transitive dependences for programs manipulating large aggregate structure variables, and their limitations adversely affect analysis of certain important classes of software systems, e.g., large-scale enterprise resource planning (ERP) systems.
Shay Litvak, Nurit Dor, Rastislav Bodík, Noam Rinetzky, Shmuel Sagiv
SIGSOFT FSE2
2008 Customization change impact analysis for erp professionals via program slicing
abstract
We describe a new tool that automatically identifies impact of customization changes, i.e., how changes affect software behavior. As opposed to existing static analysis tools that aim at aiding programmers or improve performance, our tool is designed for end-users without prior knowledge in programming. We utilize state-of-the-art static analysis algorithms for the programs within an Enterprise Resource Planning system (ERP). Key challenges in analyzing real world ERP programs are their significant size and the interdependency between programs. In particular, we describe and compare three customization change impact analyses for real-world programs, and a balancing algorithm built upon the three independent analyses. This paper presents PanayaImpactAnalysis (PanayaIA), a web on-demand tool, providing ERP professionals a clear view of the impact of a customization change on the system. In addition we report empirical results of PanayaIA when used by end-users on an ERP system of tens of millions LOCs.
Nurit Dor, Tal Lev-Ami, Shay Litvak, Shmuel Sagiv, Dror Weiss
ISSTA1
2008 Effective typestate verification in the presence of aliasing
abstract
This article addresses the challenge of sound typestate verification, with acceptable precision, for real-world Java programs. We present a novel framework for verification of typestate properties, including several new techniques to precisely treat aliases without undue performance costs. In particular, we present a flow-sensitive, context-sensitive, integrated verifier that utilizes a parametric abstract domain combining typestate and aliasing information. To scale to real programs without compromising precision, we present a staged verification system in which faster verifiers run as early stages which reduce the workload for later, more precise, stages. We have evaluated our framework on a number of real Java programs, checking correct API usage for various Java standard libraries. The results show that our approach scales to hundreds of thousands of lines of code, and verifies correctness for 93% of the potential points of failure.
Stephen J. Fink, Eran Yahav, Nurit Dor, G. Ramalingam, Emmanuel Geay
ACM Trans. Softw. Eng. Methodol.3
2006 Effective typestate verification in the presence of aliasing
abstract
This paper addresses the challenge of sound typestate verification, with acceptable precision, for real-world Java programs. We present a novel framework for verification of typestate properties, including several new techniques to precisely treat aliases without undue performance costs. In particular, we present a flowsensitive, context-sensitive, integrated verifier that utilizes a parametric abstract domain combining typestate and aliasing information.To scale to real programs without compromising precision, we present a staged verification system in which faster verifiers run as early stages which reduce the workload for later, more precise, stages.We have evaluated our framework on a number of real Java programs, checking correct API usage for various Java standard libraries. The results show that our approach scales to hundreds of thousands of lines of code, and verifies correctness for 93% of the potential points of failure.
Stephen J. Fink, Eran Yahav, Nurit Dor, G. Ramalingam, Emmanuel Geay
ISSTA3
2004 Software validation via scalable path-sensitive value flow analysis
abstract
In this paper, we present a new algorithm for tracking the flow of values through a program. Our algorithm represents a substantial improvement over the state of the art. Previously described value flow analyses that are control-flow sensitive do not scale well, nor do they eliminate value flow information from infeasible execution paths (i.e., they are path-insensitive). Our algorithm scales to large programs, and it is path-sensitive.The efficiency of our algorithm arises from three insights: The value flow problem can be "bit-vectorized" by tracking the flow of one value at a time; dataflow facts from different execution paths with the same value flow information can be merged; and information about complex aliasing that affects value flow can be plugged in from a different analysis.We have incorporated our analysis in ESP, a software validation tool. We have used ESP to validate the Windows operating system kernel (a million lines of code) against an important security property. This experience suggests that our algorithm scales to large programs, and is accurate enough to trace the flow of values in real code.
Nurit Dor, Stephen Adams 0001, Manuvir Das, Zhe Yang 0001
ISSTA1
2004 Numeric Domains with Summarized Dimensions
Denis Gopan, Frank DiMaio, Nurit Dor, Thomas W. Reps, Shmuel Sagiv
TACAS3
2003 CSSV: towards a realistic tool for statically detecting all buffer overflows in C
Nurit Dor, Michael Rodeh, Shmuel Sagiv
PLDI1
2001 Cleanness Checking of String Manipulations in C Programs via Integer Analysis
Nurit Dor, Michael Rodeh, Shmuel Sagiv
SAS1
2000 Checking Cleanness in Linked Lists
Nurit Dor, Michael Rodeh, Shmuel Sagiv
SAS1
1998 Detecting Memory Errors via Static Pointer Analysis (Preliminary Experience)
abstract
Programs which manipulate pointers are hard to debug. Pointer analysis algorithms (originally aimed at optimizing compilers) may provide some remedy by identifying potential errors such as dereferencing NULL pointers by statically analyzing the behavior of programs on all their input data. Our goal is to identify the "core program analysis techniques" that can be used when developing realistic tools which detect memory errors at compile time without generating too many false alarms. Our preliminary experience indicates that the following techniques are necessary: (i) finding aliases between pointers, (ii) flow sensitive techniques that account for the program control flow constructs, (iii) partial interpretation of conditional statements, (iv) analysis of the relationships between pointers, and sometimes (v) analysis of the underlying data structures manipulated by the C program. We show that a combination of these techniques can yield better results than those achieved by state of the...
Nurit Dor, Michael Rodeh, Shmuel Sagiv
PASTE1