- PVSM.RU - https://www.pvsm.ru -

О компиляторах и интерпретаторах

О компиляторах и интерпретаторах
Если ты всегда мечтал написать свой язык программирования — добро пожаловать. Здесь ты наверняка найдёшь для себя что-нибудь интересное.

GitHub-юзер yawnt [1] собрал чудесную подборку [2] ссылок для любителей драконов, языков и прочих вкусных внутренностей. А знающие камрады в комментариях наверняка поделятся с тобой и другими яствами.

Пишет yawnt следующее:

С каждым днём мне всё интереснее тема компиляторов, интерпретаторов и дизайна языков программирования в целом. И я решил поделиться с народом ссылками на собранные мной материалы (большую часть мне самому ещё предстоит прочитать :<). Надеюсь, кому-нибудь они окажутся полезными.

Я не включил (и не собираюсь) в список ссылки на официальную документацию, т. к. считаю очевидным, что первым делом следует смотреть именно туда ;P.

Всё, конечно же, на английском. Делимся ссылками на русскоязычные материалы (и на существующие переводы перечисленных трудов) в комментариях, господа! Тема безумно увлекательная.

Ссылки

LLVM

Виртуальные машины

Компиляторы

Интерпретаторы

Сборщики мусора

Книги

Компиляторы

Интерпретаторы

Сборщики мусора

Всякий разный код

Оставайтесь на связи.

Оригинальный пост выложен на github [50], предлагайте автору ссылки, он добавит их в пост.

Уверен, вы знаете ещё миллиард интереснейших источников информации по заданной теме (например, хороший курс [51] есть на Coursera). Делитесь знаниями!

Автор: skovorodkin

Источник [52]


Сайт-источник PVSM.RU: https://www.pvsm.ru

Путь до страницы источника: https://www.pvsm.ru/python/28094

Ссылки в тексте:

[1] yawnt: http://yawnt.github.com

[2] подборку: http://yawnt.github.com/blog/2013/02/15/on-compilers-and-interpreters/

[3] Обсуждение: http://news.ycombinator.com/item?id=5149404

[4] часть 1: http://www.ibm.com/developerworks/opensource/library/os-createcompilerllvm1/index.html

[5] часть 2: http://www.ibm.com/developerworks/opensource/library/os-createcompilerllvm2/index.html

[6] Глава о LLVM: http://www.aosabook.org/en/llvm.html

[7] Архитектура open-source приложений: http://www.aosabook.org/en/index.html

[8] Описание: http://hackage.haskell.org/trac/ghc/wiki/Commentary/Compiler/Backends/LLVM/Design

[9] Основы и инфраструктура: http://www.cs.cmu.edu/afs/cs/academic/class/15745-s12/public/lectures/L3-LLVM-Part1.pdf

[10] Жизнь инструкции: http://eli.thegreenplace.net/2012/11/24/life-of-an-instruction-in-llvm/

[11] LLVM — инфраструктура для многоэтапной оптимизации: http://llvm.org/pubs/2002-12-LattnerMSThesis.pdf

[12] TerrorVM: http://blog.txus.io/2012/04/learning-with-terror-vm/

[13] Виртуальные машины для языков программирования: https://services.brics.dk/java/courseadmin/VM/pages/Virtual+Machines+for+Programming+Languages

[14] Sol: http://rsms.me/2012/10/14/sol-a-sunny-little-virtual-machine.html

[15] Достаточно быстрая VM за довольно короткое время: http://tratt.net/laurie/tech_articles/articles/fast_enough_vms_in_fast_enough_time

[16] Виртуальные машины: абстракции и реализации: http://shimonschocken.com/wp-content/uploads/2011/10/Virtual-machines.pdf

[17] Виртуальная машина для мультиязыкового исполнения: http://www.ps.uni-saarland.de/Papers/abstracts/multivm.pdf

[18] Joeq: http://suif.stanford.edu/papers/ivme03.pdf

[19] Черновик: http://www.niccolai.cc/index.php?itemid=498&catid=13

[20] Falcon: http://en.wikipedia.org/wiki/Falcon_(programming_language)

[21] Параллельный планировщик: http://www.niccolai.cc/index.php?itemid=503

[22] Куча: http://selflanguage.org/documentation/published/index.html

[23] Self: http://en.wikipedia.org/wiki/Self_(programming_language)

[24] Проектирование компилятора: http://elvis.rowan.edu/~bergmann/books/c_cpp/Text/C_CppEd.pdf

[25] Создание компилятора: https://www.pvsm.ruftp://ftp-developpez.com/general/cours/compiler-construction-wirth.pdf

[26] Компиляторы и компиляторы компиляторов: http://scifac.ru.ac.za/compilers/conts.htm

[27] написать: http://norvig.com/lispy.html

[28] ещё круче: http://norvig.com/lispy2.html

[29] Создание: http://thingsaaronmade.com/blog/bootstrapping-a-prototype-based-object-oriented-language-in-44-lines-of-code.html

[30] Микроруководство: http://nakkaya.com/2010/08/24/a-micro-manual-for-lisp-implemented-in-c/

[31] интерпретаторы Scheme: http://stackoverflow.com/questions/2610716/small-readable-scheme-interpreter-in-c

[32] О сборщиках мусора.: http://furious-waterfall-55.heroku.com/ruby-guide/internals/gc.html

[33] Modern Compiler Design 2nd Edition: http://dickgrune.com/Books/MCD_2nd_Edition/

[34] по-английски: http://mitpress.mit.edu/sicp/

[35] по-русски: http://newstar.rinet.ru/~goga/sicp/sicp.pdf

[36] видео: http://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-001-structure-and-interpretation-of-computer-programs-spring-2005/video-lectures/

[37] Lisp in Small Pieces: http://pagesperso-systeme.lip6.fr/Christian.Queinnec/WWW/LiSP.html

[38] Interpreting Lisp: http://www.civilized.com/files/lispbook.pdf

[39] The Garbage Collection Handbook: http://gchandbook.org/

[40] LISP.c: http://dl.dropbox.com/u/11332353/lisp.c

[41] TinyClojure: https://github.com/steeleduncan/TinyClojure

[42] Прототипная объектная система на функциях: https://github.com/eduardoejp/jormungandr

[43] TinyVM: https://github.com/GenTiradentes/tinyvm

[44] Homoiconic JS: https://github.com/Gozala/wisp

[45] TinyScheme: https://github.com/yawnt/tinyscheme

[46] VM и JIT компилятор на стеке: https://github.com/proglangclass/vm

[47] MiniScheme: https://github.com/catseye/minischeme

[48] Kaleidoscope: http://en.wikipedia.org/wiki/Kaleidoscope_(programming_language)

[49] на LLVM-C: https://github.com/benbjohnson/llvm-c-kaleidoscope

[50] github: https://github.com/yawnt/yawnt.github.com

[51] хороший курс: https://www.coursera.org/course/compilers

[52] Источник: http://habrahabr.ru/post/170735/