John Brant’s research while affiliated with University of Evansville and other places

What is this page?


This page lists works of an author who doesn't have a ResearchGate profile or hasn't added the works to their profile yet. It is automatically generated from public (personal) data to further our legitimate goal of comprehensive and accurate scientific recordkeeping. If you are this author and want this page removed, please let us know.

Publications (14)


Extreme maintenance: Transforming Delphi into C#
  • Conference Paper

October 2010

·

1,014 Reads

·

12 Citations

John Brant

·

·

Bill Plendl

·

Jeff Prince

Sometimes projects need to switch implementation languages. Rather than stopping software development and rewriting the project from scratch, transformation rules can map from the original language to the new language. These rules can be developed in parallel to standard software development, allowing the project to be cut over without any loss of development time, once the rules are complete. This paper presents a migration project that used transformation rules to successfully convert 1.5 MLOC of Delphi to C# in 18 months while allowing existing Delphi development to continue.


The SmaCC transformation engine: how to convert your entire code base into a different programming language

October 2009

·

281 Reads

·

7 Citations

The SmaCC Transformation Engine is a workbench for building program transformation systems. It has been used to create a wide variety of transformations ranging from simple refactorings to much larger ones, such as converting entire code bases between languages. We will demonstrate how the system works, present a quick overview of the architecture of the generated transformers, describe how typical large scale transformations, such as a migration project, proceeds perform several small transformations of a formula language, and demonstrate some larger, inter-language migrations.


Tools for making impossible changes - experiences with a tool for transforming large Smalltalk programs

May 2004

·

75 Reads

·

16 Citations

IEE Proceedings - Software

In a commercial system, performing large, invasive changes, such as changing an entire infrastructure layer, is often impossible because development on a system cannot be halted for any significant amount of time. Performing such changes require tools that can perform mass transformations on the source code. One approach is to use tools that can do global search and replace on the entire program structure. However, simple text-based tools are too simplistic for program text. To make accurate changes in a large program the tool must be based on parsing the program text. The paper describes the requirements for such a tool, the shortcomings of this approach, and describes one such tool for the Smalltalk language. This tool, the Refactoring Browser Rewrite Engine, is based on pattern matching of parse trees. The paper then presents three case studies in the successful application of this tool in commercial settings and discusses the shortcomings of such an approach. "impossible adj. - 1 b felt to be incapable of being done, attained, or fulfiled : insuperably difficult. - Merriam-Webster Dictionary".


E. Jul (Ed.): ECOOP'98, LNCS 1445, pp.396-417, 1998.

August 2002

·

20 Reads

Wrappers are mechanisms for introducing new behavior that is executed before and/or after, and perhaps even in lieu of, an existing method. This paper examines several ways to implement wrappers in Smalltalk, and compares their performance. Smalltalk programmers often use Smalltalk's lookup failure mechanism to customize method lookup. Our focus is different. Rather than changing the method lookup process, we modify the method objects that the lookup process returns. We call these objects method wrappers.Wehaveused method wrappers to construct several program analysis tools: a coverage tool, a class collaboration tool, and an interaction diagramming tool. We also show how we used method wrappers to construct several extensions to Smalltalk: synchronized methods, assertions, and multimethods. Wrappers are relatively easy to build in Smalltalk because it was designed with reflective facilities that allow programmers to intervene in the lookup process. Other languages differ in the degree to which they can accommodate change. Our experience testifies to the value, power, and utility of openness.



Unknown

November 1998

·

7 Reads

This paper contains a collection of patterns for database reporting applications. While there are many different aspects of reporting, this paper focuses on the ability to create new reports at runtime. It does not discuss user interface issues or good database design. This pattern language consists of patterns that pull data from the database and those that manipulate data after it has been extracted from the database. This is accomplished by converting both queries and formulas into objects. These objects are then assembled into reports through the high-level Report Objects pattern. Introduction These database reporting patterns are based upon our research using VisualWorks Smalltalk to dynamically generate reports that map to a relational database. We discovered these patterns while we were building a Business Modeling tool for Caterpillar. Although these patterns were written with Smalltalk in mind, we feel that they are applicable to anyone building reporting applications. Furthe...


Creating reports with query objects

November 1998

·

22 Reads

·

4 Citations

This paper contains a collection of patterns for creating database-reporting applications. While there are many different aspects of reporting, this paper focuses on the ability to dynamically create formulas and queries so that new reports can be generated at runtime. It does not discuss user interface issues or good database design. These patterns pull data from the database and manipulate data after it has been extracted from the database. This is accomplished by converting both queries and formulas into objects. These objects are then assembled into reports through the high-level Report Objects pattern.


The Refactoring Browser

July 1998

·

21 Reads

·

10 Citations

Lecture Notes in Computer Science

The refactoring browser is a complete re-implementation of the standard Smalltalk system browser, which incorporates automatic refactorings into the tool. In addition to the browser, the accompanying Smalllint tool can quickly detect hard-to-find errors and style violations.


Fig. 1. removeFirst method in OrderedCollection
Fig. 2. MethodWrapper on removeFirst method
Fig. 3. Class collaboration graph of the Refactoring Browser
Fig. 4. Interaction Diagram on the Refactoring Browser 
Fig. 5. Browser with pre and postconditions 
Wrappers to the Rescue.
  • Conference Paper
  • Full-text available

January 1998

·

424 Reads

·

62 Citations

Download


Citations (12)


... To measure the quality of source code, a number of widely used metrics are utilized, with wellestablished industrial strength tools and frameworks, such as TICS [17], CodeSonar [4] and VerifySoft [19]. Code metrics are useful means to detect decays and code smells [9] that hinder future evolution and maintenance. ...

Reference:

Validating Quality Metrics of State Machine ModelsValidating Quality Metrics of State Machine Models
Refactoring: Improving the Design of Existing Code
  • Citing Book
  • January 1999

... The work presented in this article takes its roots on the implementation of Refactorings as done by J. Brant and D. Roberts [2,3,4] and their evolution as available in Pharo [29]. Since multiple developers maintained and evolved the original code, our analysis will report a situation that is not the one described in the original document. ...

An automated refactoring tool
  • Citing Article

... Migration is all Modernization process that moves from one Provenance technological environment to a Destination technological environment that is in relation of mutual exclusion (either for technological or strategical reasons) with the Provenance environment. There are many kinds of migrations, like source code translation proposed by [5,24,27], GUI migrations proposed by [37,14,28], or library migration [42, 9, 27] 8 Renovation. Renovation is all processes that recover a system from Decadence, achieving better internal quality, or a better understanding of the internal structure. ...

Extreme maintenance: Transforming Delphi into C#
  • Citing Conference Paper
  • October 2010

... detail how we can easily describe the complete syntax and semantics of Pharo [2] (a Smalltalk dialect) using MOGs and ASL. In fact, as it has been previously shown in [19], Smalltalk and Pharo rules for messages and message-sends are cumbersome to express in formalisms other than MOGs (such as: CFGs, PEGs or handwritten top-down parsers), since the complicated ordering of these rules has to be manually hard-coded (this is the case for e.g., for other Smalltalk parsers build with SmaCC/LALR [3], PetitParser/PEG [18,23] or RBParser which is hand-written). ...

The SmaCC transformation engine: how to convert your entire code base into a different programming language
  • Citing Conference Paper
  • October 2009

... Finally, it is the IDE that produces the source code of the newly created class and that inserts this code in the correct locations. Another example is the refactoring 1 support of the VisualWorks IDE [4]. When a programmer decides to pull up a method (move it to the superclass), he right-clicks the method and selects the " pull-up " menu item after which the IDE performs the actual modifications to the source code in order to execute the method pull up. ...

The Refactoring Browser
  • Citing Conference Paper
  • July 1998

Lecture Notes in Computer Science

... Our prototype transformation tool makes sweeping changes to a program when it applies a pattern, and it is an open question whether a programmer would be content to allow a large system to be updated in this way. Indeed, a software tool can fail in practice for any number of reasons [21], and arguing abstractly that it is nevertheless useful is futile. Our position is that a programmer will use a software tool only if they have a very clear mental model of what the tool does. ...

``Good Enough'' Analysis for Refactoring.
  • Citing Conference Paper
  • January 1998

Lecture Notes in Computer Science

... Mutable Tree is an approach in which tree nodes can be easily deleted, added or changed. It is quite appealing due to its simple implementation and convenient API, and therefore it is used in tools like IntelliJ Platform [6], Smalltalk Refactoring Browser [10], and CRefactory [11]. However, this approach has many disadvantages, such as problems with updating node offsets and lengths, and the need for synchronization in multi-threaded code. ...

A Refactoring Tool for Smalltalk.

Theory and Practice of Object Systems

... This is the most popular response, reported by more than 60% of the respondents who regularly use an environment with refactorings tools. This problem has been addressed in the refactoring research community by creating restructuring scripts [13][44][57], which are discussed in detail in Section 5.3. Essentially, while restructuring scripts may provide the flexibility that programmers desire, existing scripting languages have usability problems, a factor that may decrease, rather than increase, refactoring tool adoption. ...

Tools for making impossible changes - experiences with a tool for transforming large Smalltalk programs
  • Citing Article
  • May 2004

IEE Proceedings - Software