Projects   
   
CS564 - Computational Gene Regulation
The CELL - with Professor Hallett

My course project involves DEVS (specifically PyDEVS) and simulating protein traffic and folding within a eukaryotic cell. You can have a look at the report. It depicts the project's state when I submitted it. The log shows my updates to the project thereafter. If you want the latest version, just check if your log and my log have identical LAST UPDATE dates (near the top). If not, best to get the newer version. Once you download the source, check the README for instructions on how to use the package. This package does NOT contain the PyDEVS source, it must be obtained separately from the link above.

[report] [log] [source]
CS621 - Optimizing Compilers
Relational Aspects as Tracematches - with Professor Hendren and Eric Bodden

My course project involves building an extension to the abc compiler for compiling relational aspects to tracematches. More information can be found here. This project lead to a publication at AOSD '08. See my publications section for the paper. The implementation is now included with the abc distribution.
CS667 - Software Fault Tolerance
AspectOPTIMA - with Professor Kienzle

My course project involves OPTIMA (specifically AspectOPTIMA) and implementing object Persistence for transactions. Since no report was required, I will explain this project a bit. Within a transaction, you typically have a context in which threads manipulate objects. With the AspectOPTIMA framework, you are given a set of aspects that implement software fault tolerance techniques for transactions. These include object locking, tracing, sharing, etc..., context tracking, nesting, etc... and thread context participation, context outcome affecting, etc... For a complete look at AspectOPTIMA, have a look at Professor Kienzle's slides. So, if an object/context/thread inherits one of these aspects, it becomes possible for that object/context/thread to perform that software fault tolerant technique. The object fault-tolerant technique of persistence was not yet implemented, so I took on that task. At any point during a transaction, an object can now save and load itself to and from memory. This is very useful when you are about to do something that will change the state of an object. You can save/persist the object's state to memory. In case something erroneous occurs during the state change, you can load back the object's previous state from memory and no harm done. You can have a look at the project archive. Once you download the source, check the README for instructions on how to use the package. If you are new to aspect-oriented programming (because the implementation uses a lot of inter-type declarations), please email me for more information.

[source]
CS763 - Modelling and Simulation Based Design
A Modelica Statecharts Compiler - with Professor Vangheluwe

My course project involves Modelica and Statecharts. The two main goals were to first come up with a possible method of describing statecharts in Modelica (since no standard method exists as of yet) and second to build a compiler to compile these Modelica statecharts into executable code. We use Song's muModelica compiler and extend it with a statecharts extension. The compiler produces DES code, as described in Feng's thesis. Thus, the statechart compiler (SCC, available with the external utility pack of AToM3) is needed. If you need help setting these packages up, please email me. You can have a look at the report for full details. It depicts the project's state when I submitted it. The log shows my updates to the project thereafter. If you want to have the latest version, just check if your log and my log have identical LAST UPDATE dates (near the top). If not, best to get the newer version. Once you download the source, check the README for instructions on how to use the package. This package contains all that you need to compile to DES, nothing else needs to be downloaded except for SCC. The DigitalWatch example described in the report is not included with the project source because it is used as a course assignment!

[report] [log] [source]
Maintained by Reehan Shaikh. Last Modified: 2009/01/18 01:31:53.