Forth и другие саморасширяющиеся системы программирования Locations of visitors to this page
Текущее время: Вт апр 23, 2024 16:00

...
Google Search
Forth-FAQ Spy Grafic

Часовой пояс: UTC + 3 часа [ Летнее время ]




Начать новую тему Ответить на тему  [ 1 сообщение ] 
Автор Сообщение
 Заголовок сообщения: Поставим эксперимент?
СообщениеДобавлено: Пт мар 30, 2012 01:35 
Не в сети

Зарегистрирован: Вт май 09, 2006 12:31
Сообщения: 3438
Благодарил (а): 5 раз.
Поблагодарили: 16 раз.
Много раз тут говорилось о специфицированных областью применения языках...

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

Я предлагал поиграть в создание языка на примере шахмат, но это слишком сложно.

Ну что ж, вот всплывала в некоей теме простая задача - про козу, волка, капусту и лодочника... (с вариациями, что важно!)

Предлагаю создать (на основе форта, разумеется) язык для решения различных вариантов обобщённой задачи про транспортировку и посмотрим
1. возьмётся ли вообще кто-нибудь (задача простенькая!)
2. как трудно будет сделать
3. насколько удобен будет именно специфический язык (т.е. позволит ли он свободно переходить от варианта к варианту задачи) и, кстати, насколько легко будет им пользоваться тому, кто его не писал.

То есть а получится ли вообще язык.
Также, можно предлагать решения задачи на других языках для сравнения (а нужен ли спцифицированный язык). Чтобы не нарушать этим правила конкурса задач, задачу размещаю тут.
----------------------------------------------------------------------------------
Итак, условие: предварительно для наглядности есть
- набор пассажиров для судна (коза, волк, капуста, лодочник или другой набор)
- вместительность судна (2 или больше)
- количество мест ("берега" + "острова" - не менее 2 "берегов")
- набор правил (кого с кем нельзя оставлять и т.п. - разные правила)
Найти: путь, алгоритм передвижения в соответствии с правилами.

Ещё раз то же самое, теперь Более строго:
нужно составить алгоритм, который принимает как входные данные
1) список действующих лиц
2) 2 числа - вместительность судна и количество мест
3) набор правил перемещения, по крайней мере
3 вида правил
а) кто может управлять лодкой (а вдруг лодочников двое или более)
б) Какие сочетания действующих лиц невозможны
в) Кто из действующих лиц своим присутсвием делает возможными запрещённые
сочетания(волк не кушает козу в присуствии лодочника)

как выходные данные алгоритм должен выдавать порядок перемещения всех действующих лиц от одного берега к другому - последовательность перевозок
Самое важное: для задания условий и\или алгоритма поиска использовать "областеспецифицированный" язык, созданный на основе форта


И ещё раз...
В чём цель? Понять, действительно ли так привлекательна идея специфицированных языков
почему эта задача? Потому, что она известна, весьма проста, и существует во многих вариантах (рыцари ещё были), а также потому, что варианты условий в этой задаче легко менять, просто придумывать.
почему речь о специфицированном языке? Т.е. почему для решения задачи понадобится язык: потому, что условия могут быть разнообразными, существовать в разном количестве, хотя бы для задания условий, а может быть и алгоритма поиска. Мы должны быть готовы к заданию новых правил или условий

Совсем которотко: в известной задаче про козу, волка,капусту и лодку делаем произвольно задаваемыми количество берегов, состав пассажиров, вместительность лодки и правила сочетания пассажиров. Для задания всего этого (и поиска решения) придумываем специфицированный (под задачу) язык на форте.


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ 1 сообщение ] 

Часовой пояс: UTC + 3 часа [ Летнее время ]


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 17


Вы не можете начинать темы
Вы можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

cron
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
phpBB сборка от FladeX // Русская поддержка phpBB