Sophie

Sophie

distrib > Mandriva > 2010.0 > i586 > by-pkgid > 2fc07611b08d4a735fd34d5eb60d8e16 > files > 2243

ciao-1.10p8-3mdv2010.0.i586.rpm

<HTML>
<HEAD>
<!-- Created by texi2html 1.56k + clip patches and <A href="http://www.clip.dia.fi.upm.es/Software">lpdoc</A> from ciao.texi on 28 January 2007 -->

<LINK rel="stylesheet" href="ciao.css" type="text/css">
<TITLE>The Ciao Prolog System               - Run-time checking of assertions</TITLE>
</HEAD>
<BODY> 
Go to the <A HREF="ciao_1.html">first</A>, <A HREF="ciao_64.html">previous</A>, <A HREF="ciao_66.html">next</A>, <A HREF="ciao_241.html">last</A> section, <A HREF="ciao_toc.html">table of contents</A>.
<P><HR><P>


<H1><A NAME="SEC288" HREF="ciao_toc.html#TOC288">Run-time checking of assertions</A></H1>
<P>
<A NAME="IDX4256"></A>


<P>
<STRONG>Author(s):</STRONG> German Puebla.


<P>
<STRONG>Version:</STRONG> 1.10#7 (2006/4/26, 19:22:13 CEST)


<P>
<STRONG>Version of last change:</STRONG> 1.9#283 (2004/2/13, 15:39:33 CET)


<P>
This library package allows the use of run-time checks for the assertions introduced in a program. 


<P>
The recommended way of performing 
<A NAME="IDX4257"></A>
<A NAME="IDX4258"></A>
<EM>run-time checks</EM> of predicate assertions in a program is via the Ciao preprocessor (see <CODE>ciaopp</CODE> manual), which performs the required program transformation. However, this package can also be used to perform checking of program-point assertions. 



<UL>
<LI><A HREF="ciao_65.html#SEC289">Usage and interface (rtchecks)</A>
<LI><A HREF="ciao_65.html#SEC290">Documentation on exports (rtchecks)</A>
<LI><A HREF="ciao_65.html#SEC291">Documentation on internals (rtchecks)</A>
<LI><A HREF="ciao_65.html#SEC292">Known bugs and planned improvements (rtchecks)</A>
</UL>



<H2><A NAME="SEC289" HREF="ciao_toc.html#TOC289">Usage and interface (<CODE>rtchecks</CODE>)</A></H2>

<div class="cartouche">

<UL>

<LI><STRONG>Library usage:</STRONG>

<CODE>:- use_package(rtchecks).</CODE>

or

<CODE>:- module(...,...,[rtchecks]).</CODE>

<LI><STRONG>Exports:</STRONG>


<UL>

<LI><EM>Regular Types:</EM>

<A NAME="IDX4259"></A>
<CODE>expr/1</CODE>.

</UL>

<LI><STRONG>Other modules used:</STRONG>


<UL>

<LI><EM>System library modules:</EM>

<A NAME="IDX4260"></A>
<CODE>rtchecks/rtchecks_sys</CODE>.

</UL>

</UL>

</div class="cartouche">



<H2><A NAME="SEC290" HREF="ciao_toc.html#TOC290">Documentation on exports (<CODE>rtchecks</CODE>)</A></H2>
<P>
<A NAME="IDX4261"></A>
<A NAME="IDX4262"></A>
<DL>
<DT><span class="define">REGTYPE:</span> <B>expr/1:</B>
<DD><A NAME="IDX4263"></A>


<P>
<STRONG>Usage:</STRONG> 

<UL>
<LI><EM>Description:</EM> A property formula.

</UL>

</DL>



<H2><A NAME="SEC291" HREF="ciao_toc.html#TOC291">Documentation on internals (<CODE>rtchecks</CODE>)</A></H2>
<P>
<A NAME="IDX4264"></A>
<A NAME="IDX4265"></A>
<DL>
<DT><span class="define">PREDICATE:</span> <B>check/1:</B>
<DD><A NAME="IDX4266"></A>


<P>
<CODE>check(Property)</CODE>


<P>
Checks whether the property defined by <CODE>Property</CODE> holds. Otherwise, a warning message is issued. It corresponds to a program-point 
<A NAME="IDX4267"></A>
check assertion (see section <A HREF="ciao_59.html#SEC266">The Ciao assertion package</A>).


<P>
<STRONG>Usage:</STRONG> <CODE>check(Property)</CODE>

<UL>
<LI><EM>The following properties should hold at call time:</EM>

A property formula.
 (<CODE>user(... /rtchecks_doc):expr/1</CODE>)
</UL>

</DL>



<H2><A NAME="SEC292" HREF="ciao_toc.html#TOC292">Known bugs and planned improvements (<CODE>rtchecks</CODE>)</A></H2>


<UL>

<LI>

All the code in this package is included in the user program when it is used, ant there is a lot of it! A module should be used instead.

<LI>

<CODE>check/1</CODE> uses lists instead of "proper" properties.
</UL>

<P><HR><P>
Go to the <A HREF="ciao_1.html">first</A>, <A HREF="ciao_64.html">previous</A>, <A HREF="ciao_66.html">next</A>, <A HREF="ciao_241.html">last</A> section, <A HREF="ciao_toc.html">table of contents</A>.
</BODY>
</HTML>