Зачем нужен Refal?

stm2477274

Ситуация: сидит программист. Нормальный такой, вменяемый. Пишет какую-то программу полезную, на нормальном таком языке типа .NET или Java. И вдруг берет, и один из модулей пишет на Refal’е.
Вопрос: Что могло заставить его это сделать? Что такого умеет делать Refal, что не легче сделать на обычном операторном языке?

Ivan8209

Принцип наименьшего действия.
Если ему удобно это сделать на Рефале (кстати, название русское, так что пиши кириллицей то лучше делать на нём.
Операторные языки очень плохо подходят для сопоставления с образцом.
Функциональные, если поддерживают образцы, заточены под исполнение действий.
Логические неудобны для описания изменений.
Вывод?
---
...Я работаю антинаучным аферистом...

Ivan8209

Да, можно ознакомиться с http://refal.org
---
...Я работаю антинаучным аферистом...

smnikiforov

NET - это что за язык такой? точно программист вменяемый?

stm2477274

> Вывод?
Э-э-э.... Ему надо было сопоставить строку с образцом?
Но почему он не воспользовался регулярными выражениями?

Ivan8209

А если там контекстно-свободная грамматика?
Или контекстно-зависимая?
---
...Я работаю антинаучным аферистом...

stm2477274

А это что такое? Можешь какой-нибудь пример привести?

Aleksei66

Потому, что императивные языки это ГОВНО. Единственное, для чего они пригодны, это написание драйверов для железа и ядра операционных систем.

smnikiforov

Вопрос:
А это что такое? Можешь какой-нибудь пример привести?

Ответ:
Потому, что императивные языки это ГОВНО. Единственное, для чего они пригодны, это написание драйверов для железа и ядра операционных систем.


объясните, что означает ответ "потому что..." на вопрос "что такое..."?
драйвер, как пример контекстно-зависимой грамматики мне тоже не слишком понятен можно, подробней?

Aleksei66

А конкретно Рефал разрабатывался для облегчения парсинга языков программирования или решения других подобных задач, если не ошибаюсь. Поэтому его выгода в том, что пока ты будешь ковыряться с С# и за неделю с трудом напишешь пару тысяч строк корявого кода парсера языка Х, он на Рефале сделает тоже самое за пару часов и программа будет занимать сотню другую строк, не больше.

Aleksei66


объясните, что означает ответ "потому что..." на вопрос "что такое..."?
драйвер, как пример контекстно-зависимой грамматики мне тоже не слишком понятен можно, подробней?
Это было произнесено безотносительно Рефала в ответ на детское удивление спрашивающего - а зачем нужно что-то кроме С#.

Ivan8209

Грамматика со всеми правилами вида A -> w, где A --- нетерминал, w --- цепочка терминалов и нетерминалов.
Алгебраическая запись со скобками.
---
...Я работаю антинаучным аферистом...

stm2477274

Спасибо за ответы!
Хочу только уточнить, правильно ли я понял:
Если мой вменяемый программист пишет скажем интерпретатор perl’а на C#. То модуль парсинга ему имеет смысл супер-быстро написать на рефале. На вход этот модуль будет получать текст программы, а на выходе выдавать некоторую древовидную структуру (объектов?) которую потом можно выполнять. Причем о синтаксических ошибках опять же сообщает рефальный модуль. Верно?

Ivan8209

Да, раз это решает поставленную задачу.
---
...Я работаю антинаучным аферистом...
Оставить комментарий
Имя или ник:
Комментарий: