Size: a a a

Compiler Development

2020 March 28

SM

Sailor Moon in Compiler Development
Yaroslav Schekin
Беседа была о том, почему выбирают "скриптовые" языки, и почему в них динамическая типизация.
По крайней мере, мне так показалось. ;)
+
источник

AT

Alexander Tchitchigin in Compiler Development
Yaroslav Schekin
Беседа была о том, почему выбирают "скриптовые" языки, и почему в них динамическая типизация.
По крайней мере, мне так показалось. ;)
Вопроса "почему выбирают "скриптовые" языки" никто не задавал.
источник

PS

Peter Sovietov in Compiler Development
Дождетесь вот, когда появится у вас вопрос по компиляторной тематике, то в чате не останется уже ни одного профессионала, который сможет на него компетентно ответить (новички: "а, типа, они здесь были, да? Мы думали здесь можно просто пофлеймить, если из чатов по Rust или C++ выгнали..."). :)
источник

AT

Alexander Tchitchigin in Compiler Development
Peter Sovietov
Дождетесь вот, когда появится у вас вопрос по компиляторной тематике, то в чате не останется уже ни одного профессионала, который сможет на него компетентно ответить (новички: "а, типа, они здесь были, да? Мы думали здесь можно просто пофлеймить, если из чатов по Rust или C++ выгнали..."). :)
А что, ещё кто-то ушёл из чата?! 😱
источник

PS

Peter Sovietov in Compiler Development
Alexander Tchitchigin
А что, ещё кто-то ушёл из чата?! 😱
Ну, можно сделать перекличку. Все ли сотрудники из Huawei, JetBrains, Oracle, Microsoft, Intel, МЦСТ, Positive Technologies, Raincode Labs... присутствуют :)
источник

TS

Timur Safin in Compiler Development
Peter Sovietov
Ну, можно сделать перекличку. Все ли сотрудники из Huawei, JetBrains, Oracle, Microsoft, Intel, МЦСТ, Positive Technologies, Raincode Labs... присутствуют :)
к своему стыду не знаю чем знаменита Raincode Labs ("the largest independent compiler company in the world")?
источник

VM

Victor Miasnikov in Compiler Development
Лучше устроим "проверку на дорогах".

Вопрос "по компиляторной тематике":

at 20??-12-22 Peter Sovietov say:
==
Так ведь в очень многих компиляторных проектах на Си есть внешний DSL для описания правил локальной оптимизации и для выбора команд. В свое время популярен был iburg https://github.com/drh/iburg
Кстати, первоначальная версия iburg написана на ICON, который является развитием того самого SNOBOL из 1962 года :)
==

В XDS Modula-2/Oberon как раз он ( модифицированный)

Не ясно есть ли "в природе" готовая  грамматика для x64.

Вернее в winlcc, скорее всего, есть.
Но исходные коды не опубликованы.
источник

PS

Peter Sovietov in Compiler Development
Timur Safin
к своему стыду не знаю чем знаменита Raincode Labs ("the largest independent compiler company in the world")?
Они занимаются разработкой инструментов для модернизации ПО.

https://scholar.google.com/citations?hl=ru&user=Ycwf7Z4AAAAJ&view_op=list_works&sortby=pubdate

Возможно, присутствующий здесь Вадим Зайцев расскажет подробнее :)
источник

PS

Peter Sovietov in Compiler Development
Victor Miasnikov
Лучше устроим "проверку на дорогах".

Вопрос "по компиляторной тематике":

at 20??-12-22 Peter Sovietov say:
==
Так ведь в очень многих компиляторных проектах на Си есть внешний DSL для описания правил локальной оптимизации и для выбора команд. В свое время популярен был iburg https://github.com/drh/iburg
Кстати, первоначальная версия iburg написана на ICON, который является развитием того самого SNOBOL из 1962 года :)
==

В XDS Modula-2/Oberon как раз он ( модифицированный)

Не ясно есть ли "в природе" готовая  грамматика для x64.

Вернее в winlcc, скорее всего, есть.
Но исходные коды не опубликованы.
А чего это Вы меня цитируете без указания авторства? :)

Вопрос в том, нужен ли Вам этот BURG на самом деле? Вот недавно уже была небольшая дискуссия на тему выбора команд. В реальности подход на основе динамического программирования вовсе не так распространен, как хотелось бы теоретикам.
И здесь у BURS/BURG-подобных генераторов участь примерно такая же, как у lex/yacc.
В том же LLVM используется жадный выбор. А Клифф Клик жалеет, что использовал BURS в C2 :)



Но у академиков BURG-подобные технологии, конечно, развиваются. Понимаю, что Вам хочется готовое средство, но даю ссылку для полноты картины:
http://www.complang.tuwien.ac.at/papers/thier+18.pdf
источник

VM

Victor Miasnikov in Compiler Development
Peter Sovietov
А чего это Вы меня цитируете без указания авторства? :)

Вопрос в том, нужен ли Вам этот BURG на самом деле? Вот недавно уже была небольшая дискуссия на тему выбора команд. В реальности подход на основе динамического программирования вовсе не так распространен, как хотелось бы теоретикам.
И здесь у BURS/BURG-подобных генераторов участь примерно такая же, как у lex/yacc.
В том же LLVM используется жадный выбор. А Клифф Клик жалеет, что использовал BURS в C2 :)



Но у академиков BURG-подобные технологии, конечно, развиваются. Понимаю, что Вам хочется готовое средство, но даю ссылку для полноты картины:
http://www.complang.tuwien.ac.at/papers/thier+18.pdf
(

 По авторству: чисто технически было несколько утомительно пролистывать до 22 декабря.

И немного деталей в л.сообщениях

P.S. исправил
)

Мне нужна x64 кодогенерация для XDS. В XDS - BURG.

Подходу burs много лет.

Раз я не нахожу нужную грамматику - значит выбираю не те фразы в поисковых машинах.

(

Или нет?

Желательно бы знать точно.

)
источник

VM

Victor Miasnikov in Compiler Development
Vasiliy Tereshkov
Я, увы, допускаю такие ошибки часто: когда в каком-нибудь PyTorch функция ждала тензор размера (1, 1, m, n, 1), а я ей подал (1, m, n, 1). И вот я жду, пока загрузится ROS, PyTorch, посыплется поток данных - и вот тут только я и узнаю, что ошибся, да ещё и с дурацким сообщением об ошибке (кажется, глупость сообщений об ошибках в Питоне как-то связана с динамической типизацией).
По проблематике динамических и статических языков:

Достаточно интересный анализ практических аспектов был сделан доктором наук Тереховым.

Имено он занимался компилятором Алгол-68 в СПб.

(

Кратко: "подмножество всевозможных ЯП", в составе: Algol-68, Modula-2, ещё что-то, позволяло возложить на компилятор обеспечение безопасности.

PL/1, Си - нет.

Динамические языки - допускались после тщательно выверенного программирования на статических.

)
источник

PS

Peter Sovietov in Compiler Development
"Проблематику динамических и статических языков", на мой взгляд, имеет смысл обсуждать в контексте построения компиляторов, выбора соотв. языка реализации.
Я все время повторяю, любой ваш оффтопик можно превратить в интереснейшее обсуждение по компиляторной тематике, надо лишь проявить немного фантазии ;)
источник

KR

K R in Compiler Development
Скрипты маленькие и почти без ветвлений. Один запуск программы почти целиком её проверяет.
источник

AT

Alexander Tchitchigin in Compiler Development
Peter Sovietov
"Проблематику динамических и статических языков", на мой взгляд, имеет смысл обсуждать в контексте построения компиляторов, выбора соотв. языка реализации.
Я все время повторяю, любой ваш оффтопик можно превратить в интереснейшее обсуждение по компиляторной тематике, надо лишь проявить немного фантазии ;)
Это для Вас (и ещё некоторых) оно "интереснейшее по компиляторной тематике", а для оффтопящих - интересно так как они оффтопят.
источник

VM

Victor Miasnikov in Compiler Development
K R
Скрипты маленькие и почти без ветвлений. Один запуск программы почти целиком её проверяет.
Ну, ну: недавно один маленький скрипт читал не только дочерние подкаталоги, но и каталог-"брат".
источник

KR

K R in Compiler Development
Victor Miasnikov
Ну, ну: недавно один маленький скрипт читал не только дочерние подкаталоги, но и каталог-"брат".
Голова нужна не только для того, чтобы в неё есть, но и чтобы выбирать инструмент под задачу.

Скрипты можно писать на Ocaml, например.
источник

VM

Victor Miasnikov in Compiler Development
Alexander Tchitchigin
Это для Вас (и ещё некоторых) оно "интереснейшее по компиляторной тематике", а для оффтопящих - интересно так как они оффтопят.
Терехов, надеюсь, по теме?
источник

AT

Alexander Tchitchigin in Compiler Development
Victor Miasnikov
Терехов, надеюсь, по теме?
Переспросите у админов. 😉
источник

VM

Victor Miasnikov in Compiler Development
K R
Голова нужна не только для того, чтобы в неё есть, но и чтобы выбирать инструмент под задачу.

Скрипты можно писать на Ocaml, например.
Скрипт - не мой.

(

Мои .bat файлы были вполне работоспособны. Правда, др.тематика

)

Терехов писал докторскую до пика популярности "слегка критикуемого" им.

Уже в интервью на Хабре эта тематика "испарилась"
источник

VT

Vasiliy Tereshkov in Compiler Development
Alexander Tchitchigin
Это какие динамические языки сейчас не делают предварительной компиляции? 😃
Создатель Wren пишет, что это Io и Ruby до версии 1.8.7 включительно.
http://wren.io/performance.html
источник