    <rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:sy="http://purl.org/rss/1.0/modules/syndication/" xmlns:admin="http://webns.net/mvcb/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:content="http://purl.org/rss/1.0/modules/content/">
     <channel>
        <title>ACCU  :: Bits &amp; Pieces</title>
        <link>https://members.accu.org/index.php/articles/864</link>
        <description>Professionalism in Programming</description>
        <dc:language>en-us</dc:language> 
        <dc:creator>Administrator</dc:creator> 
        <admin:generatorAgent rdf:resource="http://www.xaraya.org" /> 
        <admin:errorReportsTo rdf:resource="mailto:webeditor@accu.org" />
       <sy:updatePeriod>hourly</sy:updatePeriod>
       <sy:updateFrequency>1</sy:updateFrequency>
       <docs>http://backend.userland.com/rss</docs>




<div class="xar-mod-head"><span class="xar-mod-title">CVu Journal Vol 11, #3 - Apr 1999</span></div>

<table border="0" cellpadding="1" cellspacing="0">
    <tbody>
    <tr>
        <td valign="top">
            Browse in :
       </td>
       <td valign="top">

                                            <a href="https://members.accu.org/index.php/articles/">All</a>

                     &gt;                         <a href="https://members.accu.org/index.php/articles/c76/">Journals</a>

                     &gt;                         <a href="https://members.accu.org/index.php/articles/c77/">CVu</a>

                     &gt;                         <a href="https://members.accu.org/index.php/articles/c132/">113</a>
<br />
</td>
   </tr>
   </tbody>
</table>




<div class="xar-error">
   <p>
 <strong>Note:</strong> when you create a new publication type,
the articles module will automatically use the templates
<em>user-display-[publicationtype].xt</em>
and <em>user-summary-[publicationtype].xt</em>.
If those templates do not exist when you try to preview or display a new article,
you'll get this warning :-)  Please place your own templates in themes/<em>yourtheme</em>/modules/articles . The templates will get the extension .xt there. </p>
</div>
<div class="xar-norm xar-standard-box-padding">
   <h1><strong>Title:</strong>&nbsp;Bits &amp; Pieces</h1>
<p><strong>Author:</strong>&nbsp;</p>
<p>
<strong>Date:</strong> 06 April 1999 13:15:30 +01:00 or Tue, 06 April 1999 13:15:30 +01:00</p>
<p><strong>Summary:</strong>&nbsp;</p>
<p><strong>Body:</strong>&nbsp;<div class="sect1" lang="en">
<div class="titlepage">
<h2><a name="d0e20" id="d0e20"></a>BCS
Publications' Offer</h2>
</div>
<p>ACCU is affiliated to the BCS and so members might be interested
in the following letter I received earlier this month.</p>
<p>Dear Chairman</p>
<p>It has been a while since I last contacted you regarding BCS
Publishing. In this time we have produced the 1999 BCS Review and
Directory, further titles have been added to the Practitioner
Series (Middleware, User Interface Design, The Renaissance of
Legacy Systems), and we will be releasing The Year 2000 Volume 4 on
the 12th March. Promotional material for these publications will be
forwarded to you as and when mailings are dispatched from
headquarters.</p>
<p>I am pleased to announce that we are now able to offer all
members of specialist groups (regardless of BCS membership) the
opportunity to buy our books at the reduced member rate. I would be
grateful if you could pass this information on, through e-mail,
events or any other suitable medium whenever possible. Thank you
for your time, I will inform you of future developments as and when
they happen and please don't hesitate to contact me with any
problems or queries.</p>
<p>Yours Faithfully</p>
<p>Withiel Cole</p>
<p>Publications Marketing Officer, British Computer Society, 1
Sanford Street, Swindon SN1 1HJ</p>
<p>Direct Dial : 01793 417500 Fax : 01793 417473 E-Mail: <tt class=
"email">&lt;<a href=
"mailto:wcole@hq.bcs.org.uk">wcole@hq.bcs.org.uk</a>&gt;</tt> Web:
<a href="http://www.bcs.org.uk/publicat.htm" target=
"_top">http://www.bcs.org.uk/publicat.htm</a></p>
</div>
<div class="sect1" lang="en">
<div class="titlepage">
<h2><a name="d0e44" id=
"d0e44"></a>Conference/Workshop</h2>
</div>
<div class="sect2" lang="en">
<div class="titlepage">
<h3><a name="d0e47" id="d0e47"></a>Testing C and
C++</h3>
</div>
<div class="sect3" lang="en">
<div class="titlepage">
<h3><a name="d0e50" id="d0e50"></a>Overview</h4>
</div>
<p>C and C++ are widely used programming lan-guages, competing with
COBOL in overall popu-larity and being the clear winner in the
real-time and operating systems sectors. C++ is an extended version
of C which seeks to bring the benefits of object-oriented
programming and improve on a few specific weaknesses of C, whilst
maintaining 98% upwards compatibility with C code.</p>
<p>C is liked for its power, flexibility, and conciseness. However
these features make C programs particularly error-prone. In order
to produce dependable systems in C we need to apply the highest
standards of code development and testing. The purpose of the
workshop is to examine what is needed and how it can counteract the
inherent weaknesses in the language.</p>
<p>The day will comprise four sessions:</p>
<div class="itemizedlist">
<ul type="disc">
<li>
<p>The power of C</p>
</li>
<li>
<p>Solutions through tools</p>
</li>
<li>
<p>Testing classes</p>
</li>
<li>
<p>Testing for re-usability.</p>
</li>
</ul>
</div>
<p>The first two of these are relevant to all C and C++ development
projects, whereas the third and fourth sessions look at the issues
that arise from the object-oriented extensions in C++.</p>
</div>
<div class="sect3" lang="en">
<div class="titlepage">
<h3><a name="d0e74" id="d0e74"></a>The power of
C</h4>
</div>
<p>C allows you to program almost any activity, including directly
interacting with the hardware environment. When written by an
enthusiast, the resultant code can be brief to the point of being
unreadable, with key areas of functionality being hidden in
side-effects of the visible statements. Code macros, pointers and
aliasing of variables add to the programmer's confusion. The
antidote is to adopt good design and implementation practices. We
examine the problems and solutions in this session.</p>
</div>
<div class="sect3" lang="en">
<div class="titlepage">
<h3><a name="d0e79" id="d0e79"></a>Solutions through
tools</h4>
</div>
<p>Tools provide support for validating C programs in three
ways:</p>
<div class="itemizedlist">
<ul type="disc">
<li>
<p>monitoring code to ensure that house programming standards are
maintained</p>
</li>
<li>
<p>analysing code to check the integrity of features such as the
logical control flows, the use of data, and the module calling
patterns</p>
</li>
<li>
<p>providing test harnesses and environments for testing program
components.</p>
</li>
</ul>
</div>
<p>We look at what can be achieved by these approaches, and how
they work.</p>
</div>
<div class="sect3" lang="en">
<div class="titlepage">
<h3><a name="d0e96" id="d0e96"></a>Testing
classes</h4>
</div>
<p>Classes are the most important building blocks of
object-oriented programs. Classes are not in themselves programs,
but rather they are templates which form the blue-print for program
components. Classes are themselves defined recursively to extend or
incorporate existing class definitions. This session will look at
questions such as how far we can mirror the generic definitions of
classes with equally generic tests, how much of an existing class
needs to be re-tested when an extended class is defined (known as
polymorphism), and how a hierarchical class structure can be
reflected by a hierarchical test structure.</p>
</div>
<div class="sect3" lang="en">
<div class="titlepage">
<h3><a name="d0e101" id="d0e101"></a>Testing for
re-usability</h4>
</div>
<p>One of the main motivations for adopting object-oriented
development is to re-use classes that have been developed for
earlier projects. At the lower levels this strategy has been
outstandingly successful, as we see in graphical user interface
packages found on Windows and Java computers. The adoption of
similar practices for higher level classes, which incorporate more
application related logic, has been very much slower. We look at
why this is the case, and how we need to extend our existing
testing practices to achieve a level of confidence that our code
will work correctly in future systems as well as in our current
implementation.</p>
</div>
<div class="sect3" lang="en">
<div class="titlepage">
<h3><a name="d0e106" id="d0e106"></a>Who should
attend?</h4>
</div>
<p>This workshop will provide essential guidance for Information
Technology strategists, project managers, designers, and team
leaders who are using, or planning to use, C or C++ for future
developments.</p>
<p>Contact: Julie Valentine, Events Commissioner, UNICOM Seminars,
Brunel Science Park, Kingston Lane, Uxbridge, Middx UB8 3PQ. Tel:
+44 (0)1895 256 484 Fax: +44 (0)1895 813 095 <a href=
"http://www.unicom.co.uk" target="_top">www.unicom.co.uk</a></p>
</div>
</div>
</div>
<div class="sect1" lang="en">
<div class="titlepage">
<h2><a name="d0e115" id="d0e115"></a>Software
Visualization</h2>
</div>
<p>I do not often publish product announcements but I am going to
make an exception for this one for two reasons. Do you know of any
similar free product for other platforms? Why does the announcement
leave mentioning the supported platform until the very end. This
kind of time-wasting arrogance/thoughtlessness is something we
could all do without.</p>
<div class="sect2" lang="en">
<div class="titlepage">
<h3><a name="d0e120" id="d0e120"></a>Announcement of
the release of Leonardo IDE 3.3.1</h3>
</div>
<p>A C programming environment for reversible execution and
software visualization <a href=
"http://www.dis.uniroma1.it/~demetres/Leonardo/" target=
"_top">http://www.dis.uniroma1.it/~demetres/Leonardo/</a> Leonardo
is an integrated environment for the development, reversible
execution and visual debugging of C programs. It is especially well
suitable for algorithm animation purposes.</p>
<p>Leonardo's executable file includes:</p>
<div class="itemizedlist">
<ul type="disc">
<li>
<p>a text editor with syntax coloring (based on Marco Piovanelli's
WASTE text engine)</p>
</li>
<li>
<p>a compiler for the ANSI C language (with no optimization but
dead code elimination and some restrictions, mostly on the
still-under-construction available standard libraries)</p>
</li>
<li>
<p>a compiler for the logic-based ALPHA visualization language</p>
</li>
<li>
<p>a fully reversible virtual CPU for executing programs</p>
</li>
<li>
<p>built-in operating system facilities for process, I/O and memory
management</p>
</li>
<li>
<p>an integrated logic-based general-purpose visualization
system</p>
</li>
<li>
<p>a simple graph editor</p>
</li>
</ul>
</div>
<p>Leonardo is distributed with a repository of C programs
including several implementations of classical algorithms,
animation demos and simple games such as Tetris.</p>
<p>Leonardo's package for the Macintosh (1.1 MB, PPC + MacOS 7.5 or
higher only) is freely available at: <a href=
"http://www.dis.uniroma1.it/~demetres/Leonardo/" target=
"_top">http://www.dis.uniroma1.it/~demetres/Leonardo/</a></p>
</div>
</div>
<div class="sect1" lang="en">
<div class="titlepage">
<h2><a name="d0e158" id="d0e158"></a>struct v
class</h2>
</div>
<p>These two keywords are only supposed to differ in the default
access. Unfortunately Visual C++ does not quite see it that way.
The following is a posting from one of the lead developers of
CodeWarrior.</p>
<div class="blockquote">
<blockquote class="blockquote">
<p>It is certainly true of all versions of Microsoft C++ (from 7
through to 6!). However, a &quot;fix&quot; will invalidate the mangled names
in every LIB (whether static or import) ever produced by these
compilers, since the encoding of either struct or class will have
to change.</p>
<p>(I'm assuming that all libraries use a mixture of struct and
class. This is certainly true of anything derived from the
notorious MFC.) A future version of the linker could &quot;translate&quot;
and this would fix those who link statically or at load-time or by
ordinal. For run-time dynamic linking by name (admittedly rare for
a mangled name), the translation would need to be performed by the
operating system loader. All of this is a lot of hassle for a
fairly obscure (and generally avoidable) issue.</p>
<p>MS are still some distance from complying with the rest of the
standard, so don't hold your breath on this one. De facto, struct
and class are distinct on the Windows platform.</p>
</blockquote>
</div>
</div>
</p>
<p><strong>Notes:</strong>&nbsp;</p>
<p><em>More fields may be available via dynamicdata ..</em></p>
</div>
</channel>
</rss>
