Веб-версияОткрыть в Telegram
Ccompilers dev

compilers dev

@langdev · канал · Технологии · в индексе с 2026-07-19
210подписчиков
432средний охват поста
2постов за 30 дней
68постов в индексе
C
compilers dev
Ссылка
нажмите — покажем
Месяц назад прочитал замечательную статью Хиллела Уейна (Hillel Wayne) про алгебраические типы данных. Принёс вам свой перевод) https://habr.com/ru/articles/962522/
7 · 954 ·
C
compilers dev
Суперкомпилятор Java. Я уже упоминал труды hirrolot'a с его довольно интересным проектом mazeppa, но в данной статье был выбран реальный язык, который используется в реальных проектах и нуждается в оптимизации. В самой статье не так много теории, касающейся суперкомпиляторов, поэтому снова напомню вам про этот замечательный сборник ресурсов, где вы сможете найти материалы для изучения суперкомпиляции более подробно. Чат: @procompilers
3 · 908 ·
C
compilers dev
Ссылка
нажмите — покажем
Недавно прошел 7-дневный хакатон по разработке языка программирования. За это время нужно было написать яп и игру на нем. На дискорд-сервеое хакатона можно найти вкладку с проектами, и посмотреть, что у людей получилось сделать за этот промежуток времени: https://langjamgamejam.com/ Чат: @procompilers
5 · 861 ·
compilers dev
Фотография
нажмите — покажем
LANGJAM Некоторое время назад мы проводили мероприятие, где пользователям предлагалось написать программу на выбранном нами интересном языке. Спустя год идея конкурса была переосмыслена и мы готовы представить langjam. Каждый из вас может написать свой язык программирования, соответствующий теме, которая будет определена во время начала конкурса. Можно выиграть от 2000 до 5000 рублей. Места будут определятся судьями во время прямой трансляции. Это отличная возможность испытать себя в разработке компиляторов / интерпретаторов. Чуть позже мы опубликуем в канале ресурсы для тех, кто ни разу не писал свой язык программирования, но очень хотел бы поучаствовать. Кто хочет принять участие в качестве судьи конкурса, уже можете писать: @k1ngmang, @vyacheslavhere
13 · 1.4K ·
C
В
Вячеслав
👨‍💻 LANGJAM Некоторое время назад мы объявили о мероприятии, где участникам предлагается написать свой язык программирования, соответствующий выбранной теме, которая будет определена во время начала конкурса. В прошлом посте мы обещали опубликовать ресурсы для тех, кто ни разу не писал свой язык программирования, но очень хотел бы поучаствовать. Так вот, мы возвращаемся со списком ресурсов! 🌟Ресурсы: 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_2VhOvlMk4UHGqYCLWc6GO8Fa
22 · 837 ·
A
Artyom
Фотография
нажмите — покажем
ДАТА НАЧАЛА ЛАНГДЖЕМА 12 июля будут опубликованы условия мероприятия. Приз: 5000 рублей (~$65). Кратко напомню о мероприятии: участникам даётся определенный период времени, в течении которого они должны будут сделать язык программирования, который соответствует условиям. На выбор может быть несколько идей, выбираете ту, которая нравится больше всего и делаете яп
11 · 1.2K ·
Artyom
Поздравляю вас с началом лангджема. Тема, условия и инструкция по сдаче проекта находится в репозитории: https://github.com/langdev-jam/plic Кратко напоминаю об условиях: вы пишите свой язык программирования (компилятор/интерпретатор) на тематику, которая определена в репозитории. Следуя инструкции выкладываете свой проект и забираете приз Приз: 5000 RUB Дата окончания: 20 июля
17 · 1.4K ·
C
В
A
Artyom
Фотография
нажмите — покажем
😀Напоминаю про дедлайн. 20 июля 10:00 - это последнее время, когда можно сделать пулл реквест. Рассматриваться будут только те языки, которые успели к этому времени
631 ·
В
Вячеслав
👨‍💻🐨 До конца приёма работ на langjam осталось 3 часа. 10:00 — это последнее время, когда можно сделать пулл реквест.
2 · 651 ·
Artyom
Ссылка
нажмите — покажем
🤩ИТОГИ Пришло время подводить итоги langjam (plic). Первое место забирает язык программирования Dola. Просьба победителя связаться с @k1ngmang, чтобы забрать свой приз. Ну а вот какие языки попали в первую пятерку: 1) dola 2) graft 3) ftorlisp 4) ygvm 5) py++
11 · 1.1K ·
В
Фотография
нажмите — покажем
🗑 Сборка мусора в Python Если вам было бы интересно узнать об устройстве сборки мусора в 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/ #Статья #Материал
7 · 646 ·
A
Artyom
Ссылка
нажмите — покажем
🔈Aya-Prover Интерактивная система, предназначенная для формализации теорий и написания программ с зависимыми типами. Система имеет блог, который содержит не только документацию языка, но и публикации авторов, которые проливают свет на внутреннее устройство проекта: https://www.aya-prover.org/pubs/. Если вам интересны Coq, Agda и подобные, то рекомендую ознакомиться и с Aya.
2 · 565 ·
A
Artyom
Фотография
нажмите — покажем
😭Сегодня в нашем дискорде смотрели язык V (vlang.io). Помимо того, что компилятор допускает утечку при обычном hello world, так еще и проблемы из review 2023 года не были решены. Забавно, что автор изначально задумывал минималистичный язык, а по итогу мы имеем borrow checker, arena allocator, autofree, manual memory management, а также built-in orm и параллельный сборщик мусора! Интересно, что нужно добавить в V, чтоб он перестал быть минималистичным?
9 · 870 ·
A
Artyom
Ссылка
нажмите — покажем
Нашёл отличный доклад по теме JIT-компиляции в Cpython. В докладе затрагиваются подробности имплементации JIT такие как уникальный механизм copy and patch компиляции и micro codes interpreter. Что же нам предвещает добавление JIT в коробочную версию cpython? Мы получим бесплатное ускорение всех наших программ и возрадуемся или всё не так просто? Давайте попробуем разобраться вместе. https://youtu.be/BiVEhI7wYS4?si=1dQFOg1UseCg66Jk
1 · 591 ·
A
Artyom
Фотография
нажмите — покажем
Оказывается, обучение нейросети - это тоже компиляция, только случайная и без гарантий. В статье рассказывают, как специальный компилятор Tracr переводит программу на языке RASP в файл с весами трансформера, и зачем это нужно: https://habr.com/ru/companies/selectel/articles/1066052/
9 · 956 ·
A
Artyom
Ссылка
нажмите — покажем
Haskell для мира FPGA Clash - функциональный язык описания аппаратуры. Он берёт синтаксис и семантику из Haskell, а его главная идея - создание цифровых схем привычными для программиста методами, а затем компилировать их в синтезируемые VHDL, Verilog или SystemVerilog. Clash унаследовал от Haskell строгую типизацию. Это позволяет на этапе компиляции отлавливать ошибки, которые в классических HDL вылезут только на симуляции или в железе. Вот как на языке выглядит функция КИХ-фильтра: fir coeffs x = dotp coeffs (window x) where dotp as bs = sum (zipWith (*) as bs)
7 · 1K ·
A
Artyom
Ссылка
нажмите — покажем
Go 1.27 Самый громкий апдейт этого релиза - обобщённые методы. Теперь можно объявлять параметры типа прямо у методов структур, а не только у функций. Из приятного: json получил вторую мажорную версию. Новый пакет работает быстрее, особенно на распаковке, и стал строже: теперь он ругается на невалидный UTF-8 и дублирующиеся ключи в объектах. При этом старый код продолжит работать как раньше, а выигрыш в производительности мы получим бесплатно. Также в профилировщике появился тип goroutineleak, который находит горутины, намертво застрявшие на недостижимых каналах или мьютексах. Весь список изменений можете почитать тут
1 · 623 ·
A
Artyom
Фотография
нажмите — покажем
Как скопировать дерево, но не точь-в-точь Инженеры PVS‑Studio рассказывают про трансляцию ast через protobuf, паттерны преобразований и 263 типа узлов, которые пришлось обходить. В статье про выбор между итератором и посетителем, эмуляцию двойной диспетчеризации и почему нормализация - боль
10 · 892 ·
A
Artyom
Фотография
нажмите — покажем
Знаете, почему -O2 может молча выбросить вашу проверку на переполнение? Потому что переполнение знакового целого - это UB. А раз UB быть не может, то и условие, которое срабатывает только при нём, всегда ложно. Ветка мёртвая => можно удалять. Одна и та же программа: -O0 возвращает -1, -O2 возвращает -2147483648. Разбор реального бага GCC, проверок после разыменования и санитайзеров в статье.
5 · 515 ·
A
Artyom
Фотография
нажмите — покажем
Neva - dataflow-язык, где программа это не список инструкций, а граф узлов, обменивающихся сообщениями через порты. import { fmt } def Main(start any) (stop any) {     println fmt.Println<string>     ---     :start -> 'Hello, World!' -> println -> :stop } Всё выполняется параллельно, если не сказано иное (да, тут параллелизм по умолчанию). На мой взгляд довольно свежая идея, которую интересно пощупать. Сам язык компилируется в go, позиционируется как LLM-friendly, и имеет ряд фичей как для рядового пользователя (например визуальный редактор), так и для человека, решившего углубится в исходный код компилятора. Пишите, что думаете и присылайте другие необычные языки с интересными концептами в комментарии репозиторий neva: github.com/nevalang/neva
8 · 350 ·

Открытая публичная лента из поискового индекса ChatCrawler — «Google по публичному Telegram»; обновляется по мере обхода площадки. Время — UTC.

Только публичный контент, официальный API Telegram. О проекте · Вопросы · Чего мы не делаем · Убрать страницу из выдачи · Каталог · Поиск · Как мы считаем