Non-Conforming Programming Languages Lab
Что за название?
- Non-Conforming Programming Languages Lab
- Лаборатория Нон-Конформистских (Немейнстримных) Языков Программирования
Что за лаборатория?
- Кто-то должен заниматься непрактичными вещами
- "Нет ничего практичнее хорошей теории"
- Иногда нужны заведомо корректные программы или алгоритмы
- Некоторым не нравится писать boilerplate и legacy code
Right tool for the job
- Имитационное моделирование
- Распределённые системы
- Формальная верификация систем
- Высокопроизводительные вычисления
- Встраиваемые системы
- Недетерминированные вычисления
- Искусственный интеллект
C++??!
Really?
Universal Erlang Server
universal_server() ->
receive
{become, F} ->
F()
end.
GPGPU Programming
dotp :: Vector Float -> Vector Float -> Acc (Scalar Float)
dotp xs ys =
let xs' = use xs
ys' = use ys
in fold (+) 0 (zipWith (*) xs' ys')
Image Processing
FindSceneChanges[baseImage_Image, newImage_Image]:=
Closing[Binarize[
ImageDifference[Blur[newImage, 4], Blur[baseImage, 4]],
Max[#] > 0.15 &], 10];
Зачем ещё одна лаборатория?
- Just for fun
- чтобы продвигать ФП и формальные методы
- чтобы обучать моделям и алгоритмам параллельного и многозадачного программирования
- чтобы обучать разработке и использованию распределённых алгоритмов и систем
- чтобы обучать языкам программирования, которым больше нигде не учат
Кому и зачем нужно в неё идти?
Кому не нужно идти
- не программистам (менеджеры, аналитики, дизайнеры и т.д.)
- не увлечённым программистам (если у вас другое хобби, то вам не понравится)
- client-side/desktop/ui-программистам (это не к нам)
Кому следует идти
- функциональным программистам
- программистам высокопроизводительных систем
- программистам распределённых систем
- системным программистам
Учебная программа
Второй курс
Третий семестр
- Язык программирования Haskell
- Лямбда-исчисление
Четвёртый семестр
- Основы архитектуры PC и ЯА
- Основы языка C и операционных систем
Третий курс
Пятый семестр
Шестой семестр
Четвёртый курс
Седьмой семестр
- Гетерогенные web-системы
Восьмой семестр
- Самостоятельная работа
Что делать второкурсникам?
Выучить архитектуру процессоров, язык Си и архитектуру операционных систем
Куда писать?
ncplug@fosslabs.ru
Спасибо за внимание!
Вопросы?
NCPLL
By Alexander Letov
NCPLL
Presentation of Non-Conforming Programming Languages Lab of HS ITIS Kazan State University.
- 107