Доброго времени суток.
Есть идея следующей темы для бакалаврской работы:
Применение лямбда исчисления во встраиваемых системах.
(ограничения памяти, условие реального времени, работа с памятью (сборка мусора))
Конкретно хотелось бы проанализировать следующие моменты:
- Возможность динамического распаралеливания вычислительного процесса (скорее теоретическая возможность)
- Применение ленивых вычислений. Анализ из воздействия на вычислительный процесс с точки зрения производительности и сбережения памяти.
- Анализ возможных вариантов реализации событийного поведения без нарушения функциональной парадигмы.
- Нахождение алгоритмов, позволяющих вычислить необходимые временные затраты на выполнение определенного блока кода. (в результате должны получаться либо интервалы, либо формулы, по средствам которых можно вычислить необходимое число атомарных действий, в зависимости от размеров рекурсивных структур данных (списки, деревья))
Причины, по которым выбрана данный стиль программирования.
- Наличие строгой математической модели в основание (лямда исчисление). Согласно которой можно строить вычислительный процесс.
- Высокая степень надежности кода, написанного на данных языках. (Это связано с тем, что все функции в системе, представляют из себя "чёрные ящики")
- Высокая скорость разработки.
В рамках бакалаврской работы планируется помимо описание проделанной работы и описанных выше пунктов.
- Описание основ лямбда исчисление.
- Написание модели интерпретатора гипотетического языка программирования, в котором будут реализованы все необходимые функции. На интерпретаторе будет проводиться моделирование исполнения кода. В частности соответствие формул реальной ситуации. (по сути, планируется что он будет представлять из себя специфическую форму лямбда абстракции, с возможностью именования функций.)
Хотелось бы услышать комментарии подобной задумки. Её осмысленности.
Уже существуют некоторые мысли на предмет реализации данных вещей, но пока они ещё слишком "сырые" для их изложения.
В качестве дальнейшего развития данной идеи может послужить создание интерпретатора байт кода гипотетического языка для одного из стендов SDK.