Некоторое время назад мы объявили о мероприятии, где участникам предлагается написать свой язык программирования, соответствующий выбранной теме, которая будет определена во время начала конкурса.
В прошлом посте мы обещали опубликовать ресурсы для тех, кто ни разу не писал свой язык программирования, но очень хотел бы поучаствовать. Так вот, мы возвращаемся со списком ресурсов!
🌟 Ресурсы:
1. Книга: Crafting interpreters. Bob Nystrom. Книга отлично подходит для новичков, с понятным объяснением сложных тем. В книге представлена имплементация интерпретатор языка программирования Lox на Java, и виртуальный машины для Lox на C. Книга бесплатно на английском языке доступна онлайн на официальном сайте
2. Книга: Thorsten Ball. Writing interpreter in Go. Книга простым языком объясняет имплементацию интерпретатора для простого языка программирования Monkey на Go. Книга на английском бесплатно доступна тут
3. Книга: Thorsten Ball. Writing compiler in Go. Книга простым языком объясняет имплементацию компилятора для простого языка программирования на Go.
4. Книга: Бенджамин Пирс. Типы в языках программирования. Книга предоставляет информацию по множеству типовых систем и их имплементаций. Книга бесплатно доступна тут
5. Книга: Никлаус Вирт. Построение компиляторов. В этой маленькой книге изложен виртовский подход к разработке компиляторов, в котором отбрасываются любые усложнения вроде оптимизаций или сложностей кодогенерации, и читатель идет к работающему языку самым коротким путем. Теории тут нет, все пояснения делаются на пальцах, формируя интуитивное понимание проблем.
6. Видеокурс от ANNIMON по написанию интерпретируемого языка программирования на Java. В курсе подробно разобрано большинство тем, необходимых для имплементации языка программирования. https://www.youtube.com/playlist?list=PL81SFGIHr5IJFsoWX0qTeQ9_-MFBE552C
7. Видеокурс по написанию базы для языка программирования на TypeScript: https://www.youtube.com/playlist?list=PL_2VhOvlMk4UHGqYCLWc6GO8FaPl8fQTh
8. Видеокурс по написанию простого языка программирования на Python: https://www.youtube.com/playlist?list=PLZQftyCk7_SdoVexSmwy_tBgs7P0b97yD
9. Видеокурс по написанию языка программирования под llvm на Python: https://www.youtube.com/playlist?list=PLCJHRjnsxJFoK8e-RaNZUa7R4BaPqczHX
10. Видеокурс по книге Crafting Interpreters с имплементацией представленного языка на Rust: https://www.youtube.com/playlist?list=PLj_VrUwyDuXS4K3n7X4U4qmkjpuA8rJ76
11. Статья: Имплементация вывода типов на Rust:
часть 1) https://habr.com/ru/articles/748978/
часть 2) https://habr.com/ru/articles/753180/
Также, было бы плохо, не оставить ссылку на целую библиотеку ресурсов по теме разработки языков программирования: https://github.com/true-grue/Compiler-Development/tree/master
Please open Telegram to view this post
VIEW IN TELEGRAM
❤10
ДАТА НАЧАЛА ЛАНГДЖЕМА
12 июля будут опубликованы условия мероприятия.
Приз: 5000 рублей (~$65).
Кратко напомню о мероприятии: участникам даётся определенный период времени, в течении которого они должны будут сделать язык программирования, который соответствует условиям. На выбор может быть несколько идей, выбираете ту, которая нравится больше всего и делаете яп
12 июля будут опубликованы условия мероприятия.
Приз: 5000 рублей (~$65).
Кратко напомню о мероприятии: участникам даётся определенный период времени, в течении которого они должны будут сделать язык программирования, который соответствует условиям. На выбор может быть несколько идей, выбираете ту, которая нравится больше всего и делаете яп
❤13
Поздравляю вас с началом лангджема.
Тема, условия и инструкция по сдаче проекта находится в репозитории: https://github.com/langdev-jam/plic
Кратко напоминаю об условиях: вы пишите свой язык программирования (компилятор/интерпретатор) на тематику, которая определена в репозитории. Следуя инструкции выкладываете свой проект и забираете приз
Приз: 5000 RUB
Дата окончания: 20 июля
Тема, условия и инструкция по сдаче проекта находится в репозитории: https://github.com/langdev-jam/plic
Кратко напоминаю об условиях: вы пишите свой язык программирования (компилятор/интерпретатор) на тематику, которая определена в репозитории. Следуя инструкции выкладываете свой проект и забираете приз
Приз: 5000 RUB
Дата окончания: 20 июля
❤10
compilers
Недавно в чате была предложена идея создания дискорд сервера, чтобы помимо чата можно было пообщаться вживую, отсортировать ветки, а также много чего еще, что дает дискорд. Нужно узнать ваше мнение: создавать или данного чата хватает?
Когда-то мы планировали открыть дискорд сервер для нашего сообщества, так вот, наступило время это сделать!
Будем рады видеть вас здесь: https://discord.gg/ANUc56vnKd
Будем рады видеть вас здесь: https://discord.gg/ANUc56vnKd
❤6
20 июля 10:00 - это последнее время, когда можно сделать пулл реквест. Рассматриваться будут только те языки, которые успели к этому времени
Please open Telegram to view this post
VIEW IN TELEGRAM
❤9
Please open Telegram to view this post
VIEW IN TELEGRAM
❤8
Пришло время подводить итоги langjam (plic). Первое место забирает язык программирования Dola. Просьба победителя связаться с @k1ngmang, чтобы забрать свой приз.
Ну а вот какие языки попали в первую пятерку:
1) dola
2) graft
3) ftorlisp
4) ygvm
5) py++
Please open Telegram to view this post
VIEW IN TELEGRAM
GitHub
plic/dola at main · langdev-jam/plic
programming language implementation competition. Contribute to langdev-jam/plic development by creating an account on GitHub.
❤12
Если вам было бы интересно узнать об устройстве сборки мусора в Python,
то этот цикл статей точно для вас! В статьях подробно описываются внутренние алгоритмы сборщика мусора Python понятным языком и с примерами. Рекомендуем к прочтению!
https://habr.com/ru/articles/940642/
https://habr.com/ru/articles/951250/
https://habr.com/ru/articles/986784/
https://habr.com/ru/articles/992026/
#Статья #Материал
Please open Telegram to view this post
VIEW IN TELEGRAM
❤8
Интерактивная система, предназначенная для формализации теорий и написания программ с зависимыми типами. Система имеет блог, который содержит не только документацию языка, но и публикации авторов, которые проливают свет на внутреннее устройство проекта: https://www.aya-prover.org/pubs/. Если вам интересны Coq, Agda и подобные, то рекомендую ознакомиться и с Aya.
Please open Telegram to view this post
VIEW IN TELEGRAM
www.aya-prover.org
Aya Prover
Website for the Aya theorem prover
❤5
Please open Telegram to view this post
VIEW IN TELEGRAM
❤9
Forwarded from Мастерская Вячеслава. 🔧
Нашёл отличный доклад по теме JIT-компиляции в Cpython. В докладе затрагиваются подробности имплементации JIT такие как уникальный механизм copy and patch компиляции и micro codes interpreter.
https://youtu.be/BiVEhI7wYS4?si=1dQFOg1UseCg66Jk
Что же нам предвещает добавление JIT в коробочную версию cpython? Мы получим бесплатное ускорение всех наших программ и возрадуемся или всё не так просто? Давайте попробуем разобраться вместе.
https://youtu.be/BiVEhI7wYS4?si=1dQFOg1UseCg66Jk
YouTube
Евгений Афонасьев. Долгая дорога к JIT
Евгений Афонасьев
Teamlead, Авито
Долгая дорога к JIT
JIT или не JIT? Вот в чём вопрос.
Python — язык с многолетней историей. И на протяжении всей своей истории он не был фаворитом в вопросах производительности. Было много разных попыток приблизиться к…
Teamlead, Авито
Долгая дорога к JIT
JIT или не JIT? Вот в чём вопрос.
Python — язык с многолетней историей. И на протяжении всей своей истории он не был фаворитом в вопросах производительности. Было много разных попыток приблизиться к…
❤7
Оказывается, обучение нейросети - это тоже компиляция, только случайная и без гарантий. В статье рассказывают, как специальный компилятор Tracr переводит программу на языке RASP в файл с весами трансформера, и зачем это нужно: https://habr.com/ru/companies/selectel/articles/1066052/
❤3