| Academe
|
This page is about my academic / professional /
computer-science-related interests.
Geeky / Academic / Project News
- It turns out that I'll
not
be working on F# this summer! I
will
be back working on Visual Studio, however, doing something
(yet-to-be-understood) with refactoring.
- I've now left Indiana for over nine months; I'll likely not be updating
this page until my return (September 2009).
- I'm pleased to announce that I'll be returning to the F# team this
coming summmer. I'm looking forward to working with my team again and to
spending somee time in beautiful Seattle!
- I will be taking a leave of absence from IU and my Ph.D. programme for
the spring. I shall be leaving in mid-December and plan to return
mid-September.
- I'm working on some things with unusual logics (non-intuinistic,
non-classical). Not exactly sure where things are going with this, so
that's all I can say for now.
- Work / Academic Projects
- BB–search for Busy Beaver continues (with
B.van Heuveln, S.Bringsjord, O.Kellet, et al.)
- Composition Languages (with T.Veldhuizen)
- LibCompTool–complexity analysis for simple generic
programs
- subrecursive composition languages with safe escapes
- Evolving Types (with A.Sabry and A.Lumsdaine)
- Braque–a prototype programming language with an
evolving-type system
- MiniKanrenCaml–OCaml library implementing the core of
MiniKanren, an adorable logic programming
language
- Motion–a simple library for scripting interpolations
- Pure2–a simple interpreter for the functional pure
type systems
- Seqs–theorem prover for constructive sequent
calculus with unification
- U-Space–a parser for natural-language sentences (in a small
subset of English)
- Toy / Personal Projects
- C++-Template Lambda-Calculus Interpreter
(just because we can!)
- Caml-S–System S in OCaml
- CamlTrax–layout for OCaml
- Codeine–an experiment in syntax
- Codeine'–an overly-complicated lazy calculator language
- CodeStats–a tool for visually presenting the history of a
KVS archive
- DX6–"digital flashcards" for studying vocabulary
- Function Flow Diagrams–a type of diagram for
documenting systems from afunctional perspective
- FPk–an open-source implementation of J.Backus's FP
language in OCaml
- KVS–a simple version control system
- Match–a simple utility for filtering text
- Morphine–a typed functional language
- NoteTex–a simple preprocessor for Latex to allow
for rapid authoring of notes and outlines
- Opium–a Haskell-looking functional language that
compiles to OCaml
- SubCode–a lightweight, general preprocessor for
embedded languages
- SchemeS–System S in Scheme
- SCurses–a very simple binding of curses for OCaml
- WebGen–the tool / language that generates my web-site
- While'–a sub-recursive imperative
language with extensible records and references
Academic / Research Interests
Within the area of programming languages, I am primarily interested in the
following interrelated topics:
- functional programming
- pure type systems
- dependent types
- programs as proofs
- reüsable abstractions
- semantics
- "evolving types"
Postgraduate School
I am currently a Ph.D. candidate at
Indiana University, Bloomington in the
Department of Computer Science. I have completed my Ph.D.
minor with the Department of Gender Studies. I am a member
of the Open Systems Laboratory.
Apparently, this is what comp sci grad school is ... according to some
people at CMU, at least ... It doesn't look so hard, does it?
|
Postgraduate Coursework
mostly so that I can remember!
- Rensselaer Polytechnic Institute
- 2002
- Generic Programming (D.R.Musser)
- Chalmers University of Technology
- Indiana University
- 2005
- 2006
- 2007
- Logic, Belief, and Self-Reference (independent study,
A.Sabry)
- Ancient Women (K.A.Pyburn)
- Concepts of Gender (S.Sanders)
- Property-Aware Programming (independent study,
P.Gottschling)
- Type Systems (independent study, A.Sabry)
- 2008
- Gender, Medicine, & the Body (F.Malti-Douglas)
- Logics and Type Sytsems (independent study, A.Sabry)
- Gender, Art, & Psychology (F.Malti-Douglas)
- The Curry-Howard Isomorphism and Non-Standard Logics
(independent study, A.Sabry)
Programming Languages Group
I am a member of the IUCS PL Group. We meet to present work, discuss
problems, practise talks, etc. We now—with the blessing of our fearless
leader (in the sense that it is he who coerces us into giving talks),
Roshan—have a web-page that I'm maintaining. It's mostly filler
for now, but you can visit it here.
Teaching
- Chalmers University of Technology
- term 1 2003-2004, term 1 2004-2005
- terms 3-4 2003-2004, terms 3-4 2004-2005
PacMan
I studied animation for a bit as an undergrad. A somewhat unique PacMan
animation set to Steppenwolf's _Magic Carpet Ride_ was the end result. My
professor didn't think terribly highly of it, but I am rather pleased.
The endless evenings, nights, and weekends in the lab with the other
animation geeks comprise a particularly fond memory for me.
|
SpaceWars
Katie Schaeffer & I created this game for a computer graphics course
we took at RPI; we're pretty pleased with the fruits our efforts. We have
a compiled version for a few operating systems.
|
Erdös Number
P.Erdös
|
|
|
|
K.D.P.Ross
|
The Erdös number, honouring the late Hungarian mathematician Paul
Erdös, one of the most prolific writers of mathematical papers, is a
way of describing the "collaborative distance", in regard to mathematical
papers, between an author and Erdös.
In order to be assigned an Erdös number, an author must cowrite a
mathematical paper with an author with a finite Erdös number. Paul
Erdös has an Erdös number of 0. If the lowest Erdös number
of a coäuthor is X, then the author's Erdös number is X + 1.
Above is the chain of authors demonstrating that my Erdös number is
(at most) 4. Many thanks to Marcin for pointing me to
the Schupp-Krishnamoorthy-Zalewski-Kilbride paper! –and– Here is a
constructive proof of the bound:
My (greetings and) apologies to any Hungarian-readers for
incorrectly rendering the "o" with double acute accents as one with
an umlaut. I cannot find a way to encode the former in HTML, so if
anyone knows the trick(s) necessary for doing so, I would be
grateful if you would mail me.
Online Papers, etc.
- Rensselaer Polytechnic Institute, undergraduate
student, Dept of Computer Science,
Dept of Cognitive Science (1999–2002)
- papers
- talks / presentations
- Rensselaer Polytechnic Institute, researcher,
Dept of Computer Science,
Dept of Cognitive Science (2003)
- Chalmers University of Technology, Ph.D. student,
Dept of Computing Science; researcher
Software Methodologies and Systems Group (2003–2005)
- papers
- talks / presentations
- Indiana University, Ph.D. student,
Dept of Computer Science,
Dept of Gender Studies; researcher,
Open Systems Laboratory (2005–present)
- papers
- talks / presentations
- "Adventures Parsing English –or– Where science fails and what you can do about it" (03 May 2006)
talk at the OSL lunch talks series
- "Towards an Automatic Complexity Analysis for Generic Programs"
(28 September 2006)(pdf)
talk at the OSL lunch talks series;
very
similar to talk at WGP 2006
- "Introduction to Arrows" (9 November 2006) (introduction, arrows implementation and examples)
talk for Quantum Programming Languages
- "Motion: An interpolation / motion library for Haskell"
talk at the OSL lunch talks series
- "Ban Zhao"
(15 February 2006)(pdf)
talk for Ancient Women
- "Ada Lovelace"
(22 February 2006)(pdf)
talk for Ancient Women
- "F|LOSSin' 'n' Set Bangin': A comparative analysis of women in F|LOSS and street gangs" (26 February 2006)
talk for Ancient Women, based on my paper for the same course
- "Property-Aware Programming: Shades of Grey" (10 October 2007)
talk at the OSL lunch talks series
- "Property-Aware Programming: Shades of Grey: Part 1" (19 October 2007)
talk at the PL group talks series (This version is significantly expanded and more technical than the previous talk of the same name.)
- "Property-Aware Programming: Shades of Grey: Part 2" (2 November 2007)
talk at the PL group talks series (This will conclude the previous talk at the PL group.)
- "Evolving Types: Rectifying Computing with Reality" (23 April 2008)
talk at the OSL lunch talks series
- "Typed Lambda Calculi" (06 May 2008)
talk for my oral qualifying examination
(software for which I'm an author / contributor is marked with a
*
)
- Applications
- DX6
(a simple vocabulary-study program)
*
- Emacs
("the extensible, customisable, self-documenting real-time
display editor")
- Leo
(outliner that allows multiple views of relationships among
data)
- Firefox
(web browser)
- It's All Text
(use Emacs or VI to edit text areas in your web browser)
- Tor
(browse anonymously)
- Privoxy
(non-caching proxy; you'll probably need this to use Tor, on GNU/Linux at least)
- Tor Test Page
(are you browsing through the Tor network?)
- Zotero
(fantastic research tool)
- OpenOffice
(a Free office suite with open file formats)
- Thunderbird
(mail client)
- VLC
(multiplatform video player for a
lot
of formats)
- LaTeX
- Listings
(package for formatting source code)
- Lyx
(graphical front-end for LaTeX)
- NoteTex
(a simple tool for rapidly writing notes)
*
- Operating Systems
- GeexBox
(live MPlayer-based media-player GNU/Linux)
- Knoppix Linux
(bootable, live CD GNU/Linux)
- Slax Linux
(small, bootable, live GNU/Linux)
- Ubuntu Linux
(running on most of my machines; also available in a live
version)
- Philosophy
- Programming Languages
- Codeine
(a functional language with highly-flexible syntax)
*
- The Encyclopedia of Computer Languages
- Haskell
(non-strict, purely-functional language)
- Morphine
(my System-F-based functional language)
*
- OCaml
(general-purpose functional programming language with a
powerful module system and native-code compiler and an
interpreter)
- Caml-S
(System S in OCaml)
*
- CamlTrax
(layout for OCaml)
*
- DypGen
(LGR parser-generator with positional variables)
- Godi
("advanced programming environment" for
OCaml—provides many useful libraries and packages
with a painless installer system)
- Menhir
(LR(1) parser-generator with named variables)
- KVS
(a simple version control library; also nice for
writing OCaml programs that interface with the
"outside world")
*
- OCaml+TWT
(layout for OCaml)
- OCaml-Curses
(curses wrapper for OCaml)
- SCurses
(simple curses wrapper for OCaml)
*
- Opium
(a functional language with Haskell-like syntax that compiles
to OCaml –or– pretty syntax for OCaml)
*
- Stratego
(strategy-based term rewriting)
- While'
(sub-recursive imperative language with extensible records
and references)
*
- Proof Systems
- Coq
(types-based, intuitionistic proof assistant)
- Proof General
(very handy Emacs mode for Coq and other proof assistants)
- Tools
- Bar
(command line progress bar util for, e.g., large-file
copying)
- GraphViz
(a real life-saver if you draw a lot of Turing machine
diagrams or function flow diagrams ... great for a lot of
graph-drawing)
- Match
(line-filtering utility)
*
- SubCode
(flexible preprocessing orchestration)
*
- RLWrap
(a super-handy line-editing tool)
- Unison
(file synchronisation)
- version control
- GNU Arch
(a.k.a. "TLA" ... an alternative version-control
software)
- Darcs
(simple, decentralised version-control that claims to
be based on physics phenomena)
- KVS
(my simple version-control library)
*
- XMonad
(auto-tiling X11 window manager written in Haskell)

This page was generated by WebGen on EasyPhoenix on Fri Jul 3 15:44:04 PDT 2009. (W-Links mode.)