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