Основы современных компьютерных технологий


Вычислительные модели и задачи, синтез программ


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

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

Как в первом, так и во втором вариантах работа планировщика отличается от функционирования обычного транслятора с алгоритмического языка программирования. Если функцией обычного транслятора является преобразование входной программы с входного алгоритмического языка программирования в язык машинных команд ЭВМ, то основная задача планировщика - синтез алгоритма программы решения задачи по декларативному описанию формулировки задачи. Синтез осуществляется с использованием базы знаний (БЗ). Типовая структура системы синтеза программ на основе представления знаний приведена на рис. 25.1.

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

  • как инженер по знаниям, т.е. специалист в предметной области, - когда описывает содержимое базы знаний;
  • как кодировщик задач, - когда формулирует задачи с использованием накопленных в ИППП знаний.



  • Начало  Назад  Вперед