Езици за програмиране

Incremental C++ - съвременни REPL решения и изследвания

Анотация

Интерактивният/Incremental C++ представлява възможност за изпълнение на C++ код в реално време, като потребителят може да въвежда и тества свои програми директно в среда, която поддържа интерактивност (REPL подход). Една от съвременните реализации на този подход в C++ е Clang-Repl - система базирана и разширяваща възможностите на Clang.

Въпреки възможностите си за висока производителност, C++ не е първият език за програмиране, който идва на ум за бързо разработване на надеждни приложения, главно поради дългите цикли редактиране-компилиране-изпълнение. Това се премахва от системи от рода на Cladg-Repl, което ги прави "C++ интерпретатора" Clang-Repl практически приложим за: Data Science (Интерактивно изследване на данни и интерфейси, което прави сложните библиотеки и данни по-достъпни за потребителите), CUDA (Разширението на Clang-Repl с CUDA пренася работата на Interactive C++ към GPU, без да губи производителност и съвместимост със съществуващия софтуер), Проучвателното програмиране (Бързо възпроизвеждане на резултатите, което е от решаващо значение по време на проучвателната фаза на проекта), Jupyter Notebooks (Interactive C++ може да се интегрира с Jupyter Notebooks, осигурявайки бързо прототипиране и визуално учебно съдържание за потребителите на C++) и др.

Текущите изследвания в проекти като Cling, Clang-Repl, Xeus-cpp и др. имат за цел да предоставят практически използваеми интерактивни възможности на езика за програмиране C++. Идеята е да се даде възможност за динамична оперативна съвместимост, за бързо създаване на прототипи и проучвателно програмиране, които са от съществено значение за научните изследвания и др.

Необходимо време

1-2 години.

Съвременни подходи при Автоматичното диференциране (AD)

Анотация

Автоматичното диференциране (AD) е полезна техника в области на научни изследвания като машинно обучение, изчислителна геометрия, физика, оптимизация и др. Този подход се различава от символичното диференциране и численото диференциране. AD позволява автоматично изчисляване на производни на функции (зададени най-често като код написан на ЕП от високо ниво, например C++) с висока точност и ефективност. Една от съвременните системи, реализираща AD е Clad. Тя позволява автоматично диференциране на C++ код, като се основава на инфраструктурата на LLVM и е плъгин за компилатора на Clang. Тя не само опростява процеса на диференциране, но също така подобрява производителността и точността на числените изчисления в научните приложения.

В научните изследвания, където преобладават сложните математически модели, използването на AD чрез инструменти като Clad носи ново ниво на възможна сложност и скорост на изчисленията. Използвайки AD в C++ компилаторите, изследователите могат да се съсредоточат повече върху научните аспекти на своята работа, вместо да затъват в ръчни задачи за диференциране. Тази автоматизация не само ускорява процеса на разработка, но също така гарантира, че изчисленията са без грешки и с възможно най-ниска цифрова нестабилност.

Въпреки многото възможности на Clad тук има и много широко поле за развитие и иновации в сферата на AD и нейните приложения.

Необходимо време

1-2 години.

Визуален редактор на схеми на потоците на данни (dataflow)

Цели

Реализация на .NET базиран визуален редактор на схеми на потоците на данни (dataflow).

Описание

Dataflow схемите са класическа нотация за описание на процеси на обработка на данни. Те изразяват потоците на данни (flowchart, dataflow diagram).

Областта на дипломната работа свързана с областта на визуалните езици за програмиране. Дипломантите ще придобият по-широки познания по програмиране, разработване на специализирани визуални дизайнери/редактори за специфични области (домейни). Ще бъдат приложени на практика съвременни подходи за дизайн и реализация на обектно-ориентирани визуални приложения (като MVC и други).

Сложност

Ниска/Средна.

Необходимо време

6-12 месеца.

Необходими предварителни познания

Необходими са познания в следните области:

  • .NET (основно C#)
  • Схеми на потоците на данни (Dataflow diagram)
  • MVC
  • Компютърна графика

Визуален редактор на блок схеми

Цели

Реализация на .NET базиран визуален редактор на блок схеми.

Описание

Блок схемите са класическа нотация за описание на алгоритми или процеси. Те изразяват потоците на контрола (flowchart, control flow diagram).

Областта на дипломната работа свързана с областта на визуалните езици за програмиране. Дипломантите ще придобият по-широки познания по програмиране, разработване на специализирани визуални дизайнери/редактори за специфични области (домейни). Ще бъдат приложени на практика съвременни подходи за дизайн и реализация на обектно-ориентирани визуални приложения (като MVC и други).

Сложност

Ниска/Средна.

Необходимо време

6-12 месеца.

Необходими предварителни познания

Необходими са познания в следните области:

  • .NET (основно C#)
  • Блок схеми (Control flow diagram)
  • MVC
  • Компютърна графика

Визуален редактор на математически формули

Цели

Реализация на .NET базиран визуален редактор на математически формули.

Описание

Математическата нотация е широко разпространен подход за записване и изразяване на формули, изрази и функции.

Областта на дипломната работа свързана с областта на визуалните езици за програмиране. Дипломантите ще придобият по-широки познания по програмиране, разработване на специализирани визуални дизайнери/редактори за специфични области (домейни). Ще бъдат приложени на практика съвременни подходи за дизайн и реализация на обектно-ориентирани визуални приложения (като MVC и други).

Сложност

Ниска/Средна.

Необходимо време

6-12 месеца.

Разпространи съдържание