Norman Danner
Professor of Computer Science

Research

Programming languages and privacy

I have recently become interested in understanding what contributions PL can make to questions of privacy. Of course, there is lots of work on this such as differential privacy and information flow for security. But right now I’m interested in questions of web browsing privacy. For example, can static analysis techniques be used effectively to detect whether a JavaScript script is fingerprinting the web browser? I have just started playing around in this space, so have no papers to note, but I have been keeping a research log.

Related repositories:

Static cost analysis

My work on this area focuses on the extraction of cost recurrences from programs, most recently focusing on functional languages with support for a wide variety of inductive datatypes with user-defined notions of size. The goal is not to “build a better mousetrap”—i.e., develop recurrence extraction techniques that apply to programs that cannot be analyzed by other means. Rather, the point is to use denotational semantics to justify the “everyday reasoning” we typically teach and use to analyze algorithms

Related papers:

Implicit computational complexity (ICC)

ICC is the study of language-based techniques for restricting the resource use of programs, often through type-theoretic means. On the one hand, I am interested in the development of “usable” programming languages with guaranteed resource usage based on the theoretical results from ICC. On the other hand, I am also interested in extending the techniques of ramification of safe/normal distinctions to higher-order languages, data with sharing, and coinductively-defined data.

Related papers: