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.

Norman Danner

dblp:05/3712 · DBLP profile ↗
← Back
13ranked-venue papers
10as first author
1since 2021 · last 2022
0000-0003-1119-4982ORCID · corroborated

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

Theory of computation · 7 · 6 first-authorSoftware engineering, systems software and programming languages · 5 · 3 first-author · 1 since 2021Security and privacy · 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
2 papers
Programming languages and type systems · 100%
Theoretical computer science
1 paper
Computational complexity · 100%

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

TopicWeightPapersLastEvidence papers
Programming languages and type systems › lambda calculus
call-by-push-value
0.412020
Recurrence extraction for functional programs through call-by-push-value · Proc. ACM Program. Lang. 2020
Programming languages and type systems › language semantics › dynamic semantics
cost semantics
0.412020
Recurrence extraction for functional programs through call-by-push-value · Proc. ACM Program. Lang. 2020
Programming languages and type systems
functional programming
0.412020
Recurrence extraction for functional programs through call-by-push-value · Proc. ACM Program. Lang. 2020
Programming languages and type systems › language semantics › formal semantics
denotational semantics
0.222020
Recurrence extraction for functional programs through call-by-push-value · Proc. ACM Program. Lang. 2020
Adventures in time and space · POPL 2006
Programming languages and type systems › language semantics › formal semantics › denotational semantics
domain theory
0.112020
Recurrence extraction for functional programs through call-by-push-value · Proc. ACM Program. Lang. 2020
Programming languages and type systems
language semantics
0.112006
Adventures in time and space · POPL 2006
Programming languages and type systems › type systems › substructural type systems
linear types
0.112006
Adventures in time and space · POPL 2006
Programming languages and type systems
type systems
0.112006
Adventures in time and space · POPL 2006
Computational complexity
implicit computational complexity
0.112006
Adventures in time and space · POPL 2006
Computational complexity › implicit computational complexity
polynomial time characterization
0.112006
Adventures in time and space · POPL 2006

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

recurrence extraction · 0.4domain theory · 0.4call-by-push-value · 0.4complexity recurrences · 0.1affine logic · 0.1abstract machine model · 0.1
YearPublicationVenuePosition
2022 Denotational semantics as a foundation for cost recurrence extraction for functional languages
abstract
Abstract A standard informal method for analyzing the asymptotic complexity of a program is to extract a recurrence that describes its cost in terms of the size of its input and then to compute a closed-form upper bound on that recurrence. We give a formal account of that method for functional programs in a higher order language with $\mathtt{let}$ -polymorphism. The method consists of two phases. In the first phase, a monadic translation is performed to extract a cost-annotated version of the original program. In the second phase, the extracted program is interpreted in a model. The key feature of this second phase is that different models describe different notions of size. This plays out in several ways. For example, when analyzing functions that take arguments of inductive types, different notions of size may be appropriate depending on the analysis. When analyzing polymorphic functions, our approach shows that one can formally describe the notion of size of an argument in terms of the data that is common to the notions of size for each type instance of the domain type. We give several examples of different models that formally justify various informal cost analyses to show the applicability of our approach.
Norman Danner, Daniel R. Licata
J. Funct. Program.1
2020 Denotational recurrence extraction for amortized analysis
abstract
A typical way of analyzing the time complexity of functional programs is to extract a recurrence expressing the running time of the program in terms of the size of its input, and then to solve the recurrence to obtain a big-O bound. For recurrence extraction to be compositional, it is also necessary to extract recurrences for the size of outputs of helper functions. Previous work has developed techniques for using logical relations to state a formal correctness theorem for a general recurrence extraction translation: a program is bounded by a recurrence when the operational cost is bounded by the extracted cost, and the output value is bounded, according to a value bounding relation defined by induction on types, by the extracted size. This previous work supports higher-order functions by viewing recurrences as programs in a lambda-calculus, or as mathematical entities in a denotational semantics thereof. In this paper, we extend these techniques to support amortized analysis, where costs are rearranged from one portion of a program to another to achieve more precise bounds. We give an intermediate language in which programs can be annotated according to the banker's method of amortized analysis; this language has an affine type system to ensure credits are not spent more than once. We give a recurrence extraction translation of this language into a recurrence language, a simply-typed lambda-calculus with a cost type, and state and prove a bounding logical relation expressing the correctness of this translation. The recurrence language has a denotational semantics in preorders, and we use this semantics to solve recurrences, e.g analyzing binary counters and splay trees.
Joseph W. Cutler, Daniel R. Licata, Norman Danner
Proc. ACM Program. Lang.3
2020 Recurrence extraction for functional programs through call-by-push-value
abstract
The main way of analysing the complexity of a program is that of extracting and solving a recurrence that expresses its running time in terms of the size of its input. We develop a method that automatically extracts such recurrences from the syntax of higher-order recursive functional programs. The resulting recurrences, which are programs in a call-by-name language with recursion, explicitly compute the running time in terms of the size of the input. In order to achieve this in a uniform way that covers both call-by-name and call-by-value evaluation strategies, we use Call-by-Push-Value (CBPV) as an intermediate language. Finally, we use domain theory to develop a denotational cost semantics for the resulting recurrences.
G. A. Kavvos, Edward Morehouse, Daniel R. Licata, Norman Danner
Proc. ACM Program. Lang.4
2015 Denotational cost semantics for functional languages with inductive types
abstract
A central method for analyzing the asymptotic complexity of a functional program is to extract and then solve a recurrence that expresses evaluation cost in terms of input size. The relevant notion of input size is often specific to a datatype, with measures including the length of a list, the maximum element in a list, and the height of a tree. In this work, we give a formal account of the extraction of cost and size recurrences from higher-order functional programs over inductive datatypes. Our approach allows a wide range of programmer-specified notions of size, and ensures that the extracted recurrences correctly predict evaluation cost. To extract a recurrence from a program, we first make costs explicit by applying a monadic translation from the source language to a complexity language, and then abstract datatype values as sizes. Size abstraction can be done semantically, working in models of the complexity language, or syntactically, by adding rules to a preorder judgement. We give several different models of the complexity language, which support different notions of size. Additionally, we prove by a logical relations argument that recurrences extracted by this process are upper bounds for evaluation cost; the proof is entirely syntactic and therefore applies to all of the models we consider.
Norman Danner, Daniel R. Licata, Ramyaa
ICFP1
2012 Effectiveness and detection of denial-of-service attacks in tor
abstract
Tor is one of the more popular systems for anonymizing near-real-time communications on the Internet. Borisov et al. [2007] proposed a denial-of-service-based attack on Tor (and related systems) that significantly increases the probability of compromising the anonymity provided. In this article, we analyze the effectiveness of the attack using both an analytic model and simulation. We also describe two algorithms for detecting such attacks, one deterministic and proved correct, the other probabilistic and verified in simulation.
Norman Danner, Sam DeFabbia-Kane, Danny Krizanc, Marc Liberatore
ACM Trans. Inf. Syst. Secur.1
2009 Two Algorithms in Search of a Type-System
Norman Danner, James S. Royer
Theory Comput. Syst.1
2007 Time-Complexity Semantics for Feasible Affine Recursions
Norman Danner, James S. Royer
CiE1
2007 Adventures in time and space
abstract
This paper investigates what is essentially a call-by-value version of PCF under a complexity-theoretically motivated type system. The programming formalism, ATR, has its first-order programs characterize the polynomial-time computable functions, and its second-order programs characterize the type-2 basic feasible functionals of Mehlhorn and of Cook and Urquhart. (The ATR-types are confined to levels 0, 1, and 2.) The type system comes in two parts, one that primarily restricts the sizes of values of expressions and a second that primarily restricts the time required to evaluate expressions. The size-restricted part is motivated by Bellantoni and Cook's and Leivant's implicit characterizations of polynomial-time. The time-restricting part is an affine version of Barber and Plotkin's DILL. Two semantics are constructed for ATR. The first is a pruning of the naive denotational semantics for ATR. This pruning removes certain functions that cause otherwise feasible forms of recursion to go wrong. The second semantics is a model for ATR's time complexity relative to a certain abstract machine. This model provides a setting for complexity recurrences arising from ATR recursions, the solutions of which yield second-order polynomial time bounds. The time-complexity semantics is also shown to be sound relative to the costs of interpretation on the abstract machine.
Norman Danner, James S. Royer
Log. Methods Comput. Sci.1
2007 Circuit principles and weak pigeonhole variants
Chris Pollett, Norman Danner
Theor. Comput. Sci.2
2006 Adventures in time and space
abstract
Abstract. This paper investigates what is essentially a call-by-value version of PCF under a complexity-theoretically motivated type system. The programming formalism, ATR, has its first-order programs characterize the polynomial-time computable functions, and its second-order programs characterize the type-2 basic feasible functionals of Mehlhorn and of Cook and Urquhart. (The ATR-types are confined to levels 0, 1, and 2.) The type system comes in two parts, one that primarily restricts the sizes of values of expressions and a second that primarily restricts the time required to evaluate expressions. The size-restricted part is motivated by Bellantoni and Cook’s and Leivant’s implicit characterizations of polynomial-time. The time-restricting part is an affine version of Barber and Plotkin’s DILL. Two semantics are constructed for ATR. The first is a pruning of the naïve denotational semantics for ATR. This pruning removes certain functions that cause otherwise feasible forms of recursion to go wrong. The second semantics is a model for ATR’s time complexity relative to a certain abstract machine. This model provides a setting for complexity recurrences arising from ATR recursions, the solutions of which yield second-order polynomial time bounds. The time-complexity semantics is also shown to be sound relative to the costs of interpretation on the abstract machine. 1.
Norman Danner, James S. Royer
POPL1
2004 Minimization and NP multifunctions
Norman Danner, Chris Pollett
Theor. Comput. Sci.1
1999 Ordinals and Ordinal Functions Representable in the Simply Typed lambda Calculus
Norman Danner
Ann. Pure Appl. Log.1
1999 Stratified polymorphism and primitive recursion
Norman Danner, Daniel Leivant
Math. Struct. Comput. Sci.1