Edward B. Duffy

Learn More
Many software development tools that assist with tasks such as testing and maintenance are specific to a particular development language and require a parser for that language. Because a grammar is required to develop a parser, construction of these software development tools is dependent upon the availability of a grammar for the development language.(More)
A profiler can provide valuable information to a developer to facilitate program optimization, debug-ging or testing. In this paper, we describe the use of the Decorator pattern for non-intrusive profiling of object-oriented applications. We provide a formal specification of the Decorator pattern, and show that the pattern can be used as a program(More)
In this paper, we present JUMMP, the Job Uninterrupted Maneuverable MapReduce Platform, an automated scheduling platform that provides a customized Hadoop environment within a batch-scheduled cluster environment. JUMMP enables an interactive pseudo-persistent MapReduce platform within the existing administrative structure of an academic high performance(More)
In this paper we present the design and implementation of a fully automated technique for reverse engineering or recovering a grammar from existing language artifacts. The technique that we describe uses only test cases and a parse tree, and we apply the technique to a dialect of the C++ language. However, given test cases and a parse tree for a language or(More)
We present an approach for reverse engineering a program to capture design and implementation artifacts such as metrics and UML class or sequence diagrams. We also describe an implementation of our approach, libthorin. However, unlike previous reverse engineering tools, libthorin can be applied to a variety of programming languages including C, C++, Java,(More)
This paper presents the development of a Hadoop MapReduce module that has been taught in a course in distributed computing to upper undergraduate computer science students at Clemson University. The paper describes our teaching experiences and the feedback from the students over several semesters that have helped to shape the course. We provide suggested(More)
In this paper, we describe a system, Hylian, for construction of a language-complete abstract semantic graph that can be used for statement-level analysis, both static and dynamic, of a C++ application. We begin by extending the GNU <i>gcc</i> parser to generate parse trees in XML format for each of the compilation units in a C++ application. We then(More)
Laparoscopic surgery is a minimally invasive surgical technique where surgeons insert a small video camera into the patient's body to visualize internal organs and use small tools to perform surgical procedures. However, the benefit of small incisions has a drawback of limited visualization of subsurface tissues, which can lead to navigational challenges in(More)