This project analyzes Scheme programs, for the purpose of reverse engineering them. The primary target is visual reverse engineering with Moose; ScheMoose exports to the MSE format used by Moose. There is also an exporter of callgraphs to the dot format.
Written by Katerina Barone-Adesi in 2007 as part of her Bachelor’s project.
Please find below a mirrored copy of the project’s website, http://atelier.inf.unisi.ch/~baroneak/schemoose/index.html
ScheMoose is written in two languages, Scheme and Smalltalk. To use a minimal core of ScheMoose, only DrScheme is needed; this allows analyzing Scheme programs and exporting the results in mse or dot formats. DrScheme 360 is highly recommended; DrScheme 370 appears to work. DrScheme 208 is known not to work. To use the generated mse files, Visualworks Smalltalk 7.4 or above is needed, with Moose (version from the Bern Software Composition Group store recommended), and the parcel provided below. Visualworks 7.4.1 is recommended. The parcel is technically optional, but extended information (such as whether a function is recursive) will be ignored without it. The parcel has no effect on the generation of the MSE file; it is only useful for using it within Moose.
ScheMoose is available from svn. To check it out, use the following:
svn co --username guest https://evo.inf.unisi.ch/svn-repositories/kat-schemoose schemoose
The password is "luganoguest", without quotes.
After checking ScheMoose out from svn, cd schemoose/scheme. This is where the Scheme part of ScheMoose, which creates MSE (and dot) files from Scheme programs resides. To use it, run
mzscheme -i cmd.scm mse infile0 infile1 ... infileN outfile.mse
At least one input file (or directory) must be specified; any larger number can be. The part of the command in bold should not be changed. The name of the output file does not matter. To generate dot files, the process is the same, but the ’mse’ after cmd.scm needs to be replaced with ’dot’:
mzscheme -i cmd.scm dot infile0 infile1 ... infileN outfile.dot
Given a working installation of Visualworks (version 7.4.1 is recommended), and an image with Moose loaded, it’s possible to analyze the MSE files generated by ScheMoose. However, not all information is available unless the parcel found in the schemoose/smalltalk directory is loaded. This parcel contains extensions, for modelling features such as whether functions are recursive, as well as the custom size metric of the ScheMoose project, number of parentheses.
Install Moose. The installation instructions are for version VisualWorks 7.5, but this is currently an untested configuration with the parcel. Please report successes/failures. Import from an MSE file may be of interest.