<div>Тема "составить документацию на QBE для будущих поколений студентов и предложить генерацию web-based тэгов в духе mozilla dxr/doxygen/woboq для compilers.ispras.ru;" включает ли в себя создание wiki по QBE? Если нет, то, к примеру, можно ли вдвоем сделать удобную wiki по QBE?</div><div><br /></div><div><br /></div><div>07.03.2018, 08:13, "Vladislav Ivanishin" <vlad@ispras.ru>:</div><blockquote type="cite"><p><br />Добрый день, уважаемые студенты!<br /><br />В этом семестре в качестве практикума студентам групп 427 и 428 предлагается<br />в составе команд выполнить проекты, связанные с курсом "Конструирование<br />компиляторов". При этом предполагается, что работа над проектами ведётся с<br />использованием системы контроля версий Git [1] и списков рассылки.<br /><br />Для организации совместной работы каждой команде будет выделен свой<br />непубличный Git-репозиторий, который будет служить точкой синхронизации<br />усилий команды и позволит преподавателям как отслеживать статус проектов<br />во время выполнения, так и иметь единый снимок каждого проекта в конце<br />курса. Система контроля версий Git используется в большинстве проектов<br />по разработке ПО в настоящее время.<br /><br />Списки рассылки (mailing lists) позволят участникам команды<br />координировать работу над проектом и обсуждать предлагаемые изменения,<br />преподавателям - контролировать ход выполнения практикума, а участникам<br />других команд - возможность подписываться и знакомиться с дискуссиями.<br />Списки рассылки предоставляют архив сообщений, аккумулирующий со<br />временем базу знаний о проекте. Списки рассылок являются стандартным<br />инструментом взаимодействия, принятым во многих проектах по разработке<br />ПО, в особенности, ПО с открытым исходным кодом.<br /><br />Использование Git и списков рассылки является обязательным элементом<br />практикума. Участники команды должны использовать предоставленный<br />Git-репозиторий для синхронизации, и командный список рассылки - для<br />общения. Приватное общение между участниками команды без необходимости<br />во время выполнения проектов не поощряется (см. [3]). Наличие<br />осмысленной активности в списках рассылки является, наряду со степенью<br />завершённости выполненных задач и проекта в целом, одним из основных<br />критериев при выставлении оценки за курс. Таким образом упрощается<br />оценка преподавателями вклада участников.<br /><br />Основными целями практикума являются:<br />- развитие навыков совместной работы над проектом с использованием<br />  инструментов распределённой разработки,<br />- развитие навыков постановки и планирования выполнения задач в рамках<br />  проекта,<br />- установление и развитие диалога между участниками разных проектов и<br />  преподавателями.<br /><br />Общий план практикума:<br /><br />1. Студенты делятся на команды и выбирают тему проекта для команды. К<br />   <span>2018-03-12 23</span>:59 MSK (можно раньше) необходимо сообщить составы<br />   команд и темы в сообщении в список рассылки sp-prac-18 [2] с пометкой<br />   `[новая команда]' в теме письма. Предполагаемое число участников<br />   команд -- от 3 до 5, в зависимости от сложности проекта. Каждый<br />   студент должен входить ровно в одну команду. Использование списка<br />   рассылки для координации поощряется и может помочь избежать<br />   конфликтов при выборе темы, но на данном этапе обязательным не<br />   является. Тема команды определяется по последнему письму с пометкой<br />   `[новая команда]', отправленному до <span>2018-03-12 23</span>:59 MSK<br />   (включительно). При наличии двух команд, выбравших одну и ту же тему,<br />   она отдаётся команде, пославшей письмо с пометкой `[новая команда]' в<br />   список рассылки раньше.<br /><br />2. Преподаватели утверждают составы и размеры команд и заводят отдельный<br />   список рассылки и репозиторий для каждой команды.<br /><br />3. В течение следующей недели команды вырабатывают постановку задач (по<br />   имеющимся темам) и планы их решения, распределяют работу по времени и<br />   между участниками команды с учётом зависимостей между подзадачами. На<br />   этом этапе необходимо общаться в рассылке, чтобы преподаватели могли<br />   контролировать сложность и выполнимость плана.<br /><br />   По результатам второй недели в рассылке команды должен появиться план<br />   проекта - письмо с пометкой `[план]', содержащее список задач,<br />   выполнение которых запланировано в рамках проекта, и предварительное<br />   распределение задач по времени (с гранулярностью в одну неделю) и<br />   между участниками. На каждую неделю должна быть запланирована работа<br />   над хотя бы одной задачей. Все участники должны быть вовлечены.<br /><br />   Дальнейшие изменения плана должны также сопровождаться<br />   соответствующей коммуникацией с пометкой `[план]' в списке рассылки.<br /><br />3. Преподаватели утверждают план проекта и назначают каждой команде 2-3<br />   даты, в которые в каждом командном списке рассылке ожидается<br />   появление письма с перечислением всех задач с указанием текущего<br />   статуса каждой задачи.<br /><br />4. В течение последующих недель команды работают над проектом. О сроке<br />   окончания работ будет объявлено в ближайшее время (ориентировочно два<br />   дня до даты зачёта/экзамена). Требуется по меньшей мере поддерживать<br />   следующие инварианты: (1) "в основную ветку репозитория не попадают<br />   патчи, не прошедшие обсуждения в рассылке" и (2) "история на основной<br />   ветке не перетирается при помощи force-push или rebase".<br /><br />   Поощряется использование rebase на своих локальных ветках до push для<br />   поддержания целостности и последовательности истории коммитов.<br />   Поощряется использование единого стиля сообщений в коммитах и<br />   добавление относительно подробных описаний сделанных изменений.<br /><br />5. Команды составляют заключительные отчёты о выполненной работе и<br />   отправляют их в командный список рассылки с пометкой `[отчёт]' в теме<br />   письма. Отчёт должен включать в себя описание статуса всех изначально<br />   запланированных задач, общее состояние готовности проекта и оценку<br />   его успешности.<br /><br />6. Встреча с выставлением оценок в зачётки.<br /><br />Предполагается, что темы проектов таковы, что команды могут работать<br />изолированно. Однако обсуждение тем, которые могут быть интересны участникам<br />других команд (вопросы по QBE, UNIX, git, ssh, использованию и настройке email<br />клиентов и т.д.), имеет смысл проводить в рассылке prac-sp-18 [2].<br /><br />Возможные темы проектов:<br />- подготовить задачу построения SSA-формы в духе задач из домашнего задания;<br />- подготовить задачу выделения регионов в духе задач из домашнего задания;<br />- исследовать быстрые алгоритмы поиска доминаторов и границы доминирования,<br />  подготовить задачу в духе задач из домашнего задания;<br />- составить документацию на QBE для будущих поколений студентов и предложить<br />  генерацию web-based тэгов в духе mozilla dxr/doxygen/woboq для<br />  compilers.ispras.ru;<br />- написать интерфейсы (bindings) к QBE для другого языка программирования;<br />- визуализация алгоритмов из курса;<br />- разработать систему плагинов для QBE, позволяющую запускать проходы из<br />  динамически подгружаемых библиотек;<br />- предложение своих идей для проектов приветствуется (нужно успеть<br />  обсудить на первой неделе).<br /><br />Пожалуйста, подпишитесь на список рассылки prac-sp-18 [2] и передайте товарищам,<br />которые не были зарегистрированы в ejudge.<br /><br />[1]: <a href="https://git-scm.com/">https://git-scm.com</a><br />[2]: <a href="https://compilers.ispras.ru/cgi-bin/mailman/listinfo/prac-sp-18">https://compilers.ispras.ru/cgi-bin/mailman/listinfo/prac-sp-18</a><br />[3]: <a href="https://producingoss.com/en/producingoss.html#avoid-private-discussions">https://producingoss.com/en/producingoss.html#avoid-private-discussions</a><br /><br /></p><span>-- <br />Влад<br /></span></blockquote>