My FOSS.IN/2009 talk abstracts

FOSS.IN/2009 Poster

A couple of my talks have been shortlisted, but the abstracts won’t be up on the site until a week before the conference. So here are the abstracts. I’ve just started preparing the talks, so feedback is appreciated.

An Insight into CPython Compiler Design

The objective of this talk is to give the audience an insight into compiler design, specifically the design of the CPython compiler. The talk attempts to do this by taking apart the Unladen Swallow codebase.

Starting from a small hand-waving discussion using block diagrams, we will discuss compiler optimization techniques introduced by Unladen Swallow using revision control to playback changes. There is (and will be) no original research; only implementation of ideas from existing research papers.

A significant portion of the talk will be dedicated to compiling Python bytecode to LLVM IR (in Python/llvm_compile.cc), and the eval loop (in Python/eval.cc). While there are thousands of possible optimizations, only those which yield significant benefits and are in line with CPython’s objectives will be discussed.

Intended audience: Programmers interested in understanding (and ultimately contributing to) compiler projects like Clojure, Unladen Swallow, GHC.

Prerequisites: Requires a basic understanding of language grammers and parsing [1], as well as elementary compiler design [2]. The talk will jump right into the codebase with little introductory material, so the audience is required to do a little background reading.

[1] Flip through the relevant parts of the Dragon Book
[2] Scheme’s eval-apply loop from SICP should do fine

Haskell Internals

The session will focus on writing clever code in non-monadic Haskell, by solving several problems modeled on problems in [http://projecteuler.net] and [code.google.com/codejam/]. It will serve as an introduction to folds, maps, laziness, lexical closures, and other core features of functional programming in Haskell, while also attempt to give a small peek into the working of the Glasgow Haskell Compiler.

Target audience: People interested in functional programming and people interested in scientific computing.

Prerequisites: Ideally none. But since  the session intends to have little introductory material, a quick read through some jargon will be necessary.

Tags: , , , ,

5 Responses to “My FOSS.IN/2009 talk abstracts”

  1. Zaki Manian Says:

    This looks like an amazing set of topics for talks. Makes me doubly sad that I’ll miss FOSS.IN again.

    Have you seen this undergrad thesis on an LLVM implementation of Haskell?
    http://www.cse.unsw.edu.au/~pls/thesis/davidt-thesis.pdf

    It contains a highly readable discussion of Haskell internals

  2. Ramkumar Says:

    @Zaki: Wow! It’s hard to believe that it’s an undergrad thesis. It’s extremely readable. Thanks for the recommendation! I intend to use some parts in my Haskell talk :)

  3. Sriram Narayanan Says:

    Nice talks.

    Could you present to the BangPypers too ? There would be some of us who would be unable to attend FOSS.IN :(

    – Sriram

  4. Ramkumar Says:

    @Sriram: Sure, I’d love to. Are there enough people in Bangalore who can attend a BangPypers meeting but can’t attend FOSS.IN?

  5. Noufal Ibrahim Says:

    I think there would be since FOSS.in is on weekdays. I personally will probably miss your FOSS.in talk but will definitely show up for the BangPypers one (as I usually do).

Leave a Reply