Статья посвящена проблеме факторизации определений языков и систем программирования. В качестве основного параметра факторизации выбрана семантическая декомпозиция в рамках анализа парадигм программирования. Такой выбор позволяет выделять автономно развиваемые типовые компоненты систем программирования. Типовые компоненты должны быть приспособлены к конструированию различных информационных систем. Кроме того, их существование позволяет формировать методику обучения разработке компонентов информационных систем. Попутно показана дистанция в понятийной сложности между программированием и разработкой систем программирования.
Рассматривается подход к разработке и реализации такого вида паттернов онтологического проектирования, как паттерны содержания. Использование паттернов содержания при построении онтологии научной предметной области позволяет, с одной стороны, обеспечить единообразное и согласованное представление всех сущностей разрабатываемой онтологии, с другой – сэкономить человеческие ресурсы и избежать типичных ошибок онтологического моделирования.
Описывается технология предикатного программирования для реализации параллельной программы решения системы линейных уравнений методом Гаусса-Жордано. Предикатная программа изначально параллельна и не требует распараллеливания. Описывается построение предикатной программы и ее оптимизирующая трансформация с получением эффективной параллельной императивной программы.
Дедуктивная верификация намного проще и быстрее для предикатных программ, чем для аналогичных императивных программ. Для любой программы на языке Си можно построить эквивалентную предикатную программу, провести её дедуктивную верификацию, применить к ней набор оптимизирующих трансформаций и в результате получить исходную программу на языке Си.
Данный метод иллюстрируется для известной библиотечной программы конкатенации строк strcat. Описывается построение, дедуктивная верификация и оптимизирующая трансформация предикатной программы конкатенации строк как объектов алгебраического типа «список» в языке предикатного программирования. Разработан аппарат сканирования списков и новый метод кодирования списков через массивы.