Важная информация
Страница 1 из 2 12 ПоследняяПоследняя
Показано с 1 по 10 из 16

Тема: LSInt (интерпретатор Абадябера)

  1. #1 LSInt (интерпретатор Абадябера) 
    Гуру Аватар для Абадябер
    Регистрация
    09.12.2010
    Адрес
    Беларусь, Минск
    Сообщений
    1,219
    Сказал(а) спасибо
    302
    Поблагодарили 176 раз(а) в 144 сообщениях
    Записей в блоге
    5
    В эту тему я буду выкладывать описания и последние версии своего инструментария для работы с программами на языке СТЕПЛЕР. В данный момент, речь идет лишь о интерпретаторе LSInt версии 2.0, который я прикрепил к сообщению ниже. Также его можно найти и в файловом архиве.
    Далее, по мере разработки, в этой теме будут выкладываться архивы с новыми версиями и описаниями программы.
    Также это тему можно использовать для багрепортов и предложений по улучшению интерпретатора. Пишите все, буду рад любым замечаниям и предложениям.
    Вложения
    • Тип файла: zip LSINT.ZIP (73.6 Кб, Просмотров: 5)
    Дружба-магия-радость!
    Ответить с цитированием  
     

  2. #2 LINT 3.0 
    Гуру Аватар для Абадябер
    Регистрация
    09.12.2010
    Адрес
    Беларусь, Минск
    Сообщений
    1,219
    Сказал(а) спасибо
    302
    Поблагодарили 176 раз(а) в 144 сообщениях
    Записей в блоге
    5
    Ну вот, рад сообщить, что готов результат почти месяца работы (хотя, работал ударно я лишь последние дня 2-3). А именно, выкладываю готовый LInt 3.0, и могу без сомнения сказать, что он стал на 20% круче =):
    [Ссылки могут видеть только зарегистрированные пользователи. ]

    Плюшки новой версии:
    1. Поддержка всех последних тенденций языка, а именно, третьей версии СТЕПЛЕРа. Конечно, если ничего не забыл =).
    2. Тесты под MS-DOS на P1-100MHz показали ускорение работы на 75%, по сравнению с LInt 2.0 (поиск простых чисел, 4-1500)
    Под NTVDM тройка быстрее двойки ровно в 2 раза, и на 50% в DosBox. Компилятору все это дело проигрывает лишь в 5 раз, что вполне достойно для интерпретатора
    3. Снятие ограничения в 1000 строк на длину программы. Ограничения по прежнему существуют, но они связаны не с общей длиной текста программы, а с количеством меток, и размером генерируемого байткода. Подробнее можно узнать в файле readme.txt, который находится в архиве с интерпретатором.
    4. Возможность получить EXE-файл для любой программы. Обратите внимание, что LINT 3.0 не является компилятором (во всяком случае, в том значении слова, в котором оно обычно понимается), и поэтому генерирует не чистый машинный код. Вместо этого, он всего лишь приклеивает скомпилированный байткод программы, к эдакой "виртуальной машине". При ее запуске, она сразу же начинает исполнять вставленный в нее код. Из за этого, скорость работы из EXE не отличается от скорости работы под интерпретатором, зато без проблем работает абсолютно все, что вообще интерпретируется =). Это именно та идея, которую я предлагал, и я рад, что у меня получилось таки ее реализовать =).
    5. По прежнему, входная программа проверяется на наличие любого рода ошибок, и, если ошибка найдена, то дается ее описание, и строка, где она была обнаружена. Также проверка на лажу идет и при интерпретации программы.
    6. Как обычно, исходники включены, иногда даже с комментариями =).
    Советую ознакомиться с файлом readme.txt - возможно узнаете что нибудь полезное.

    В архиве новая версия моего BMPView и новая программка, реализующая работу с графикой и мышью. К сожалению, по, пока что, малоизвестной мне причине, ни одна из этих программ не работает в TOTOP3. Эту проблему я подробно опишу в другой теме.

    Работа над программой по прежнему будет вестить. Буду рад, если кто либо обнаружит и сообщит об ошибках, неточностях, предложит идеи и даст советы, а то и отзыв напишет (особенно круто, если с "разбором полетов") zxD))) Мне, ребята, действительно важно мнение каждого из вас.
    [Убрал третью версию. Можно загрузить 3.01 ниже]
    Последний раз редактировалось Абадябер; 10.10.2011 в 18:37. Причина: Убрал третью версию, качайте 3.01 ниже
    Дружба-магия-радость!
    Ответить с цитированием  
     

  3. Пользователь сказал cпасибо:

    >Quiet Snow< (24.05.2012)

  4. #3 LInt 3.0.1. Работа над ошибками. 
    Гуру Аватар для Абадябер
    Регистрация
    09.12.2010
    Адрес
    Беларусь, Минск
    Сообщений
    1,219
    Сказал(а) спасибо
    302
    Поблагодарили 176 раз(а) в 144 сообщениях
    Записей в блоге
    5
    [Ссылки могут видеть только зарегистрированные пользователи. ]
    Если кто-то пользуется таки сим интерпретатором, то рекомендую загрузить поправленную версию. Исправлено порядочно всего (лог в readme.txt). Главное исправление - КРАЙНЕ КРИТИЧНЫЙ БАГ. Вызванный моим раздолбайством. Прошу прощения, если кто-то от него пострадал.
    А именно: Если препроцессор LInt 3.0 встречал ошибку в программе, то он удалял не временной файл, как должен был, а файл, с самой программой на степлере, где была обнаружена ошибка. А это явная подстава =(. Надеюсь, впрочем, учитывая количество загрузок, что никто потерять свои исходники не успел =).
    Последний раз редактировалось Абадябер; 15.10.2011 в 11:07. Причина: Убрана версия 3.01. 3.02 можно скачать ниже.
    Дружба-магия-радость!
    Ответить с цитированием  
     

  5. Пользователь сказал cпасибо:

    >Quiet Snow< (24.05.2012)

  6. #4 LInt 3.02 
    Гуру Аватар для Абадябер
    Регистрация
    09.12.2010
    Адрес
    Беларусь, Минск
    Сообщений
    1,219
    Сказал(а) спасибо
    302
    Поблагодарили 176 раз(а) в 144 сообщениях
    Записей в блоге
    5
    [Ссылки могут видеть только зарегистрированные пользователи. ]
    Вот, что называется, новая работа над ошибками. Из главных исправлений - порядок исполнения операций в операторах, принимающих 2 выражения, теперь все происходить по стандарту.
    Добавлен русификатор, поправлено несколько ошибок - подробно все описано в файле README.TXT.
    Вложения
    Дружба-магия-радость!
    Ответить с цитированием  
     

  7. Пользователь сказал cпасибо:

    >Quiet Snow< (24.05.2012)

  8. #5 LInt 3.0.3. Транслятор STAPLER > ASM. 
    Гуру Аватар для Абадябер
    Регистрация
    09.12.2010
    Адрес
    Беларусь, Минск
    Сообщений
    1,219
    Сказал(а) спасибо
    302
    Поблагодарили 176 раз(а) в 144 сообщениях
    Записей в блоге
    5
    [Ссылки могут видеть только зарегистрированные пользователи. ]
    Вот, закончил работу над экспериментальной версией транслятора STAPLER > ASM.
    Что он транслирует?
    1. Так как транслятор встроен в LInt, то позволяется использовать и Define
    и библиотеки и любые другие расширения третьей версии языка, кроме
    команд ~ которыми я займусь позже.
    2. Транслятор пораждает относительно компактные, оформленные и откомментированные
    листинги программ (примеры в директории TRANS), которые после трансляции
    в FASM превращаются в небольшие исполняемые файлы формата COM.
    3. Исполняемые файлы работают верно и не вешают систему, разумеется, ровно
    настолько, насколько корректна сама программа на степлере (если она при
    неверном вводе начнет обращаться и записывать что либо в случайные переменные,
    за последствия ручаться уже будет нельзя).
    Обязательно ознакомтесь с описанием трансляции в readme.txt - там описаны
    все текущие ограничения (стеки, количество доступных переменных и.т.п).
    4. Транслятор проводит минимальную оптимизацию листингов, по возможности
    не генерируя бессмысленных команд, и, если возможно, объединяя несколько
    команд языка в одну. Тем не менее, полученный листинг еще более чем годится
    для "дооптимизации вручную" - там есть, что можно ускорить, а то и безболезненно
    удалить.
    В любом случае, работа над транслятором будет продолжаться, и к более
    поздним версиям постараюсь повысить качество генерируемого кода.
    5. Скорость работы полученной программы PRIME.COM на Pentium1 под DOS практически
    аналогична варианту транслятора от Kakos_nonos: Обе программы находят
    простые числа от 4 до 5000 за 18 секунд.
    На Pentium4-2600MHz под NTVDM, и, внимание, ДАЖЕ ПОД DOS, скорость работы
    PRIME.COM варьируется без причин. Иногда простые числа от 4 до
    10000 находятся за 5 секунд, иногда - за 20-30 секунд. Драма
    состоит в том, что РАБОТАЕТ ОДНА И ТА ЖЕ ПРОГРАММА. Я не уловил
    никакой закономерности, кроме того, что одна и та же программа,
    помещенная в разные директории работает с разной скоростью (например, запуск
    com программы с дискеты - 4..10000 - 5 секунд, эту же программу с диска - 4..10000 -
    20 секунд). Мне это
    не понятно. Когда скорость резко прыгала от того, что я убирал\добавлял
    пару некритичных команд (которые даже не повторялись в цикле), я еще
    мог списать это на нюансы исполнения кода самим процессором
    (например, серьезная несработка предсказывания переходов, переполнение конвейеров,
    и.т.п), но когда это стало замечаться даже на одинаковых программах, тут
    я пас, идей нет. И причем ситуация такова, что это происходит только у меня
    на компьютере,
    на других системах, на которых проводились тесты, все хорошо, скорость
    стабильна и не скачет.

    Одна из моих догадок заключается в том, что такая коротка программа при определенных
    условиях могла просто попасть в кэш процессора, и оттого выполниться за 5 секунд.
    Или же, действительно, дело лишь в том, что сгенерированный LInt
    код не очень хорошо оптимизирован именно для Pentium4, из за чего возникают
    подобные проблемы. Если еще у кого-либо подобный процессор, буду рад,
    если вы протестируете работу программ, и сообщите, стабильна ли скорость исполнения,
    и если да, то какая она, или же скорость тоже прыгает.

    Транслятор генерирует ASM файл, предназначенный для трансляции в
    компиляторе FASM для DOS. Скачать его можно с официального сайта:
    [Ссылки могут видеть только зарегистрированные пользователи. ]

    Все важные заметки и правила использования транслятора описаны в
    файле Readme.txt.
    Надеюсь на ваши комментарии, предложения, советы, критику или багрепорты,
    ребята, мне это все очень важно ,
    Вложения
    Дружба-магия-радость!
    Ответить с цитированием  
     

  9. 2 пользователя(ей) сказали cпасибо:

    Kakos_nonos (14.11.2011), Konstantin Shcherba (14.11.2011)

  10. #6  
    Гуру Аватар для Konstantin Shcherba
    Регистрация
    08.11.2010
    Сообщений
    1,336
    Сказал(а) спасибо
    26
    Поблагодарили 139 раз(а) в 107 сообщениях
    Записей в блоге
    1
    Цитата Сообщение от Абадябер Посмотреть сообщение
    например, запуск
    com программы с дискеты - 4..10000 - 5 секунд, эту же программу с диска - 4..10000 -
    20 секунд
    Различие во времени выполнения наблюдается если запускать несколько раз подряд, например с дискеты?
    Ответить с цитированием  
     

  11. #7  
    Гуру Аватар для Абадябер
    Регистрация
    09.12.2010
    Адрес
    Беларусь, Минск
    Сообщений
    1,219
    Сказал(а) спасибо
    302
    Поблагодарили 176 раз(а) в 144 сообщениях
    Записей в блоге
    5
    Цитата Сообщение от admin Посмотреть сообщение
    Различие во времени выполнения наблюдается если запускать несколько раз подряд, например с дискеты?
    Нет, при запуске много раз подряд с дискетки скорость стабильно высокая. Только что погонял еще раз.
    admin, вы навели меня на идею, которую я только что и проверил. Я, кажется, обнаружил определенную взаимосвязь между скоростью работы и длиной пути, по которому расположен файл.
    D:\Abaduaber\Downgrade\Godd\prime.com - очень медленно
    D:\Abaduaber\Downgrade\God\prime.com - крайне быстро.
    D:\Abaduaber\Downgrade\G\t\d\prime.com - очень медленно.
    D:\Abaduaber\Downgrade\G\t\prime.com - очень быстро.
    Тоесть, в корневом каталоге любого диска программа работает очень быстро. Если же записать ее в каталог, расположенный где нибудь глубоко, начинает тормозить. В частности, я посчитал, что тормоза начинаются, если длина пути превышает 37-39 байт.
    Интересно, к чему бы это?...
    Дружба-магия-радость!
    Ответить с цитированием  
     

  12. #8  
    Гуру Аватар для Konstantin Shcherba
    Регистрация
    08.11.2010
    Сообщений
    1,336
    Сказал(а) спасибо
    26
    Поблагодарили 139 раз(а) в 107 сообщениях
    Записей в блоге
    1
    А smartdrv используется? В config.sys buffers что указано? Если есть такая возможность - покажите config.sys.
    Ответить с цитированием  
     

  13. #9  
    Гуру Аватар для Konstantin Shcherba
    Регистрация
    08.11.2010
    Сообщений
    1,336
    Сказал(а) спасибо
    26
    Поблагодарили 139 раз(а) в 107 сообщениях
    Записей в блоге
    1
    Запустил PRIME.COM на нетбуке (Atom) по Win7. Программа выполнилась примерно за 20-25 секунд.
    Ответить с цитированием  
     

  14. Пользователь сказал cпасибо:

    Абадябер (14.11.2011)

  15. #10  
    Гуру Аватар для Абадябер
    Регистрация
    09.12.2010
    Адрес
    Беларусь, Минск
    Сообщений
    1,219
    Сказал(а) спасибо
    302
    Поблагодарили 176 раз(а) в 144 сообщениях
    Записей в блоге
    5
    Фишка в том, что это NTVDM под XP, и о SmartDrv речи уж точно не идет. Хотя, разумеется, система каким либо образом, но кэширует диск.
    Есть config.nt:
    Код :
    dos=high, umb
    device=%SystemRoot%\system32\himem.sys
    files=40
    device=C:\PROGRA~1\Avast5\aswmonds.sys
    Хмм. Интересно, антивирус что-то записал...

    Сейчас загружусь с дискетки, и проверю скорость работы под чистым DOS. Я проверял уже - опять же, разнится, однако теперь попытаюсь проверить штуку с длиной путей, и отыскать возможную закономерность.

    Программа выполнилась примерно за 20-25 секунд.
    А какой диапазон задавали?
    Дружба-магия-радость!
    Ответить с цитированием  
     

Страница 1 из 2 12 ПоследняяПоследняя
Информация о теме
Пользователи, просматривающие эту тему

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

Похожие темы

  1. День рождения Абадябера
    от Konstantin Shcherba в разделе Архив
    Ответов: 15
    Последнее сообщение: 26.12.2013, 22:22
  2. Интерпретатор ЛИСПа на СТЕПЛЕРе
    от Kakos_nonos в разделе Проекты на Степлере
    Ответов: 3
    Последнее сообщение: 27.08.2012, 18:40
  3. Интерпретатор CHIP-8 на степлере.
    от Kakos_nonos в разделе Степлер
    Ответов: 3
    Последнее сообщение: 25.01.2012, 00:45
  4. Brainfuck-интерпретатор
    от Kakos_nonos в разделе Разработки на Ассемблере
    Ответов: 5
    Последнее сообщение: 20.04.2011, 15:39
  5. Бефунгин-Интерпретатор языка Befung.
    от Kakos_nonos в разделе Другие языки программирования
    Ответов: 10
    Последнее сообщение: 23.01.2011, 00:47
Ваши права
  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •