Size: a a a

Compiler Development

2019 October 10

AT

Alexander Tchitchigin in Compiler Development
Dmitry Ponyatov
что-нибудь на графовом представлении программ кому попадалось? или прямая работа с атрибутными грамматиками
В смысле библиотеки или в смысле языка?
источник

МБ

Михаил Бахтерев in Compiler Development
Andrei Kurosh
В тайпскрипте такое используется, но для этого функция valid должна быть специальным образом проаннотирована
Теоретически, можно это делать и без аннотирования при помощи некоторого варианта LCF (logic of computable functions). Не факт, что это удобнее типов. Но метод есть.
источник

DP

Dmitry Ponyatov in Compiler Development
Alexander Tchitchigin
В смысле библиотеки или в смысле языка?
Желательно что-то ближе к языку, или кодогенератору
источник

DP

Dmitry Ponyatov in Compiler Development
Alexander Tchitchigin
Forth гомоиконным не считается?
Гомоиконный это когда в языке специально встроены средства работы с кодом как со структурой данных. Форт умеет в память лазить - так тогда и машинный код тоже можно было бы назвать гомоиконным.
источник

z

z in Compiler Development
С соседнего чата:
источник

z

z in Compiler Development
Предлагаю вообще не упоминать гомоиконность. Так как этот термин не определен понятно в какой-нибудь нормальной статье. И все тарактуют его по-своему.


Плюс к этому, во многих статьях сказано - термин введен в статье Macro Instruction Extensions of Compiler Languages. Сама же статья начинается со слов Мощные системы макроподстановок, можно строить на малом кол-ве конструкций. А именно, всего лишь на: условиях; абстракциях; скобочных записях. Всю статью автор только это и обсуждал, не упоминая гомоиконность.
источник

z

z in Compiler Development
Вот, еще нашел доводы против гомоиконности.
источник

AT

Alexander Tchitchigin in Compiler Development
Dmitry Ponyatov
Желательно что-то ближе к языку, или кодогенератору
Единственный графовый язык который я знаю - Graphviz. 😄
источник

AT

Alexander Tchitchigin in Compiler Development
Насчёт грамматик - Rebol/Red?
источник

МБ

Михаил Бахтерев in Compiler Development
А вообще, любой, более или менее выразительный язык, является гомоиконным: если константы можно записать на самом языке, то, вроде как, и ОК? Разве нет?
источник

МБ

Михаил Бахтерев in Compiler Development
Или важна именно eval/apply структура, чтобы называться гомоиконным? То есть, та структура, в которой apply применяет одну "структуру данных" к другой?
источник

SS

Sergey Sverdlov in Compiler Development
Tagir
Там у них целое научное исследование. Оказывается текущий алгоритм не только медленный, но и не всегда правильный. И вообще вопрос, какой алгоритм правильнее, не такой тривиальный
Меня еще смущает актуальногсть этого дела. Ведь, вроде бы, число в строку нужно бывает преобразовать перед выводом. И какая разница, с какой скоростью это делается, если потом все равно вывод.
источник

AT

Alexander Tchitchigin in Compiler Development
Dmitry Ponyatov
Желательно что-то ближе к языку, или кодогенератору
Или вот такое нужно?
источник

M

MaxGraey in Compiler Development
Sergey Sverdlov
Меня еще смущает актуальногсть этого дела. Ведь, вроде бы, число в строку нужно бывает преобразовать перед выводом. И какая разница, с какой скоростью это делается, если потом все равно вывод.
Как раз для вывода sprintf / ostrstream скорость не сильно важна и можно использовать более медленные но компактные алгоритмы что по сути и делается, но вот для dtoa нужен быстрый и точный алгоритм потому что он например нужен при сериализации даблов в JSON (к примеру) и сделать это нужно быстро (представим что это система реального времени, которая общается так с другими внешними системами)
источник

SS

Sergey Sverdlov in Compiler Development
MaxGraey
Как раз для вывода sprintf / ostrstream скорость не сильно важна и можно использовать более медленные но компактные алгоритмы что по сути и делается, но вот для dtoa нужен быстрый и точный алгоритм потому что он например нужен при сериализации даблов в JSON (к примеру) и сделать это нужно быстро (представим что это система реального времени, которая общается так с другими внешними системами)
Охотно верю. Просто у меня такого опыта (JSON и т.п.) нет. А вообще заметил, что нынешние студенты, особенно имеющие какой-то опыт, например, с Питоном, склонны сугубо числовые задачи решать, невпопад переходя к строкам. Бью по рукам.
источник

VK

Vladimir Kazanov in Compiler Development
Sergey Sverdlov
Охотно верю. Просто у меня такого опыта (JSON и т.п.) нет. А вообще заметил, что нынешние студенты, особенно имеющие какой-то опыт, например, с Питоном, склонны сугубо числовые задачи решать, невпопад переходя к строкам. Бью по рукам.
Ага, я нечто подобное на собеседованиях встречал, и именно в питоне почему-то
источник

AK

Andrei Kurosh in Compiler Development
Sergey Sverdlov
Охотно верю. Просто у меня такого опыта (JSON и т.п.) нет. А вообще заметил, что нынешние студенты, особенно имеющие какой-то опыт, например, с Питоном, склонны сугубо числовые задачи решать, невпопад переходя к строкам. Бью по рукам.
Многие из типичных "числовых задач" для студентов, типа "проверить является ли число палиндромом", действительно решаются гораздо проще если перевести число в строку
источник

SS

Sergey Sverdlov in Compiler Development
Andrei Kurosh
Многие из типичных "числовых задач" для студентов, типа "проверить является ли число палиндромом", действительно решаются гораздо проще если перевести число в строку
Все дело в том, что в ходе ученья, нас не особо интересует, является ли число конкретное палиндромом. На это число просто наплевать. Важно освоить сами приемы манипуляций с числами.
источник

AK

Andrei Kurosh in Compiler Development
Sergey Sverdlov
Все дело в том, что в ходе ученья, нас не особо интересует, является ли число конкретное палиндромом. На это число просто наплевать. Важно освоить сами приемы манипуляций с числами.
Ну вот необходимость этих манипуляций с числами из таких задач совсем неочевидна
источник

AT

Alexander Tchitchigin in Compiler Development
С другой стороны - нафига? Мне кажется, в последние 20 лет строковые алгоритмы сильно полезнее числовых. 🤷‍♀️
источник