Velocity Reviews - Computer Hardware Reviews

Velocity Reviews > Newsgroups > Programming > C Programming > Abstract Interpretation for C

Reply
Thread Tools

Abstract Interpretation for C

 
 
Tim Frink
Guest
Posts: n/a
 
      09-19-2007
Hi,

I'm looking for any references about Abstract Interpretation
applied to the language C. More precisely, I'm interested
in the abstract domain for C, i.e. how the full set of
C operations can be modeled as abstract operations.

Do you know any publications/books or Internet resources
concerning this topic? (I did not find anything on google.)

Best regards,
Tim

 
Reply With Quote
 
 
 
 
jacob navia
Guest
Posts: n/a
 
      09-19-2007
Tim Frink wrote:
> Hi,
>
> I'm looking for any references about Abstract Interpretation
> applied to the language C. More precisely, I'm interested
> in the abstract domain for C, i.e. how the full set of
> C operations can be modeled as abstract operations.
>
> Do you know any publications/books or Internet resources
> concerning this topic? (I did not find anything on google.)
>
> Best regards,
> Tim
>


Interesting. Maybe you could specify for the non initiated what do you
understand by "abstract operation" ?

Thanks
 
Reply With Quote
 
 
 
 
Army1987
Guest
Posts: n/a
 
      09-19-2007
On Wed, 19 Sep 2007 09:31:35 +0200, Tim Frink wrote:

> Hi,
>
> I'm looking for any references about Abstract Interpretation
> applied to the language C. More precisely, I'm interested
> in the abstract domain for C, i.e. how the full set of
> C operations can be modeled as abstract operations.
>
> Do you know any publications/books or Internet resources
> concerning this topic? (I did not find anything on google.)


This is from n1124.pdf, a draft for the future standard which so
far is essentially the current standard with technical corrigenda
incorporated in it. I don't understand whether this is what you're
looking for, though. HTH.

5.1.2.3 Program execution
1 The semantic descriptions in this International Standard describe the behavior of an
abstract machine in which issues of optimization are irrelevant.
2 Accessing a volatile object, modifying an object, modifying a file, or calling a function
that does any of those operations are all side effects,11) which are changes in the state of
the execution environment. Evaluation of an expression may produce side effects. At
certain specified points in the execution sequence called sequence points, all side effects
of previous evaluations shall be complete and no side effects of subsequent evaluations
shall have taken place. (A summary of the sequence points is given in annex C.)
3 In the abstract machine, all expressions are evaluated as specified by the semantics. An
actual implementation need not evaluate part of an expression if it can deduce that its
value is not used and that no needed side effects are produced (including any caused by
calling a function or accessing a volatile object).
4 When the processing of the abstract machine is interrupted by receipt of a signal, only the
values of objects as of the previous sequence point may be relied on. Objects that may be
modified between the previous sequence point and the next sequence point need not have
received their correct values yet.
5 The least requirements on a conforming implementation are:
— At sequence points, volatile objects are stable in the sense that previous accesses are
complete and subsequent accesses have not yet occurred.
-----------------------------------------------------------------
11) The IEC 60559 standard for binary floating-point arithmetic
requires certain user-accessible status
flags and control modes. Floating-point operations implicitly set
the status flags; modes affect result values of floating-point
operations. Implementations that support such floating-point state
are required to regard changes to it as side effects — see annex
F for details. The floating-point environment library <fenv.h>
provides a programming facility for indicating when these side
effects matter, freeing the implementations in other cases.
§5.1.2.3 Environment
13

ISO/IEC 9899:TC2 Committee
Draft — May 6, 2005 WG14/N1124 — At program
termination, all data written into files shall be identical to the
result that
execution of the program according to the abstract semantics would
have produced.
— The input and output dynamics of interactive devices shall take
place as specified in
7.19.3. The intent of these requirements is that unbuffered or
line-buffered output appear as soon as possible, to ensure that
prompting messages actually appear prior to a program waiting for
input.
6 What constitutes an interactive device is implementation-defined. 7
More stringent correspondences between abstract and actual semantics may
be defined by
each implementation.


--
Army1987 (Replace "NOSPAM" with "email")
If you're sending e-mail from a Windows machine, turn off Microsoft's
stupid “Smart Quotes” feature. This is so you'll avoid sprinkling garbage
characters through your mail. -- Eric S. Raymond and Rick Moen

 
Reply With Quote
 
Tim Frink
Guest
Posts: n/a
 
      09-19-2007
On Wed, 19 Sep 2007 09:54:45 +0200, jacob navia wrote:
>
> Interesting. Maybe you could specify for the non initiated what do you
> understand by "abstract operation" ?


Operations from the concrete language semantic (like C operator
"*=") transformed into an abstract semantic.

 
Reply With Quote
 
Walter Roberson
Guest
Posts: n/a
 
      09-19-2007
In article <(E-Mail Removed)>,
Tim Frink <(E-Mail Removed)> wrote:

>I'm looking for any references about Abstract Interpretation
>applied to the language C. More precisely, I'm interested
>in the abstract domain for C, i.e. how the full set of
>C operations can be modeled as abstract operations.


Would you say that you are looking for a Denotational Semantics
analysis of C?
--
"law -- it's a commodity"
-- Andrew Ryan (The Globe and Mail, 2005/11/26)
 
Reply With Quote
 
Keith Thompson
Guest
Posts: n/a
 
      09-19-2007
Tim Frink <(E-Mail Removed)> writes:
> On Wed, 19 Sep 2007 09:54:45 +0200, jacob navia wrote:
>>
>> Interesting. Maybe you could specify for the non initiated what do you
>> understand by "abstract operation" ?

>
> Operations from the concrete language semantic (like C operator
> "*=") transformed into an abstract semantic.


Okay, what is an "abstract semantic"?

Don't expect everyone here to understand what you mean by "abstract",
other than its ordinary English meaning. We understand C; we don't
necessarily understand the field of study whose terminology you're
using. If you can provide a pointer to something that explains it, we
might be able to help.

--
Keith Thompson (The_Other_Keith) http://www.velocityreviews.com/forums/(E-Mail Removed) <http://www.ghoti.net/~kst>
San Diego Supercomputer Center <*> <http://users.sdsc.edu/~kst>
"We must do something. This is something. Therefore, we must do this."
-- Antony Jay and Jonathan Lynn, "Yes Minister"
 
Reply With Quote
 
 
 
Reply

Thread Tools

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are Off


Similar Threads
Thread Thread Starter Forum Replies Last Post
Abstract Methods & Abstract Class Iyer, Prasad C Python 0 10-20-2005 06:35 AM
About abstract class and abstract method Sameer Java 4 08-31-2005 12:59 AM
Deriving abstract class from non-abstract class Matthias Kaeppler Java 1 05-22-2005 01:28 PM
Abstract class with no abstract functions Uzytkownik C++ 3 04-03-2005 05:45 PM
Abstract Classes w/o abstract methods DaKoadMunky Java 4 04-20-2004 04:53 AM



Advertisments