Size: a a a

Compiler Development

2020 February 29

МБ

Михаил Бахтерев in Compiler Development
Peter Sovietov
Мне, например, интересно было читать Ван Роя. Его широта взглядов, умение привести в единую систему знания из разрозненных-специализированных околоязыковых областей и "субкультур" — крайне редко сегодня встречаются. Понятно, что учебник очень большой и мало у кого есть время его прочесть. Но есть отдельная статья под названием "Programming Paradigms for Dummies: What Every Programmer Should Know". Вот ее крайне рекомендую посмотреть: https://www.info.ucl.ac.be/~pvr/VanRoyChapter.pdf
https://www.info.ucl.ac.be/~pvr/book.html - вот этот учебник?
источник

PS

Peter Sovietov in Compiler Development
Это очень интересный проект, как это Вы на него вышли? :) Чипы GreenArrays были созданы в компании, где я работал. Правда, я занимался не проектированием архитектуры, а инструментальными средствами и прикладной разработкой. И там я написал свой первый "коммерческий" супероптимизатор. Он был довольно просто устроен — эвристический перебор для виртуальной f18-машины. Но некоторые интересные фрагменты кода удалось синтезировать. Это было давно, где-то в 2007. А команда, которая делала Greenthumb, к сожалению, запоздала — архитекторы GreenArrays потеряли к тому времени финансирование и проект до сих пор находится в стагнации. При этом Greenthumb — первый пример серьезного компилятора, основанного на синтезе программ. Я, когда делал свой супероптимизатор, очень скептически относился к SMT-решателям, но со временем мнение свое поменял :)
источник

PS

Peter Sovietov in Compiler Development
Да.
источник

BD

Berkus Decker in Compiler Development
Т-34 85
если взять код на C, но перед компиляцией прогонять парсером-генератором, который будет расставлять const над переменными с квалификатором по умолчанию (то есть, когда его нет), мы получим версию Си с иммутабельностью по умолчанию? Или тут есть какие-то проблемы?
я думаю в результаты мы получим ошибки компиляции )
источник

Т8

Т-34 85 in Compiler Development
Berkus Decker
я думаю в результаты мы получим ошибки компиляции )
посмотрим, какие это ошибки, расставим mut там, где это нужно - пробуем ещё раз собрать
источник

BD

Berkus Decker in Compiler Development
Т-34 85
чтобы нечаянно не смутировать то, что должно быть иммутабельным
а надо ли менять int* на int const * const или на что-то другое? )
источник

BD

Berkus Decker in Compiler Development
Т-34 85
посмотрим, какие это ошибки, расставим mut там, где это нужно - пробуем ещё раз собрать
я уже говорил - проще RIIR будет гораздо надежнее
источник

Т8

Т-34 85 in Compiler Development
Berkus Decker
а надо ли менять int* на int const * const или на что-то другое? )
конечно. const int*const должно стать просто int*
источник

BD

Berkus Decker in Compiler Development
Т-34 85
конечно. const int*const должно стать просто int*
int const * и int const * const это _разные_ типы
источник

Т8

Т-34 85 in Compiler Development
Berkus Decker
я уже говорил - проще RIIR будет гораздо надежнее
нет, синтаксис и семантика должны быть сишными. Ну, можно прикрутить ещё сильную типизацию. Короче, надо typescript/cfront пилить
источник

Т8

Т-34 85 in Compiler Development
Berkus Decker
int const * и int const * const это _разные_ типы
не видел такого в плюсах. Точнее, не видел таких примеров
источник

DF

Dollar Føølish in Compiler Development
Кек
источник

AT

Alexander Tchitchigin in Compiler Development
Peter Sovietov
Это очень интересный проект, как это Вы на него вышли? :) Чипы GreenArrays были созданы в компании, где я работал. Правда, я занимался не проектированием архитектуры, а инструментальными средствами и прикладной разработкой. И там я написал свой первый "коммерческий" супероптимизатор. Он был довольно просто устроен — эвристический перебор для виртуальной f18-машины. Но некоторые интересные фрагменты кода удалось синтезировать. Это было давно, где-то в 2007. А команда, которая делала Greenthumb, к сожалению, запоздала — архитекторы GreenArrays потеряли к тому времени финансирование и проект до сих пор находится в стагнации. При этом Greenthumb — первый пример серьезного компилятора, основанного на синтезе программ. Я, когда делал свой супероптимизатор, очень скептически относился к SMT-решателям, но со временем мнение свое поменял :)
Честно говоря, никак - кто-то из "друзей" на GitHub его "полайкал". 😊
источник

Т8

Т-34 85 in Compiler Development
Berkus Decker
int const * и int const * const это _разные_ типы
последний const цепляется к указателю. А первый?
источник

BD

Berkus Decker in Compiler Development
Т-34 85
не видел такого в плюсах. Точнее, не видел таких примеров
я бы начал на твоем месте с изучения предметной области тогда
источник

AT

Alexander Tchitchigin in Compiler Development
Berkus Decker
int const * и int const * const это _разные_ типы
И они оба отличаются от int * const 😔
источник

Т8

Т-34 85 in Compiler Development
Berkus Decker
я бы начал на твоем месте с изучения предметной области тогда
хз, я всегда пишу const int*const и не испытывал проблем
источник

BD

Berkus Decker in Compiler Development
Т-34 85
последний const цепляется к указателю. А первый?
const applies to the thing on the left, unless there's nothing on the left, then it applies to the thing on the right
источник

BD

Berkus Decker in Compiler Development
Т-34 85
хз, я всегда пишу const int*const и не испытывал проблем
это то же самое что int const * const - константный указатель на константный инт
источник

BD

Berkus Decker in Compiler Development
int * const это константный указатель на мутабельный инт
источник