Size: a a a

Compiler Development

2020 February 18

K

Kir in Compiler Development
Меня тоже мучает это вопрос
источник

K

Kir in Compiler Development
И где параметризованные типы
источник

K

Kir in Compiler Development
Или там можно тип прямо в функциях, как возвращаемое значение объявлять?
источник

А

Алексей in Compiler Development
Kir
Или там можно тип прямо в функциях, как возвращаемое значение объявлять?
думаю да
источник

А

Алексей in Compiler Development
точнее можно было бы
источник

А

Алексей in Compiler Development
если бы были функции
источник

K

Kir in Compiler Development
Лол. Там, кстати эквивалентность структурная или как?
источник

AR

Andrew Rudenko in Compiler Development
Dообще на сколько я понял суть cue:

1. Основная фича: это определения пачки правил по которым мы можем отсортировать ВСË в однозначный lattice
2. ВСË включает в себя: значения, констрейнты (больше 5, регекспы, кастомные предикаты), типы
3. на самом факте построения такого lattice уже можно кое-что сделать: при наличии конфликтов / неоднозначностей, несоответствия констрейнтов означает невалидность данных / типов
4. после построения lattice мы имеем его как структурку данных и можем пытаться делать с ним всякие разные штуки, выводить новые факты. И это не только валидация и системы типов, но и штуки типа их trim, когда ты выводишь от каких определений / констрейнтов ты можешь безопасно избавиться.
5. в целом мой вопрос: можно ли этот алгоритм / имплементацию применять для имплементации систем типов в ЯП.
источник

K

Kir in Compiler Development
Если для типов вида (5 <) придётся предоставлять пруфы вхождения, то можно сделать статику. Иначе - это динамическая система. Я что-то не верю, что это завтипы с refinement types.
источник

AT

Alexander Tchitchigin in Compiler Development
И ещё один заход на идеальный язык программирования: http://users.rcn.com/david-moon/Lunar/index.html 😊
источник

KR

K R in Compiler Development
На lattice можно реализовывать параллельные алгоритмы - есть такая библиотека lvar на hackage.

Правда это относится к lattice как структуре состояний программы.
источник

K

Kir in Compiler Development
s/программы/тайпчекера/
источник

AT

Alexander Tchitchigin in Compiler Development
polunin.ai
Я тут делаю недодвижок для создания текстовых квестов делаю, оцените примерно пж:

VM - вм
Она в себе хранит:
1. Функции на специальном (e)DSL.
2. Блоки исполняемого кода, которые содержат команды и вызовы функций.
3. Глобальный стейт для хранения данных.

Блоки - это диалоги. Они в себе хранят локальные переменные, и последовательность команд для вывода (за это отвечает GraphicController).
Код написанный на (e)DSL парсится в дерево, проходит тайпчек, и транслируется в последовательность блоков (их можно рассматривать как состояния в КА).
Делать чисто стековую ВМ это хорошо но слишком сложно. Вместо этого будут хранится деревья, а данные в hashset'ах (плановый вариант).
Графическая составляющая подгружается динамически в виде GraphicController у которого есть интерфейс, принимающий название команды и аргументы. Он занимается отображением на экране *логика*
Как насчёт начать с reuirements elicitation, затем перейти к формированию общей архитектуры системы, затем - элементам дизайна типа MVVM для разделения конкретного отображения и его абстрактного описания, если это вообще требуется исходя из требований? 😉
источник

K

Kir in Compiler Development
Правда, type generalisation/instantiation не дадут запихать типы в решётку
источник

K

Kir in Compiler Development
Ещё можно lua взять
источник

а

акварель на мету in Compiler Development
почему руби не развивают?
источник

AT

Alexander Tchitchigin in Compiler Development
акварель на мету
почему руби не развивают?
Это смотря в какую сторону. 😉
источник

а

акварель на мету in Compiler Development
Alexander Tchitchigin
Это смотря в какую сторону. 😉
в любую
источник

K

Kir in Compiler Development
А что там развивать?
источник

а

акварель на мету in Compiler Development
Kir
А что там развивать?
скорость
источник