Path: utzoo!attcan!utgpu!utstat!jarvis.csri.toronto.edu!rutgers!cs.utexas.edu!csd4.milw.wisc.edu!leah!rpi!sun.soe.clarkson.edu!cline From: cline@sunshine.ece.clarkson.edu (Marshall Cline) Newsgroups: comp.lang.c++ Subject: A C++ Macro Package implementing *Assertions* (was: Re: Eiffel vs. C++) Message-ID: Date: 8 Jun 89 14:08:05 GMT References: <2689@ssc-vax.UUCP> <77300029@p.cs.uiuc.edu> Sender: news@sun.soe.clarkson.edu Reply-To: cline@sun.soe.clarkson.edu (Marshall Cline) Organization: Clarkson University, Postdam NY Lines: 35 In-reply-to: johnson@p.cs.uiuc.edu's message of 6 Jun 89 16:22:00 GMT In article <77300029@p.cs.uiuc.edu> johnson@p.cs.uiuc.edu writes: [...deleted stuff...] >I think that assertions are one of the most attractive things about >Eiffel... >Eiffel assertions are a first step to making the theory of software >verification practical... It seems obvious to me that they will help >make software a lot more reliable. >It is interesting to note that our operating system written in C++ >makes heavy use of assertions. A student implemented assertions >using a macro package... ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^ More more more. I'm salivating thinking about it. Do you mean that the grad student simply created a standard way to state assertions? Are they (the assertions) usable in any formal way? Ie: Do you sometimes expand them into: #define assertion(bool_expr) if (!(bool_expr)) print_nasty_msg() Or do you have tools that formally check method correctness which use the assertions as constraints??? More more more. Tell me more! Seriously: I'm interested in this line of thought, being that I have a software engineering bent. Given the flavor of this newsgroup, perhaps others would be interested as well. Waddayasay? Wanna post the macros? Cheers. Marshall -- ________________________________________________________________ Marshall P. Cline ARPA: cline@sun.soe.clarkson.edu ECE Department UseNet: uunet!sun.soe.clarkson.edu!cline Clarkson University BitNet: BH0W@CLUTX Potsdam, NY 13676 AT&T: (315) 268-6591