Впервые термин "Металингвистическое программирование" был введён, по-видимому, в монографии "Конструктивные и развивающиеся формальные системы", первая публикация которой относится к 1983 году. Возможно, автор упоминал этот термин и в более ранних своих публикациях при описании "замысла" системы. По крайней мере, ссылки на этот термин, упоминавшийся автором упомянутой монографии, в обзорах Института Прикладной Математики АН СССР в период 1974-1985 годах. В этой же монографии были рассмотрены основные приёмы Металингвистического программирования, связываемого, в первую очередь, с работой с "понятиями", представленными так называемыми L-Переменными.
Обсуждение теоретических исследований (в современном изложении) и их результатов имеет не только историческое значение, но его можно опустить, если Металингвистическое Программирование интересует как технология и Система Программирования.
Отличительной особенностью Металингвистического Программирования являются следующие тесно связанные друг с другом моменты:
Назначение Металингвистического Программирования - служить средством формального определения понятий из формализуемой предметной области и средством определения алгоритмов манипуляции экземплярами объектов, соотносимых с этими понятиями.
Программа в стиле
Металингвистического Программирования должна пройти фазу
Синтаксического и Семантического Анализа.
Разработчик Прикладной Программной Системы должен обеспечить полноту
формализации Предметной Области. Это означает, что все
используемые в комплексе "Понятия" должны быть определены, и
определения должны быть однозначными.
Отличительной особенностью Металингвистического Программирования, делающего процесс работы "двуфазным", является то, что Мета-Система начинает работу с уже "размеченным" текстом. Размечается текст с использованием Лексем, которые соотносятся с составляющими определений "Концептов", используемых в Формальных Моделях Предметной Области - ФМПО (в Формальных Определениях Объектов).
Разметка, в свою очередь, может осуществляться в два шага. На первом шаге в тексте выделяются фрагменты текста, которые могут быть отождествлены как Лексемы. Это шаг Первичной (контекстно-свободной) Лексической Разметки. На втором шаге Контекстно-зависимой Лексико-семантической разметки в лексически размеченном тексте рассматривает достаточно широкий контекст и в нём находятся такие "обороты", которые могут быть стандартизованы, упрощены, заменены на другие. На этом втором шаге используемые Лексемы максимально близко приближаются к тезаурусу ФМПО.
Результат Лексико-семантической разметки напоминает XML-текст, размеченный тегами, имена которых пересекается с тезаурусом ФМПО.
Если Первичную Лексическую Разметку можно выполнить любым текстовым процессором, то второй шаг можно выполнить лишь в системе, допускающей работу с "Именованными Скобками". Такими системами являются либо "Расширенный Рефал", либо сама Мета-Система.
Собственно алгоритм преобразования частично или полностью размеченного обрабатываемого текста пишется с использованием "Концептов" (Понятий), над которыми определён алгоритм. Если требуется, эти Понятия могут быть специфицированы (сужены) через конкретное наполнение данного понятия, которое только и может удовлетворить данное правило преобразования.
Собственно Металингвистическое Программирования отвечает идее поднятия вызова регулярно используемых механизмов на уровень языка; не надо определять многократно ту работу, которая составляет минимум, необходимый для решения данного класса задач; эту работу должны выполнять "Механизмы" Исполнительной Системы; в программе следует определить, "Что" следует сделать, но не "Как" это делается в регулярном случае.
Чтобы Система Металингвистического Программирования была определена как КФС, необходимо рассмотреть все составляющие этого определения:
Детали и контекст теоретического построения, приведшего к Концепциям Конструктивных и Развивающихся Формальных Систем, в кругу которых оказывается и Мета-Система MetaLngP™, рассматривается, помимо Монографии, также и в университетском курсе для студентов ФВМиК МГУ:
Университетский Лекционный Курс "Конструктивные формальные системы"
Могут ли существовать другие Системы Металингвистического программирования, основанные на других Мета-Системах? - Ответ в секции "Вопросы и Ответы" этого Сайта.
Поскольку техника Металингвистического Программирования в значительной степени оовывается на технике прогаммирования на язке Рефал, для освоения Металингвистического Программирования владение навыками программроваия на языке Рефал является весьма желательным.
Мы приводим подробное описание самой системы Refal.NET, доступной по лицензии GPL на портале открытых проектов http://sourceforge.net под именем refal-net. Исходные тексты Системы можно получить по запросу от Разработчиков системы Refal.NET и Мета-Системы MetaLngP™. От Разработчиков по запросу можно получить самую последнюю версию Системы Refal.NET.
Для освоения Системы программирования на языке Рефал необходимо освоить задачи "Практикума по программированию на языке Рефал".
To facilitate English-speaking visitors to skip 'theory' and to get maximum possible from the visit, we recommend to follow links:
To get general idea about Semantic Documents Processing Technique:
To see 'Live-Example' of Natural Text Processing (sorry, Russian) you can follow next links:
The first reference direct you at the page where Miner in live application is discussed; source text of programs and Result of work together with log-files are presented there.
The second reference reference direct you to the Integrated DB for Secondary Information Resources with it's problems.
Emphasize once again that we demonstrate actual work of Meta-System and discuss its applications.
Поскольку Нотационная Компонента КФС предназначена для служить набором инструкций для Интерпретационной Компоненты КФС, коей в нашем случае оказывается "Виртуальная Машина" MetaLngP™, глубокое понимание устройства и функционирования "Мета-Машины" является крайне желательным.
Для ознакомления с Мета-Машиной MetaLngP™ можно рекомендовать изучение устройства Прародительницы - "Виртуальной Машины" Refal.NET, доступной в исходном коде либо с сайта "Открытых Проектов" http://sourceforge.net, либо (чтобы получить более совершенную версию) обратившись к Разработчикам: vmans795@gmail.com).
Кроме того, полезно получить представление об Интерпретационной Компоненте КФС "Система Металингвистического Программирования" по описанию Итерпретационная Компонента (Механизмы) КФС "Система Металингвистического Программирования"