Open vtereshkov opened 5 years ago
Добрый день, Василий!
Это не коллекция самоприменимых компиляторов Паскаля, это учебное пособие. Есть компилятор Паскаля (вернее, два на выбор), на его основе нужно сделать версию компилятора с модифицированным синтаксисом и раскрутить её — модификацию синтаксиса применить к исходнику и успешно самоприменить.
Собственно, вот как выглядят задания (сами задачи на последних страницах):
Это самая первая лабораторная по компиляторам, она даётся, когда почти никакой материал не был прочитан. На первой лекции читаются основные определения, T-диаграммы и даётся понятие раскрутки. Поэтому задача простая — сделать маленькую правку на уровне лексического или синтаксического анализа и не запутаться в двух шагах раскрутки.
В принципе, я думаю, можно использовать и Ваш компилятор наравне с P5 и Btpc(64), большинство вариантов заданий можно применить и к нему.
Кстати, о Btpc64 (BMSTU Tiny Pascal x64). Это порт компилятора BeRo Tiny Pascal на Linux и x64, сделанный у нас на кафедре. Как можно догадаться, курсовая работа. Можете почитать записку, она интересная:
https://github.com/bmstu-iu9/A-Bauman-BTPC-64/blob/master/Compilers_Report.pdf
На первой лабораторной он взаимозаменяем с оригинальным Btpc.
Кстати, у меня безумная мысль. Чуть ли не треть студентов на нашей кафедре пользуются макинтошами, они страдают на первой лабе (P5 только под Linux x86, Btpc(64) под Windows x86 и Linux x64). Надо облегчить их страдания! Надо дать задание на курсовую — портирование Btpc64 на макось. Пускай этой осенью кто-то один пострадает за всех будущих студентов-макинтошников.
Спасибо, интересно! Я сам, конечно, никогда не рассматривал Mac в качестве платформы (да и не работал с ним). Долго выбирал, под что портировать свой компилятор, изначально компилировавший для DOS - под PE или ELF. Остановился на PE. А вообще, если кто-нибудь из студентов поиграет на курсовой с моим компилятором - будет любопытно. Пока из его старой версии сделали только порт под Atari.
У меня тоже нет и никогда не было Мака. Но у многих студентов они есть.
По переносу Вашего компилятора под Linux/Mac на курсовую — я подумаю. Если кто-то из студентов заинтересуется — Вы будете консультантом 😉. У них курс конструирования компиляторов весной, а курсовые по ним осенью.
Если я правильно загуглил, Вы вроде тоже в Бауманке работаете.
Загуглили правильно, но я там уже не работаю :) Профессионального отношения к компиляторостроению, увы, никогда не имел, хоть и всегда рад поговорить об этом.
Я, в общем-то, тоже профессионально не занимался компиляторами, а Рефал-5λ тоже вырос из хобби-проекта.
Но если Вы рады поговорить, можем списаться по почте: a.v.konovalov87@mail.ru. Не будем оффтопить в таск-трекере репозитория с лабами по конструированию компиляторов.
А на счёт использования Вашего компилятора в лабораторной работе — я тогда попробую самоприменить компилятор и посмотрю его исходники. Скорее всего, подойдёт, только нужно будет уточнить формулировки заданий вариантов.
Выложил новую версию XDPW. Добавил компиляцию программ с GUI (хотя вряд ли это нужно для лаб) и исправил некоторые баги.
Посмотрим, до чего дорастёт XDPW к февралю, когда лабы начнутся.
Насколько я понимаю, под Mac сейчас работают только 64-битные программы. Так что перенести 32-битный компилятор "один в один" не получится. С августа в моём компиляторе генератор кода заметно разросся, так что переход на 64 бита делать уже потруднее. Но вдруг охотники найдутся?
Коллеги, хочу предложить ещё один самокомпилируемый компилятор Паскаля в вашу коллекцию: https://github.com/vtereshkov/xdpw. Это мой собственный хобби-проект. По сравнению с BeRo Tiny Pascal, он имеет некоторые преимущества:
Замечено, что антивирус AVG даёт ложно положительный результат проверки некоторых откомпилированных файлов. За BeRo Tiny Pascal было замечено то же, но с антивирусом McAfee.