bmstu-iu9 / compiler-labs

Лабораторные работы по курсу «Конструирование компиляторов»
https://bmstu-iu9.github.io/compiler-labs/
11 stars 2 forks source link

Рассмотреть использование XDPW в первой лабе #7

Open vtereshkov opened 5 years ago

vtereshkov commented 5 years ago

Коллеги, хочу предложить ещё один самокомпилируемый компилятор Паскаля в вашу коллекцию: https://github.com/vtereshkov/xdpw. Это мой собственный хобби-проект. По сравнению с BeRo Tiny Pascal, он имеет некоторые преимущества:

Замечено, что антивирус AVG даёт ложно положительный результат проверки некоторых откомпилированных файлов. За BeRo Tiny Pascal было замечено то же, но с антивирусом McAfee.

Mazdaywik commented 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 на макось. Пускай этой осенью кто-то один пострадает за всех будущих студентов-макинтошников.

vtereshkov commented 5 years ago

Спасибо, интересно! Я сам, конечно, никогда не рассматривал Mac в качестве платформы (да и не работал с ним). Долго выбирал, под что портировать свой компилятор, изначально компилировавший для DOS - под PE или ELF. Остановился на PE. А вообще, если кто-нибудь из студентов поиграет на курсовой с моим компилятором - будет любопытно. Пока из его старой версии сделали только порт под Atari.

Mazdaywik commented 5 years ago

У меня тоже нет и никогда не было Мака. Но у многих студентов они есть.

По переносу Вашего компилятора под Linux/Mac на курсовую — я подумаю. Если кто-то из студентов заинтересуется — Вы будете консультантом 😉. У них курс конструирования компиляторов весной, а курсовые по ним осенью.

Если я правильно загуглил, Вы вроде тоже в Бауманке работаете.

vtereshkov commented 5 years ago

Загуглили правильно, но я там уже не работаю :) Профессионального отношения к компиляторостроению, увы, никогда не имел, хоть и всегда рад поговорить об этом.

Mazdaywik commented 5 years ago

Я, в общем-то, тоже профессионально не занимался компиляторами, а Рефал-5λ тоже вырос из хобби-проекта.

Но если Вы рады поговорить, можем списаться по почте: a.v.konovalov87@mail.ru. Не будем оффтопить в таск-трекере репозитория с лабами по конструированию компиляторов.

Mazdaywik commented 5 years ago

А на счёт использования Вашего компилятора в лабораторной работе — я тогда попробую самоприменить компилятор и посмотрю его исходники. Скорее всего, подойдёт, только нужно будет уточнить формулировки заданий вариантов.

vtereshkov commented 5 years ago

Выложил новую версию XDPW. Добавил компиляцию программ с GUI (хотя вряд ли это нужно для лаб) и исправил некоторые баги.

Mazdaywik commented 5 years ago

Посмотрим, до чего дорастёт XDPW к февралю, когда лабы начнутся.

vtereshkov commented 4 years ago

Насколько я понимаю, под Mac сейчас работают только 64-битные программы. Так что перенести 32-битный компилятор "один в один" не получится. С августа в моём компиляторе генератор кода заметно разросся, так что переход на 64 бита делать уже потруднее. Но вдруг охотники найдутся?