ProgramLang_for_LG-system.HTM
Тесты для шахматной 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. В перспективе её не сложно переписать на такие языки:
1) Компонентный Паскаль (КП) для среды Блэкбокс, т.е.
    BlackBox Component Pascal для Win32 или
    Gardens Point Component Pascal (gpcp) for .NET или (gpcp) for JavaVM;
2) Active Oberon for .NET;
3) Zonnon for .NET;
4) Canterbury Modula-2 for JavaVM или
    Canterbury Oberon-2 for JavaVM;
5) Pow! Oberon-2 for Win32;
6) СтранниК Модула-Си-Раскаль for Win32;
7) Native XDS-x86 Modula-2/Oberon-2 for Win32, Linux.

P.S. Об этих современных языках можно прочитать на CD-дисках "Мир ПК Диск" 2003-2005 годах — приложениях к журналу "Мир ПК" — в разделе "Студия программирования", который ведёт Руслан Богатырев (bogatyrev@pcworld.ru).


Александр Тимофеев,
г.Харьков, Украина,
апрель—июнь 2005 года.




Тесты для шахматной LG-системы     ▲ В начало текущей




Последнее обновление 01.01.2007, size=9 996 bytes

© 2005 г., Александр Тимофеев, г.Харьков, Украина, Об авторе eMail: atimopheyev@yahoo.com