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

Давненько сюда не заглядывал. Два вопроса: 1. У меня впечатление, что

когда говорят про AST — кажется, что разговор про какое-то совсем стандартизованное представление. Так ли это или все-таки разговор об идее, а детали реализации AST каждый раз свои?

2. Есть ли смысл строить AST по результатам чистого синтаксического анализа без проверки типов, в частности? Или лучше выполнять проверку соответствия типов уже в процессе построения AST?

6 ответов

20 просмотров

Для вывода типов в общем случае нужно полностью знать код функции. Даже если языку достаточно простого вывода типов переменных вроде var x = f(); вам нужно знать тип функции f которая может быть определена ниже по коду

2. Проблема хорошо знакома тем, кто имеет дело с C++. Clang строит AST в явном виде. MSVC в явном виде AST не строит. В результате MSVC не способен поддерживать некоторые фичи последних стандартов (кажется, это какой-то вариант SFINAE on return type). Проблема очень большая. Лет 7 тому назад Микрософт даже нанимала специального человека, что-бы приделать Clang-front-end к своему компилятору, но это так ни чем и не закончилось.

Lone Geek
2. Проблема хорошо знакома тем, кто имеет дело с C...

<<<приделать Clang-front-end к своему компилятору>>> На этом месте я немного впал в смысловой ступор, если честно...

Lone Geek
Parser and preprocessor.

Я - в том смысле, что артефакты на выходе Parser and preprocessor у МС и силанга, должны разниться. Тогда, если мы приводим силанга-фронт-энд к форматам ввода родного ядра МС-компилятора, то это уже не совсем силанг. Если наоборот - тогда - да.

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

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

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
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
Карта сайта