User Tag List

Страница 6 из 18 ПерваяПервая ... 2345678910 ... ПоследняяПоследняя
Показано с 51 по 60 из 213

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

Комбинированный просмотр

Предыдущее сообщение Предыдущее сообщение   Следующее сообщение Следующее сообщение
  1. #1

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

    По умолчанию

    Версия 0.2

    Исправления и дополнения:
    - константы-массивы (массивы констант?), пока только массивы байтов;
    - удаление неиспользуемых подпрограмм (smart linking);
    - исправлено размещение многомерных массивов в памяти;
    - исправлены ошибки работы с boolean;
    - написан wrapper для некоторых подпрограмм из бибилиотеки ZX Like Pascal;
    - адаптирована "demo_lode_runner.prg" из ZX Like Pascal;
    - адаптирована life.pas.

    "Умная линковка" позволяет писать на Паскале библиотеки любого размера, в код будут включены только используемые подпрограммы.

    В архиве бинарники win32 и linux64, библиотеки, файлы-примеры .pas и .tap.

    bmpascal_v0.2.zip

    life.pas не зависла, она работает, 20 секунд идёт инициализация и 60 секунд на итерацию
    Нажмите на изображение для увеличения. 

Название:	Снимок экрана от 2018-04-13 07-56-51.png 
Просмотров:	145 
Размер:	8.7 Кб 
ID:	64973

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

  3. #2

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

    По умолчанию

    Эта неделя получилась непродуктивной в плане компиляторостроения. В основном внутренние изменения, никаких новых функций. Плюс появились другие задачи, кроме компилятора.

    Планы: оператор case, чтобы запустить demo_z. Так как код пока не оптимизирован и бинарник с картинками имеет объём около 60 килобайт, запускать будем в режиме Spectrum +3, отключая ROM. Следующим пунктом будет поддержка константных выражений в описаниях констант и типов.
    Пример:
    Код:
    const
       c=20;
       size=c*5+4;
    type
       tArray=[1..size] of byte;
    Потом будет большая работа по внутреннему "тюнингу", после чего, надеюсь, удастся избавиться от приведения всей арифметики к 32 битам, что должно немного уменьшить размер кода и значительно увеличить его скорость.

    Ещё очень нужны inline-подпрограммы. Но без оптимизации кода они смысла не имеют.

  4. #3

    Регистрация
    29.12.2010
    Адрес
    Москва
    Сообщений
    1,869
    Спасибо Благодарностей отдано 
    142
    Спасибо Благодарностей получено 
    110
    Поблагодарили
    66 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Bolt Посмотреть сообщение
    Потом будет большая работа по внутреннему "тюнингу", после чего, надеюсь, удастся избавиться от приведения всей арифметики к 32 битам, что должно немного уменьшить размер кода и значительно увеличить его скорость.
    Bolt, у тебя сейчас кодогенерация происходит в пи-код или сразу в ассемблер?
    Для выражений рекомендуют в книжках сначала определить максимальный используемый числовой тип данных в выражении и уже отталкиваться от этого, какое выражение - 8-битное, 16-битное, 32-битное и т.д.
    Т.е., если у тебя в выражении максимальный тип byte, то всё выражение рассчитывается по 8-битному алгоритму.
    В ZX Like Pascal везде 16-битные выражения, только есть отдельные оптимизации, превращающие в 8-битные, где надо.

  5. #4

    Регистрация
    19.01.2017
    Адрес
    г. Арзамас
    Сообщений
    2,454
    Записей в дневнике
    42
    Спасибо Благодарностей отдано 
    8
    Спасибо Благодарностей получено 
    170
    Поблагодарили
    120 сообщений
    Mentioned
    7 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    ладно, оставлю в покое тогда.
    mysystem.inc не корректный. По идее inc(a) это a:=a+1, inc (a,5) это a:=a+5

    и вопрос по ассемблерным вставкам: можно ли обращаться к переменным? например, LD DE,@a ?

  6. #5

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

    По умолчанию

    Цитата Сообщение от Шынни Посмотреть сообщение
    mysystem.inc не корректный. По идее inc(a) это a:=a+1, inc (a,5) это a:=a+5
    Да, действительно. Добавлю, но вообще это заглушки, потому что потом это будут встроенные процедуры, как положено.
    Цитата Сообщение от Шынни Посмотреть сообщение
    и вопрос по ассемблерным вставкам: можно ли обращаться к переменным? например, LD DE,@a ?
    К сожалению нет. Пока нет... но когда "да" - большой вопрос.
    Пока можно так:
    Код:
    var a:word absolute $7000;
    ...
    asm
       ld de,(0x7000)
    end;
    Аргументы передаются в стеке, по 4 байта на аргумент, обращаться через регистр IX (это base pointer).
    [IX+4] это последний аргумент подпрограммы, [IX+8] предпоследний, и т.д.
    Могу попробовать развернуть порядок аргументов, [IX+4] это будет первый, [IX+8] второй и т.д.
    При переделке кодогенератора смещения могут измениться.

  7. #6

    Регистрация
    16.12.2008
    Адрес
    Kharkov, Ukraina
    Сообщений
    2,221
    Спасибо Благодарностей отдано 
    4
    Спасибо Благодарностей получено 
    21
    Поблагодарили
    18 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Error404, простейшая ли? Не видал таких. Отладочную инфу гнать по стандадарту. И возможно ли это. Платформы 8-бит даже от одного родителя сами себе противоречат. Вроде были попытки, но воз и ныне там. Хотя тема очень актуальная, для меня уж точно. Так и живем.
    Электроника КР-02, MSX YIS-503IIR, Орион-128, Ленинград-2, Pentagon-128k, MSX2 YIS-503IIIR, MSX-EXT, ...

  8. #7

    Регистрация
    19.01.2017
    Адрес
    г. Арзамас
    Сообщений
    2,454
    Записей в дневнике
    42
    Спасибо Благодарностей отдано 
    8
    Спасибо Благодарностей получено 
    170
    Поблагодарили
    120 сообщений
    Mentioned
    7 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    строчки с комментариями как раз то, что нужно.

  9. #8

    Регистрация
    29.12.2010
    Адрес
    Москва
    Сообщений
    1,869
    Спасибо Благодарностей отдано 
    142
    Спасибо Благодарностей получено 
    110
    Поблагодарили
    66 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    ща, как время появится и доберусь до своих паскаль-исходников для PC, позапускаю на твоем компиле. Хочется симулятор футбола хотя бы запустить (есть такой). Там куча типов записей.

  10. #9

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

    По умолчанию

    К-какой симулятор футбола? Мне аж страшно... но интересно.
    Оно скорее всего в оперативку не поместится. Зато будет понятно в какую сторону дальше копать.

    Сейчас у моего кодогенератора бинарник получается раза в 3 больше, чем в ZX Like Pascal. В demo_z.prg один только код, без спрайтов, около 45 килобайт.
    Последний раз редактировалось Bolt; 10.04.2018 в 23:48.

  11. #10

    Регистрация
    29.12.2010
    Адрес
    Москва
    Сообщений
    1,869
    Спасибо Благодарностей отдано 
    142
    Спасибо Благодарностей получено 
    110
    Поблагодарили
    66 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Bolt Посмотреть сообщение
    К-какой симулятор футбола? Мне аж страшно... но интересно.
    Оно скорее всего в оперативку не поместится. Зато будет понятно в какую сторону дальше копать.
    Не бойся, он текстовый.) Симулятор чемпионата Европы по футболу. Надеюсь, влезет.
    Еще есть прога на Delphi поиска оптимального маршрута в Московском метро, тоже текстовая. Тоже попробую.)

    Цитата Сообщение от Bolt Посмотреть сообщение
    Сейчас у моего кодогенератора бинарник получается раза в 3 больше, чем в ZX Like Pascal. В demo_z.prg один только код, без спрайтов, около 45 килобайт.
    Ого. Да, надо потом над оптимизацией кода компилятора работать - это отдельная большая тема.

Страница 6 из 18 ПерваяПервая ... 2345678910 ... ПоследняяПоследняя

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

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

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

Похожие темы

  1. Пожелания и планы по эмулятору Башкирия-2М
    от b2m в разделе Эмуляторы отечественных компьютеров
    Ответов: 848
    Последнее: 30.10.2025, 20:37
  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

Ваши права

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