Tutorial intro:
C++ is and incredible versatile and powerful programming language directly supporting object oriented programming, generic
programming, and C style procedural and structured imperative programming. Couple C++ with the BOOST LIBRARIES,
Standard Template Library (STL), EyeDB and Trolltech's QT or the KDE libraries you have unprecedented expressive power to
talk to your computer.
The normal course taken when C++ is first introduce to an application level developer is to show construct and tools within the
C++ language normally used by C++ library or system level developer. It has been my experience that this makes C++ seem
more complex to use in developing application. I will show in these tutorials that strategically using the BOOST LIBRARIES,
and the STL, for application development is no more difficult than using a language like BASIC.
PROLOG and certainly MERCURY to many including me are considered to be the highest level programming language
available. MAUDE a high-performance reflective language and system supporting both equational and rewriting logic
specification can express just any idea in just about anyway you want to the computer.
You maybe asking yourself, what does this have to do with C++? Well, I actually know of people who write there C/C++ code as
if they where writing assembler(machine language) code for an embedded device when in reality they were writing GUI
applications. They developed that style of coding because they were introduce to C++ development while coding for
embedded devices using assembler or low level C/C++ constructs such as pointers. Although an extreme example it does shows,
at least as far as my experience has shown, that people are not easily swayed from bad habits once learned; especially when
those bad habits provide a workable if not elegant solutions to their problems.
The programming languages PROLOG, MERCURY and MAUDE force you to provide your programming solution at highest
possible level. It is a level comparable to what you would write for another human to review: In PROLOG and MERCURY you list
a set of facts then questions are asked and solution are given based on the facts known by your program, MAUDE you formally
define an Algebra and ask the system questions about that Algebra. The beauty of MAUDE is its near perfect control of it own
language; you could write an algebra for C++ almost as it is represented in the ANSII standard.
I will show in a side by side comparison with these languages that it is reasonable to expect an Object Oriented Program (OOP)
to have the same level expressibility.
Before starting I will introduce you to MERCURY, MAUDE and C++. After the introduction PROLOG, MERCURY, MAUDE and
C++ will be used to solved a set of problems from their own perspective.
If you know just one of the following programming languages C#, C++, PHP, PASCAL, JAVA, BASIC, FORTRAN etc. it is highly
probable if shown a program written in one of the other languages you will understand what is going on. This would not be the
case if MERCURY, PROLOG, or MAUDE were thrown into the mix.
The art of using these three programming languages are extremely different from the set of language given above.
Introduction to:
- C++
- MAUDE
- PROLOG & MERCURY
Now that we have had our introduction to C++, MAUDE, PROLOG and MERCURY lets now consider the solution to a few
programs including the Cramers AI.
Technology Bandwagon:
Always wanting to find a better way to express my ideas to the computer I have jumped on just about every new programming
language that I had access to. C# and JAVA I looked into in the late 1990s, much to my disappointment
I have about 5 years exposure to C# and JAVA programming languages. Other than their massive libraries I see them as a great
waste of my C++ bandwidth. The last time I even bothered looking at each language was about the end of the year 2003.
- C# .NET bandwagon. Even after my comprehensive review for two weeks starting March 30th, 2009 of C# 3 with .NET
3.5 I still consider language a waste of my C++ bandwidth only to be use for the purposes of obtaining work.
- JAVA bandwagon
Core Projects:
Fun Projects:
Links of interest:

2008-present © Copyright Michael George Hart. All rights reserved.