Day 1 was `action packed', to say the least. There were a few lectures and a lab session which went on till 8pm (and maybe even later - but I stopped at 8). After realizing what a complex beast GCC is, we did some hands-on work which clarified many of the ideas introduced during the lecture. We are basically learning how to create machine descriptions for GCC. One misconception which I had was that a machine description is just that - a way to describe a machine's architecture to GCC. But we soon realized that that was not the case. Simply knowing a machine's architecture in no way prepares you to fully comprehend the difficulties associated with writing machine descriptions. There are way too many details to be understood and there seems to be inadequate documentation - in this context, this effort of IITB faculty needs to be lauded.
The basic idea is this - GCC converts our code to an abstract syntax tree which is then transformed to what is called RTL form which then undergoes optimizations and finally yields target assembly code. Machine descriptions help us translate the AST to RTL as well as the RTL to assembly language. These descriptions are written in Lisp-like syntax (the reason might be that Stallman was a Lisp programmer).
During the lunch break, I visited the real-time systems lab - they are developing some cool (and low cost) robots there. I will try to get one of them for our school activities.
The workshop lectures are being videotaped - the content will be released under a Creative Commons license. It seems there is an effort going on at IITB to make high-quality technical educational content available freely to everybody. Check out Project Eklavya
It's past midnight now and the hostels (like all college hostels) are getting more and more active! I am moving over to my own room tonight. Time to stop writing and give the machine back to Bestin who is managing with a laptop while I indulge in my blogging!