Важная информация

User Tag List

Страница 5 из 22 ПерваяПервая 123456789 ... ПоследняяПоследняя
Показано с 41 по 50 из 213

Тема: Компилятор языка Паскаль - планы на будущее

  1. #41
    Veteran
    Регистрация
    29.12.2010
    Адрес
    Москва
    Сообщений
    1,858
    Спасибо Благодарностей отдано 
    131
    Спасибо Благодарностей получено 
    104
    Поблагодарили
    62 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    В общем, я выпустил первую бета-версию своего компилятора - ZX Like Pascal 0.9beta. Смотреть тут

  2. #42
    Master
    Регистрация
    14.04.2013
    Адрес
    г. Ростов-на-Дону
    Сообщений
    608
    Спасибо Благодарностей отдано 
    70
    Спасибо Благодарностей получено 
    54
    Поблагодарили
    48 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от bigral Посмотреть сообщение
    Отсюда вопрос - не пагубна ли сама идея: "сборка под разные платформы"? смысла практического ведь НЕТУ? Но вот под конкретную платформу сделать хороший инструмент, нужный людям! куда как более востребованное занятие, не зря народ жаждит update-a borland pascal под cp/m
    А вот объясните мне, в чём фишка (сложность?) Паскаля под CP/M? В его принципиальном отсутствии? Он действительно так нужен? Его сложно написать? Почему? CP/M какая-то особенная?

  3. #43
    Guru
    Регистрация
    27.02.2005
    Адрес
    москва
    Сообщений
    13,820
    Записей в дневнике
    1
    Спасибо Благодарностей отдано 
    150
    Спасибо Благодарностей получено 
    1,196
    Поблагодарили
    788 сообщений
    Mentioned
    18 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Bolt Посмотреть сообщение
    А вот объясните мне, в чём фишка (сложность?) Паскаля под CP/M? В его принципиальном отсутствии? Он действительно так нужен? Его сложно написать? Почему? CP/M какая-то особенная?
    наверно только ограничение TRDOS на длину файла и кол-во файлов на дискете.

  4. #44
    Master
    Регистрация
    14.04.2013
    Адрес
    г. Ростов-на-Дону
    Сообщений
    608
    Спасибо Благодарностей отдано 
    70
    Спасибо Благодарностей получено 
    54
    Поблагодарили
    48 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Я тоже решил "пошутить" и выложить что есть

    В исходниках на данный момент 134 TODO, плюс список задач в текстовом файле, то есть ещё работать и работать. В целом - стараюсь сделать "настоящий" Паскаль, совместимый с TurboPascal/FreePascal. Пока это всё выдаёт огромный медленный код, нужна оптимизация. Но сейчас важнее отладить фичи, чтобы устаканилась внутренняя структура компилятора, на которую опирается кодогенератор.

    О возможностях компилятора.

    Поддерживаются типы данных: 6 целочисленных (byte, word, longword, shortint, smallint, longint), boolean, pointer, string.
    Допускаются array, record и pointer в любых комбинациях: массив указателей на структуры, внутри которых указатели на массивы байтов, и т.д., на сколько хватит оперативки.
    Массивы пока только одномерные, но можно описать массив массивов.

    Переменные могут быть любого типа (см. выше), глобальные/локальные, допускается absolute для явного указания адреса, по которому будет храниться эта переменная.

    Выражения и операторы в выражениях: + - * / > < >= <= = <> div mod and or xor shl shr @ ^ :=
    В выражениях учитываются приоритеты арифметических операций, скобки, допускается явное преобразование типов. Сложность выражений, в принципе, ничем не ограничена.

    Ветвления, циклы: if, while, repeat, for. Цикл for работает с предпроверкой диапазона

    Подпрограммы (процедуры, функции): до 10 параметров любого типа, параметры передаются по значению и по ссылке (var, const).
    Допускаются полиморфные подпрограммы (подпрограммы с одинаковым именем, но разным набором параметров).

    Препроцессор понимает директивы условной компиляции $define, $undef, $ifdef, $else, $endif.
    Директива $i - вставка текста из другого файла (include).

    Компилятор (транслятор?) выдаёт файл на языке ассемблера, который можно собрать кросс-ассемблером.

    Можно делать вставки на ассемблере asm...end, всё что между - копируется в выходной файл как есть. Парсер ассемблера и обработка в нём идентификаторов - отдельное большое TODO.

    Теперь о недоделках.

    Тип char вроде есть, но не проверял, скорее всего будет некорректно работать.
    Иногда может путаться знаковая/беззнаковая арифметика.
    Константы, перечислимые типы, многомерные массивы начаты, но нормально не работают, надо довести до ума.
    Глобальные переменные на самом деле локальные, в стеке.
    Не работает передача параметров по значению, если параметр нестандартного типа (массивы, записи...), передавайте по ссылке.
    Проблемы с обработкой символов ' " / \ в строковых константах, потому что код обработки был написан лет 5 назад по принципу "лишь бы запустилось". Переделывать его надо полностью.
    Отсутствует очень много семантических проверок. Если компилятор что-то "проглотил", это не значит что написано правильно
    Также давайте разделять сам компилятор с языком Паскаль, и библиотеки. Спрайты, скроллы, шрифты - это всё библиотеки, которые пишутся и прикручиваются отдельно. Вот этих библиотек у меня сейчас нет вообще. Если кто-то решит написать какую-нибудь демку или игру - спрашивайте, расскажу отдельно о прикручивании ассемблерных процедур.

    В общем, пробуйте, если что-то не работает - пишите, буду думать.

    bmpascal_v0.0.zip
    Последний раз редактировалось Bolt; 01.04.2018 в 09:52.

  5. #45
    Guru Аватар для Shiny
    Регистрация
    19.01.2017
    Адрес
    г. Арзамас
    Сообщений
    2,210
    Записей в дневнике
    40
    Спасибо Благодарностей отдано 
    6
    Спасибо Благодарностей получено 
    68
    Поблагодарили
    48 сообщений
    Mentioned
    3 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    хорошо бы вид от Борман Паскаль.

    Цитата Сообщение от Bolt Посмотреть сообщение
    Иногда может путаться знаковая/беззнаковая арифметика.
    это фиаско!


    Цитата Сообщение от Bolt Посмотреть сообщение
    Глобальные переменные на самом деле локальные, в стеке.
    как это?

  6. #46
    Master
    Регистрация
    14.04.2013
    Адрес
    г. Ростов-на-Дону
    Сообщений
    608
    Спасибо Благодарностей отдано 
    70
    Спасибо Благодарностей получено 
    54
    Поблагодарили
    48 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Шынни Посмотреть сообщение
    хорошо бы вид от Борман Паскаль.
    Что? Какой вид?
    Цитата Сообщение от Шынни Посмотреть сообщение
    это фиаско!
    Это версия ноль-ноль
    Цитата Сообщение от Шынни Посмотреть сообщение
    как это?
    У глобальных переменных не статический абсолютный адрес, а так же выделяется stack frame, как и для любой подпрограммы.

  7. #46
    С любовью к вам, Yandex.Direct
    Размещение рекламы на форуме способствует его дальнейшему развитию

  8. #47
    Guru Аватар для Shiny
    Регистрация
    19.01.2017
    Адрес
    г. Арзамас
    Сообщений
    2,210
    Записей в дневнике
    40
    Спасибо Благодарностей отдано 
    6
    Спасибо Благодарностей получено 
    68
    Поблагодарили
    48 сообщений
    Mentioned
    3 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Bolt Посмотреть сообщение
    Что? Какой вид?
    собсно текстовый редактор


    - - - Добавлено - - -

    Цитата Сообщение от Bolt Посмотреть сообщение
    У глобальных переменных не статический абсолютный адрес, а так же выделяется stack frame, как и для любой подпрограммы.
    мне кажется, что это неправильно.

  9. #48
    Master
    Регистрация
    14.04.2013
    Адрес
    г. Ростов-на-Дону
    Сообщений
    608
    Спасибо Благодарностей отдано 
    70
    Спасибо Благодарностей получено 
    54
    Поблагодарили
    48 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Да, неправильно. Такого "неправильного" там порядка 160 пунктов, причём "добавить поддержку модулей" и "переписать кодогенератор" в списке тоже есть. Если реализовывать даже по одному пункту в день исключая выходные, то как раз работы до конца года. Но оно уже хоть как-то работает. Вот ещё текстового редактора не хватает, это да...

  10. #49
    Guru Аватар для Shiny
    Регистрация
    19.01.2017
    Адрес
    г. Арзамас
    Сообщений
    2,210
    Записей в дневнике
    40
    Спасибо Благодарностей отдано 
    6
    Спасибо Благодарностей получено 
    68
    Поблагодарили
    48 сообщений
    Mentioned
    3 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    ой, да по идее хватает простого редактора, без всяких там copy/paste. Набираешь текст, компилируешь, если ошибка вкралась, то подсвечивается, правишь, и снова в бой.


    Цитата Сообщение от Bolt Посмотреть сообщение
    Такого "неправильного" там порядка 160 пунктов
    надеюсь, не дореволюционных методов от CP/M80?

  11. #50
    Master
    Регистрация
    14.04.2013
    Адрес
    г. Ростов-на-Дону
    Сообщений
    608
    Спасибо Благодарностей отдано 
    70
    Спасибо Благодарностей получено 
    54
    Поблагодарили
    48 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Так, арифметику со знаком доработать.
    Текстового редактора (IDE) нет и не планируется.
    Есть что ешё сказать конкретно по этой версии? Или "не смотрел, но осуждаю"? Тогда давай прекратим этот диалог.

Страница 5 из 22 ПерваяПервая 123456789 ... ПоследняяПоследняя

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Похожие темы

  1. Пожелания и планы по эмулятору Башкирия-2М
    от b2m в разделе Эмуляторы отечественных компьютеров
    Ответов: 823
    Последнее: 01.07.2019, 21:19
  2. Пожелания и планы по эмулятору MESS
    от shattered в разделе Эмуляторы отечественных компьютеров
    Ответов: 57
    Последнее: 02.08.2017, 22:14
  3. Планы на новые создаваемые игры
    от TomCaT в разделе Игры
    Ответов: 67
    Последнее: 21.03.2012, 14:44
  4. Назад в будущее?
    от Sonic в разделе Оси
    Ответов: 27
    Последнее: 19.07.2005, 16:56

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •