Department of Computer and Information Science

 

Computer Science Seminar Series

Feelin' Groovy: An Afternoon of Reflexive Meta-programming


September 3, 3:00pm

Weir Hall, Room 235

Matt Stine
Senior Software Engineer
Research Informatics division of Information Sciences
St. Jude Children's Research Hospital


Abstract:

Groovy is an agile, dynamic language for the Java Virtual Machine (JVM) with a flexible, Java-like syntax and additional power features inspired by languages like Python, Ruby, and Smalltalk. This presentation will contain a brief introduction to the Groovy language, followed by a definition of reflexive meta-programming and Groovy's support of it. Particular attention will be given to Groovy's Meta Object Protocol (MOP) and its MetaClass concept. We will examine the options Groovy provides through its MOP for method interception, injection, and synthesis, and look at possible applications. The presentation will close with a look at internal domain specific languages (DSL's) and one could be constructed in Groovy.

Biography:
Matt Stine is a Senior Software Engineer in the Research Informatics division of Information Sciences at St. Jude Children's Research Hospital in Memphis, TN. He primarily spends days developing and supporting Java EE-based applications in support of basic life sciences research. He has been developing enterprise-scale as well as medium-scale web and desktop-based Java applications for St. Jude since 2000. Matt Stine is also the project manager for and a committer to St. Jude's open source Shared Resource Management system, STJUDE-SRM (http://stjude-srm.sourceforge.net). STJUDE-SRM was designed to support shared resource/core lab activities at biomedical research institutions. It was originally developed to support the laboratories at St. Jude's Hartwell Center for Bioinformatics and Biotechnology, but could be modified to support any number of facilities and/or institutions. Matt is a May 2001 graduate of Computer and Information Science department, University of Mississippi.


[ Home | Site Map ]