Browsing by Author "Bandyopadhyay, Rajarshi"
Now showing 1 - 2 of 2
Results Per Page
Sort Options
Item Compiling dynamic languages via statically typed functional languages(2009) Bandyopadhyay, Rajarshi; Taha, WalidDynamic languages enable rapid prototyping, but are generally not viewed as providing the best performance. As a result, software developers generally build a prototype in a dynamic language and then rewrite the application in C or Fortran for high performance. This costly rewriting step can be avoided by improving the performance of dynamic languages. Dynamic languages are usually interpreted for easier implementation. The traditional approach to improve their performance is to build an optimizing compiler. However, building a compiler from scratch is much more time-consuming than implementing an interpreter. Our thesis is that we can build effective compilers for dynamic languages by translating them into statically typed functional languages which have good compilers and automatic memory management. In particular, we believe that modern statically typed languages provide precise control over data representations, and come with runtime systems that have competitive performance. To investigate the viability of this approach, we have built a compiler for the dynamic language Python by translating it into the statically typed functional language OCaml. An interesting practical advantage of using modern statically typed functional languages is that they use Hindley-Milner type systems, which means that there is no need for the translation to construct type terms. We compare the performance of our implementation, Monty, with that of CPython, the reference Python implementation, and with Jython, a Java implementation of Python, using a suite of 370 benchmarks. Our experiments show that some programs compiled using our approach run up to 4.6 times faster than CPython. However, due to a number of engineering reasons, some programs also run significantly slower than CPython. We pinpoint the specific causes of performance degradation and assess the potential for removing these causes in future work. Our implementation is significantly faster than Jython, up to a factor of 100 in some cases. A by product of our research is a proposal for an improved array copying implementation in OCaml.Item Predicting protein-protein interactions from primary structure(2002) Bandyopadhyay, Rajarshi; Subramanian, DevikaOne of the key challenges in the post-genomic era is to understand protein-protein interactions on a large scale. Given the primary structures of proteins and ligands, along with other information, how well can we computationally predict protein-protein interaction networks? We train Naive Bayes classifiers to classify positive and negative examples of protein-ligand interactions. Such a predictive model can screen large numbers of potential ligands, saving laboratory time and costs. We demonstrate our approach in predicting interactions between SH3 domains and proline-rich ligands. Using laboratory data, we construct positive and negative examples, learn Naive Bayes models of ligand binding specificity of 8 diverse SH3 domains and visualize our models using an information theory-based measure to reveal potential binding sites. We use our classifiers to screen PxxP ligands from SwissProt for the given SH3 domains and demonstrate improvements over existing predictors. For validating our method, we use our technique to predict a computational interaction network and intersect it with an experimental yeast 2-hybrid network, using the methodology and data from Tong et al. [TDN +02]. Our technique produces comparable results to Tong et al., even without incorporating their consensus sequences.