Journal Articles

CVu Journal Vol 11, #3 - Apr 1999
Browse in : All > Journals > CVu > 113 (22)

Note: when you create a new publication type, the articles module will automatically use the templates user-display-[publicationtype].xt and user-summary-[publicationtype].xt. 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/yourtheme/modules/articles . The templates will get the extension .xt there.

Title: Bits & Pieces

Author: Administrator

Date: 06 April 1999 13:15:30 +01:00 or Tue, 06 April 1999 13:15:30 +01:00

Summary: 

Body: 

BCS Publications' Offer

ACCU is affiliated to the BCS and so members might be interested in the following letter I received earlier this month.

Dear Chairman

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.

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.

Yours Faithfully

Withiel Cole

Publications Marketing Officer, British Computer Society, 1 Sanford Street, Swindon SN1 1HJ

Direct Dial : 01793 417500 Fax : 01793 417473 E-Mail: Web: http://www.bcs.org.uk/publicat.htm

Conference/Workshop

Testing C and C++

Overview

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.

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.

The day will comprise four sessions:

  • The power of C

  • Solutions through tools

  • Testing classes

  • Testing for re-usability.

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++.

The power of C

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.

Solutions through tools

Tools provide support for validating C programs in three ways:

  • monitoring code to ensure that house programming standards are maintained

  • analysing code to check the integrity of features such as the logical control flows, the use of data, and the module calling patterns

  • providing test harnesses and environments for testing program components.

We look at what can be achieved by these approaches, and how they work.

Testing classes

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.

Testing for re-usability

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.

Who should attend?

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.

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 www.unicom.co.uk

Software Visualization

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.

Announcement of the release of Leonardo IDE 3.3.1

A C programming environment for reversible execution and software visualization http://www.dis.uniroma1.it/~demetres/Leonardo/ 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.

Leonardo's executable file includes:

  • a text editor with syntax coloring (based on Marco Piovanelli's WASTE text engine)

  • 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)

  • a compiler for the logic-based ALPHA visualization language

  • a fully reversible virtual CPU for executing programs

  • built-in operating system facilities for process, I/O and memory management

  • an integrated logic-based general-purpose visualization system

  • a simple graph editor

Leonardo is distributed with a repository of C programs including several implementations of classical algorithms, animation demos and simple games such as Tetris.

Leonardo's package for the Macintosh (1.1 MB, PPC + MacOS 7.5 or higher only) is freely available at: http://www.dis.uniroma1.it/~demetres/Leonardo/

struct v class

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.

It is certainly true of all versions of Microsoft C++ (from 7 through to 6!). However, a "fix" 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.

(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 "translate" 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.

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.

Notes: 

More fields may be available via dynamicdata ..