uz
Feedback
compilers

compilers

Kanalga Telegram’da o‘tish

Все про компиляторы и языки программирования Наши чаты: @procompilers - общий чат по разработке языков. @code_crafting_ru - чат, где можно вести блог своего языка программирвоания

Ko'proq ko'rsatish
237
Obunachilar
-124 soatlar
+27 kun
+830 kun

Ma'lumot yuklanmoqda...

O'xshash kanallar
Ma'lumot yo'q
Muammo bormi? Iltimos, sahifani yangilang yoki bizning qo'llab-quvvatlash boshqaruvchimizga murojaat qiling>.
Taglar buluti
Ma'lumot yo'q
Muammo bormi? Iltimos, sahifani yangilang yoki bizning qo'llab-quvvatlash boshqaruvchimizga murojaat qiling>.
Kirish va chiqish esdaliklari
---
---
---
---
---
---
Obunachilarni jalb qilish
Sen '26
Sentabr '26
+13
0 kanalda
Avgust '26
+26
0 kanalda
Get PRO
Iyul '26
+31
0 kanalda
Get PRO
Iyun '260
0 kanalda
Get PRO
May '26
+7
0 kanalda
Get PRO
Aprel '260
0 kanalda
Get PRO
Mart '260
0 kanalda
Get PRO
Fevral '260
0 kanalda
Get PRO
Yanvar '260
0 kanalda
Get PRO
Dekabr '25
+6
0 kanalda
Get PRO
Noyabr '250
0 kanalda
Get PRO
Oktabr '25
+1
0 kanalda
Get PRO
Sentabr '25
+10
0 kanalda
Get PRO
Avgust '250
0 kanalda
Get PRO
Iyul '250
0 kanalda
Get PRO
Iyun '250
0 kanalda
Get PRO
May '25
+74
0 kanalda
Get PRO
Aprel '250
0 kanalda
Get PRO
Mart '25
+47
1 kanalda
Get PRO
Fevral '250
1 kanalda
Get PRO
Yanvar '250
1 kanalda
Get PRO
Dekabr '240
0 kanalda
Get PRO
Noyabr '240
0 kanalda
Get PRO
Oktabr '240
0 kanalda
Get PRO
Sentabr '240
0 kanalda
Get PRO
Avgust '240
0 kanalda
Get PRO
Iyul '24
+45
0 kanalda
Get PRO
Iyun '240
0 kanalda
Get PRO
May '24
+9
1 kanalda
Sana
Obunachilarni jalb qilish
Esdaliklar
Kanallar
25 Sentabr+1
24 Sentabr0
23 Sentabr+1
22 Sentabr+1
21 Sentabr0
20 Sentabr0
19 Sentabr0
18 Sentabr+1
17 Sentabr0
16 Sentabr0
15 Sentabr+2
14 Sentabr+1
13 Sentabr0
12 Sentabr+1
11 Sentabr+1
10 Sentabr0
09 Sentabr0
08 Sentabr+2
07 Sentabr0
06 Sentabr0
05 Sentabr+1
04 Sentabr0
03 Sentabr0
02 Sentabr0
01 Sentabr+1
Kanal postlari
Neva - dataflow-язык, где программа это не список инструкций, а граф узлов, обменивающихся сообщениями через порты. impo
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

2
Знаете, почему -O2 может молча выбросить вашу проверку на переполнение? Потому что переполнение знакового целого - это UB. А
Знаете, почему -O2 может молча выбросить вашу проверку на переполнение? Потому что переполнение знакового целого - это UB. А раз UB быть не может, то и условие, которое срабатывает только при нём, всегда ложно. Ветка мёртвая => можно удалять. Одна и та же программа: -O0 возвращает -1, -O2 возвращает -2147483648. Разбор реального бага GCC, проверок после разыменования и санитайзеров в статье.
368
3
Как скопировать дерево, но не точь-в-точь Инженеры PVS‑Studio рассказывают про трансляцию ast через protobuf, паттерны преобр
Как скопировать дерево, но не точь-в-точь Инженеры PVS‑Studio рассказывают про трансляцию ast через protobuf, паттерны преобразований и 263 типа узлов, которые пришлось обходить. В статье про выбор между итератором и посетителем, эмуляцию двойной диспетчеризации и почему нормализация - боль
755
4
Go 1.27 Самый громкий апдейт этого релиза - обобщённые методы. Теперь можно объявлять параметры типа прямо у методов структур, а не только у функций. Из приятного: json получил вторую мажорную версию. Новый пакет работает быстрее, особенно на распаковке, и стал строже: теперь он ругается на невалидный UTF-8 и дублирующиеся ключи в объектах. При этом старый код продолжит работать как раньше, а выигрыш в производительности мы получим бесплатно. Также в профилировщике появился тип goroutineleak, который находит горутины, намертво застрявшие на недостижимых каналах или мьютексах. Весь список изменений можете почитать тут
476
5
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)
918
6
Оказывается, обучение нейросети - это тоже компиляция, только случайная и без гарантий. В статье рассказывают, как специальны
Оказывается, обучение нейросети - это тоже компиляция, только случайная и без гарантий. В статье рассказывают, как специальный компилятор Tracr переводит программу на языке RASP в файл с весами трансформера, и зачем это нужно: https://habr.com/ru/companies/selectel/articles/1066052/
786
7
Нашёл отличный доклад по теме JIT-компиляции в Cpython. В докладе затрагиваются подробности имплементации JIT такие как уникальный механизм copy and patch компиляции и micro codes interpreter. Что же нам предвещает добавление JIT в коробочную версию cpython? Мы получим бесплатное ускорение всех наших программ и возрадуемся или всё не так просто? Давайте попробуем разобраться вместе. https://youtu.be/BiVEhI7wYS4?si=1dQFOg1UseCg66Jk
450
8
😭Сегодня в нашем дискорде смотрели язык V (vlang.io). Помимо того, что компилятор допускает утечку при обычном hello world,
😭Сегодня в нашем дискорде смотрели язык V (vlang.io). Помимо того, что компилятор допускает утечку при обычном hello world, так еще и проблемы из review 2023 года не были решены. Забавно, что автор изначально задумывал минималистичный язык, а по итогу мы имеем borrow checker, arena allocator, autofree, manual memory management, а также built-in orm и параллельный сборщик мусора! Интересно, что нужно добавить в V, чтоб он перестал быть минималистичным?
693
9
🔈Aya-Prover Интерактивная система, предназначенная для формализации теорий и написания программ с зависимыми типами. Система имеет блог, который содержит не только документацию языка, но и публикации авторов, которые проливают свет на внутреннее устройство проекта: https://www.aya-prover.org/pubs/. Если вам интересны Coq, Agda и подобные, то рекомендую ознакомиться и с Aya.
432
10
🗑 Сборка мусора в Python Если вам было бы интересно узнать об устройстве сборки мусора в Python, то этот цикл статей точно д
🗑 Сборка мусора в 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/ #Статья #Материал
449
11
🤩ИТОГИ Пришло время подводить итоги langjam (plic). Первое место забирает язык программирования Dola. Просьба победителя связаться с @k1ngmang, чтобы забрать свой приз. Ну а вот какие языки попали в первую пятерку: 1) dola 2) graft 3) ftorlisp 4) ygvm 5) py++
862
12
👨‍💻🐨 До конца приёма работ на langjam осталось 3 часа. 10:00 — это последнее время, когда можно сделать пулл реквест.
454
13
😀Напоминаю про дедлайн. 20 июля 10:00 - это последнее время, когда можно сделать пулл реквест. Рассматриваться будут только
😀Напоминаю про дедлайн. 20 июля 10:00 - это последнее время, когда можно сделать пулл реквест. Рассматриваться будут только те языки, которые успели к этому времени
414
14
Когда-то мы планировали открыть дискорд сервер для нашего сообщества, так вот, наступило время это сделать! Будем рады видеть вас здесь: https://discord.gg/ANUc56vnKd
890
15
Поздравляю вас с началом лангджема. Тема, условия и инструкция по сдаче проекта находится в репозитории: https://github.com/langdev-jam/plic Кратко напоминаю об условиях: вы пишите свой язык программирования (компилятор/интерпретатор) на тематику, которая определена в репозитории. Следуя инструкции выкладываете свой проект и забираете приз Приз: 5000 RUB Дата окончания: 20 июля
1 046
16
ДАТА НАЧАЛА ЛАНГДЖЕМА 12 июля будут опубликованы условия мероприятия. Приз: 5000 рублей (~$65). Кратко напомню о мероприятии:
ДАТА НАЧАЛА ЛАНГДЖЕМА 12 июля будут опубликованы условия мероприятия. Приз: 5000 рублей (~$65). Кратко напомню о мероприятии: участникам даётся определенный период времени, в течении которого они должны будут сделать язык программирования, который соответствует условиям. На выбор может быть несколько идей, выбираете ту, которая нравится больше всего и делаете яп
893
17
👨‍💻 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_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
543
18
LANGJAM Некоторое время назад мы проводили мероприятие, где пользователям предлагалось написать программу на выбранном нами и
LANGJAM Некоторое время назад мы проводили мероприятие, где пользователям предлагалось написать программу на выбранном нами интересном языке. Спустя год идея конкурса была переосмыслена и мы готовы представить langjam. Каждый из вас может написать свой язык программирования, соответствующий теме, которая будет определена во время начала конкурса. Можно выиграть от 2000 до 5000 рублей. Места будут определятся судьями во время прямой трансляции. Это отличная возможность испытать себя в разработке компиляторов / интерпретаторов. Чуть позже мы опубликуем в канале ресурсы для тех, кто ни разу не писал свой язык программирования, но очень хотел бы поучаствовать. Кто хочет принять участие в качестве судьи конкурса, уже можете писать: @k1ngmang, @vyacheslavhere
1 112
19
Какой контент вы бы хотели тут видеть?
495
20
Недавно прошел 7-дневный хакатон по разработке языка программирования. За это время нужно было написать яп и игру на нем. На дискорд-сервеое хакатона можно найти вкладку с проектами, и посмотреть, что у людей получилось сделать за этот промежуток времени: https://langjamgamejam.com/ Чат: @procompilers
699