T++ (programming language)

From Bauman National Library
This page was last modified on 21 May 2016, at 23:50.
Paradigm multiparadigmality: object-oriented, generalized, procedural, metaprogramming, functional, parallel programming
Designed by Program Systems Institute
First appeared 1980-е
Filename extensions .tpp
Website None

T ++ - a programming language indicate the need for parallel computations syntax and semantics that extend the C ++ language. The parallelization is automatically runtime library IDE T system at runtime, that is dynamic, which extends the IDE C ++ Microsoft Visual Studio patch.


In the late 1980s, the idea of ​​the T-Systems began in the Program Systems Institute. The main idea was to introduce the concept of T-function as providers of so-called unprepared values, allowing for multiple T-functions on different processors and due to this to achieve parallelism.

In 1998, the project has found a rebirth with the active participation of the Moscow State University. In 2000, work on the implementation of the new T-Systems codenamed GRACE was launched in the framework of "SKIF" Russian-Belarusian project.

the decision was made in 2002 about writing a new implementation of T-Systems. It is named OpenTS, or T-system with open architecture. In contrast to the two previous implementations, initially laid in OpenTS defined architecture based on previous experience in the development of the system options.

At present, the Moscow State University is working on two independent branches OpenTS codenamed NewTS.


T-System - a means of automatic dynamic parallelization of programs, designed to facilitate the development and use of complex parallel programs and their effective use in the various, including heterogeneous hardware.

OpenTS (Open T-System, T-system with an open architecture) - is a modern implementation of T-Systems. It provides automatic dynamic parallelization of programs and provides the runtime environment for a high level of T ++ programming language, which is a parallel dialect of C ++.

The main ideas of the T-Systems

1. The function described with the keyword tfun (so-called T-function), is the main object (pellets) parallelism. Recording type:

tfun int f (int a, double b)

describes the T-function with two arguments and one output value.

2. Call T does not cause blocking function program until completion of the T-functions. The result is an unfinished call value (T-value).

3. Unready value can be assigned to the T-variable. Operation T-variable assignment unprepared values ​​does not cause blocking of the program. T-described variable indicating the keyword tval. Record

tval int x;

describes a T-variable of type int.

4. When calculating the T-function corresponding to the value of unfinished becomes ready and then repeats the behavior of normal values ​​of the base type.

5. The operation of taking the value or reduction to the base type for the T-variable is blocking the function as long as the value of the variable T will not be ready.


An example of the program calculate the Fibonacci numbers:

tfun int fib(int n) {
  return n < 2 ? n : fib(n-1) + fib(n-2);

tfun int main (int argc, char *argv[]) {
  if (argc != 2) { printf("Usage: fib <n>\n"); return 1; }
  int n = atoi(argv[1]);
  printf("fib(%d) = %d\n", n, (int)fib(n));
  return 0;

External links

  1. http://www.opents.net/index.php/ru/lang-tpp#tpp-common
  2. http://www.botik.ru/~abram/temp-T-system/tpp.u.html
  3. http://ops.rsu.ru/download/ops/ShulzhenkoDiss.pdf
  4. https://ru.wikipedia.org/wiki/T%2B%2B
  5. http://www.opents.net/index.php/ru