Отчет лабораторных в субботу 22 декабря

Добавил(а) Дмитриев Александр 3 месяца назад

Уважаемые студенты!

Отчет по лабораторным работам состоится в субботу 22 декабря с 12:00 в ауд. 902. Отчет будет проводится для всех групп, но в разные часы. Расписание отчета для групп:

  • 12:00 отчет для группы ИВТ-262
  • 13:30 отчет для группы ИВТ-260
  • 15:00 отчет для группы ИВТ-263
  • 16:30 отчет для группы ИВТ-261

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

Также большая просьба не приходить тем, кто ничего не сделал или взял чужой код без своих доработок или усовершенствований, чтобы просто посидеть на случай, вдруг халява! Или тех, кто не понимает, что делает каждая строка его кода и какие типы данных содержатся в тех или иных переменных. Вы только потеряете свое время и будете мешать студентам, которые будут пытаться сделать отчет.

Сокращения: Проглаба - часть программы транспайлера, соответствующая одной лабе (это либо лексер, либо парсер, либо генератор)

Для допуска к зачету по лабораторным работам необходимо выполнить следующие условия:

  1. У вас должен быть в наличии полностью работающий для вашего входного языка лексический анализатор. В нем должна быть обработка ошибок (определение неверных лексем), а также в выходном массиве лексем у каждой лексемы должны быть указаны строка и столбец её расположения во входном коде (наподобие того, как это сделано в VS Code в самом низу редактора). Просьба обогатить лексический анализатор своим дополнительным функционалом (например, функция, которая при каждом вызове будет возвращать только одну очередную лексему из входного кода, и т.д.), чтобы было видно, что вы не занимаетесь банальной копипастой. За попытку просто впихнуть копипасту будут очень сильно резаться баллы, поэтому подумайте над кастомизацией и обогащением функционала программы.
  2. Для каждой лаборатной работы должен быть сделан в печатном виде протокол. Т.е. всего 3 протокола. Каждый протокол должен включать в себя краткое текстовое описание задачи (что должна делать проглаба), описание лексем входного языка + таблица лексем в формате JSON (проглаба 1), описание грамматики входного языка с примерами + грамматика в формате JSON (проглаба 2), описание правил генерации кода на JS для своего входного языка (проглаба 3), т.е. необходимо каждому правилу грамматики на входном языке сопоставить правило на JS и оформить это также в виде JSON. В каждый протокол необходимо включить краткий алгоритм каждой из проглаб, примеры, того, что поступает на вход каждой лабе, а что получается на выходе у проглабы. По возможности включайте в протокол код проглабы.
  3. На отчете вы должны быстро рассказать, как работает ваш код, ответить на вопросы по форматам данных, которые используются в вашем коде.
  4. При отсутствии самостоятельно сделанного синтаксического анализатора вы будете делать дополнительные задания. А именно:
    • Вам будет дана задача на знание регулярных выражений (если не делали ранее). Необходимо будет написать код на JS, где с помощью регулярных выражений вы будете решать поставленную перед вами задачу обработки текста. Про регулярки буду спрашивать довольно подробно. Почитать можно здесь
    • В процессе решения задачи и отчета первой лабы вам будут задаваться вопросы про основы языка JS и программирования в целом. В частности, работа с массивами, строками, регулярками, создание функций, колбэков, объектов, циклов, условий, способы создания объектов. Все эти моменты были в вашем коде, поэтому пожалуйста подготовьтесь.
    • Вам необходимо будет в личной со мной беседе кратко описать как работает LL-алгоритм и нарисовать это на листке бумаги. Вот описание алгоритма: LL-анализатор. Если не поняли LL, то можно сделать описание обычного рекурсивного алгоритма (про рекурсивный спуск по дереву рассказывал на одном из занятий) для синтаксического анализатора (с примерами входного кода и генерируемого дерева на выходе).

Возникающие вопросы прошу задавать на форуме, а не через социальные сети. Успехов в подготовке!

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


Комментарии

Добавил(а) Дмитриев Александр 3 месяца назад

Последний отчет лаб в этом семестре состоится завтра в 12 часов на 9 этаже. Условия те же, что были в данной новости ранее. Работать будем быстро, поэтому прошу приходить максимально подготовленными и работоспособными. Если не отчитали первую лабу или задачу, то буду активно спрашивать про регулярки (почти всё, что с ними связано - всё, что я спрашиваю, я показывал на занятиях и подробно объяснял, когда мы писали правила для хайлайтера) и про понимание механизма работы рекурсии (желательно не приводить в примеры факториалы - мы с вами делали более практичный пример). Весь необходимый материал по регуляркам, напоминаю, вы сможете найти здесь: https://developer.mozilla.org/ru/docs/Web/JavaScript/Reference/Global_Objects/RegExp

Если нет кода по второй лабе, то требуется адекватное понимание алгоритма LL парсера: LL-анализатор. Его необходимо объяснить чётко, с примерами (как взаимодействуют между собой магазин, входная строка и таблица анализатора, что представляют собой все эти непонятные штуки, и как АВТОМАТИЧЕСКИ генерируется таблица анализатора). Желательно объяснять без попыток навешивания мне лапши, банально маскируя свое непонимание алгоритма всякими витиеватыми рассказами.

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

Успехов вам в подготовке!

Добавил(а) Дмитриев Александр 3 месяца назад

В связи с поступившей новой информацией, о том что зачет состоится в среду (а может в четверг), отчет лаб тоже состоится в среду с 11 часов. Теперь у вас немного больше времени, чтобы подготовиться и выспаться. Условия те же самые - первая лаба отлитая в коде (с ответами на всякие вопросы) и устное объяснение LL-парсера.

Добавил(а) Дмитриев Александр около 1 месяца назад

Уважаемые студенты! Сегодня принимать лабораторные по основам трансляции буду с 14:00 в аудитории 1402-3.

Добавить изображение из буфера обмена (Максимальный размер: 20 МБ)