2.2. Cogent Products

2.2.1. Gamma
Q: Why should I use Gamma when I already know C / C++?
Q: What's the difference between Slang and Gamma?
2.2.2. SRR Module
Q: Is the SRR Module thread-safe?

2.2.1. Gamma

Q: Why should I use Gamma when I already know C / C++?
Q: What's the difference between Slang and Gamma?
Q:

Why should I use Gamma when I already know C / C++?

A:

Gamma is more flexible and easier to program than C or C++. At the same time, the Gamma syntax is quite similar to C and C++ so Gamma is easy to learn. Most important, though, Gamma is specifically designed to write control software for industrial applications, performing any number of complex tasks quickly and reliably. It has been used to build control systems for the food industry, robotic control systems for the automotive world, and sophisticated airborne navigation software for mineral exploration companies.

Q:

What's the difference between Slang and Gamma?

A:

"Gamma" is the new name for Slang. We changed the name when we ported the language to Linux because there is a language for Linux called S-Lang and we didn't want to cause any confusion or conflict.

Concurrent with the name change, the syntax has changed a little bit from Slang to Gamma:

    The '-' and '*' characters are no longer legal characters in identifiers.

    All instances of '-' and '*' have been changed to '_' in function and variable names.

    Signal names such as *sigsegv* have been changed to their C counterparts, such as SIGSEGV.

2.2.2. SRR Module

Q: Is the SRR Module thread-safe?
Q:

Is the SRR Module thread-safe?

A:

No. The QNX4 message passing model is task-based, so the task is the smallest execution quantum in the eyes of the SRR Module. Even if the libraries were made thread-safe, there would be no way to emit a message to or from a particular thread within a process. If you want to use the SRR Module in a multi-threaded process, you must designate one thread as a communication thread, and use only that thread for all SRR Module calls.