Lambda the Ultimate

inactiveTopic A Proposal For Classifying Tangled Code
started 8/24/2002; 3:11:56 AM - last post 8/26/2002; 7:35:34 AM
jon fernquest - A Proposal For Classifying Tangled Code  blueArrow
8/24/2002; 3:11:56 AM (reads: 1672, responses: 2)
A Proposal For Classifying Tangled Code
This paper classifies "tangled code" using small examples of actual source code: "Just as indiscriminate usage of the goto caused 'spaghetti code', as Knuth described it, the re-working of the code to satisfy aspects creates 'tangled code'" ( Aspect-oriented Programming: A Critical Analysis of a New Programming Paradigm, a paper that provides background on aspect-oriented programming, cross-cutting concerns, and tangled code)

...there is currently no common accepted foundation available describing how to compare aspect-oriented mechanisms. This makes it hard to determine if a new proposal really supplies a new solution for untangling code which is not already available in any other approach....Moreover, it must not be forgotten that object-oriented programming already provides some techniques for sharing code and hence permits to untangle code in some way.

It's a little hard to untangle the classification itself at times and they don't tell you how they are going to put their classification to work in comparing and choosing aspect-oriented mechanisms and approaches, but the idea of using simple examples of actual code to derive more precise definitions is admirable. Relevance to Programming Languages: Attempt to make the definition of "Aspect-Oriented Programming" more precise. (A Proposal For Classifying Tangled Code, Stefan Hanenberg and Rainer Unland)
Posted to Software-Eng by jon fernquest on 8/24/02; 3:22:28 AM

jon fernquest - Re: A Proposal For Classifying Tangled Code  blueArrow
8/24/2002; 3:36:28 AM (reads: 867, responses: 0)
My untangling of the tangling classification:

  • Cross-Cutting Code (what cross-cuts):
    • Unit Dependency:
      The code "needs some input from the units (classes,objects,methods) it cross-cuts."
    • Variabilities Within the Code:
      If there are variabilities then you need "a more complex composition technique, because the code changes when applied to a specific context."
    • Transformational property:
      The cross-cutting code changes/transforms the declaration or interface of the element (method/class/object) it is applied to.

  • Cross-Cutting Position in Existing Structures (how it cross-cuts):
    • Constant vs. Variable Cross-Cutting:
      Does the code have variabilities that allow it be added to new contexts?
    • Cross-Cutting Location:
      A cross-cutting location is embedded in potentially several affected units
    • Static vs. Dynamic Cross-Cutting:
      Does the cross-cutting code exist only for so long as the affected unit exists?

Manuel Simoni - Re: A Proposal For Classifying Tangled Code  blueArrow
8/26/2002; 7:35:34 AM (reads: 810, responses: 0)
More italian cuisine programming resources can be found on the WikiWikiWeb:

SpaghettiCode (Also known as Cpaghe++i code.)

RavioliCode (lotsa objects)

LasagnaCode is then a synonym for AlternateHardAndSoftLayers.

Buon Apetito!