Research : Papers


Generalized Arrows. PhD Thesis, May 2014.  [pdf] [www] [bib].

Hardware Design with Generalized Arrows. in Lecture Notes in Computer Science 7257 (2012) and the proceedings of Implementation of Functional Languages.  [paper] [doi]  [slides] [bib]

Terauchi, Tachio and Megacz, Adam  Inferring Channel Buffer Bounds via Linear Programming, proceedings of the 17th European Symposium on Programming (ESOP'08). [doi] [bib] [software]

Megacz, Adam,  A Coinductive Monad for Prop-Bounded Recursion [ slides] (2007) in Proceedings of ACM Programming Languages meets Program Verification 2007 (PLPV'07). [doi] [bib] [software]

Megacz, Adam,  A Library and Platform for FPGA Bitstream Manipulation (2007) in Proceedings of IEEE Symposium on Field-Programmable Custom Computing Machines (FCCM'07).  (slides) [doi] [bib] [software] and  [poster] (poster predates the paper by a year).

Megacz, Adam,  Scannerless Boolean Parsing, Electronic Notes in Theoretical Computer Science 1368, (Volume 164, Issue 2): Proceedings of the Sixth Workshop on Language Descriptions, Tools, and Applications (LDTA 2006). [doi] [bib] [software]

Alliet, Brian and Megacz, Adam,  Complete translation of unsafe native code to safe bytecode., In Proceedings of the 2004 Workshop on Interpreters, Virtual Machines and Emulators (IVME'2004, now known as VEE), Washington, D.C. ACM Press, New York, NY, 32-41. [doi] [bib] [software]

Preprints and Recent Talks

Megacz, Adam, Multi-Level Programs are Generalized Arrows. arXiv:1007.2885 draft, 12-Apr-2011. [project] [arXiv]  [slides]

Non-Refereed Publications

Here is a  memo describing a 90nm Kessels counter I designed as part of my work at Sun Labs during the summer of 2009. After the memo was written I did the layout, and the chip was fabricated and worked as expected, though only at 0.7v-0.95v (we had originally hoped for a much larger operating range). I subsequently designed and laid out a 40nm version of the counter, which is described in the  slides from a talk I gave at the BWRC.


Here are some things that I never quite finished, but people have asked about. Please consider everything below to be incomplete/unpublished work.

Meta-HDL was an effort to generate circuits using MetaOCaml. Here are some links to the  unpublished paper and unfinished source code.

Netcache was a class project (with Marco Barreno and Aaron Hurst) which modified the Linux kernel so that machines on a LAN would “loan” each other unused memory space for use as buffercache. It actually worked. Here's the  unpublished paper.

A long time ago I wrote a security advisory on flaws in the same origin policy. It attracted some media attention at the time and some citations lately. I don't really do security research, though – this was a one-off.