| Office | MSB 152 |
| Phone Number | 672-9015 |
| Mailbox | 233 MSB |
| asutton@cs.kent.edu |
| Boost.Graph |
This is the Wiki page for my Google Summer of Code project. I am implementing a couple of new graph data structures (sort of), and introducing some new algorithms for computing various graph measures. More details through the link. |
| Boost.Random | A set of random number generators for the Boost.Random library. This currently includes Weibull and skew normal distributions. The Weibull distribution was written by me and based on the Wikipedia article while the skew normal distribution was written by a student in my Fall 2007 CS1 class, Ed Morrison. I just cleaned up and commented the code. The implementation is based on the description given by Adelchi Azzalini. At some point, I may become interested (i.e., bored) enough to start implementing other related distributions like Rayleigh and Gumbel generators - just to make a complete set. Note that these are not part of the Boost library. They aren't in the Boost Vault, and they aren't in the Boost Sandbox. If and/or when that happens, I'll redirect these links and provide relevant information. |
| srctools |
This is (hopefully) the final evolution of the pilfer software that my Master's thesis was based on. This is a complete re-engineering of the previous codebase to a) provide more-detailed information about the source code, b) handle the preprocessor a little better, c) actually be reusable for different purposes. This new architecture tries to cleanly separate the preprocessing, parsing, and information gathering aspects of the original program. As such, srctools currently provides two different tools: srcmodel, which populates a relational database with structural code elements (i.e., classes, methods, namesapces) and srcgraph, which generates a number of common static analysis graphs (e.g., call, control flow, data flow, and program dependency). And as you might suspect - I haven't released it yet. |
| esc |
The esc program is a research prototype I developed some years ago with Huzefa Kagdi for a class in Evolutionary Computation. This particular solution is a strange hybrid between an evolutionary strategy and a clustering algorithm that is used to find clones (duplicate regions of text) in source code. It actually works pretty well, I just wouldn't run it on any large projects, unless you wanted to sit for a week before getting results. |
| pilfer |
pilfer is the name of a collection of tools built on top of srcML that grew out of my Master's thesis. In the spring of 2006, I decided to revisit the Python scripts that I'd used to reverse engineer C++ source code and rewrite them in C++, and make them more extensible, more modular, you know... better. Unfortunately, this has lead to endless waffling on design decisions and has resulted in a relatively unorganized body of source code that I haven't actually released because, well... it's actually kind of embarassing. This software was eventually superceded by my new project: srctools. |
| The Open Modeling Framework |
The Open Modeling Framework (OMF) is an implementation of the MOF 1.5 and UML 1.4 metamodels, written (actually generated) in C++. It's basically a standalone library for programmatic model creation and manipulation that I used in my Master's thesis. I haven't actually worked on this in some time because I've moved on to other projects. However, it's still complete, but lacks good documentation. Also, it probably leaks memory like a sieve because I only ever used it for simple reverse engineering programs. I did, at one point write a KDE-based program for working with the models, but I can't seem to find it any more. Oh well. The OMF is actually a third or fourth iteration of trying to implement the UML metamodel (it's a big project). The first iteration actually started out as a complete rewrite of KDE's Umbrello project to separate the UML functionality from the graphics. Unfortunately, the graphics stuff started creeping into the implementation and things got pretty ugly. While there was some support for a ground up rewrite, not many developers were willing to abandon the previous version just then. On an interesting side note, one of the the primary Umbrello developers at the time of Umbrello 2 work was Jonathan Ridell (now of Kubuntu fame). Although I had a couple people ask questions about the availability of the software and how it worked, I haven't found any instances of its use outside my Master's thesis. |
| tm: A Stress Tester |
It's been a long time since I wrote this program - in fact, it's probably the first real program I've ever written. The program is a scriptable server stress testing tool. Don't expect much of it, since it was also my first foray into a) multithreaded programming and b) writing a scriptable application. Also, it probably won't build nicely on modern systems since it hasn't been updated since I wrote it. Also, the contact information associated with it is probably "a little" stale. On an interesting side note, I was Googling anything that might link to it, and found that it had been referenced in a May 2004 article in Linux Journal (Issue #121). Apparently, it was used in conjunction with other tools to evaluate the viability of different email servers for HEC Montreal. It's funny how, sometimes, the internet manages to preserve history. Incidentally, if you read the paper, the publication date is exactly six days before I graduated with my B.S. Also, for the record, Todd Acheson was the system administrator responsible fore the primary email server (at the time), and Dr. Shawn Ostermann is a professor in the Computer Science and Electrical Engineering Department. |