| Some Smalltalks (Squeak and Pharo) have a wonderful tool called a "Method Finder". The way it works is you write a sequence of arguments and an expected result, and it suggests a method to call. For example, I just now tried it, entering 3. 4. 7
in the input. It suggested the following methods: 3 + 4 --> 7
3 bitOr: 4 --> 7
3 bitXor: 4 --> 7
Clicking on any of these opens a browser on the class and method concerned.Another example: input of 'hello world'. #('hello' 'world')
yielded the single suggestion 'hello world' substrings --> #('hello' 'world')
Another: ' abc '. 'abc'
yields ' abc ' asLegalSelector --> 'abc'
' abc ' withBlanksTrimmed --> 'abc'
;;--It's a total hack, of course, but none the less effective or useful for that. It has a list of methods marked "safe to experiment with", and simply tries them out. It gets a big boost from being able to evaluate the receiver (the first in the input list) to a concrete object, and then only consider methods on that object's class. |
So how did you know what to search for? A simple case was to look up the ready-built application's GUI which usually always contains some strings. So if you wanted to change something in the system which would result in a change to its GUI just search for source-code with some of the words you saw in the GUI.