A mathematical foundation of reflexion?
Laurent Martelli
martelli@iie.cnam.fr
14 Jan 2000 01:32:39 +0100
>>>>> "Massimo" == Massimo Dentico <m.dentico@teseo.it> writes:
Massimo> Laurent Martelli wrote:
[...]
Massimo> [remember that a colon definition is a procedure
Massimo> difinition] As a metric I did some analysis of code
Massimo> examples Chuck has provided. The numbers I find most
Massimo> interesting is that the length of the average colon
Massimo> definition is 44 characters. The length of the longest
Massimo> colon definition was 70 characters. This is a sign that he
Massimo> has factored, factored, factored. How big are the average
Massimo> definitions in your code? Smaller definitions are easier
Massimo> to code, easier to test, etc.
>> And harder to understand when there are too many of them. It is
>> easier to understand a program made of a single 10 lines function
>> than one made of 10 function of one line. [...]
Massimo> On what is it based your judgment?
With one function, you read the program sequentially. As long as you
can remember the first line you are reading the last one, it's OK.
With 10 functions, you'll have to mentally emulate the call stack each
time you encounter a function call. This requires more concentration,
I think. Especially when you have big depth of the call tree.
It may not be a problem if the function is well known to you (`sinus'
for instance), because you don't have to inspect it's code to know
what it does : you know this just by seeing the name if the
function. But if the function was only introduced in order to increase
code reuse, I think it does not help understanding the program. At
least at first sight. But I admit that if you look at a lot of
programs which happen to use the same functions, those functions will
become familiar to you.
--
Laurent Martelli
martelli@iie.cnam.fr