4 Future Work
Bytecode is a useful format to program with. The language is much simpler than full-blown Racket. Besides this simple command-line explorer, here are a few ideas for future tools.
See also the project’s issue tracker.
4.1 Checking two files for differences
Code search – find a library function similar to a code chunk
Detect malware / corrupted files
Cheating detection software
See S6 project for inspiration. Also, possibly, MOSS.
4.2 More Search Options
The current find tool is very simple. It is only string matching on struct names. You need to know what structs are available before using it at all.
Search for an identifier from the source code.
Search for patterns of structs (lambdas containing if-statements, I dunno)
Find contracts, or instances of another higher-order construct.
Search for often-run structs.
4.3 Bytecode Graphs
Working with the REPL gives a nice idea of that the struct hierarchy in the bytecode looks like. With a paper and pencil, I can trace out the whole picture for myself.
Unless space / efficiency becomes a problem, we should be able to generate a picture. Possibly use the racket-explorer, or maybe just make a graphical tool for Dr. Racket and record the images as the user steps through. (Imagine a REPL that remembered the picture of a user’s search path.)
4.4 Dr.Racket Integration
The command line is nice, but an interactive panel within Dr. Racket would be much nicer. One of these days.