Институт

Система СОКРАТ

Уже в рамках ИСИ были начаты работы по системе СОКРАТ, являющейся окружением программирования для встроенных ЭВМ. Научный руководитель: И.В. Поттосин, ответственный исполнитель: С.Б. Покровский, разработчики: М.И.Анисков, Т.Б. Болтаев, Н.Г. Глаголева, А.В. Грабарь, П.Г. Емельянов, Л.А. Захаров, П.А. Земцов, В.Н. Касьянов, Т.В. Кузьминов, Д.В. Лесков, Е.В. Налимов, В.К. Сабельфельд, Г.Г. Степанов, С.В. Тен, О.Б. Томе, В.А. Цикоза, С.К. Черноножкин, В.И. Шелехов.

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

  • интегрирующая оболочка, обеспечивающая интерфейс компонентов с пользователем и между собой;
  • гипертекстовая среда, на основе которой построены средства проектирования, документирования, редактирования и архива разработки ПО;
  • front-end транслятора с диалекта языка Модула-2 (расширение авторской версии языка);
  • оптимизирующие генераторы кода для двух архитектур (IBM PC-286 и бортовая ЭВМ);
  • средства пакетной и диалоговой отладки, единые как для ассемблерных программ, так и для Модула-программ и учитывающие существование имитаторов внешней обстановки и интерпретаторов объектного кода;
  • средства вычисления качественных (сложностных и структурных) характеристик разрабатываемого ПО;
  • процессор глобальной оптимизации программ с межмодульным и межпроцедурным потоковым анализом;
  • специализатор, позволяющий на основании дополнительных пользовательских аннотаций получить более эффективную частную версию программы;
  • анализатор семантических свойств, позволяющий статически обнаруживать некорректность или неправдоподобность разработанной программы, соответствующие ряду типовых содержательных ошибок;
  • средства структурного конструирования, включающие структурный редактор, интерпретатор незавершенных программ и инструменты проверки ряда свойств таких программ.