Войти в систему

Home
    - Создать дневник
    - Написать в дневник
       - Подробный режим

LJ.Rossia.org
    - Новости сайта
    - Общие настройки
    - Sitemap
    - Оплата
    - ljr-fif

Редактировать...
    - Настройки
    - Список друзей
    - Дневник
    - Картинки
    - Пароль
    - Вид дневника

Сообщества

Настроить S2

Помощь
    - Забыли пароль?
    - FAQ
    - Тех. поддержка



Пишет stden ([info]stden)
@ 2007-02-22 17:52:00


Previous Entry  Add to memories!  Tell a Friend!  Next Entry
Диссертация: написать Искусственный Интеллект ;)
Создание формального языка для описания учебников и компилятора (транслятора, генератора) из него в интерактивные задачники.
Понятно, что есть два полюса решения:
- можно писать "низкоуровневом" языке типа Delphi, Visual C++ и т.д. Преимущество - машина сразу исполняет полученную программу.
- писать на естественном (человеческом) языке. Компьютер не поймёт, но поймёт человек-программист и сможет реализовать.
Да, понятно, что машина не умеет сама "придумывать" дизайн. НО, с другой стороны, в основе каждого дизайна лежат какие-то общие идеи. Задача - выявить эти идеи в максимально обобщённом виде, выработать язык и реализовать генератор.
"Язык" - в данном случае - весьма условное понятие, т.к. можно редактировать программу в визуальном редакторе, это всё укладывается в общую концепцию.


(Добавить комментарий)


[info]hope1982.livejournal.com
2007-02-22 18:32 (ссылка)
в свое время В.С.Фомичев(кафедра ВТ) читал нам курс "Формальные языки, грамматики, компиляторы". В рамках курсовика по предмету требовалась:
1) разработать свой язык
2) реализовать компилятор для него

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

ЗЫ: мое предложение, возможно, наивно...не пинать)))))

(Ответить)

генератор учебников
[info]g0dot.livejournal.com
2007-02-22 23:39 (ссылка)
Мне кажется в таких задачах надо постепенно повышать уровень абстракции.
Разрабатывая учебники, понять их общие идеи и разработать генератор по какой-то общей модели. Потом в процессе работы с генератором часть будут выявлятся другие общие идеи, которые будут перемещаться в генератор, некоторые же из ранее выявленных будут детализироваться и таким образом будет расширятся модель. Рано или поздно генератор перестанет удовлетворять нуждам - появится задача, с которой он не сможет справиться. Придется его расширять. Потом он станет слишком гибким и детализированным(тогда придется подняться на уровень выше и обобщить генератор или написать генератор к генераторов ;)

В любом случае придумать модель и правила генерации сразу сложнее, чем так.

P.S. А LL(1) или LR(k) грамматика - это уже детали и для них всех уже существуют генераторы парсеров и обходчики синтаксических-деревьев.

(Ответить)


[info]g0dot.livejournal.com
2007-02-22 23:45 (ссылка)
и вообще лучше чтобы все генерировалось из xml, который будет редактироваться при желании с помощью gui

(Ответить)


[info]phantom
2007-02-23 01:22 (ссылка)
мутно написано, непонятна задача

(Ответить) (Ветвь дискуссии)


[info]g0dot.livejournal.com
2007-02-23 02:35 (ссылка)
Почему-же все понятно... Есть потребность чтобы компьютер делал все сам :))) В данном случае, чтобы он совершенно самостоятельно генерировал учебники...)

(Ответить) (Уровень выше) (Ветвь дискуссии)


[info]phantom
2007-02-23 02:43 (ссылка)
ага, пахнет DSL-ем:
Domain Specific Language -
посмотри на википедии

не советую писать компилятор,
рекомендую пользовать макросы

(Ответить) (Уровень выше)