T++ (язык программирования)
Последнее изменение этой страницы: 02:49, 22 мая 2016.
Парадигма | мультипарадигмальный: объектно-ориентированное, обобщённое, процедурное, метапрограммирование, функциональное, параллельное программирование |
---|---|
Спроектировано | Институт программных систем РАН |
Первый появившийся | 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;
}
ISSN 2542-0356
Следуй за Полисом
Оставайся в курсе последних событий
Лицензия
Если не указано иное, содержание этой страницы доступно по лицензии Creative Commons «Attribution-NonCommercial-NoDerivatives» 4.0, а примеры кода – по лицензии Apache 2.0. Подробнее см. Условия использования.