The principals and associates of The Refactory, Inc. are innovators in the practice of Software Tool development. Several of these powerful tools have set the industry standard in their field.
Refactoring Browser
The Principals and Associates of The Refactory, Inc. are the inventors of modern refactoring. Professor Ralph Johnson and Bill Opdyke, PhD coined the term refactoring in Dr. Opdyke's dissertation. Don Roberts completed the second PhD in the field with Professor Johnson. John Brant and Dr. Roberts created the Refactoring Browser, which was the first commercial refactoring tool for VisualWorks Smalltalk and laid the foundations for all modern refactoring tools. The browser has now been integrated into Cincom Smalltalk's VisualWorks® development environment.
The Refactoring Browser is a complete re-implementation of the standard system browsers for VisualWorks, VisualWorks/ENVY, and IBM Smalltalk. In addition to the features present in the standard browsers, the Refactoring Browser provides several refactorings that allow programmers to rapidly change their code without affecting its behavior. This allows programmers to quickly make design changes to existing code without having to worry about introducing errors into the code. In addition to the refactorings, the Refactoring Browser provides several productivity enhancements that programmers have requested to make the browser a better programming tool, and is the main VisualWorks Smalltalk Browser.
Method Wrappers
Method Wrappers can add hidden behavior to a method without recompiling it. They can be used to change a method's behavior. Commonly, they are used to add behavior before and after the default method executes. For example, we can create a coverage tool by using a method wrapper that increments a counter when it is called. If you would like more detailed information about method wrappers, you can read the ECOOP'98 paper Wrappers to the Rescue.
Sharp Smalltalk
The #Smalltalk compiler is available under the Open Software License version 1.1. The #Smalltalk class library is available under the MIT License. By installing the software you are agreeing to the terms of these licenses. To determine what license a particular source file is under, you can view the comment at the beginning of the file. Essentially, everything under the Compiler subdirectory and the compiler program is under the Open Software License and everything else is under the MIT License. By having the two licenses, you are able to compile and distribute programs without the limitation of them being under the Open Software License. However, if you modify and distribute the compiler, then that must be licensed under the Open Software License. If your company needs a different license, you can contact us.
SmaCC
SmaCC (Smalltalk Compiler-Compiler) is a freely available parser generator for Smalltalk. We have used SmaCC to write custom refactoring and transformation tools for several languages including Java, C#, and Delphi. These tools range from small scale refactorings to large scale migration projects. For example, we have used SmaCC to migrate a 1.5 million line Delphi program to C#.
SmaCC was developed under VisualWorks 7 and Dolphin 6.0 Professional by John Brant and Don Roberts. While it currently only runs on these platforms, it should be relatively easy to port to other platforms.