General Development Archive

An Overview of PROMELA

PROMELA is not a programming language. PROMELA is a language for building verification models. As a result of this specialization, PROMELA contains many features that are not found in mainstream programming languages. These features are intended to facilitate the construction of high-level models of distributed systems. Gerard Holzmann provides an overview in this chapter from his book, "The SPIN Model Checker: Primer and Reference Manual."

Rexx for Everyone

It's easy to get lost in the world of "little languages" -- quite a few have been written to scratch some itch of a company, individual, or project. Rexx is one of these languages, with a long history of use on IBM operating systems, and good current implementations for Linux and other Free Software operating systems. Rexx occupies a useful ecological niche between the relative crudeness of shell scripting and the cumbersome formality of full systems languages.

Integer Handling with SafeInt Class; Visual C++ FP Optimization

David LeBlanc introduces a C++ template class that helps reduce the chances of incurring integer arithmetic errors in your code. The code is fast, flexible, and easy to use. Get a handle on optimizing floating-point code using the Microsoft Visual C++ (v8.0) method of managing floating-point semantics. Create fast programs while ensuring that only safe optimizations are performed on floating-point code.

Programming: A Conversation with Sun’s Victoria Livschitz

Is there something fundamentally misguided about the way we write programs today? Why is it so difficult, if not impossible, to write bug-free programs that contain more than 20 to 30 million lines of code? Do we need a radical new paradigm shift in programming? If so, what might it look like? One response came from Sun's Victoria Livschitz, a senior IT architect and Java Evangelist who has an interesting history.

IBM releases free Q104 Software Evaluation Kit — new 2-DVD set

Get the latest DB2, Lotus, Rational, Tivoli, and WebSphere Linux code from IBM on DVD, for free. This is the fastest way to get access to all of IBM middleware that has been ported to Linux. The package contains almost 8 GB of IBM tools and products at no charge, including Rational Rose and PurifyPlus, WebSphere Studio Site Developer, WebSphere SDK for Web services, WebSphere Application Server, DB2 Universal Database, Tivoli Access Manager, and Lotus Domino Server.

Resilient Technology Preview Released

Resilient is a secure, object-oriented, serviceable, real-time software platform for embedded devices. The platform enables developers to debug, profile, and update code running on embedded devices in the field, vastly improving reliability and development productivity. The compactness makes it possible to fit the virtual machine, core libraries, device drivers, TCP/IP networking stack, and user applications in less than 128KB of memory. The Resilient Technology Preview was released last week. It can be downloaded for free for non-commercial use.

GDI+ Graphics Transformation

Learn the basics of transformation, coordinate systems, the role of coordinate systems in the transformation process, and transformation functionality using GDI+ with C#. Find out how to distinguish among global, local, and composite transformations, how to use the Graphics class transformations in applications, and how to translate, scale, shear, and rotate graphics objects.

The C# Design Process: A Conversation with Anders Hejlsberg

After 13 years with Borland, Hejlsberg joined Microsoft in 1996, where he initially worked as an architect of Visual J++ and the Windows Foundation Classes (WFC). Then, Hejlsberg was chief designer of C# and a key participant in the creation of the Microsoft .NET Framework. Today, he leads the ongoing development of the C# programming language. On July 30, 2003, Bruce Eckel, author of Thinking in C++ and Thinking in Java, and Bill Venners, editor-in-chief of Artima.com, met with Anders Hejlsberg in his office at Microsoft. Check out the entire eight-part interview here.

Basic Use of Pthreads

Threads strike fear into the hearts of many programmers. UNIX's process model is simple and well understood, but it is sometimes inefficient. Threading can often allow for substantial improvements in performance, at the cost of a little confusion. This article demystifies the POSIX thread interface, providing practical examples of threaded code for consideration.

Business Service Grid, Part 6: In operation

A service domain applies autonomic computing principles for aggregating Web services and grid services. The service domain technology provides a service grid and can create, filter, discover, cluster, organize, select, route, recover, and switch Web services and grid services autonomically. Using service domain objects enables you to implement business solutions easily and quickly. In this article, we discuss how to invoke and access a service domain to start the operational phase.

C++: ACE Logging; .NET: Exception Handling, Logging, and Tracing

Every C++ program -- and every networking app -- needs a good logging mechanism. ACE provides you with more than one way to handle such things. Consider your application and how you expect it to grow over time. Your choices range from the simple ACE_DEBUG macros to the highly flexible logging service. Regarding .NET, exception handling is more than just throwing and catching objects. There are many design elements in providing a robust system, and providing a sound exception handling, logging, and tracing schema are among the first steps. In this chapter from ".NET Patterns: Architecture, Design, and Process" book, you'll learn best practices for determining when to throw, catch, and log your errors.