"J-P. Rosen" wrote in message news:sjerti$5s1$1@dont-email.me... > Le 02/10/2021 à 11:34, Randy Brukardt a écrit : > >> No, the existing part also had major problems. Many of the terms were >> never >> defined, many possible effects were missing from the various lists of >> results, and loads of other things as well. > Huh? ASIS uses the terms of, and as defined in, the LRM. And I never hit a > "missing result". Curious to see what you are aluding too. Go back and read many of the SI99s. I'm not going to waste time doing it again. >>>> The entire model of ASIS doesn't make much sense for static analysis >>>> purposes, it's way too focused on syntax rather than semantics. > Yes, it is a description of the syntactic. Where else can you start from? The semantics, of course. You have a list of entities in a scope. The only interesting thing from the source code is the line/position of the declaration and/or use. The details of the source are irrelevant (such as whether optional keywords are given). >>> It is a exact image of the program, from which you can derive all >>> information you need. Some higher level queries are needed, but they can >>> be provided as secondary queries or added to the standard. >> >> That's exactly the problem. You start with the source code, which is way >> too >> low a level for any useful analysis. At most, you want a simple >> connection >> to the source in the semantic information, not trying to preserve every >> punctuation mark and comment. (Janus/Ada discards all of that stuff as >> soon >> as parsing succeeds.) If you need to refer to the original source, say >> for >> error handling purposes, then do that, but don't waste vast amounts of >> space >> and time trying to keep loads of irrelevant material. > The liaison to the source is not fundamental to any serious analysis, and > anyway you are not required to provide it. It's a basic part of the ASIS definition, and I fail to see how you could do much without it. You have to keep nonsense such as whether someone specified "in" or a matching id after "end". A waste of time and space. You also have to keep the entire program in a tree form, which is also dubious (Janus/Ada certainly does not do that). >> No sane compiler (validated or not) keeps all of the irrelevant syntactic >> detail required by ASIS. It ends up getting reconstructed solely for the >> use >> of ASIS, and how a rarely used interface is somehow more reliable escapes >> me. > Except for the not-required text interface, I see very few of these > "irrelevant syntactic details". OK, you have to keep a boolean to remember > if "end" is followed by a name. Big deal... It is a big deal when multiplied by dozens of such things. And that information has to be carried through from the front end -- we discard everything possible from the front end, as it cuts the I/O load and effectively doubled the speed of the compiler. Maybe doesn't matter as much these days, but back then it was a difference between running the ACVC in 5 days or 10 days. On the rest, we're going to agree to disagree. Don't expect any support from me for doing anything with ASIS in the ARG. Randy.