Skip to content
This repository has been archived by the owner on Jul 5, 2024. It is now read-only.

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

Open
vtereshkov opened this issue Aug 7, 2019 · 9 comments

Comments

@vtereshkov
Copy link

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

  • Поддержка чисел с плавающей точкой;
  • Более строгое следование грамматике Паскаля;
  • Адекватный контроль ошибок;
  • Отсутствие необходимости во внешнем ассемблере для сборки RTL.

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

@Mazdaywik
Copy link
Member

Добрый день, Василий!

Это не коллекция самоприменимых компиляторов Паскаля, это учебное пособие. Есть компилятор Паскаля (вернее, два на выбор), на его основе нужно сделать версию компилятора с модифицированным синтаксисом и раскрутить её — модификацию синтаксиса применить к исходнику и успешно самоприменить.

Собственно, вот как выглядят задания (сами задачи на последних страницах):

Это самая первая лабораторная по компиляторам, она даётся, когда почти никакой материал не был прочитан. На первой лекции читаются основные определения, 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
Copy link
Author

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

@Mazdaywik
Copy link
Member

Mazdaywik commented Aug 7, 2019

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

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

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

@vtereshkov
Copy link
Author

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

@Mazdaywik
Copy link
Member

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

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

@Mazdaywik
Copy link
Member

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

@Mazdaywik Mazdaywik changed the title Самокомпилируемый компилятор в вашу коллекцию Рассмотреть использование XDPW в первой лабе Aug 8, 2019
@vtereshkov
Copy link
Author

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

@Mazdaywik
Copy link
Member

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

@vtereshkov
Copy link
Author

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

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants