Этапы создания интерпретатора

Тема в разделе "WASM.BEGINNERS", создана пользователем darsar, 8 дек 2020.

  1. darsar

    darsar New Member

    Публикаций:
    0
    Регистрация:
    8 дек 2020
    Сообщения:
    1
    Подробное описание этапов создания ИНТЕРПРЕТАТОРА для простого языка программирования. Нигде не могу найти именно этапы создания, расписанные простым языком, вроде - Этап 1. ... и так далее
     
    Последнее редактирование: 8 дек 2020
  2. njeen

    njeen Active Member

    Публикаций:
    0
    Регистрация:
    26 мар 2017
    Сообщения:
    138
    Адрес:
    Ташлинск
    Книга дракона Альфреда Ахо - куда уж подробней. Ну либо на базе llvm что-то https://habr.com/ru/post/336980/
     
    texaciri и q2e74 нравится это.
  3. q2e74

    q2e74 Active Member

    Публикаций:
    0
    Регистрация:
    18 окт 2018
    Сообщения:
    988
    я думаю, что как первый этап, можно взять https://github.com/antlr/antlr4 и создать себе парсер под грамматику. Остальное достаточно небольшой обвес, когда ты уже дергаешь апи операционной системы.
     
  4. Pavia

    Pavia Well-Known Member

    Публикаций:
    0
    Регистрация:
    17 июн 2003
    Сообщения:
    2.409
    Адрес:
    Fryazino
  5. Mikl___

    Mikl___ Супермодератор Команда форума

    Публикаций:
    14
    Регистрация:
    25 июн 2008
    Сообщения:
    3.708
    А вот еще 5 этапов :)
    http://www.programmersclub.ru/
    by Stilet (Виталий Белик)
    1. Компилятор домашнего приготовления. Часть 1
    2. Компилятор домашнего приготовления. Часть 2
    3. Компилятор домашнего приготовления. Часть 3
    4. Компилятор домашнего приготовления. Часть 4
    5. Компилятор домашнего приготовления. Часть 5
    Во вложении книга D.W.Barron'a "Ассемблеры и загрузчики" 1969
    Книга старенькая, но объясняется всё просто и понятно :)
     

    Вложения:

    • Barron-Asm.zip
      Размер файла:
      1 МБ
      Просмотров:
      205
    Последнее редактирование: 8 дек 2020
    q2e74 нравится это.
  6. jega

    jega New Member

    Публикаций:
    0
    Регистрация:
    15 июн 2020
    Сообщения:
    13
  7. Rel

    Rel Well-Known Member

    Публикаций:
    2
    Регистрация:
    11 дек 2008
    Сообщения:
    5.241
    Каждый программист за свою карьеру обязан написать хотя бы один лисп интерпретатор: http://www.buildyourownlisp.com/
    --- Сообщение объединено, 8 дек 2020 ---
    Раз уж заговорили про дизайн языков, может у кого есть хорошая книжка по JetBrains MPS в электронном виде?
     
  8. Aoizora

    Aoizora Active Member

    Публикаций:
    0
    Регистрация:
    29 янв 2017
    Сообщения:
    351
    А кому-нибудь приходила в голову написать полиморфный транслятор с ассемблера или си, чтобы делать морфинг кода прямо во время компиляции? Почему такого чуда до сих пор нет?
     
  9. hiddy

    hiddy Member

    Публикаций:
    0
    Регистрация:
    10 мар 2019
    Сообщения:
    82
  10. Aoizora

    Aoizora Active Member

    Публикаций:
    0
    Регистрация:
    29 янв 2017
    Сообщения:
    351
    Например, инструкцию nop такой транслятор переводил бы в мега-трэш с ветвлениями и фейковыми вызовами
     
  11. Rel

    Rel Well-Known Member

    Публикаций:
    2
    Регистрация:
    11 дек 2008
    Сообщения:
    5.241
    Проще встроиться в пайплайн готового компилятора, я делал обфускатор на базе плагинов к clang, и экспериментировал с GCC и их GIMPLE представлением, но там не так удобно, как в clang на уровне AST все делать.
     
  12. sl0n

    sl0n Мамонт дзена **

    Публикаций:
    0
    Регистрация:
    26 сен 2003
    Сообщения:
    684
    Да рел правильно говорит, но я знаю кое кого кто такое реализовывал в своей кандидатской
    --- Сообщение объединено, 13 дек 2020 ---
    ну я про полиморфный компилер