- PVSM.RU - https://www.pvsm.ru -
Если ты всегда мечтал написать свой язык программирования — добро пожаловать. Здесь ты наверняка найдёшь для себя что-нибудь интересное.
GitHub-юзер yawnt [1] собрал чудесную подборку [2] ссылок для любителей драконов, языков и прочих вкусных внутренностей. А знающие камрады в комментариях наверняка поделятся с тобой и другими яствами.
Пишет yawnt следующее:
С каждым днём мне всё интереснее тема компиляторов, интерпретаторов и дизайна языков программирования в целом. И я решил поделиться с народом ссылками на собранные мной материалы (большую часть мне самому ещё предстоит прочитать :<). Надеюсь, кому-нибудь они окажутся полезными.
Я не включил (и не собираюсь) в список ссылки на официальную документацию, т. к. считаю очевидным, что первым делом следует смотреть именно туда ;P.
Всё, конечно же, на английском. Делимся ссылками на русскоязычные материалы (и на существующие переводы перечисленных трудов) в комментариях, господа! Тема безумно увлекательная.
Оставайтесь на связи.
Оригинальный пост выложен на 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/
Нажмите здесь для печати.