Zachary Palmer

  • Citations Per Year
Learn More
We propose Backstage Java (BSJ), a Java language extension which allows algorithmic, contextually-aware generation and transformation of code. BSJ explicitly and concisely represents design patterns and other encodings by employing compile-time metaprogramming: a practice in which the programmer writes instructions which are executed over the program's AST(More)
We pose the question: while it is natural to embed specialized systems functionality (e.g. databases) in programming languages, how can programming language techniques simplify constructing and analyzing scalable computing systems? This topic is of increasing importance with the ongoing specialization of data and computing models in databases, systems,(More)
Patterns provide an important dimension of expressiveness to functional programming languages because they describe a concise syntax for data destruction. However, most languages treat patterns as second-class citizens: case match expressions cannot be extended, patterns cannot be selected dynamically, and patterns cannot be composed or modified by program(More)
We explore a novel approach to higher-order program analysis which combines lazy data propagation with ideas from optimal lambda-reduction to produce a different form of program analysis. This analysis produces only a control-flow graph; we derive all other information (e.g. values of variables) directly from this graph. The resulting analysis is flowand(More)
This artifact is a proof-of-concept implementation of DDPA, an on-demand program analysis for higherorder functional programs. The implementation, written in OCaml, includes a parser, evaluator, and DDPA analysis for the language defined in the companion paper (including the proper record semantics extension). The analysis may be performed using different(More)
Studies show that religious people tend to be more grateful, yet existing research tends to rely on small, non-representative samples and limited measures of religiosity. Therefore, we use a national sample (the National Study of Youth and Religion) and multiple measures of religiosity to examine the extent to which religion is associated with feelings of(More)
We explore a novel approach to higher-order program analysis that brings ideas of on-demand lookup from first-order CFL-reachability program analyses to higher-order programs. The analysis needs to produce only a control-flow graph; it can derive all other information including values of variables directly from the graph. Several challenges had to be(More)
Traditionally, typed objects have been encoded as records; the fields and methods of an object are stored in the fields of a record and projected when needed. While the dual approach of using variants instead of records has been explored, it is more challenging to type: the output type of a variant case match must depend on the input value; this is a form(More)
  • 1