Thursday, September 6, 2012
Friday, August 10, 2012
Aaron Turon's work with "reagents" is pretty cool. As a person who does a lot of parallel programming, I know how difficult it can be to write synchronization code. Reagents allow you to express complex synchronization patterns in a way that's concise and understandable -- many of the canonical examples (used in textbooks, for example) can be clearly written using reagents in a way that is much closer to a plain-English description of how they're supposed to work. The great part about them is that not only are they easy to use, but they can also give you performance that's competitive with hand-tuned libraries (e.g. java.util.concurrent). Very nice work.
I also wanted to note that my experience student-volunteering was much better than I anticipated. I admit I didn't expect to get anything more out of the conference as a volunteer than I would as a regular attendee, but I ended up working in a session with a very small number of people. This actually turned into a great networking opportunity for me -- and the people there even asked me to stand up at the end of the session and demo my own work. You never know when you'll be given a chance to show your stuff to others in the community!
Wednesday, August 8, 2012
This was also a great opportunity to see China. (And possibly the only one I'll get...unless there's another conference there that I have a good reason to attend!) Although the conference kept me fairly busy while it was going on, I did get in a few days of sight-seeing around Beijing. I have some nice memories of seeing the Summer Palace and the Great Wall, and attempting to explore some of Beijing's lesser known areas.
It's expensive to travel to China so I know most of us that went wouldn't have been able to do so without some help. Thanks to everyone who did the work to make it possible.
Monday, August 6, 2012
I am sincerely grateful for the opportunity to attend PLDI. I plan to graduate next semester, so I felt particularly lucky to have this opportunity to learn about the most current research first hand. I met several people doing research very similar to my own and learned how our ideas interacted. Observing the conference, the student presentations, and the participants helped solidify my future plans with respect to computing.
In addition to the conference, I greatly appreciated the opportunity to visit China. The Great Wall, in particular, was one of the most impressive things I have seen. I would visit those mountains just to hike with the gorgeous scenery. The awesome wall atop even the most ragged peaks made it incredible.
Given the location of this conference it was particularly difficult for graduate students from the US to attend without financial support, so I would like to extend a sincere thank you to those who helped make it possible.
Friday, August 3, 2012
If you are a seasoned researcher or perhaps some sort of social superman, this post should be old hat. However, if you're not, and especially if you're new to the conference scene, hopefully some of what I did in China will resonate. Mostly, it revolves around how I approached meeting new people, joining cool conversations, and navigating around some local social customs.
Tip #1: In China, using your fingers to demonstrate crucial details such as how many hot buns are desired is done with only one hand for the numbers 1 through 10.
More seriously, only a bit of planning went a long way. Getting your paper accepted, or a pretext like a research competition, poster session, or a workshop, is the entry ticket to a much greater feast. Some key experiences included out-of-conference outings, hallway sessions, conference and workshop talks, meals, and online social networking. I'll write about why you should look forward to these and explicitly call out a few tips for each.
Scenario 1: Great Outings
Even before the conference started, I met up with Patrick Lam, who had been visiting Berkeley the previous semester. He, in turn, was meeting up with collaborators on the multi-university SOOT project and some old MIT buddies. We spent the weekend getting lost in Hutongs and stumbling into restaurants that caught our eye. Chances are, for a good conference, you'll know someone going, so schedule to meet up beforehand!
Particularly memorable was a tour to the Great Wall on the Sunday before the conference. The conference organizer Jan Vitek, the local expert Sean McDirmid, and others helped arrange tours via a Google Spreadsheet. All we had to do was put our name down the night before.
Tip #2: Google Apps are censored in China, so prepare for cultural differences beforehand. Wikitravel is your friend.
Fortuitously, our group was merged into another one that included Greg Morrissett and Umut Acar. I've always enjoyed Greg's papers and have done research in Umut's area for years, so meeting them was fun. It's a small world: two others that we joined with are collaborators with Manu Sridharan, an alum from my research group.
Epic views, delicious food, and 1-on-1 discussions with one of the few experts in the world on a research topic you care about -- and all before badging in. For after the conference, Sean sold me on visiting Yangshuo in the South West (bamboo rafting alongside karst hills!) and even arranged a visit to the MSR China lab. Making time for these opportunities and then making sure they happened was important.
Tip #3: Arrange to meet at least a couple of people beforehand and have some idea of fun things you can arrange to do together when you get there.
I generally find group tours to be lame, but as a research conference attendees, it was great. I got to engage with new scientists while someone else figured out the details. My time in China was limited, so I also appreciated that the tour guides and hired drivers cut down on our transit times, steered us towards the cool spots and unique food, and I generally never thought about the little things.
Tip #4: Consider coming early or staying late to visit nearby researchers. Feel it out beforehand -- worst case scenario, you get a few free days to explore a new place.
Scenario 2: Hallway Sessions
Upon entering the conference area, I badged in and navigated a maze of people in search of some water and the day's talk lineup. This process repeated most mornings and breaks. Warning: if you make through the crowd in less than 5 minutes, you're doing it wrong.
Tip #5: Meet as many people as you can! Remember the face, name, university, and research area.
At such a big conference, I never knew who I'd bump into. If someone I knew was talking to someone I didn't -- great! In these hallway sessions, I learned what talks were really about, what has happened in the 1-2 years since the presented research was performed, and whatever new stuff they're chasing now that we'll only see in print in a year or two. Sometimes, I missed actual talks because of them. Attending hallway sessions can easily be better than going to actual talks.
Tip #6: Prepare an elevator pitch of 1-2 enticing lead-in sentences. For when that goes well, prepare a 1-3 minute story. People have varying interests and needs, so take care to punctuate your tale with choose-your-own-adventure opportunities and escape hatches.
Tip #7: Help people remember you. Be fun, memorable, and searchable. For example, I get away with being just "Leo from Berkeley in Ras Bodik 's group" because my name is rare in my field and combinations of those are searchable terms. Similarly easy to remember and search-friendly are "I build parallel browsers and, for fun, have been examining the sociology of programming languages."
The road to getting into a good conference is brutal -- nights hacking in the lab, dealing with reviewers who ought to consider a new line of work, etc. In these hallway sessions, I got to connect and reconnect with an otherwise geographically spread out community of amazing nerds, each with their own cool and unique interests. They're awesome and this was a chance to talk to them without the usual slow, contorted, and low-bandwidth channel of peer review bungling it.
Scenario 3: The Actual Conference Talks
Some talks, like the Dilligs' on using abduction to solicit targeted programmer guidance for an interactive program analysis, will stay in my memory. Others, like on how to get programs to automatically use bad parallel algorithms, or on cool ideas presented by monotones and non-native speakers, were good stopping points for checking my mail and skimming papers. Picking talks takes a bit of care.
Spotting great talks like that of the Dilligs is hard. I've learned to look forward to certain speakers, but still don't know many. An easy alternative approach is to crowdsource. As a conversation starter, I'd bring up a talk I'm looking forward to and ask if anything else cool is happening beyond, of course, the upcoming presentation by whoever was my esteemed conversation partner at that time. Attending talks on your research area are no brainer. Even with all this, weeding out non-experts and minimal-publishable-unit types is tricky, and, unfortunately, seeing these talks is discouraging. Some talks can be surprising gems. For example, I often like dry-sounding talks that are heavy on data analysis and new or domain specific problems. These may motivate new research and, at a minimum, should be surprising.
Tip #8: Plan what talks you go to by matching the program and what people say about it to your interests. Think both short-term and long-term.
Tip #9: If a speaker is incomprehensible, find another talk. Big conferences may hold evening rump sessions or morning preview sessions where speakers advertise their talks: 20 minutes here each day is worth it for a long conference.
Listening to talks is hard work. PLDI was colocated with ECOOP and many workshops, so focusing on every session is a grueling process that most people I know didn't go through. It's also unnecessary! Most talks can be more effectively understood in a 5 minute hallway session where you can ask questions. For talks I did attend, I made sure that I understood it at least to the extent of being able to say what the short-term and long-term problems were, what the solution was, and why the solution was technically good or bad and, in terms of innovation, memorable or boring.
Finally, I tried to ask questions and track down the speaker for talks in areas I could see myself working on. I didn't expect a good response on the spot -- and rarely got one -- but the author and interested people now had someone to continue the conversation with. Likewise, as I'm no Professor Hotshot from Bigname University (and even then!), I phrased my questions constructively rather than critically. A compliment sandwich is a weak approach; instead of suggesting something is a problem, ask how to deal with it. David Wagner is a true artist in finding critical security flaws in a friendly way.
Scenario 4: Workshops
Keep an eye out for co-located workshops! I didn't realize a synthesis workshop was going on until I got there, but one my favorite talks was Armando's on rewriting web app code into SQL queries.
Workshops are small, friendly, and interactive. Some of the talks I saw were very specialized or incremental, but others were simply early stage and even more creative than most full conference papers. Basically, authors didn't need quantifiables like big jumps on a graph or successfully pushing their idea through a theorem prover. (A senior member of the community has renamed Best Paper awards as Least Controversial paper awards.) While the lead grad student generally presents at a conference, the advisor may present again later at a workshop: even for old work, you can get a new perspective. Finally, good conference talks were aimed at wide audiences and the QA was short and at the end: workshop presentations were about the dirty details and interrupting questions were the sign of a good talk. Go to workshops for the best discussions!
Tip #10: While workshop papers "don't count" as publications, they will greatly improve your conference experience and help you engage on more controversial topics than traditional peer review allows. Think about submitting to one as soon as you know you'll be at a particular conference, though don't spend too much time on it. Beyond being a lot of fun, workshop interactions may gain you better visibility than actual conference talks.
Step 5: Eating Right
Maybe more so than workshops, meals may be the most important time in a conference. This is true for all types of researchers. Everyone finally get to talk to each other! When eating with a group and you don't know someone there, make sure to introduce yourself -- either when your group is first gathering or right after you sat down. Only do a one-liner introduction at that point. Name, school, advisor, and research topic ("multicore browsers and sociology of languages") were always enough. There'd be lulls when I picked the coolest person or my mysteriously quiet neighbor and ask for their full elevator pitch. Either they'd talk, or they'd recall that said something cool and asked me about it: as long as I was careful about who I sat next to, it was a win-win situation.
The easiest meal is lunch. You can't meet people at talks, and they might run off between sessions. However, almost everyone gathers around for lunch. One trick is to go to lunch with one person you know because you'll meet their friends. This is good up to a point. Another trick to branching out is, right before lunch, to track down someone semi-new such as a speaker you liked from an earlier talk. If the conversation is interesting, you'll build a group and off you go; everyone is happy. I was late once, in which case I had to choose between sitting at the one table with an empty seat, which is a natural invitation but chancey people-wise, and even better, pull that chair to a cool nearby table and invite myself in by saying it was crowded elsewhere.
Breakfast is a bit harder. People are jet-lagged, blurry-eyed, and things are quiet. However, breakfast is also a good chance to find someone you wanted meet without feeling like you're barging in. I actually skipped breakfasts at this one, but ended up repeatedly talking to folks at a nearby Starbucks over coffee.
Tip #11: Getting to lunch on time increases the chance of finding a table with both a person you know AND an empty seat. Going late is fine if you go late with someone you want to talk to. Don't go early to find people; instead, talk to people at the end of the previous session.
Most important of all meals is dinner. It is tougher than lunch, but the pay-off is higher as well. Lunch is short and at the hotel, while dinner can be arbitrarily long and therefore led to some of my best conversations.
Earlier in the day, you can politely slide into a conversation, "do you know if anyone is going to a cool restaurant/part of town?" Also, while there was always a gap between the last talk and when people would go to dinner, most of our plans were generally formed right after the last talk. So, be there. If that fails, there are always bands of researchers in the same boat. Every night, I saw groups forming in the hotel lobby, and joined them myself a couple of times. I finally met Andrew Myers this way, though I probably made my worst impression there :) Likewise, there were always grad students getting together, who are also worth meeting.
A sensitive issue for dinners is price. Basically, don't worry. If it's fancy and you look like a grad student, someone senior or in industry should realize what's going on and pay for you. In China, it never came up: it takes effort to find a restaurant that exceeds a grad student's stipend.
Finally, I like to go out to bars at least once or twice. I treat these like any night out -- more than 1-2 drinks is a bad idea (unless I'm with systems people), I don't expect anyone to cover my tab, and alcohol isn't an excuse for being a jerk. These nights are generally awesome; tongues seem looser and the premise is that people should relax. Late night beers on the patio across the hotel with folks from the JS Tools was a great finish to the day.
Tip #12: Beers in China generally suck. However, imported German beers were surprisingly frequent, and gastropubs that brew their own are popping up.
Tip #13: Check if the conference hotel has a gym, pool, hot tub, or sauna. Some of the best times I've had at Berkeley retreat workshops were in an outdoor hot tub talking to hardware architects.
Scenario 6: Twitterati
After I got home, I uploaded my photos and tried to recover from some sort of food-borne virus. More importantly, I became friends with people on Facebook and already got pulled into a couple of G+ conversations about my work. I don't personally partake in Twitter, but there is a big contingent there. Throughout the conference, people told me, "oh, you're the guy doing the sociology stuff!", for which I have to give a lot of credit to the Twitterati. Once you're in, get involved and stay involved! By the time the next conference rolls around, you'll have a bunch of real friends that you'll be eager to talk to in person again.
Tip #14: "Friend" people and actually comment on their feeds when they discuss technical things. This is your community!
I'll end with a final tip:
Tip #15: If all this sounded good, the POPL deadline is coming, and PPoPP 2013 will also be in China! :)
Beijing was an interesting city. The Summer Palace, Tsingua University and Houhai were my favorite places.
I definitely plan on submitting in November so I can go to PLDI'13 too!
Wednesday, July 25, 2012
First I must admit that I forgot that we were supposed to write a second post after the conference. I am doing it now since I firmly believe that better late than never. I really enjoyed attending PLDI and the many many co-located workshops. I especially enjoyed JSTOOLS and PLAS since their topics are very close to my interests. I also was student volunteer and as such I met many other students which was truly a great experience.
This was a great opportunity and I profoundly thank the ACM for the opportunity. And of course I took the opportunity to visit Beijing which was also an incredible experience that I will remember all my life.
Tuesday, July 3, 2012
Thanks to everybody making this such a good experience!
Did my first talk in front of that many people... and in particular in such a big conference. It was interesting to see how everyone reacted to the idea of having race conditions in a single-threaded environment like the web platform.
I met a lot of great people (some which I've only heard about) and made some good friendships. Thanks again!
Holding the conference in Beijing was definitely a good choice. Not many people have been there so it was a fun experience. Yes, having scorpions, cockroaches and the likes was part of it. I managed to visit most things there as well as have a (short) trip to Xi'an (some 1000 km away from Beijing) to visit the terracotta army.
All in all I had an amazing time!
For those who haven't been to PLDI and might by random chance be reading this, it is well worth it. I learned a lot and finally got to put a lot of faces to names. I also got to learn some new names. It is definitely fun to spend time in such a large flock of birds of a feather.
The best part for me was from some of my last minute decisions on some talks. There were a few talks that were just closer or involved someone I met through random conversation that turned out to be very pleasant surprises, and possibly quite helpful for my research.
In the end, things seemed to run fairly smoothly. It was nice to work as a captain for the student volunteers, as it gave the inside story on what was going on, and also increased my networking.
For those who couldn't stay much after the conference, take heart in that the weather never got sunny like it was for the conference again. Beijing was amazing, but the photography is rough when everything is covered in a haze.
Monday, July 2, 2012
I gave my first talk at PLDI, which went well. Thanks to everyone who gave me feedback on my talk and expressed interest in my research. I enjoyed getting to a chance to talk to other people working on API discovery research and getting their perspectives.
I had time to explore Beijing some. I got to see Tiananmen Square, Mao's tomb (which is in Tiananmen Square) and the Summer Palace, which is quite impressive.
Thanks to the NSF for the travel grant, and thanks to the organizers for a great conference.
Monday, June 25, 2012
This was in fact my second PLDI, my first being the one last year that was incorporated into FCRC. I really enjoyed the more intimate nature of this year’s PLDI -- although FCRC was a really exciting event, it was also a bit overwhelming to meet folks from so many different CS disciplines all at once. I thought this year’s smaller venue and smaller crowd made it a lot easier to just bump elbows and start a casual conversation.
It’s hard to point out my favorite talks without doing an unintentional disservice to the other talks at PLDI, so I’ll just say that I was impressed with the overall quality of presentations, and I’ll definitely be following up by reading some of the papers presented this year.
Finally, some closing remarks. The Great Wall really is very big. The Forbidden City really is very big. Scorpions look a lot scarier than they taste.
Thanks for such a great conference!
I had a bit of (self-induced) trouble getting write access to this blog, so apologies for posting this a bit late.
I’m Alan Leung, a 2nd year PhD student at the University of California, San Diego. First things first, I just wanted to say how grateful I am for the generous travels grants that make travel to places like Beijing possible!
This year is the first time I’ll be presenting at PLDI, and I’m both excited and a bit anxious for my first chance to present the research we’ve done. I’ll be presenting the paper “Verifying GPU Kernels by Test Amplification,” where we explore a technique for verifying determinism in GPU kernels with a combination of dynamic race analysis and static information flow analysis. The key ingredient of our approach is that we can verify determinism using a single test execution, so long as we can show that the kernel always displays the same shared memory access behavior, regardless of the values its data inputs. We call this property access invariance. It turns out that a lot of kernels are in fact access invariant, making them amenable to our technique!
So, the first thing I hope to get out of this experience is a chance to get people as excited about the research as I am, through my talk, poster session, or maybe just chatting in the halls. The second thing I hope to gain is a new perspective on old problems, or just an awareness of new problems, by attending talks and meeting some of the brilliant folks in the PL world and beyond. Some of the best ideas can come out of the blue during a conversation. Finally, I’m a bit of a foodie, so in addition to all the food for thought we’ll get at the conference, I hope to get a chance to taste some of the great food Beijing has to offer!
Really looking forward to it!
Sunday, June 24, 2012
Friday, June 22, 2012
Thursday, June 21, 2012
At first, I was amazed by the fact that attendees come from so many different background, through talking to those researchers in and out of my own area, I was inspired. Sometimes thoughts and ideas just pop up during the process!
I am happy that some of the talks with researchers in my own field have digged into reasonable depth, that help me compare and improve my own research.
I also had my first academic talk here (I mean in the PLAS 2012). On the practice talk, I got help not only from professors' of my own university, but also from those people I talked with. It was very nice. and Thanks for their valuable suggestions and comments.
Lastly, I would like to thank for people organizing this spectaculars events, and thanks for the grants to our students that do help relieve financial burden. Oh, Another person I should not forget to thank: our chair: Jan Vitek! Thank you for the *temporary* volunteer to the PLDI banquet, where I met and talked with more smart people and had great fun:)
Wednesday, June 20, 2012
Some conferences have various camps in them that specialize in specific areas. It seems PLDI has more of a spectrum of attendees. There's the formal methods and semantics people who blend in with the functional programming people who then, in turn, cross over with object-oriented crowd who then also cross over with the hardware-optimizing compiler crowd. And of course there's various mixtures everywhere in between. I like how, despite the diversity, there's a lot of sharing of ideas in ways that is easy for others to grasp.
It was good fun but I'm glad to be back. I hope to make it to PLDI again sometime in the coming years. Thanks to NSF for helping fund us poor graduate students! Thanks to the organizers for such a successful conference! And thanks to all the other volunteers as well!
Tuesday, June 19, 2012
I had so many great experiences this PLDI; for the benefit of the reader, I will condense them down into a few choice vignettes...
1) About the people I finally managed to track down after spending countless hours reading code and being told "hmm.. I don't know, Brian wrote that..." when asking how it worked.
2) About the time I accidentally crashed the ECOOP banquet by happening to be touristing in the same district at about the same time, and ending up in a conversation about research with an attendee as it was starting.
3) Apologies to the deep-fried scorpions that Alan Leung and I ate the night after his talk at Wanfujing market. Your lives were regrettably short, but delicious.
4) About learning to haggle. I am of chinese ancestry by genealogy, but very much californian by any other metric. I am now convinced that there is some hereditary component to the ability and enjoyment of haggling with street vendors.
By attending talks and talking extensively with other researchers, both in and out of my specific static analysis niche, I learned quite a bit about both the research community, the work that we are doing, and the process by which it is leaking out into the industrial community. In particular, in the niche of static analysis, my feeling was that the biggest holes in our research are not expressiveness, as we (ie, I, in particular) are wont to pursue, but first, frameworks for handling the features and scale used in real industrial code, and second, error and warning reporting. (On the latter note, special attention should be given to the Dilligs' excellent paper and talk, which pushed this problem forward in a particularly important way.)
The overall feeling I got was that the common case in static verification is not one in which code is correct, and a programmer simply needs some assurance that this is the case, but that code is inevitably incorrect in some way, and the programmer simply needs some feedback on how robust his or her code will be when used at scale prior to deployment, and more particularly, how that robustness will change as he or she evolves that code.
Finally, I want to extend my sincere thanks to all who were involved in organizing the conference, everyone who presented, the NSF for funding my trip, everyone who deigned to listen to me babbling on about my work in the hall or at lunch, everyone who came to my talk and asked such excellent questions, all the student volunteers, the city of Beijing, and anyone else I'm forgetting.
Monday, June 18, 2012
I'm Mike Vitousek, a first-year PhD student at University of Colorado at Boulder. This trip was my first visit to China, my first PLDI or ECOOP, my first presented technical talk, and the second conference I've attended. It was, of course, a really great experience!
Basically, the trip was awesome and I'm really glad I was able to go on it. It made me think, and made me think about how I think. I'm looking forward to the next one!
* We proposed an approach to gradual typing that results in casts on objects permanently and monotonically making the object's type more specific, which could cause flow-sensitivity and "spooky action-at-a-distance." Check it out here: http://csel.cs.colorado.edu/~mivi2269/stop12/abstract.pdf)
Thursday, June 14, 2012
Anyway, my trip to Beijing has been entirely dedicated to relaxing; I spent the first few days getting everything set for my presentation on Monday on Reasoning about Relaxed Programs (aka, Proving Acceptability Properties of Nondeterministic Relaxed Approximate Programs). And since Monday I've actually been relaxing myself by catching up with people in the PLDI community, eating great local food, and exploring around Beijing.
After looking over all the posts on the blog, I'm surprised to see that I've bumped into quite a few of you over the past few days. And now I'm looking forward to seeing what post-PLDI stories pop up here in the next few weeks.
Tuesday, June 12, 2012
My name is Alexander, and I'm a 1st year PhD student at UC San Diego, and this is my first PLDI. I was prepped with the understanding that these conferences are, in a sense, primarily about networking. And this is probably the right thing anyway - ideally there is an exposure to at least a few ideas that seem personally relevant or interesting, and the opportunity to meet a good number of like-minded individuals from the community.
This has essentially been my experience. At this point I've attended a few talks that have been exceptionally cool (in my opinion). I've talked to people who weeks ago were merely names on DBLP - either about our work or about the weather or about the experience of actually getting to Beijing.
The best part is experiencing everything for the first time - which only makes me more excited to return to future PLDIs, whether to give a talk or just catch up with old friends. I hope to see you all again in the years to come.
P.S. it would seem a miss if I didn't plug something related to me, so you can read about the research that we presented earlier in the week at http://goto.ucsd.edu/~rjhala/papers/deterministic_parallelism_via_liquid_effects.html
Monday, June 11, 2012
My name is Ming, and I'm an nth year PhD student at UC San Diego (consider your favorite, or least favorite n...). Although I believe we students were asked to contribute to this blog prior to the conference starting, I'm afraid I'm a bit tardy and instead am posting while enjoying the first day's sessions.
In theory, I am here to present my paper on statically proving the determinism of parallel programs using the Liquid Effects system. In fact, I have already given the presentation and will instead be enjoying the rest of the conference program.
I believe there are at least a few concrete benefits I am getting out of attending this PLDI, but I will limit myself to discussing two of them.
1) Every conference I attend, I find myself exposed to at least 2 or 3 new problems that I had not previously considered, but due to either the persuasiveness of a presentation, or a conversation with another attendee, thereafter decide to be paramount to scientific advancement.
2) From speaking to other researchers, I often get the feeling that our work on refinement types is considered by some to not be generally accessible. However, my feeling is that the truth is exactly the opposite -- and that our goal is and has been to make both the inputs and outputs to verification maximally accessible to both practitioners and other researchers.
However, it can be hard to get this across in the technical paper; the conference talk, on the other hand, is a much better arena for this, because it can emphasize the action of the tools that result from our work. Hopefully, the talk I have constructed serves this purpose, and I have done my colleagues a favor in spreading understanding of their hard work to those who might have dismissed it immediately if only exposed to the paper.
Finally, I'd like to end with some shameless self-advertisement. For more information about our paper, and the associated Liquid Types project, please visit the following URLs:
Further, releases of our tool CSolve, for proving assertion safety and determinism of C programs, can be found here:
Thanks for reading, and I hope everyone enjoys the rest of the conference!
Sunday, June 10, 2012
I am a 2nd Phd student at University of Utah, area of interest is static analysis and programming languages, working with Matthew Might, I am so exciting to attend PLDI (and ECOOP) this year.
I am going to present a paper at Programming languages and Analysis for Security (PLAS): Hash-flow Taint analysis for Higher-order programs. It is about static taint analysis based on abstract interpretation for scripting languages. I have my experiments on Python, while the technique can be applied to other scripting languages, to detect XSS attacks.
Wish you have wonderful time in Beijing!
Saturday, June 9, 2012
What I expect to get out of PLDI is what I expect to get out of any conference: A few good ideas, a lot of good conversations, and some unfortunately dull food that's sort of an insult to the venue. In addition to attending PLDI, I'm the chair and host of the ECOOP 2012 Doctoral Symposium, which should be a fun experience.
Now, with no further ado, my travel log.
There was a man in the Toronto airport. He was wearing a pressed salmon-colored suit. The slacks matched the jacket. His hair was jet black and slicked. He looked like he had just stepped out of the seventies, and yet was ready to walk right into a board room and negotiate a hostile takeover.
He is my new personal hero.
We were on the same flight, myself and the man in the salmon-colored suit. He went through the customs line next to mine. He wore white leather shoes and a pink wristwatch, and carried a distinctively businesslike briefcase. A daring look to be sure, but one achieved flawlessly and with gusto. Somewhere in Beijing, the Salmon Man roams, being more awesome than I am.
Perhaps I am jealous of his splendor. Perhaps I simply revel in the idea that such a human being exists. Good journeys, man in the salmon-colored suit.
Today, I walked on the Great Wall of China.
My guide informed me that there were three options: The cable car, which was of course quite simple, the north path, which was relatively easy but crowded with tourists, or the south path, which was very steep but, naturally, less crowded. I tied back my hair, rolled up my sleeves, and chose the south path.
It was strenuous but not grueling. About forty minutes in, I took a break to visit a small pavilion. It was down a flight of stairs from the wall, buffeted by trees, the branches of which canopied the staircase giving it a very regal feel.
As I reached the bottom of the stairs, two cute, bubbly Chinese women about my age waved excitedly at me, hollering "Hello! Hello!"
"Ni hao," I replied simply.
I sat down and stretched my legs, glad to give myself a brief reprieve. One of the women was not especially inconspicuous as she snapped photographs of this unusual foreigner. I unbound my magnificent golden mane and tousled it slightly for her benefit. She did little to hide her enthusiasm.
I may never be able to pull off a salmon-colored suit, my friends. But I have my charms.
As I got up to leave, she built up the courage to ask me – or, as it were, gesture for me – to take a picture with her. Her friend did the same. I thought it odd, but they were only the first. By the time I lost count around the tenth such tourist, I was more amused than baffled.
At the Great Wall of China, I am the tourist attraction.
Today I had one, and only one, goal: to buy a hat. I asked the Internet for a good hat shop in Beijing, it told me one, and I went there. The shop was along the Wangfujing Street shopping district, and so I took the opportunity to do some touristy shopping as well.
The street itself was really quite dull. There were a few interesting stores and I almost bought an overpriced silk shirt, but overall it wasn't an exciting experience. The side streets were a whole other matter.
Branching from Wangfujing itself are three or four narrow passages which are absolutely packed with vendors selling either food or cheap novelty garbage. The crowds are incredible, but I'll talk about that more in the being-stared-at post. More to the point, the sheer variety of foods available was amazing. It was unfortunate that I had already eaten lunch, and wasn't hungry at all, because I could have packed myself with steamed buns, shish kabob, strange seafood and things I can't identify.
My shopping spree over, I hailed a cab. I showed the driver the Chinese printed address of my hotel, and he offered me a price to get there.
Now, if you know Beijing, are coming to Beijing for the conference(s) yourself, or are just generally wise, there should be a klaxon in your mind going off. I assure you, I'm quite aware of this ruse myself. The taxis in Beijing are metered; if they offer you a fixed price, they're ripping you off.
I had taken a taxi the other way just that morning, and properly metered to boot. So I knew what the appropriate price was. He was offering about double, less than I would expect for a ripoff. Something about the gall and the whole lunacy of the moment amused me. So, I put on a bright grin, affected the role of the hopeless American tourist, and allowed myself to be had.
Probably that decision wouldn't have paid off in terms of entertainment, but for the fact that I knew I was being had. The way taxis work in Beijing is that they have a visible flag that shows they're for hire, and when the meter is running, the flag is down. As such, people still hailed this taxi. And that's when the beautiful interaction occurred.
Some native would hail the taxi. The driver would be hilariously unsubtle in waving them off. They'd see me in the back, and give a knowing look. Sometimes even a wink! As if to say, "Aha, good luck to you, intrepid cab-driver-cum-scam-artist. Let's not let Whitey get off easy."
Those looks were absolutely priceless. Enjoy my extra $6, cabbie. It was worth the price.
If being stared at were an Olympic sport, I would be its gold medalist. Unfortunately, I'm four years too late to compete at this venue.
Today, on a friend's recommendation, and in spite of my best judgment, I took the subway. The only real issue is that the nearest station is a 25 minute walk from my hotel. It is extremely inexpensive, at ¥2/trip (about 30¢). However, I was taking it at rush hour, and it was very, very crowded.
I'm not sure if I can explain satisfactorily what "crowded" means here. It's not so much an issue of personal space as it is coming to terms with the fact that you will be groping someone today, whether you wish to or not. I found myself entrenched in a female enclave, several of the members of which were gawking at their newly entrapped human curio. I tried not to think too carefully about the situation, for fear of the distinct, albeit unlikely, possibility of uniquely male consequences.
Nonetheless it was a straight shot to my stop, then a short walk to my destination, Tiananmen Square and the Forbidden City. If you expect me to describe these attractions, you've forgotten who's writing these, consider reading Wikipedia.
In spite of the fact that sheer numbers would dictate that most visitors here should be Chinese, I still find it surprising just how few people of European descent there are. There are certainly a few, but there were probably no more than twenty who weren't associated with tour groups.
That fact, along with the complementary fact that I'm me, meant that I got a lot of attention. Now, I've been stared at in many countries, including my own, and by many people, but there is usually a pattern. When I catch someone staring at me, they stop. It's a very natural reaction. It's not that I'm offended, my eccentricities are, after all, quite intentional, but that's just the social norm. That is not, it would seem, the social norm here, or at least not with me.
Whenever someone stares at me, or I see someone trying to take candid photographs of me, I smile at them and say "ni hao!" This is the point at which a gawker in any other country would turn away. Not here. I have observed three reactions:
- The gawker does not react at all. That is to say, they just keep right on gawking.
- The gawker returns my greeting, but otherwise just continues to stare at me.
- The gawker asks to take my picture or have their picture taken with me.
I have never, not even once, observed the expected behavior of acting as if they were caught in the act.
That being said, it's not every tourist who builds up the courage to ask me for a photo. Many take photos of me with varying degrees of candidness, but only the brave few actually ask. The very fact that I'm writing this should seem bizarre to me, but after three days of this, it feels normal. That can't be good.
Every time someone asked to have their picture taken with me today, I insisted that they also take a picture on my camera. Unfortunately, most people just wanted a picture of me, not with me, a contingency I wasn't prepared for, so I only got five such pictures. Not quite enough for the "Gregor poses with random Chinese people" photo collage I had in mind.
We are more alike, my Chinese cousins, than unlike. But I suppose it is those un-likenesses that make life interesting.
A picture of me with two enthusiastic Chinese girls: http://ompldr.org/vZTY4eg
As an aside, I have a fondness for caricatures. Admit it: If you looked like me, you would have a fondness for caricatures as well. Here is me, as drawn by a caricaturist on a ceramic plate: http://ompldr.org/vZTY4aQ . Perhaps a Chinese friend could tell me how horribly he mangled the transliteration my name?
Ah, the food. I don't really have an anecdote here, so this post will be more of a series of observations.
Every time I go into a restaurant, it starts the same way. I say "ni you mei you yingwen caipu[sic]?" and they stare at me for a moment, trying to understand what I just said through my thick accent and poor intonation. Usually they figure it out, then open a menu and point to the iffy English translations. I make an "okay" gesture, indicate that I am alone, and am led to a seat.
(Note: My phrasebook lied to me. caipu is "cookbook", not "menu". So that's probably part of the confusion. Oh well.)
Food is stupidly inexpensive, from my perspective. I routinely order the most expensive thing on the menu simply because at most restaurants that still leaves every meal under $8, so from a western perspective, I'm getting a pretty good deal. I probably look like an ass, always ordering this way, but oh well. I've had some better meals run me around $25, but always for things that would have been more expensive and worse in the US.
It's probably racist of me to notice this, or perhaps it's just the influence of westernization on Chinese food, but the first thing that struck me is that there simply isn't any chicken. Occasionally there will be one chicken item on a menu, but it's not the norm. Mind, I probably wouldn't be eating chicken anyway, that just seems like a very idiot-western-tourist approach to food, but I still expected it to be an option.
I've had beef tendon and heart, ox tripe (whatever that is), intestines (the menu was not kind enough to inform me in English of what kind of intestines I would be enjoying), pork, crab and lamb, but no chicken. I actually don't eat much meat other than poultry normally, so it's been a bit odd.
They always bring me a fork. I refuse to use it. In spite of how much I like to complain, I'm actually perfecty competent with a pair of chopsticks. I have good dexterity, so it would be pretty pathetic if I couldn't use the utensil of choice of billions of people. I'm not offended by them offering me a fork, I understand, but there is one thing that irks me. Because I'm so routinely offered a fork, I've taken to grabbing the chopsticks on the table immediately upon sitting down, and clicking them idly in the air, just to be a very clear indication that I can use them. That doesn't make any difference. Sometimes I'll be a few minutes into a meal, successfully eating without making a mess, and then they'll bring me a fork. "Come on," I think to myself, "I'm doing just fine, don't patronize me!" I wave these offers off to the best of my ability.
Some restaurants don't even give me chopsticks. Ironically, the only restaurant I've been to that hasn't offered me a fork was a Thai restaurant. If you don't understand why this is ironic, then you're probably the kind of buffoon who asks for chopsticks in a Thai restaurant, and you should take a careful look at your life.
Cold water doesn't exist. Just to be clear, this isn't like many places in Europe, where iced water doesn't exist. Even lukewarm water is not an option. When possible I'm ordering soda simply because it's served chilled. The waiters sometimes seem baffled that an adult would order soda with a meal; I don't drink alcohol. If I ask for water, they will bring me that most unrefreshing of all possible beverages, hot water. I have no idea how to indicate to them that I would like cold water. On several occasions I've poured hot water for myself and waited for it to cool down to sufferable temperatures.
Normally I've tried to end these with something pithy. Unfortunately, I simply haven't any pith here. I've really enjoyed the food, and the culture gap has been entertaining. Eating in Beijing is a good thing to approach lightheartedly. I'm never quite sure what I'm going to get, but it's always been good.
(This entry resulted in a recommendation for a Peking Duck restuarant, leading to the next, and final, entry in my travel log thusfar.)
Authentic Peking Duck in Peking. Or is it Beijing Duck in Beijing? Fairly certain both options offend someone. Either way, it was a meal I frankly lack the magniloquence to describe sufficiently. Suffice it to say that it was excellent.
Plus, two added bonuses! For one, they did not presume to offer me a fork. Finally! And for two, when they had finished slicing the duck for both my table and the table next to it, and were left with deciding which would get the gizzard, liver and other assorted organ meat, they chose me! The white guy! Huzzah! Both of these felt like a (small) honor to me.
My travel log will probably be considerably less interesting as we get into the conference proper. Nonetheless, if you'd like to keep up, I'm posting it on Facebook, http://www.facebook.com/LawlabeeTheWallaby.
- Gregor Richards
I am Daniel Perelman, a 2nd year PhD student at the University of Washington, working with Dan Grossman and Sumit Gulwani (Microsoft Research). My research is in the area of program synthesis, and I am also interested in static analysis and type systems.
I will be presenting a paper "Type-Directed Completion of Partial Expressions" co-authored with Sumit Gulwanti, Thomas Ball, and Dan Grossman. In the paper, we present a new perspective on API discovery: of using "partial expressions" which are expressions with holes in them to allow programmers to communicate their knowledge of APIs they are looking for in a flexible way. We show that even simple partial expressions are surprisingly expressive due to the rich type structure of languages like C# and Java. Come see my talk at session 5A for more information.
Any C# programers are invited to try out the tool I developed based on the ideas in the paper: https://pec.codeplex.com/ (source code available there, too).
This will be my first time attending an academic conference, so I am looking forward to having a chance to meet with other researchers.
I look forward to meeting everyone in Beijing!
I’m a French student spending a year at Purdue University, Indiana, before I start my PhD. There my research focuses on the verification of compilers for managed languages – like Java; concurrent garbage collection is really a fun topic.
It is my first time attending such a conference and my first time as well coming to Asia. I’ve just arrived after a long trip, and Beǐjīng looks so huge and full of people speaking Chinese only, which doesn’t make my life easier since I’m hardly understood by anybody here. I hope you’ll help me improving my (pathetic) Chinese-speaking skills.
Here a modest picture of an endless road inside Beǐjīng: right below the street lamp you can see on the left is where the shuttle from the airport dropped me. This narrow place in the middle of the road is indeed (according to the bus driver) the so called 安贞桥西 bus stop.
In addition to the fun of traveling, I’m really glad to be able to attend to PLDI and ECOOP. There will be a lot of interesting people, plenty of nice talks. This will surely be an enjoyable week!
I’m looking forward to meet you all tomorrow.
Ps: this has been posted from the USA through a ssh tunnel…
Friday, June 8, 2012
My name is Soha. I am excited about the conference, i've never been in a conference with such importance before. So i guess i'm a little bit tensed, but i'm sure that i'm going to enjoy it, meeting people in the same field, researchers whom i used to read their papers and admire their work, now i get the chance to actually meet them in person and talk about their work and my work. That is such a privilege.
I am also a volunteer at the conference, so hopefully that would put me into action right away. It is a nice opportunity to be part of the organization team, to see how they are actually making it happen, to socialize and make new friends.
See you all in a couple of days.
Wednesday, June 6, 2012
The biggest difficulty in all this is choosing what talks to make and what to miss. Between the two conferences, the several workshops, and all the tutorials, this is an insanely packed week.
And frankly, I can't wait for the conference. Yes, it should be fun and exciting, but also, we can call this conference program done. A note to whoever has to do the next conference: keep all the conference info in a master document whose starting format is easily translated. For this year, someone else did the website first, and the conference program was made from those pages. Blech. Getting good design and layout from a web page onto paper is a mess. Endless cut and pasting, and then endless last minute updates make for a mess and more work that is necessary.
Out of the three new reducers described in our paper, two of them are tied with Csmith, our random C program generator which has uncovered more than 450 previously unknown bugs in a variety of C compilers. Our best reducer, C-Reduce, is generic and capable of reducing any C programs. Since the paper was accepted, we have made our progress in adding C++ specific transformations. C-Reduce works much better on C programs by now.
Csmith and C-Reduce are both open-source software. Also, you can watch our development on github (Csmith repo and C-Reduce repo). Suggestions, critiques or patches are all welcome!
I am looking forward to meeting you guys in Beijing!
Sunday, June 3, 2012
I'm Luke Cartey, a 3rd year DPhil (PhD) student at the University of Oxford, working with Oege de Moor, my supervisor. My area of interest is language support for high-performance graphics cards - especially how we can generate efficient GPU programs from domain-specific languages.
I'm attending PLDI to present our paper, co-authored with Rune Lyngsoe, on "Synthesising Graphics Card Programs from DSLs". Working closely with Rune, a bioinformatician, we have come up with a high-level functional language for describing recursive problems in bioinformatics. This language can be augmented with a number of embedded extensions to support different applications.
In the paper we show how we can analyse this language to automatically identify and generate a parallel graphics card implementation that performs at a similar level to hand-coded GPU applications. The key to our technique is to keep our language simple, thus making it feasible to analyse the recursive dependencies. We use the polyhedral model to generate efficient code.
I'll be presenting our talk on Monday 11th June, in Session 2B - please do come along and find out more about our work!
Saturday, June 2, 2012
To make our work accessible to researchers and developers, we are launching thread-safe.org on the occasion of PLDI. The site allows to upload Java classes and to check their thread safety. If you have a class that is supposed to be thread-safe, just upload it and give our checker a try! During our evaluation, the tool was able to find previously unknown bugs in the JDK and in Apache Commons DBCP.
I'm looking forward to discussing interesting research at PLDI and hope that the conference will be an exciting experience for everyone!
Monday, May 28, 2012
Monday, May 21, 2012
Sunday, May 13, 2012
I will be presenting the paper "Race Detection for Web Application" which is a joint research with Prof. Martin Vechev from ETH Zurich, Manu Sridharan and Julian Dolby, both from IBM Research. We developed a tool, named WebRacer, which dynamically checks web-pages for concurrency errors leading to non-determinism and unwanted behavior.
I am very grateful and excited for the opportunity to visit PLDI, present my summer work in front of the top researchers in the world, get to meet great like-minded people and experience a unique culture! I'm sure it will be a great ride for all of us!
Hope to see you there,
Thursday, May 3, 2012
Wednesday, May 2, 2012
I'm Alina Sbirlea, a 3rd year Ph.D. student at Rice University in Houston, Texas, USA, working with Prof. Vivek Sarkar in the Habanero Multicore Software Research Group.
My research interests include compiler techniques, scheduling decisions and runtime optimizations, applied in particular for heterogeneous architectures.
This year I will be presenting at LCTES our paper on "Mapping a Data-flow Programming Model onto Heterogeneous Platforms", co-authored with Yi Zou, Zoran Budimlic, Jason Cong and Vivek Sarkar. I would be happy to see you there! This work is done in collaboration with University of California Los Angeles (UCLA) as part of an on-going project: Center for Domain Specific Computing. It is a challenging and greatly rewarding project. Check out our research goal!
I am looking forward to attending these conferences for the first time, learning of the latest research done by top researchers and well as meeting them and learning of their interests. It will also be my first visit to China and I plan to make the best of it while I'm there.
See you soon!
Tuesday, May 1, 2012
This year, I will be presenting a paper entitled "Speculative Separation for Privatization and Reductions." This paper was a collaboration with Hanjun Kim, Prakash Prabhu, Ayal Zaks, and David August. Come check it out!
I'm excited because PLDI'12 is a top venue for cutting-edge research. The talks will inspire you to look at your research in a different way. Plus it will take place in Beijing. I've never been to China before and I intend to explore the greater Beijing area after the conference, so let me know if you need an adventurous travel companion.
I look forward to meeting you all.
Monday, April 23, 2012
I'm Karim Ali from the University of Waterloo, Ontario, Canada. I'm currently doing my PhD under the supervision of Ondrej Lhotak in the field of programming languages and compiler construction. My research interests are now focused on partial call graph construction.
This is my first ECOOP conference. I'll be presenting our latest paper entitled "Application-only Call Graph Construction". The paper showcases our tool CGC that constructs sound partial call graphs for the application part of a program without analyzing the method bodies of its library dependencies.
I'm so excited to meet new people and chat about our research interests and life experiences. I'm also really looking forward to visit China for the first time in my life. I'm sure it's gonna be an amazing experience.
Hope to see you all soon,
Five months later, I will be a graduate student, but I have joined the state key lab of novel software in Nanjing University to do some research on software engineering especially about program analysis and testing. I am always looking forward to taking part in some international conferences to talk with some experts, and becoming familiar with the state of research.
I think this is a good opportunity to attend the top level international conference. In the conference, I expect to talk with many professors and experts in software engineering, and I will obtain lots of information about the state in software industry and research which can help me do better in research later. On the other hand, making friends with some international friends and keeping in contact with them after the conference are good for academic exchange. As an undergraduate, study is very important, so I am ready to study from the participants from different countries. In addition, I can obtain lots of extra knowledge that can’t be learned at school during the visit.
I am looking forward to meeting you all in Beijing.