185 похожих чатов

Somewhat related: а есть языки программирования которые в стандартной библиотеке

дают фичи для написания кастомных рефакторингов на уровне cst/ast? чтобы не на уровне компиляции код трансформировать как в макросах, а отдельными проходами по репозиторию исходников

15 ответов

23 просмотра

Python, Java... C# maybe?

все зависит от требуемоего качества удобства любой язык, где есть компилятор написанный на этом же языке и поставляется как либа ghc например, но там уже проверенно exactprint очень геморный

В дотнете есть Roslyn Analyzers и Roslyn Code Generators, возможно это близкое к тому что вы хотите

Andrew- Автор вопроса
кана
все зависит от требуемоего качества удобства любо...

ну вот хочется поудобнее чем брать сорцы компилятора и пытаться делать что-то там потому что если структуры ast не задуманы под сериализацию то добавлять такое поверху будет очень больно

Andrew- Автор вопроса
кана
все зависит от требуемоего качества удобства любо...

я возился с ghc-exactprint несколько дней, так и не понял как им пользоваться и на вопросы мои на дискурсе никто так и не ответил так что с моей тз уровень юзабельности там низкий очень

Andrew- Автор вопроса
Alexander Chichigin
Python, Java... C# maybe?

у джавы в стандартной поставке можно было процессорами аннотаций код парсить и плагинами для джавадока в последний раз когда я на нее смотрел, в обоих случаях прямо писать преобразования так как хочется делать в рефакторингах не было там для процессоров аннотаций была даже либа специальная чтобы код генерировать не конкатенацией строчек от Jake Wharton (кажется), не думаю что она поддерживает кейс именно модификации существующих исходников а не генерацию с нуля

Andrew
я возился с ghc-exactprint несколько дней, так и н...

это правда, в команде hls то же мнение

Andrew
у джавы в стандартной поставке можно было процессо...

> прямо писать преобразования так как хочется делать в рефакторингах Это как? Что значит "прямо"?

C Intermediate Language

Andrew- Автор вопроса
卜根
C Intermediate Language

пока не очень понятно что за зверь такой в частности на гитхабе сломана ссылка на туториал

Andrew- Автор вопроса
Alexander Chichigin
> прямо писать преобразования так как хочется дела...

значит что если я захочу написать что-то простое (допустим, фолдинг констант на уровне сорцов) то для этого нужно будет писать кучу кода

Andrew
пока не очень понятно что за зверь такой в частно...

Его изучают на некоторых курсах. На его основе сделаны FRAMA-C, CCured и Continuation Passing C

Andrew
значит что если я захочу написать что-то простое (...

Так нужно или не нужно писать кучу кода? Вы спрашивали про "мейнстримные" императивные языки — как Вы себе представляете нужный код на таком языке?

Andrew- Автор вопроса
Andrew
вообще не упоминал императивные языки

А, это в другом треде было, извините...

Похожие вопросы

Обсуждают сегодня

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
Rꙮman Yankꙮvsky
29
А вообще, что может смущать в самой Julia - бы сказал, что нет единого стандартного подхода по многим моментам, поэтому многое выглядит как "хаки" и произвол. Короче говоря, с...
Viktor G.
2
30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Гайс, вопрос для разносторонее развитых: читаю стрим с юарта, нада выделять с него фреймы с определенной структурой, если ли чо готовое, или долбаться с ринг буффером? нада у...
Vitaly
9
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
длина пакета фиксированная, или меняется?
Okhsunrog
7
Карта сайта