[self-interest] (Aspects) Utilities in Lisp vs Design Patterns in Smalltalk- Self

David Harris dpharris at telus.net
Thu Apr 24 13:49:23 UTC 2003


But, in reality, most people design in both directions at once -- as it 
is important to thing about the low-level implementation at the same 
time as considering the overall stategy or hight-level shape of the 
program.  
David

Jecel Assumpcao Jr wrote:

>On Monday 21 April 2003 13:27, Albertina Lourenci wrote:
>  
>
>>First of all I would like if someone explain to me
>>if there are differences between bottom-up programming
>>and exploratory programming.
>>    
>>
>
>This is way off topic, but here is a short reply:
>
>Imagine that a program A is made up of components B, C and D. Suppose 
>that component C is made up of subcompenents E and F. This is a tree 
>structure, right? As is usual in computer science, imagine the tree 
>with the root (A) at the top.
>
>If you create this program by starting with A and ending with E and F 
>you will be doing "top-down design". "bottom-up design" goes in the 
>opposite direction.
>
>A problem with top-down design is that A can't really run if B, C and D 
>haven't been created yet. So the very first time you get to run the 
>program is when you have finished writing it! One solution is to create 
>small "place holder" components that are dummy versions of B, C and D 
>so you can test A and see if it works.
>
>With a proper interactive environment (such as Self) you can test E as 
>soon as you have written it. A more static environment would not allow 
>you to call E from a command line and would make you write a program to 
>call it (a dummy C, for example).
>
>Many people plan ahead in a top-down fashion and then program in a 
>bottom-up way. Others actually prefer to first think about the low 
>level components (leaves of the tree) and play around with them 
>exploring what they can do before moving on the the next level.
>
>A language like Forth forces you to program bottom-up since everything a 
>"word" refers to when it is defined must have been previously defined. 
>Lisp and Self allow references to things that might not yet exist.
>
>Aspects are "cross-cutting", as you said yourself, and would represent 
>an entirely different direction compared to the up/down axis.
>
>-- Jecel
>
> 
>
>Your use of Yahoo! Groups is subject to http://docs.yahoo.com/info/terms/ 
>
>
>
>  
>





More information about the Self-interest mailing list