comp.lang.ada
 help / color / mirror / Atom feed
From: "Marc A. Criley" <mcNOSPAM@mckae.com>
Subject: Re: ANNOUNCE: Avatox 1.8 is now available
Date: Sat, 01 Sep 2007 15:33:46 -0500
Date: 2007-09-01T15:33:46-05:00	[thread overview]
Message-ID: <251dc$46d9cc72$433a558c$31832@API-DIGITAL.COM> (raw)
In-Reply-To: <1272606.X88MrAQ2va@linux1.krischik.com>

Martin Krischik wrote:
> Marc A. Criley wrote:
> 
>> AXF is seen as a first step--First let's get the Ada into a more
>> malleable form that can be processed by XML tools and technologies.
>> Then it becomes more amenable to content extract and transformation,
>> with Avatox generating "AXFPoint" (AXF Points Of INformation for
>> Transformation) elements to to assist with transformations by providing
>> information beyond that of the basic ASIS-derived semantic information.
>>
>> In other words, AXF -> UMI would be easier than Ada -> UMI because
>> you've lessened the "impedance mismatch" between the source and target.
>>   In addition, if you want to change the way Ada constructs are mapped
>> to UMI (or any other target), or if you need to adapt to a revised UMI,
>> it's almost always going to be much simpler to alter an XML
>> processor--especially if it's stylesheet based--than the Ada-to-XML
>> generator.
> 
> So:
> 
> .adb ==Avatox==> .axf ==XXX==> .xmi ==xmi2code==> .adb
> 
> is easier then 
> 
> .adb ==Avatox==> .xmi ==xmi2code=> .adb

Actually, yes :-)

The reason is that adb => AXF is an almost mechanical translation, AXF 
being an XML representation of the ASIS-derived structure of the source 
program. And not least, Avatox is pretty much done.

Going directly from Ada to XMI, however, is a much more analytical 
problem, requiring the mapping of Ada constructs to XMI equivalents. 
And from what I've experienced with Source Code 2 Design Model 
converters (for any language) they don't do a great job.  I mean, what 
comes out is a pretty prosaic representation of the _code_ as UML (or 
whatever) artifacts.  You would not have diagrammed the system this way, 
and to try to employ some higher level intelligence in the converter to 
recognize programming idioms and abstractions and then map _those_ to 
"better" XMI requires a lot more work (and the fact that I don't see it 
in commercial tools tells me that it requires a LOT more work).  Also, 
AXF retains _all_ the information in the original source, including 
comments, line/column extents (which gives you the original whitespace), 
etc.  Going from source code to model you tend to start omitting things 
because of the differing levels of abstraction.

> Only we would need XXX ;-).

Yes, which could be built incrementally.  Instead of trying to go 
straight from AXF (or Ada source) to XMI, you can do some filtering, 
some simple transformations, some more filtering, some pattern 
recognition, some transformations, and eventually end up with XMI.

In this case you then have:

   .adb ==[Avatox+AXF2XMI]==> .xmi ==xmi2code=> .adb

And there you go!  Have at it!  :-)

-- Marc A. Criley
-- McKae Technologies
-- www.mckae.com
-- Avatox - DTraq - XIA - XML EZ Out



  reply	other threads:[~2007-09-01 20:33 UTC|newest]

Thread overview: 7+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2007-09-01  1:10 ANNOUNCE: Avatox 1.8 is now available Marc A. Criley
2007-09-01  7:46 ` Martin Krischik
2007-09-01 12:43   ` Marc A. Criley
2007-09-01 15:10     ` Martin Krischik
2007-09-01 20:33       ` Marc A. Criley [this message]
2007-09-02  0:15         ` Jeffrey Creem
2007-09-04 17:57   ` vgodunko
replies disabled

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox