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

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

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

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

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

1 лайк

Во-первых, это с чего бы я её не любил? А во-вторых, даже если бы не любил – то уж тем более что помешало бы «променять» рекурсивный алгоритм на итеративный? Иными словами, обход дерева со стеком обсуждался, хотя и не слишком подробно. А уж четвёртый курс это знать должен в любом случае.

1 лайк

В книге Пирса есть несложная лемма о канонических формах. На лекциях мы её не доказывали, можно ли в доказательствах пользоваться тем, что nv : Nat ?

1 лайк

Да. Это вспомогательная лемма, которая используется для доказательства теоремы о продвижении. Она доказываются леммой об инверсии, которую мы бегло обсуждали. При доказательстве теоремы о продвижении на лекции мы, фактически, просто встроили доказательство леммы о канонических формах.

Опубликовано домашнее задание 8 по материалам лекций 11-12 и семинара 4. Кто не был на парах, обязательно посмотрите соответствующие видео, это необходимо для правильного выполнения заданий. И не забывайте заглядывать в список литературы, это поможет.

Задание по программированию будет уже на следующей неделе. Будем считать, что в честь НАМ :slight_smile:

А в первом задании точно стратегия вызова по значению, а не по имени?

Да, по имени, конечно, спасибо!

UPD Исправила.

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

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

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

Я тут третье домашнее задание по лекциям проверяю… Горелов, Куц, Машталов списали. Василенко и Баташов дали списать.

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

Просьба донести информацию до всех заинтересованных лиц.

Думаю, завтра нового лабораторного задания не будет. Я всё-таки очень хочу добить компилятор STLC в Haskell, а, насколько я понимаю, его мало кто доделал. Те, кто сделал, будут делать более продвинутую версию из бонусного задания лаб #11.

A post was merged into an existing topic: Видеозаписи по курсу «Теория языков программирования» 2015/16 (4 курс ФИИТ)

В лабораторной 4 все-таки был hard deadline?

Не знаю, я говорила, что не будет hard? Если так, исправлю. На страничке moodle не написано ничего вроде, я могла уже забыть запросто…

Написано, что нет hard.

О, точно, спасибо! Исправлю это.

А что же мне делать с регулярно и адски списанными лабораторными…

С некоторыми товарищами всё и так понятно, но вот Остапенко с Приходько :rage:

1 лайк