Denis Dancanet's Research
Denis Dancanet's Research
My research has been in the theory of programming languages. In particular,
I am interested in designing new semantics for parallel languages, semantics
which take into account the resources used during computation
(intensional semantics). These semantics can be used
for both theoretical and practical applications. On the theoretical side,
one can perform relative intensional expressiveness comparisons
between various languages, i.e., prove that a programming language
can express better (faster, less work, etc.) programs than another
language. On the practical side, the intensional information that the
semantics gives us about a program can be used to perform various kinds of
program analysis. For instance, one can develop a type inference system
with more refined types, which express how the program computes its
result. As an example, the refined types could be used to distinguish
between empty lists,
lists with one element, and lists with more than one element.
Or, in the case of a message-passing parallel language, one can distinguish
between a channel that is not used at all, and one that is used at least once.
In fact, the whole intensional semantics itself can be
implemented as a programming language. This programming language has
some interesting features, one of which is the ability to express
programs that manipulate the semantics of other programs!
Aside from topics related to programming languages, such as implementation,
compilers, program analysis, type theory, I am also interested in
parallel algorithms, concurrent and distributed computing, cryptography,
and foundations of mathematics. My deep, long-term, blue-sky
research goal is to get a better
understanding of the interaction between computer science, mathematics, and
philosophy.
Papers:
- Intensional Investigations, Denis Dancanet. This is my
thesis.
-
Circuit Semantics and Intensional Expressivity,
Stephen Brookes and Denis Dancanet, Theoretical Computer Science,
submitted.
-
Programming Language Expressiveness and Circuit Complexity
, Denis Dancanet and Stephen Brookes, Conference on
the Mathematical Foundations of Programming Semantics, June 1996.
-
Sequential algorithms, deterministic parallelism, and intensional
expressiveness,
Stephen Brookes and Denis Dancanet, ACM Symposium on the
Principles of Programming Languages, January 1995.
-
An intensional investigation of parallelism,
Denis Dancanet, September 1994. This is my thesis proposal.
- PIPPIN program performance, David R. Cok,
Ronald S. Cok, and Denis Dancanet. Kodak Research Labs
Technical Report, September 1991. Pippin is an image-processing
language designed for writing parallel programs for transputers.
- A Linda-C implementation of the Rochester
Connectionist Simulator, Denis Dancanet,
Supercomputing World Conference, October 1989.
Talks:
-
Refinement type inference with sequential algorithms,
talk at the Dagstuhl Seminar on Programs: Improvements, Complexity,
and Meanings, June 1998.
-
Berry and Curien's Intensional Legacy,
invited talk at the DIMACS Workshop on Computational Complexity and
Programming Languages, July 1996.
-
Programming Language Expressiveness and Circuit Complexity
, Conference on
the Mathematical Foundations of Programming Semantics, June 1996.
-
Sequential algorithms, deterministic parallelism, and intensional
expressiveness, ACM Symposium on the
Principles of Programming Languages, January 1995.
Software:
- An implementation of CDS0, an
intensional programming language originally designed by Berry and
Curien. It allows one to write programs
that manipulate the semantics of other programs, and can be used
as an intensional semantics for a sequential programming language.
The current version is 1.1 and it includes type and refinement
type inference.
The implementation is in Standard ML of New Jersey, version 0.93.
Denis.Dancanet@cs.cmu.edu