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

Discussion in 'WASM.BEGINNERS' started by darsar, Dec 8, 2020.

  1. darsar

    darsar New Member

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

    njeen Active Member

    Blog Posts:
    0
    Книга дракона Альфреда Ахо - куда уж подробней. Ну либо на базе llvm что-то https://habr.com/ru/post/336980/
     
    texaciri and q2e74 like this.
  3. q2e74

    q2e74 Well-Known Member

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

    Pavia Well-Known Member

    Blog Posts:
    0
  5. Mikl___

    Mikl___ Супермодератор Staff Member

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

    Attached Files:

    Last edited: Dec 8, 2020
    q2e74 likes this.
  6. jega

    jega New Member

    Blog Posts:
    0
  7. Rel

    Rel Well-Known Member

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

    Aoizora Active Member

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

    hiddy Member

    Blog Posts:
    0
  10. Aoizora

    Aoizora Active Member

    Blog Posts:
    0
    Например, инструкцию nop такой транслятор переводил бы в мега-трэш с ветвлениями и фейковыми вызовами
     
  11. Rel

    Rel Well-Known Member

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

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

    Blog Posts:
    0
    Да рел правильно говорит, но я знаю кое кого кто такое реализовывал в своей кандидатской
    --- Сообщение объединено, Dec 13, 2020 ---
    ну я про полиморфный компилер