Home_About Me_My Mentor_Journal_Project

Journal

Week: 1 2 3 4 5 6 7 8 9 10 11 12

Week 1

Arrived in Amherst on Sunday evening, and spent Monday wandering around (it was Memorial Day, and no one was on campus). Very pretty, trees everywhere, bike trails, little cafes, and a Barnes & Noble that makes me happy, since I didn't have room to pack enough books! Amherst seems a little like Boulder, but with a somewhat slower pace. [edit: I take that back. Streets full of crazy drivers.] The room that I'm renting for the summer is in a duplex-style house populated by CS people (which is awesome. One morning I wanted to check my email and discovered the network was having some problems. But before I had to try and fix it, one of my housemates showed up and did it for me! Cheers). The UMass campus is also nice, with a skyscraper-esque library in the middle, a pond, and chipmunks.

This week was mostly spent wading through the bureaucracy - paperwork for requesting computer accounts, paperwork for employment, paperwork for parking permits, etc. etc... and also learning about the CoGenT project in general. They've come up with a couple of languages - CASL and CISL for describing a specific machine's architecture and instruction set - and want to use the descriptions to generate various tools - ex. compilers, simulators. Saw a (very small) amount of project source code and it looks fairly complicated, and also fairly 'uncommented'. Great. I'm not exactly sure which piece of this project I'll be working on (decoder?), and overall, this project seems like it'll be difficult to jump in to. But it's only week one! And I have some useful papers to read!

Week 2

This week I learned more about the CoGenT project in general and a lot more about my particular project. The information in the CISL descriptions (instruction set descriptions) is turned into an IR (called the instruction-graph, or igraph) that's more convenient for tool generators. A visitor (or "collector") will walk over an igraph and supposedly create a bunch of meta-op trees that a generator will use to actually produce a decoder for a functional (as opposed to timing) simulator. They're currently using JaxMeJS to generate java source code, so I should learn how to use that soon.

That's the general idea. Currently, though, the meta-ops (target-code independent IR) are collected in something of a straightline form, which can get a little complicated because scopes were found to be necessary. Tim and Trek (grad students) want to rewrite some of that, getting rid of random optimization information that had been included and turning the meta-op lists into trees, (nice implicit scoping? maybe). They said they'd have that done by early next week, and then I can start working with it. Should be interesting.

I also spent a lot more time this week with the source code, which does a brilliant job of confusing me completely until I start drawing diagrams of all the inheritance hierarchies. Eep.

And in other news, I am learning how to cook! :) And the skillet and I have a much better relationship now that I've learned to disable the fire alarm before I start making anything....

Week 3

This week I spent some time learning how to use the JaxMeJS generator. Ran into one problem right away: every time I ran my generating code, I got a whole bunch of errors that didn't make any sense ("ATestClass does not exist. foo not valid..." What?! What do you mean it doesn't exist?? It's right there! I just created it!) and so forth. Then Tim showed up and figured out that javassist was also running and was causing all the problems. Sigh. With that out of the way, though, and the generated files sent to a different place, everything seemed to work fine.

Week 4

This week was a web site week. And since I'd never done anything of the sort before, and didn't even know basic HTML, I had to start out with some tutorials. And then I had to conquer the difficult problem of deciding on a color scheme. And then halfway through I decided I didn't like my modern art look and that a goldfish theme would be better! :) Ultimately switched to Dreamweaver. Decided that different screen resolutions are a personalization tool of the devil, and so if you are currently viewing a page that looks funny, it's not my fault! It looks just fine on my laptop, I swear...! Also got some new meta-op code in the repository to look at, courtesy of Tim, who'd cleaned up the older code a bit.

Week 5

This week I worked with existing code some more, and had fun with design patterns! Visitors, specifically, that've been used to gather information from the generated igraph. I'll use something similar to gather info from meta-op trees and generate code. The other main task was to read a paper about the Project Maxwell Assembler System and get to know their work, because it relates in some ways to CoGenT's goals. We discussed the paper in a meeting on Friday and I got the basic sense that PMAS might have some ease-of-use, or even flexibility, issues that the CoGenT people would like to overcome with their project. That meeting was also interesting in that I got a little behind-the-scenes look at the politics and practices of paper publishing (and learned that it's not nearly as simple as I'd believed...). Also, Amer Diwan -- a professor visiting from CU in Boulder -- gave a talk about different methods for gathering computer performance metrics (time interpolation vs. other methods) that I found mildly interesting.

Week 6

Week 7

Week 8

Week 9

Week 10

Week 11

Week 12