Size: a a a

Compiler Development

2020 April 18

МБ

Михаил Бахтерев in Compiler Development
ruv
Но, на практике все не записывают в терминах функций. Операторы, структуры управления — зачем это все?   Видимо, так проще записывать и зачитывать )

[upd] Я не имею ввиду, что невозможно записать. А именно, даже имея возможность, чаще все-таки не ограничиваются записью всего только в терминах функций.
Ну, почему не записывается? Haskell, Lisp и тому подобное
источник

r

ruv in Compiler Development
Михаил Бахтерев
Ну, почему не записывается? Haskell, Lisp и тому подобное
Почему модуль в Haskell — это не функция? ;)
источник

МБ

Михаил Бахтерев in Compiler Development
ruv
Почему модуль в Haskell — это не функция? ;)
Хм... Интересное замечание. Спасибо
источник

AT

Alexander Tchitchigin in Compiler Development
ruv
「 Есть очень мощный подход: представьте, что уже имеется подходящая нотация для описания решения задачи, далее просто опишите решение. А затем реализуйте и нотацию. 」

Да, это действительно очень мощный подход.

Но, мне кажется, разные языки дают разную поддержку для этого подхода. Т.е., в одних языках проще получается реализовывать свои концепции, а в других — сложней. Один язык/компилятор бьет тебя по рукам, или вынуждает городить длинные конструкции, а другой  — даже позволяет стрелять себе в ногу ;)


Наверное, это можно назвать мощностью выразительных средств языка. Как по вашему, возможно ли как-то более-менее объективно упорядочить языки по этой величине?

Или тут больше играют субъективные факторы?

#question #comparison
источник

KR

K R in Compiler Development
Михаил Бахтерев
Как нас учит теория категорий и соответствие Карри-Говорда, всё можно записать в терминах функций (комбинаторов).
Как учит нас практика, всё можно написать на фортране (даже документацию)!
источник

KR

K R in Compiler Development
ruv
Но, на практике все не записывают в терминах функций. Операторы, структуры управления — зачем это все?   Видимо, так проще записывать и зачитывать )

[upd] Я не имею ввиду, что невозможно записать. А именно, даже имея возможность, чаще все-таки не ограничиваются записью всего только в терминах функций.
Просто человек плохо ориентируется среди одинаковых коричневых кирпичей. Об этом даже фильм есть.
источник

PS

Peter Sovietov in Compiler Development
ruv
「 Есть очень мощный подход: представьте, что уже имеется подходящая нотация для описания решения задачи, далее просто опишите решение. А затем реализуйте и нотацию. 」

Да, это действительно очень мощный подход.

Но, мне кажется, разные языки дают разную поддержку для этого подхода. Т.е., в одних языках проще получается реализовывать свои концепции, а в других — сложней. Один язык/компилятор бьет тебя по рукам, или вынуждает городить длинные конструкции, а другой  — даже позволяет стрелять себе в ногу ;)


Наверное, это можно назвать мощностью выразительных средств языка. Как по вашему, возможно ли как-то более-менее объективно упорядочить языки по этой величине?

Или тут больше играют субъективные факторы?

#question #comparison
Я бы не говорил о "мощности выразительных средств" вообще. Все ЯП -- это в той или иной степени DSL, не смысла городить конструкции "про запас" и "на всякий случай". Скорее, надо говорить о средствах из конкретной области -- области построения встроенных компиляторов/интерпретаторов. Факторы тут вполне объективны -- давно ведь есть примеры того, как можно выразительно реализовывать ЯП.
источник

PS

Peter Sovietov in Compiler Development
Угу, и апофеоз всех лямбд/семантик — банальные низкоуровневые макросы %)
источник

PS

Peter Sovietov in Compiler Development
Михаил Бахтерев
Как нас учит теория категорий и соответствие Карри-Говорда, всё можно записать в терминах функций (комбинаторов).
Угу, и апофеоз всех объектов/стрелок — банальная работа на уровне функций, понятная первокурснику с томиком SICP и безо всякого Карри-Говарда %)
источник

ЗП

Зигохистоморфный Препроморфизм in Compiler Development
Peter Sovietov
Угу, и апофеоз всех объектов/стрелок — банальная работа на уровне функций, понятная первокурснику с томиком SICP и безо всякого Карри-Говарда %)
все сложные системы ерайзятся до какого-то utlc
источник

ЗП

Зигохистоморфный Препроморфизм in Compiler Development
но до этого есть куча важных слоев
источник

МБ

Михаил Бахтерев in Compiler Development
Peter Sovietov
Угу, и апофеоз всех объектов/стрелок — банальная работа на уровне функций, понятная первокурснику с томиком SICP и безо всякого Карри-Говарда %)
Я сам из сомневающихся. Но, всё же, нужно признать, что монады, сопряжения и всякие такие штуки полезны в рассуждениях. Полезны ли они в коде...  Не знаю.
источник

PS

Peter Sovietov in Compiler Development
Собственно, речь только о том, чтобы применять формализм уместно, соразмерно самой задаче:)
источник

ИЧ

Илья Чистяков in Compiler Development
https://discourse.julialang.org/t/python-to-julia-transpiler/21473 смотрите что нашёл, если доделать Py2Jl, то Джулия может победить
источник

M

MaxGraey in Compiler Development
Илья Чистяков
https://discourse.julialang.org/t/python-to-julia-transpiler/21473 смотрите что нашёл, если доделать Py2Jl, то Джулия может победить
источник

M

MaxGraey in Compiler Development
Зачем делать корявый транспалинг когда у джулии есть интероп почти со всеми ЯП? https://github.com/JuliaInterop
источник

МБ

Михаил Бахтерев in Compiler Development
Peter Sovietov
Собственно, речь только о том, чтобы применять формализм уместно, соразмерно самой задаче:)
Так может получиться, что все наши коды слишком конкретны, чтобы применять высокие абстракции без внешней идеологии было уместно :/ Но идеология местами помогает быстрее найти решение. Мой опыт таков...
источник

ИЧ

Илья Чистяков in Compiler Development
MaxGraey
Зачем делать корявый транспалинг когда у джулии есть интероп почти со всеми ЯП? https://github.com/JuliaInterop
думаю потому что смысла в нём мало, если ты хочешь условную Джангу юзануть
источник

ИЧ

Илья Чистяков in Compiler Development
но я понял, хрен транслируешь
источник

AT

Alexander Tchitchigin in Compiler Development
Peter Sovietov
Угу, и апофеоз всех лямбд/семантик — банальные низкоуровневые макросы %)
Мне кажется, насчёт низкоуровневых макросов -- Вы сильно примитивизируете и неверно интерпретируете изложенный материал...
источник