T++ (язык программирования)

Материал из Национальной библиотеки им. Н. Э. Баумана
Последнее изменение этой страницы: 02:49, 22 мая 2016.
T++
Парадигма мультипарадигмальный: объектно-ориентированное, обобщённое, процедурное, метапрограммирование, функциональное, параллельное программирование
Спроектировано Институт программных систем РАН
Первый   появившийся 1980-е
Расширение файла .tpp

Т++ — язык программирования указания необходимости параллельных вычислений. Синтаксис и семантика Т++ расширяют язык C++ несколькими словами, указывающими на возможность проведения параллельных вычислений. Распараллеливание вычислений производится автоматически во время выполнения программы библиотекой времени исполнения интегрированной средой Т-системы.

История

Т-Система, как идея, появилась в Институте Программных Систем РАН в конце 1980-х годов. Основная идея: введение понятия Т-функции как поставщика неготовых значений, позволяющих выполнять несколько Т-функций на разных процессорах одновременно, достигая параллелизма.

В 1998 году МГУ активно приняло участие в проекте, что позволило проекту активно развиваться дальше. В 2000 г. Началось разработка новой реализации Т-Системы под кодовым названием GRACE в рамках российско-белорусского проекта «СКИФ».Но были допущены существенные недостатки реализации(плохая структура системы, отсутствие чёткой идеологии и т.д.), устранение которых приводило к снижению скорости и эффективности работы.

В 2002 году принято решение о написании новой реализации Т-Системы. получившей название OpenTS, или Т-система с открытой архитектурой. В OpenTS изначально закладывалась определённая архитектура. OpenTS прошла государственные испытания по проекту «СКИФ» на соответствие критериям программного обеспечения кластерного уровня.

В настоящее время в МГУ ведётся работа над двумя независимыми ветками OpenTS под условным названием NewTS.

OpenTS

OpenTS (Open T-System, Т-система с открытой архитектурой) представляет собой современную реализацию идей Т-системы, объединяет в себе наиболее удачные черты функционального программирования, dataflow-систем и традиционных языков и методов программирования. Т-система базируется на функциональной парадигме и предполагает определенные ограничения на стиль программирования в случае ее использования. Взамен она предоставляет бесконфликтную модель динамического распараллеливания, в которой невозможны взаимные блокировки и некорректный доступ к разделяемым переменным.

Пример

Реализация программы расчета чисел Фибоначчи:

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;
}

Ссылки

  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