The ANTLR-Haskell project: parsing made easy
Motivating reasons for a new parser generator
Ultimately I want to be able to write self-documentable and self-contained parsers for languages across the spectrum of programming languages, ranging from declarative specification languages to compact and minimal functional programming languages, and even to the occasional imperative language to describe tasks to perform on my computer at regular intervals (think cron but with in-line integration for a non-bash language).
On normative statements in academic papers
What follows is an excerpt of a thought I had a few weeks ago while working on a research paper submission. In the context of my work you could probably deduce exactly what the submission is to, but that's not of import.
I work on low-level runtime systems for the purpose of making them operate more efficiently. I study abstraction mechanisms that make it easier for people implementing these systems to understand and build on the work of others. The field of computer science is plagued by
Cloud Latency Measurement
Statistically it is difficult to infer system-level percentiles from component percentiles. Why is that?
It is trivial to infer system-wide percentiles from per-thread results if all threads have same response time distribution (single-thread test is special case). But of course this is improbable in a large distributed storage environment. There are some statistical methods for estimation but they are highly complex and not typically embedded in commonly available libraries.
As for time-varying latency, we need this feature to understand “when did the problem start and end?”, which is critical for performance monitoring and troubleshooting. For example, here’s what it might look like to have such statistics over time. This graph shows the difference between average latency (in red) and 99% latency (in light blue), and gives you an idea of the spread of the latency distribution and how that varies. For example, the maximum latency could be an outlier that never repeats, so it is not a reliable way to look at latency. However, maximum latency can determine whether I/O timeouts, etc. are experienced by a virtualized application.
My academic interests
- Memory layout optimization.
- Runtime system verification.
- Programming language design.
- Stellar astrophysics (data analysis).
- Network protocols.
- Data formats.
- Formally specifying the memory layout properties of memory managers and garbage collectors, on the JVM in particular.
- Making PADS work with binary and cyclic data structures.
I primarily host
here, but I also use this site as a platform to write about
in order to document my state of mind for my future self as well as
give interested parties a window into my thought
If you find something I've written interesting, please don't hesitate
to contact me.