Resurrected Entertainment

Archive for February, 2013

Borland Turbo C++ v3.0

February 13, 2013

Turbo C++ IDE

In many ways I found my departure from C to C++ to be less than stellar. Sure, it brought to the table new paradigms and new capabilities, all of which were bright and shiny to new and experienced programmers alike, but hidden away in a pocket covered in lint was an even greater number of difficulties, obscure errors, and buggy or non-standard compilers.

Despite these problems, C++ still managed to shine and eventually the features began to rub off on me. Without a doubt, the three most important features of the language were encapsulation, inheritence, and polymorphism. Using these new capabilities programmers everywhere found new ways to leak memory, produce bugs, and blot their code; moreover, and somewhat less sarcastic, they also found new design patterns, complex adaptive software architectures, and spiffy new data structures that just made everything taste better. Where would the software world be without indecipherable meta-programming techniques and obscure job interview questions? Sorry, more sarcasm coming through.

Borland’s Turbo C++ was a fast 16-bit compiler created by Borland and was essentially a cheaper and less functional version of C++ Builder. Comparing it against cheaper tools at the time, it had many of the same capabilities as Microsoft’s QuickC compiler and provided a few new ones too. Most imporatantly, it could compile C++ and C source code while QuickC could only handle the latter. Like QuickC, it had a built-in debugger, but Turbo C++ was more feature rich than Microsoft’s incarnation. To be fair, Microsoft had a C++ compiler too, and it would not be a stretch to say it was one of the most popular compilers in the industry; however, it was also not the cheapest compiler to be had, and the Microsoft version didn’t support a lot of the C++ standard until recently but exactly which standard and to what degree is a hot topic which I won’t dive into here. Borland provided an implementation the AT&T C++ 2.1 standard with their product.

I remember the Turbo C++ compiler having more support for templates than most of the competition at the time. According to Wikipedia, the Borland product line was instrumental in the development of the Standard Template Library. I was wary of templates when I first encountered them back in the 1992. The problem was mostly due to documentation and compatibility. Many C++ books never even touched upon templates since few of the major compilers, including Microsoft’s, didn’t support them or supported them to such an extent to render them unusable. Professional programmers probably weren’t pushing for the technology either since it was so haphazard. Eventually this all led to poor interoperability between compilers even on the same operating system.

One major limitation with Borland’s product at the time was the inability to produce 32-bit executables. This feature was necessary if your program needed to use 32-bit protected mode for access to extended or expanded memory (there was a 286 16-bit protected mode available in Turbo C++ but it didn’t interest me). Because of this unfortunate limitation, I didn’t use the program for as long as I probably would have, and opted to use the famous port of the GCC compiler from DJ Delorie instead called DJGPP.

The Borland C++ line of products is now distributed by Embarcadero Technologies, which acquired all of Borland’s compiler tools with the purchase of its CodeGear division in 2008.

My Book Library

I like to read software development texts when I have the time, and over time, I have developed a sizeable game and graphics programming library. I also have a below average capacity to remember important details, although I am usually fairly good at remembering the big picture. Because of this, I often need to return to a text when I am involved in developing a new algorithm or researching information on existing topics. I have long desired a means by which I can add my books to a software library, and then have that library automatically index all of my books based on topical reference points.

When an author creates an index for their book, it is usually a tedious process of reading through the manuscript and finding the keywords and concepts they want to index, and then pouring over the manuscript looking for instances of those keywords and recording page numbers and related topics; there is software which can help with keyword indexing, but concepts are a little more tricky to isolate and cross reference. In either case, the result of all of this pain-staking labour is an index which should prove useful to the reader.

I want to take it a step further and take those indexes and make them searchable electronically along with extra-metadata, so that if I am researching a topic like collision detection, for instance, I can see which books in my library talk about it (and possibly the number of pages dedicated to the topic), along with a paragraph surrounding each hit to provide some context. Google Books is starting to provide such a service, but it’s mostly centred around indexing the brief cover summary and then offering related books for sale based on what it found. At the bare minimum, this service would require the electronic versions of the books which are much more prevalent these days but many authors or publishers do not want to share with Google. Do you know of a service which does a better job than Google Books?