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

В весеннем семестре ожидается курс «Теория языков программирования». На лабораторных работах предлагаю Haskell либо ML. Haskell будет в курсе ФП в осеннем семестре, ML — нет, хотя по моим представлениям больших сложностей после Haskell быть не должно.

По традиции, заведённой @bravit, хочу организовать голосовалку «Haskell vs ML». Где удобней: в Moodle или гугл-форму какую-нибудь? Если гугл-форму, то, наверное, опрос будет не анонимным, чтобы вбросов не было.

А какой из ML, если не секрет?

Удобнее в moodle, как мне кажется.

Хороший вопрос, SML/NJ.

Если SML, то заодно научимся пользоваться Emacs :wink:

1 симпатия

Был такой SML.NET с интеграцией в VS. Но давно не поддерживается, кажется. Видимо, утратил популярность в связи с разработкой и поддержкой в VS языка F#, который тоже принадлежит ML-семейству.

В общем, повесила в Moodle опрос о выборе языка. Прошу студентов, потенциально желающих посещать курс, голосовать. Итоги, вероятно, будут подводиться в середине осени. Я ещё напомню…

Итак, до конца декабря прошу всех студентов, которые намереваются посещать курс «Теория языков программирования» в весеннем семестре 2015/16 учебного года, принять участие в опросе и проголосовать, какой функциональный ЯП они хотят использовать на практике: SML или Haskell.

По результатам опроса решение принято в пользу SML/NJ.

В дисплейных классах для программирования на ML будем использовать Emacs с sml-mode. Слабонервные могут использовать обычный текстовый редактор + консоль (этот вариант годится и под Windows для критически слабонервных).

Вероятно, позже сделаю какой-нибудь образ Linux с необходимым ПО.

2 симпатии

Вариант для нормальных людей, не поддающихся на провокации: редактор Atom с соответствующим плагином.

2 симпатии

Использовать бинарник с ST тоже не вызывает никаких проблем.

Что такое ST?

Sublime Text

Пока откладывается. Начнём семестр, а там, если будут проблемы, займусь.

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

Опубликован план-конспект лекции 2. Замечания по опечаткам или ошибкам приветствуются!

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

1 симпатия

@Ulysses подбросил отличную ссылку на интерактивный вводный курс в LaTeX. Это ваш шанс!

Есть ещё курс по LaTeX на Coursera на русском.

А напишите, пожалуйста, кто-нибудь, какие случаи функций/доказательств из лекции 3 остались на дом (кроме size, который целиком)?

  1. Перевести в правила вывода термы pred(t), iszero(t).
  2. Значения функции Consts для pred(n) и iszero(n).
  3. Значения функции depth для true, zero, succ(n), iszero(n).
  4. Доказательство |Consts(t)| <= size(t) для true, false, succ(n), pred(n), iszero(n).
  5. Функции интерпретации для false, succ(n), iszero(n).

Также на дом осталось описание индукции по размеру.

2 симпатии