(4 курс ФИИТ) Теория языков программирования. Практика

Для тех, кого сегодня не было, сообщаю: лабораторную #4 можно выполнять до 8 марта включая без штрафа баллов, отдельного домашнего задания не будет.

Опубликовано домашнее задание 4 по материалам лекций 5-6.

При выполнении домашних заданий по лекциям для построения деревьев вывода может пригодиться пакет bussproofs. Примеры использования этого пакета

4 лайка

Задание на ToString из лабораторной переезжает в домашнюю. Домашнее задание завтра опубликую.

Опубликовано домашнее задание 5 по материалам лекций 6-7 и домашнее задание 5 по программированию.

В упражнении 7 лекционного д/3 4 можно ли заранее инициализировать y?

Да, можно считать, что y есть в таблице с некоторым значением (выбирайте, какое вам нравится).

1 лайк

Куда необходимо залить лекционное домашнее задание 5?

Открыла элемент «домашнее задание 5», спасибо!

Опубликовано домашнее задание по программированию #6. Домашнего задания по лекциям на этой неделе не будет.

1 лайк

Опубликовано домашнее задание по программированию #7.

Опубликовано домашнее задание 7 по материалам лекций 8-10 и семинара 3.

В задании 4 лабораторной 8 имеется в виду BST с повторяющимися элементами?

Без.

А вот с хвостовой рекурсией во freeVars я погорячилась, не получится.

А вот с хвостовой рекурсией во freeVars я погорячилась, красиво не получится.

1 лайк

А вот с хвостовой рекурсией во freeVars я погорячилась, не получится.

А почему не получится? По идее, любой рекурсивный алгоритм можно записать циклом, то есть хвостовой рекурсией: нужно только добавить параметры-аккумуляторы (обычно это делается вспомогательной функцией).

Ой, я пропустила слово «красиво» в предыдущем посте :sob: Я хотела перенести задание про хвостовую рекурсию в бонусное, а в основных оставить обычное решение. Затрите решение, пожалуйста…

А переделать рекурсию в последовательную обработку со стеком можно, да…

Пришлось совсем стереть пост, потому что история правок там сохраняется…

А, кстати, @MB, на «алгоритмах и структурах данных» это вроде обсуждается? Для обхода деревьев каких-нибудь.

@MB очень не любит рекурсию, потому сомневаюсь, что это там обсуждается :slight_smile:

Эх, жалко. Тогда:

@Ulysses резонно отметил, что обработку рекурсивных структур данных можно реализовать с помощью хвостовой рекурсии. Так что грядущее бонусное задание выполнимо :smiley:

И ещё одно замечание: как и грамматика выражений, грамматика лямбда-исчисления не такая уж тривиальная, если хочется правильно реализовать ассоциативность применения и жадность лямбда-абстракции. Сильно не переживайте, если не получится (тогда для построения термов просто пишите побольше скобочек).

Я может быть к следующему занятию грамматику подготовлю. Даю 1 чистый бонусный балл тем, кто найдёт решение раньше и опубликует здесь. Вариантов реализации может быть несколько, все приветствуются бонусными баллами.

1 лайк