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

Nevin Heintze

dblp:h/NevinHeintze · DBLP profile ↗
← Back
21ranked-venue papers
17as first author
0since 2021 · last 2004
—ORCID · none

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

Software engineering, systems software and programming languages · 13 · 11 first-authorTheory of computation · 6 · 5 first-authorSystems, architecture and hardware · 2Artificial intelligence and machine learning · 1 · 1 first-authorSecurity and privacy · 1 · 1 first-authorApplied, interdisciplinary, general and emerging 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
11 papers
Program analysis · 48% Programming languages and type systems · 38% Program verification · 12%
Network and information security
4 papers
Cryptographic protocols and secure computation · 41% Systems and software security · 40% Network security · 20%
Theoretical computer science
4 papers
Logic in computer science · 50% Computational complexity · 39% Automated reasoning and model checking · 11%

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

TopicWeightPapersLastEvidence papers
Program analysis › static analysis
pointer analysis
0.122001
Ultra-fast Aliasing Analysis using CLA: A Million Lines of C Code in a Second · PLDI 2001
Demand-Driven Pointer Analysis · PLDI 2001
Program analysis › static analysis › pointer analysis
aliasing analysis
0.012001
Ultra-fast Aliasing Analysis using CLA: A Million Lines of C Code in a Second · PLDI 2001
Programming languages and type systems › lambda calculus
typed lambda calculus
0.021999
Region Analysis and the Polymorphic Lambda Calculus · LICS 1999
The SLam Calculus: Programming with Secrecy and Integrity · POPL 1998
Program analysis
static analysis
0.022000
A Framework for Combining Analysis and Verification · POPL 2000
A Finite Presentation Theorem for Approximating Logic Programs · POPL 1990
Systems and software security
information flow control
0.021999
The SLam Calculus: Programming with Secrecy and Integrity · POPL 1998
A Core Calculus of Dependency · POPL 1999
Cryptographic protocols and secure computation
protocol composition
0.021996
A Model for Secure Protocols and Their Compositions · IEEE Trans. Software Eng. 1996
A model for secure protocols and their compositions · S&P 1994
Program verification › refinement
assertion refinement
0.012000
A Framework for Combining Analysis and Verification · POPL 2000
Program verification › model checking
software model checking
0.012000
A Framework for Combining Analysis and Verification · POPL 2000
Programming languages and type systems › language semantics › formal semantics
denotational semantics
0.011999
Region Analysis and the Polymorphic Lambda Calculus · LICS 1999
Programming languages and type systems › lambda calculus
polymorphic lambda calculus
0.011999
Region Analysis and the Polymorphic Lambda Calculus · LICS 1999
Programming languages and type systems › type systems
region calculus
0.011999
Region Analysis and the Polymorphic Lambda Calculus · LICS 1999
Programming languages and type systems › type systems
security type systems
0.011998
The SLam Calculus: Programming with Secrecy and Integrity · POPL 1998
Programming languages and type systems
type systems
0.011998
The SLam Calculus: Programming with Secrecy and Integrity · POPL 1998
Program analysis
control flow analysis
0.011997
Linear-time Subtransitive Control Flow Analysis · PLDI 1997
Program analysis
effect analysis
0.011997
Linear-time Subtransitive Control Flow Analysis · PLDI 1997
Program analysis
flow analysis
0.011997
On the Cubic Bottleneck in Subtyping and Flow Analysis · LICS 1997
Network security
protocol security
0.011996
A Model for Secure Protocols and Their Compositions · IEEE Trans. Software Eng. 1996
Program analysis › static analysis
abstract interpretation
0.021992
An Engine for Logic Program Analysis · LICS 1992
A Decision Procedure for a Class of Set Constraints (Extended Abstract) · LICS 1990
Program analysis › static analysis
call graph construction
0.012001
Demand-Driven Pointer Analysis · PLDI 2001
Program analysis
data dependence analysis
0.012001
Ultra-fast Aliasing Analysis using CLA: A Million Lines of C Code in a Second · PLDI 2001
Logic in computer science
logic programming
0.011992
An Engine for Logic Program Analysis · LICS 1992
Logic in computer science › concurrency theory
unfolding
0.011992
An Engine for Logic Program Analysis · LICS 1992
Compilers and program optimization › partial evaluation
binding-time analysis
0.011999
A Core Calculus of Dependency · POPL 1999
Program analysis › static analysis
program slicing
0.011999
A Core Calculus of Dependency · POPL 1999
Program analysis › constraint solving
set constraints
0.011990
A Decision Procedure for a Class of Set Constraints (Extended Abstract) · LICS 1990
Logic in computer science › categorical semantics
cartesian closed categories
0.011990
A Finite Presentation Theorem for Approximating Logic Programs · POPL 1990
Computational complexity
constraint satisfaction
0.011990
A Decision Procedure for a Class of Set Constraints (Extended Abstract) · LICS 1990
Automated reasoning and model checking
decision procedures
0.011990
A Decision Procedure for a Class of Set Constraints (Extended Abstract) · LICS 1990
Logic in computer science
semantics
0.011990
A Finite Presentation Theorem for Approximating Logic Programs · POPL 1990
Programming languages and type systems
language semantics
0.011998
The SLam Calculus: Programming with Secrecy and Integrity · POPL 1998

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

noninterference · 0.0computational lambda calculus · 0.0subset-based analysis · 0.0dynamic transitive closure · 0.0deductive reachability · 0.0compile-link-analyze architecture · 0.0formal model · 0.0composition theorem · 0.0region analysis · 0.0denotational semantics · 0.0transitive closure · 0.0graph algorithms · 0.0cyclic term graph representation · 0.0
YearPublicationVenuePosition
2004 Network processors: a progress report
abstract
Network processors generated huge excitement, interest and investment in the late 90's and into 2000, promising to replace fixed-function ASIC chips in networking equipment by high-performance programmable devices. The sheer performance requirements of these devices led to a flurry of activity in both processor architecture, software and especially the interaction between architecture and software, with many diverse approaches competing for survival. The subsequent collapse of the market for communications equipment hit network processors hard.This talk will give a progress report on network processors and embedded network processing elements. We begin by describing the application requirements for these computing devices and outline some of the processing tasks required - packet reassembly, classification, policing, statistics, state management, packet modification, queuing, scheduling and traffic shaping, buffer management, and packet segmentation - and their memory and I/O needs. We will then discuss how these requirements impact processor architecture, programming models and languages, and partitioning between software and hardware functionality, drawing examples from several of the network processor survivors. We will conclude with a market outlook for network processors, the impact that will likely have on future developments, and open research problems.
Nevin Heintze
EMSOFT1
2003 AES and the cryptonite crypto processor
abstract
CRYPTONITE is a programmable processor tailored to the needs of crypto algorithms. The design of CRYPTONITE was based on an in-depth application analysis in which standard crypto algorithms (AES, DES, MD5, SHA-1, etc) were distilled down to their core functionality. We describe this methodology and use AES as a central example. Starting with a functional description of AES, we give a high level account of how to implement AES efficiently in hardware, and present several novel optimizations (which are independent of CRYPTONITE).We then describe the CRYPTONITE architecture, highlighting how AES implementation issues influenced the design of the processor and its instruction set. CRYPTONITE is designed to run at high clock rates and be easy to implement in silicon while providing a significantly better performance/area/power tradeoff than general purpose processors.
Dino Oliva, Rainer Buchty, Nevin Heintze
CASES3
2002 Communication Mechanisms for Parallel DSP Systems on a Chip
abstract
We consider the implication of deep sub-micron VLSI technology on the design of communication frameworks for parallel DSP systems-on-chip. We assert that distributed data transfer and control mechanisms are necessary to manage many independent processing subsystems and software tasks. An example of a parallel DSP architecture is given and used to demonstrate these mechanisms at work. We show the similarity of these mechanism and those used in large scale computing networks.
Nevin Heintze, Bryan D. Ackland
DATE2
2001 Demand-Driven Pointer Analysis
abstract
Known algorithms for pointer analysis are “global” in the sense that they perform an exhaustive analysis of a program or program component. In this paper we introduce a demand-driven approach for pointer analysis. Specifically, we describe a demand-driven flow-insensitive, subset-based, con text-insensitive points-to analysis. Given a list of pointer variables (a query), our analysis performs just enough computation to determine the points-to sets for these query variables. Using deductive reachability formulations of both the exhaustive and the demand-driven analyses, we prove that our algorithm is correct. We also show that our analysis is optimal in the sense that it does not do more work than necessary. We illustrate the feasibility and efficiency of our analysis with an implementation of demand-driven points-to analysis for computing the call-graphs of C programs with function pointers. The performance of our system varies substantially across benchmarks - the main factor is how much of the points-to graph must be computed to determine the call-graph. For some benchmarks, only a small part of the points-to graph is needed (e.g pouray emacs and gcc), and here we see more than a 10x speedup. For other benchmarks (e.g. burlap and gimp), we need to compute most (> 95%) of the points-to graph, and here the demand-driven algorithm is considerably slower, because using the demand-driven algorithm is a slow method of computing the full points-to graph.
Nevin Heintze, Olivier Tardieu
PLDI1
2001 Ultra-fast Aliasing Analysis using CLA: A Million Lines of C Code in a Second
abstract
We describe the design and implementation of a system for very fast points-to analysis. On code bases of about million lines of unpreprocessed C code, our system performs field-based Andersen-style points-to analysis in less than a second and uses less than 10MB of memory. Our two main contributions are a database-centric analysis architecture called compile-link-analyze (CLA), and a new algorithm for implementing dynamic transitive closure. Our points-to analysis system is built into a forward data-dependence analysis tool that is deployed within Lucent to help with consistent type modifications to large legacy C code bases.
Nevin Heintze, Olivier Tardieu
PLDI1
2000 A Framework for Combining Analysis and Verification
abstract
We present a general framework for combining program verification and program analysis. This framework enhances program analysis because it takes advantage of user assertions, and it enhances program verification because assertions can be refined using automatic program analysis. Both enhancements in general produce a better way of reasoning about programs than using verification techniques alone or analysis techniques alone. More importantly, the combination is better than simply running the verification and analysis in isolation and then combining the results at the last step. In other words, our framework explores synergistic interaction between verification and analysis.
Nevin Heintze, Joxan Jaffar, Razvan Voicu
POPL1
1999 Region Analysis and the Polymorphic Lambda Calculus
abstract
We show how to translate the region calculus of M. Tofte and J.P. Talpin (1997), a typed lambda calculus that can statically delimit the lifetimes of objects, into an extension of the polymorphic lambda calculus called F/sub #/. We give a denotational semantics of F/sub #/, and use it to give a simple and abstract proof of the correctness of memory deallocation.
Anindya Banerjee 0001, Nevin Heintze, Jon G. Riecke
LICS2
1999 A Core Calculus of Dependency
abstract
Notions of program dependency arise in many settings: security, partial evaluation, program slicing, and call-tracking. We argue that there is a central notion of dependency common to these settings that can be captured within a single calculus, the Dependency Core Calculus (DCC), a small extension of Moggi's computational lambda calculus. To establish this thesis, we translate typed calculi for secure information flow, binding-time analysis, slicing, and call-tracking into DCC. The translations help clarify aspects of the source calculi. We also define a semantic model for DCC and use it to give simple proofs of noninterference results for each case.
Martín Abadi, Anindya Banerjee 0001, Nevin Heintze, Jon G. Riecke
POPL3
1998 The SLam Calculus: Programming with Secrecy and Integrity
abstract
The SLam calculus is a typed λ-calculus that maintains security information as well as type information. The type system propagates security information for each object in four forms: the object's creators and readers, and the object's indirect creators and readers (i.e., those agents who, through flow-of-control or the actions of other agents, can influence or be influenced by the content of the object). We prove that the type system prevents security violations and give some examples of its power.
Nevin Heintze, Jon G. Riecke
POPL1
1997 On the Complexity of Set-Based Analysis
abstract
We define a general notion of set-based analysis --- any language whose operational semantics is defined by environment evaluation has a well defined set-based abstraction. This general definition covers both Aiken and Wimmers' type system and Heintze' set-based analysis. Aiken and Wimmers give a nondeterministic exponential time algorithm for their analysis. Heintze gives an O(n3) procedure. We show that this discrepancy is due to the complexity of the case statements analyzed. For polymorphic programs with deep patterns in case statements (as in the Aiken-Wimmers language) we show that the problem of determining type-safety under set-based abstraction is complete for deterministic exponential time. The problem remains complete for deterministic exponential time for programs without let (monovariant programs). However, for monovariant programs in which all patterns in case statements are shallow, as in the Heintze language, type-safety under set-based abstraction is decidable in cubic time. We give five additional theorems which (nearly exhaustively) characterize the time complexity of set-based analysis as a function of the complexity of case statements.
Nevin Heintze, David A. McAllester
ICFP1
1997 On the Cubic Bottleneck in Subtyping and Flow Analysis
abstract
We prove that certain data-flow and control-flow problems are 2NPDA-complete. This means that these problems are in the class 2NPDA and that they are hard for that class. The fact that they are in 2NPDA demonstrates the richness of the class. The fact that they are hard for 2NPDA can be interpreted as evidence they can not be solved in sub-cubic time-the cubic time decision procedure for an arbitrary 2NPDA problem has not been improved since its discovery in 1968.
Nevin Heintze, David A. McAllester
LICS1
1997 Linear-time Subtransitive Control Flow Analysis
abstract
We present a linear-time algorithm for bounded-type programs that builds a directed graph whose transitive closure gives exactly the results of the standard (cubic-time) Control-Flow Analysis (CFA) algorithm. Our algorithm can be used to list all functions calls from all call sites in (optimal) quadratic time. More importantly, it can be used to give linear-time algorithms for CFA-consuming applications such as:• effects analysis: find the side-effecting expressions in a program.• k-limited CFA: for each call-site, list the functions if there are only a few of them (≤ k) and otherwise output "many".• called-once analysis: identify all functions called from only one call-site.
Nevin Heintze, David A. McAllester
PLDI1
1996 A Model for Secure Protocols and Their Compositions
abstract
The paper develops a foundation for reasoning about protocol security. We adopt a model-based approach for defining protocol security properties. This allows us to describe security properties in greater detail and precision than previous frameworks. Our model allows us to reason about the security of protocols, and considers issues of beliefs of agents, time, and secrecy. We prove a composition theorem which allows us to state sufficient conditions on two secure protocols A and B such that they may be combined to form a new secure protocol C. Moreover, we give counter-examples to show that when the conditions are not met, the protocol C may not be secure.
Nevin Heintze, J. D. Tygar
IEEE Trans. Software Eng.1
1995 A Generic Algorithm for CLP Analysis
Nevin Heintze, Joxan Jaffar
ICLP1
1995 Control-Flow Analysis and Type Systems
Nevin Heintze
SAS1
1994 A model for secure protocols and their compositions
abstract
We give a formal model of protocol security. The model allows us to reason about the security of protocol, and considers issues of beliefs of agents, time, and secrecy. We prove a composition theorem which allows us to state sufficient conditions on two secure protocols A and B such that they may be combined to form a new secure protocol C. Moreover, we give counter-examples to show that when the conditions are not met, the protocol C may not be secure.>
Nevin Heintze, J. D. Tygar
S&P1
1992 An Engine for Logic Program Analysis
abstract
An engine that is based on unfolding of semantic equations is presented. A main advantage of the unfolding engine is a uniform treatment of structural information in a program. In particular, reasoning about partially instantiated structures, an area where traditional algorithms have been weak, is greatly enhanced. It is shown that the engine is uniformly more accurate than the standard engine in the sense that, given an abstract domain, its output, for any program is more accurate than that of the standard engine.>
Nevin Heintze, Joxan Jaffar
LICS1
1992 CLP(R) and Some Electrical Engineering Problems
Nevin Heintze, Spiro Michaylov, Peter J. Stuckey
J. Autom. Reason.1
1990 A Decision Procedure for a Class of Set Constraints (Extended Abstract)
abstract
A set constraint is of the form exp/sub 1/ contains exp/sub 2/ where exp/sub 1/ and exp/sub 2/ are set expressions constructed using variables, function symbols, projection symbols, and the set union, intersection, and complement symbols. While the satisfiability problem for such constraints is open, restricted classes have been useful in program analysis. The main result is a decision procedure for definite set constraints which are of the restricted form a contains exp, where a contains only constants, variables, and function symbols, and exp is a positive set expression (that is, it does not contain the complement symbol). A conjunction of such constraints, whenever satisfiable, has a least model and the algorithm will output an explicit representation of this model. An additional feature of the algorithm is that it deals with another important class of set constraints. These are the solved form set constraints which have the form X/sub 1/=exp/sub 1/, . . ., X/sub n/=exp/sub n/, where the X/sub i/ are distinct variables and the exp/sub i/ are positive set expressions. A solved form constraint is always satisfiable and possesses a least and a greatest model. The algorithm can output explicit representations of both.>
Nevin Heintze, Joxan Jaffar
LICS1
1990 A Finite Presentation Theorem for Approximating Logic Programs
abstract
The notion of Cartesian closure on a set of unifiers has been used to define approximations of the least models of logic programs. Such approximations, often called types, are not known to be recursive. In this paper, we use Cartesian closure to define a similar, but more accurate, approximation. The main result proves that our approximation is not only recursive, but that it can be finitely represented in the form of a cyclic term graph. This explicit representation can be used as a starting point for logic program analyzers.
Nevin Heintze, Joxan Jaffar
POPL1
1987 CLP(R) and Some Electrical Engineering Problems
Nevin Heintze, Spiro Michaylov, Peter J. Stuckey
ICLP1