◄ Тесты для шахматной LG-системы
▲ Выше
|
О языке программирования LG-систем |
"Зри в корень"
Козьма Прутков
"Мысли и афоризмы",5. |
Непредсказуемая сложность и специфичность программных прототипов LG-систем убеждает, что создавать их нужно на каком-то метаязыке (высокого уровня и ориентированном на LG). В 80-х годах средой для разработки прототипов LG-систем была система PW (Мирный В.Р. и др., 1986; Мирный В.Р., Чудаков М.В., Штильман Б.М., 1988; Stilman B., 1994f, 2000). Метаязык в PW был написан на расширенной версии (алголоподобного) языка Дейкстра (Штильман, 2000):
"Хотя язык Dijkstra (Дейкстра, 1976; Грис, 1983; Штильман, 1994f) был входным языком (транслятора), полностью реализованным в PW, фактическая разработка (включая отладку) проводилась с использованием проблемно-ориентированного языка очень высокого уровня. PW позволила нам создавать, расширять и поддерживать различные версии этого языка и для других проблемных областей. PW была реализована на IBM 370/144 — оригинальном американском компьютере, на котором в эти годы и велась разработка ПИОНЕРа. Позже, PW инструменты использовались в нескольких НИИ на советских ЭВМ для разработки и поддержки крупномасштабных проектов в области Искусственного Интеллекта. Инструменты PW были подготовлены к модернизации для поддержки объектно-ориентированного программирования."
В 90-х годах полноценные прототипы LG-систем успешно создавались на языке CLIPS — функциональном расширении языка LISP (Штильман, 2000):
"Несколько общих LG-грамматик были впервые реализованы в Университете Колорадо в Денвере в 1993 году Д.Кингом и Р.Матьюсом с использованием языка CLIPS и языка C, соответственно (Кинг, 1993) и (Матьюс, 1993). В то время как Р.Матьюс реализовал только два уровня иерархии — Траектории и Зоны (на C), Д.Кинг разработал прототип полномасштабной иерархии грамматик, используя среду программирования CLIPS. Он показал также, что инструменты программирования CLIPS (Гиарратано и Рилей, 1998), предназначенные первоначально для разработки экспертных систем, продемонстрировали высокую эффективность для быстрой реализации LG-грамматик. Конечно, эффективность на этапе разработки была достигнута за счёт снижения эффективности на этапе исполнения. Однако эти инструменты могут послужить основой для разработки прототипов."
Когда я искал язык для написания шахматной программы по Ботвиннику, то был восхищён языком Алгол-68 для ЕС ЭВМ (80-е годы), а затем — языком Модула-2 (начало 90-х годов). Эти языки называют алголо-, паскале-, оберон-подобными языками. Такие языки с жёсткой типизацией дисциплинируют мышление программиста и фактически ведут его за собой (по своей внутренней логике) при разработке сложной программы (с многочисленными произвольными типами данных). Со временем я убедился, что мой стиль программирования очень похож на тот, о котором писал Дейкстра (1976), т.е. я оказался вполне подготовленным для программирования прототипа шахматной LG-системы.
Сейчас моя программа написана на языке Модула-2 с ООП-расширениями для MS DOS.
В перспективе её не сложно переписать на такие языки: P.S. Об этих современных языках можно прочитать на CD-дисках "Мир ПК Диск" 2003-2005 годах — приложениях к журналу "Мир ПК" — в разделе "Студия программирования", который ведёт Руслан Богатырев (bogatyrev@pcworld.ru).
Александр Тимофеев,
г.Харьков, Украина, апрель—июнь 2005 года.
|
◄ Тесты для шахматной LG-системы ▲ В начало текущей |
Последнее обновление 01.01.2007, size=9 996 bytes
© 2005 г., Александр Тимофеев, г.Харьков, Украина, Об авторе eMail: atimopheyev@yahoo.com |