Программные системы и вычислительные методы - рубрика Языки программирования
по
Программные системы и вычислительные методы
12+
Меню журнала
> Архив номеров > Рубрики > О журнале > Авторы > Требования к статьям > Политика издания > Редакция > Порядок рецензирования статей > Редакционный совет > Ретракция статей > Этические принципы > О журнале > Политика открытого доступа > Оплата за публикации в открытом доступе > Online First Pre-Publication > Политика авторских прав и лицензий > Политика цифрового хранения публикации > Политика идентификации статей > Политика проверки на плагиат
Журналы индексируются
Реквизиты журнала
ГЛАВНАЯ > Журнал "Программные системы и вычислительные методы" > Рубрика "Языки программирования"
Языки программирования
Дубинин В.Н., Вашкевич Н.П. - ВОПРОСЫ РАЗРАБОТКИ ОПЕРАЦИОННОЙ СЕМАНТИКИ ФУНКЦИОНАЛЬНЫХ БЛОКОВ IEC 61499
Аннотация: В работе идентифицируется проблема определения формальной семантики функциональных блоков (ФБ) стандарта IEC 61499 и разрабатываются концептуальные ос-новы для построения модели операционной семантики функциональных блоков на базе машин абстрактных состояний. Дается формальное определение нотации для представления операционной семантики ФБ, а также определены варианты функционально-структурной организации семантических моделей систем ФБ. Предложенная нотация мо-жет быть использована для определения операционной семантики систем ФБ, функционирующих в рамках циклической, последовательной, синхронной, а также других моделей выполнения.
Багутдинов Р.А. - Идея многоракурсной системы технического зрения для формирования 3D-моделей поверхности объекта в задачах разработки мобильных роботов c. 1-6

DOI:
10.7256/2454-0714.2017.4.21909

Аннотация: На сегодняшний день проблема разработки систем, алгоритмов и методов пространственной ориентации и навигации роботов остается одной из наиболее актуальных задач. Предметом исследования являются многоракурсные и биполярные системы технического зрения, а также алгоритм формирования 3D-моделей поверхности объектов. Автор подробно рассматривает такие аспекты в разработке мобильных роботов, как способы получения информации о трехмерной сцене, оценка глубины сцены, комплексирование, метод построение эпиполярных линий, затрагиваются некоторые элементы виртуальной реальности. Применяемые подходы в работе основываются на методах цифровой обработки изображений, распознавания образов, дискретных преобразований и системного анализа, приведен метод построения эпиполярных линий. В работе также рассматривается формирование 3D-моделей поверхности объекта в системах технического зрения (СТЗ), применительно к мобильным роботам, представлен алгоритм определения дальности до точек на поверхности объекта в СТЗ на мобильном роботе. Результаты исследования могут быть применимы в системах модернизации управления, мониторинга и обработки информации, обеспечения более точного технического зрения при разработке мобильных и автономных роботов, что в свою очередь может повлиять на импортозамещение и общую экономическую составляющую использования и разработки робототехнических комплексов и систем.
Гусенко М.Ю. - Применение регулярных выражений в задачах декомпиляции статических данных c. 1-13

DOI:
10.7256/2454-0714.2017.2.22608

Аннотация: Предметом исследования является процесс декомпиляции исходного кода программ на языки высокого уровня (ЯВУ). Показано место декомпиляции в цикле трансформации программы, включающем процессы канонизации, компиляции, оптимизации и декомпиляции. Объект исследования - скомпилированный эквивалент описания статических данных на ЯВУ, который в общем случае является нетривиальным отображением синтаксических конструкций на ЯВУ в последовательности байтов, размещаемых в исполняемых модулях программ и построенных с учетом различных техник оптимизации для данной микропроцессорной архитектуры. Процесс декомпиляции статических данных рассмотрен как реконструкция дерева разбора программы, восстанавливаемого при анализе ее исполняемого кода, так и как бинарная последовательность в памяти машины фон Неймана, которая анализируется регулярным выражением, создаваемым декомпилятором по предполагаемому описанию данных. Регулярные выражения традиционно используются для анализа символьных последовательностей. В статье показана другая область применения этого инструмента - для проверки гипотезы, что данный массив байтов исполняемого модуля является эквивалентом скомпилированных статических данных. Предложен вариант соответствующего синтаксиса языка регулярных выражений. Показано, что предлагаемый метод может использоваться для дополнительной проверки качества декомпилированного кода.
Бубеев И.Т., Дубанов А.А., Аюшеев Т.В., Мотошкин П.В. - Построение моделей движения объектов в задаче преследования. Решение в системе вычислительной математики «mathcad» c. 1-11

DOI:
10.7256/2454-0714.2019.1.28454

Аннотация: В данной статье изложено описание разработанных моделей поведения объектов в задаче преследования, как и преследующего, так и преследуемого. Целью проведенных исследова-ний является разработка алгоритмов для автономных робототехнических комплексов. В предлагаемых моделях поведения вводятся локальные динамические системы координат, которые формируются направлением движения объектов. В течении определенного промежутка времени объект должен принять решение в каком направлении он должен двигаться в зависимости от результата анализа координат второго объекта. По предлагаемым моделям поведения объектов в задаче преследования написаны программы в системе компьютерной математики «MathCAD», с которыми можно ознакомиться на сайте автора. В силу того, что объект при перемещении в пространстве не может мгновенно производить смену направления движения, в наших задачах «инертность» моделируется при помощи угловой скорости вращения. В результатах работы программ получены анимированные изображения движения объектов, ссылки на которые приводятся в тексте статьи.
Гибадуллин Р.Ф. - Потокобезопасные вызовы элементов управления в обогащенных клиентских приложениях c. 1-19

DOI:
10.7256/2454-0714.2022.4.39029

EDN: IAXOMA

Аннотация: Когда была выпущена первая версия .NET Framework в обогащенных клиентских приложениях существовал шаблон, ориентированный на циклы обработки сообщений, где использовалась встроенная очередь для передачи единиц исполнения из рабочих потоков. Далее было разработано обобщенное решение ISynchronizeInvoke, в рамках которого поток-источник может поставить делегат в очередь к потоку-приемнику и, как необязательный вариант, ожидать завершения этого делегата. После введения поддержки асинхронных страниц в архитектуру ASP.NET шаблон ISynchronizeInvoke не походил, так как асинхронные ASP.NET-страницы не сопоставлены с единственным потоком. Это стало причиной создания ещё более обобщенного решения – SynchronizationContext, что и является предметом исследования. В статье на практических примерах представлено, как следует обновлять элементы пользовательского интерфейса из рабочих потоков, не нарушая потокобезопасность пользовательского приложения. В этом аспекте предлагаются решения: с применением методов Beginlnvoke или Invoke для постановки этого делегата в очередь сообщений потока пользовательского интерфейса; с захватом контекста синхронизации потока пользовательского интерфейса посредством свойства Current класса SynchronizationContext; с применением устаревшего класса BackgroundWorker, обеспечивающий неявный захват контекста синхронизации потока пользовательского интерфейса. Не оставлена без внимания особенность реализации абстрактного класса SynchronizationContext в платформе ASP.NET. Сформированы практические рекомендации по использованию механизма маршализации на примере разработки мультиклиентного чата с централизованным сервером.
Нуриев М.Г., Белашова Е.С., Барабаш К.А. - Конвертер Markdown-файлов в LaTeX-документ c. 1-12

DOI:
10.7256/2454-0714.2023.1.39547

EDN: SNAYLQ

Аннотация: Привычные пользователю текстовые редакторы такие как Microsoft Word, Notepad++ и другие являются «громоздкими». При своем огромном функционале они не исключают риска неправильной конвертации документа, например, при открытии тех же Word-файлов на более старых или наоборот более новых версиях Microsoft Word. Выходом является применение языков разметок, которые позволяют маркировать блоки текста в целях их представления в нужной стилистике. В настоящее время большую популярность имеют LaTeX (набор макрорасширений системы компьютерной вёрстки TeX) и Markdown (облегчённый язык разметки, созданный с целью обозначения форматирования в простом тексте). Поэтому актуален вопрос преобразования Markdown-документа в LaTeX-документ. Существуют различные инструменты конвертации Markdown-файлов в LaTeX-документ, например, библиотека Pandoc, Markdown.lua, Lunamark и другие. Но большинство из них имеют избыточные шаги по формированию выходного документа. В данной статье освещается метод решения посредством интеграции Markdown-файла в LaTeX-документ, который потенциально позволит сократить время формирования выходного документа в отличие от существующих решений. Разработанный конвертер Markdown-файлов в LaTeX-документ позволит автоматически получить результирующий документ и снизить вероятность ошибок при ручном преобразовании текста из Markdown-формата в LaTeX-формат.
Зайков В.П., Прозоров П.Д. - Разработка мобильного приложения учебного расписания занятий студента c. 1-9

DOI:
10.7256/2454-0714.2023.3.39609

EDN: YTYIWB

Аннотация: Целью работы является разработка мобильного приложения, которое может предоставлять возможность создания, редактирования учебного расписания. Предметом разработки является собственное мультиплатформенное мобильное приложение с использованием фреймворка Flutter. При разработке использовался архитектурный паттерн MVC, хранение данных было реализовано с помощью СУБД SQLite. Методология работы базируется на Scrum-методе, позволяющем разбить рабочий процесс на спринты, каждый из которых позволил сделать вывод о целесообразности реализации принятого решения. Функциональный анализ, как основной метод, позволил выявить базовые требования для удобного использования программы: просмотра расписания по датам календаря, автозаполнение полей, возможность создавать, редактировать и удалять учебную информацию. Для реализации было выбрано гибридное решение. Собственное мультиплатформенное мобильное приложение было разработано с использованием фреймворка Flutter. При разработке был использован архитектурный шаблон MVC. Хранение данных было реализовано с использованием СУБД SQLite. При проектировании базы данных были определены следующие объекты: предмет, учитель, аудитория, тип урока, время, дата, дата урока. Разработанное приложение готово к публикации в AppStore и Google Play. Результатом его использования станет улучшение коммуникации с обучаемыми, ускорение процессов создания и изменения расписания, а также сокращение времени на загрузку нужных данных.
Гибадуллин Р.Ф., Викторов И.В. - Неоднозначность результатов при использовании методов класса Parallel в рамках исполняющей среды .NET Framework c. 1-14

DOI:
10.7256/2454-0714.2023.2.39801

EDN: UGEGOO

Аннотация: Параллельное программирование – это способ написания программ, которые могут выполняться параллельно на нескольких процессорах или ядрах. Это позволяет программам обрабатывать большие объемы данных или выполнить более сложные вычисления за приемлемое время, чем это было бы возможно на одном процессоре. Преимущества параллельного программирования: увеличение производительности, распределение нагрузки, обработка больших объемов данных, улучшение отзывчивости, увеличение надежности. В целом, параллельное программирование имеет множество преимуществ, которые могут помочь улучшить производительность и надежность программных систем, особенно в условиях растущей сложности вычислительных задач и объемов данных. Однако параллельное программирование также может иметь свои сложности, связанные с управлением синхронизацией, гонками данных и другими аспектами, которые требуют дополнительного внимания и опыта со стороны программиста. В ходе тестирования параллельных программ можно получить неоднозначные результаты. Например, это может происходить, когда мы оптимизируем объединение данных типа float или double посредством методов For или ForEach класса Parallel. Подобное поведение программы заставляет усомниться в потокобезопасности написанного кода. Такой вывод может быть неправильным и преждевременным. Статья раскрывает возможную причину неоднозначности результатов, получаемых параллельной программой, и предлагает лаконичное решение вопроса.
Сморкалов А.Ю. - Дизайн и архитектура среды выполнения языка программирования виртуальной реальности

DOI:
10.7256/2454-0714.2014.1.11328

Аннотация: С расширением масштаба применения виртуальных миров в образовании становится необходимым предоставить учителям и ученикам не только возможность размещать в виртуальной реальности объекты, но и задавать поведение и взаимодействие объектов. В данной статье описывается язык программирования vJS, разработанный для виртуального мира vAcademia, а также эффективная программная архитектура среды выполнения этого языка. vJS базируется на стандартном языка JavaScript, язык расширен набором функций, делающим программирование виртуальном реальности максимально простым. vJS позволяет программировать многопользовательские тренажеры, симуляции и игры, организовывать программную поддержку ролевых игр и, так называемых, «серьезных игр». В отличие от аналогов vJS исполняется на каждом клиенте виртуального мира, основан на задании реакции на события 3D-объекта, программа привязана не к 3D-объекту, а к локации, язык содержит большое число функций, результат выполнения которых автоматически синхронизируется. Процесс взаимодействия пользователя с vJS-программой может быть записан в форме 3D-записи, что имеет большое практическое значение.
Сморкалов А.Ю. - Дизайн и архитектура среды выполнения языка программирования виртуальной реальности c. 7-22

DOI:
10.7256/2454-0714.2014.1.64041

Аннотация: С расширением масштаба применения виртуальных миров в образовании становится необходимым предоставить учителям и ученикам не только возможность размещать в виртуальной реальности объекты, но и задавать поведение и взаимодействие объектов. В данной статье описывается язык программирования vJS, разработанный для виртуального мира vAcademia, а также эффективная программная архитектура среды выполнения этого языка. vJS базируется на стандартном языка JavaScript, язык расширен набором функций, делающим программирование виртуальном реальности максимально простым. vJS позволяет программировать многопользовательские тренажеры, симуляции и игры, организовывать программную поддержку ролевых игр и, так называемых, «серьезных игр». В отличие от аналогов vJS исполняется на каждом клиенте виртуального мира, основан на задании реакции на события 3D-объекта, программа привязана не к 3D-объекту, а к локации, язык содержит большое число функций, результат выполнения которых автоматически синхронизируется. Процесс взаимодействия пользователя с vJS-программой может быть записан в форме 3D-записи, что имеет большое практическое значение.
Kiryanov D.A. - Research of the methods of creating content aggregation systems c. 9-31

DOI:
10.7256/2454-0714.2022.1.37341

Abstract: The subject of this research is the key methods for creating the architecture of information aggregators, methods for increasing scalability and effectiveness of such systems, methods for reducing the delay between the publication of new content by the source and emergence of its copy in the information aggregator. In this research, the content aggregator implies the distributed high-load information system that automatically collects information from various sources, process and displays it on a special website or mobile application. Particular attention is given to the basic principles of content aggregation: key stages of aggregation and criteria for data sampling, automation of aggregation processes, content copy strategies, and content aggregation approaches. The author's contribution consists in providing detailed description of web crawling and fuzzy duplicate detection systems. The main research result lies in the development of high-level architecture of the content aggregation system. Recommendations are given on the selection of the architecture of styles and special software regime that allows creating the systems for managing distributed databases and message brokers. The presented architecture aims to provide high availability, scalability for high query volumes, and big data performance. To increase the performance of the proposed system, various caching methods, load balancers, and message queues should be actively used. For storage of the content aggregation system, replication and partitioning must be used to improve availability, latency, and scalability. In terms of architectural styles, microservice architecture, event-driven architecture, and service-based architecture are the most preferred architectural approaches for such system.
Демичев М.С., Гаипов К.Э. - Алгоритм поиска беспетельных маршрутов c. 10-25

DOI:
10.7256/2454-0714.2020.4.33605

Аннотация: Предметом исследования является алгоритма поиска беспетельных маршрутов от отправителя к получателю сетевого трафика, в условиях известной сетевой топологии. При проектировании сети передачи данных одной из главной проблемой является формирование маршрутизации сетевого трафика, так как при интенсивном трафике не редко возникают узкие места в виде перегруженного узла связи, что способствует снижению скорости передачи данных. В данной статье приведен алгоритм поиска беспетельных маршрутов от отправителя к получателю сетевого трафика, где результат представлен в виде набора беспетельных маршрутов, в соответствии с заданной сетевой топологией. Также представлен программный код алгоритма, написанный на языке C# и результаты тестовых решений заданных топологий. Разработка алгоритма осуществлялась экспериментально-теоретическим методом, на основе известных алгоритмов поиска маршрутов, таких как алгоритм Флойда и алгоритм Дейкстры, а также механизмов статической и динамической маршрутизации, на примере RIP, OSPF и EIGRP. Новизна исследования заключается в разработанном алгоритме поиска беспетельных маршрутов от отправителя к получателю, в условиях известной сетевой топологии, а также в сопоставлении полученных результатов с другими методами формирования фазовых переменных. В результате работы алгоритма, получаем сформированный список всех беспетельных маршрутов в исследуемой сетевой топологии между парой взаимодействующих узлов.
Н.П. Вашкевич, В.Н. Дубинин - Вопросы разработки операционной семантики функциональных блоков IEC 61499 c. 10-16
Аннотация: В работе идентифицируется проблема определения формальной семантики функциональных блоков (ФБ) стандарта IEC 61499 и разрабатываются концептуальные основы для построения модели операционной семантики функциональных блоков на базе машин абстрактных состояний. Дается формальное определение нотации для представления операционной семантики ФБ, а также рассматриваются варианты функционально-структурной организации семантических моделей систем ФБ. Предложенная нотация может быть использована для определения операционной семантики систем ФБ, функционирующих в рамках циклической, последовательной, синхронной, а также других моделей выполнения.
Алпатов А.Н., Юров И.И. - Алгоритм и программная реализация совместного редактирования графических схем в режиме реального времени с использованием библиотеки Socket.IO c. 10-19

DOI:
10.7256/2454-0714.2024.1.70173

EDN: PQMMUM

Аннотация: В современном мире командная работа становится все более распространенной. Разные участники могут находиться в разных местах, но им все равно нужно работать вместе над одним проектом, в том числе и над графическими схемами. Важным аспектом такого подхода является возможность наблюдать изменения, вносимые другими участниками, в режиме реального времени. Это позволяет, прежде всего, снизить частоту конфликтов при одновременном редактировании одного и того же элемента схемы. Однако существующие решения для обмена данными при совместном редактировании графических схем в режиме реального времени сталкиваются с рядом проблем, такими как задержки при передаче данных. Предметом исследования в настоящей статье является разработка минимально жизнеспособного веб-приложения, позволяющего пользователям осуществлять совместное графическое редактирование полотна в режиме реального времени. Объектом исследования выступает модель процесса совместного редактирования в реальном времени с учетом разрешения возникающих конфликтов. Методология исследования основана на теоретическом подходе по выявлению математических формул, описывающих изменение состояния документа при его совместном редактировании пользователями. Дана характеристика применения протоколов HTTP и WebSocket в многопользовательских клиент-серверных приложениях. Для применения протокола WebSocket используется библиотека Socket.IO. Сервер приложения построен с помощью фреймворка Express. Основным вкладом авторов в исследование темы является модель процесса совместного редактирования в реальном времени, а также механизм определения конфликтов для любого количества пользователей и функция разрешения конфликтов для каждой пары конфликтующих изменений при совместном редактировании документов в режиме онлайн. В рамках данного исследования дополнительно предложен алгоритм совместного редактирования графических схем в режиме реального времени и дана его реализация в виде программной системы. Предложенный в результате исследования алгоритм на языке программирования JavaScript может быть использован в качестве основы для разработки более многофункциональных веб-приложений с использованием библиотеки Socket.IO и являться объектом будущих исследований, затрагивающих многопользовательское взаимодействие и разрешение конфликтов в режиме реального времени.
Савостин П.А., Ефремова Н.Э. - Практическое применение асинхронного программирования на языке Python при помощи пакета Asyncio c. 11-16

DOI:
10.7256/2454-0714.2018.2.25851

Аннотация: Предметом исследования является изучение основных принципов асинхронного программирования с помощью пакета Asyncio и их применение для решения прикладных задач на языке Python. Поскольку в интерпретаторе языка Python используется способ синхронизации потоков Global Interpreter Lock, ограничивающий возможность распараллеливания программ на данном языке и, как следствие, не позволяет достичь наибольшей эффективности, использование технологий асинхронного программирования позволяет значительно увеличить скорость работы программ на данном языке, обходя упомянутые ограничения. Вышеописанный подход к созданию программ применяется в решении многих задач, например: при создании веб-сервера, клиент-серверного приложения, при извлечении данных с информационного ресурса веб-краулером. Данная работа посвящена объяснению основных принципов работы с пакетом Asyncio на языке Python. Поскольку русскоязычной литературы по данному пакету зачастую не хватает для того, чтобы понять основы асинхронного программирования в языке Python, в этой статье приводятся примеры использования данной технологии с пояснениями.
Викторов И.В., Гибадуллин Р.Ф. - Разработка синтаксического дерева для автоматизированного транслятора последовательного программного кода в параллельный код для многоядерных процессоров c. 13-25

DOI:
10.7256/2454-0714.2023.1.38483

EDN: ANMSZI

Аннотация: Появление многоядерных архитектур чрезвычайно стимулировало область параллельных вычислений. Однако разработка параллельной программы и ручное распараллеливание унаследованных последовательных программных кодов являются трудоемкой работой, программист должен обладать хорошими навыками применения методов параллельного программирования. Данное обстоятельство определяет актуальность предмета исследования работы – разработка транслятора последовательного кода в параллельный. В статье приводится обзор существующих решений в рамках выбранного направления исследований, рассматриваются их преимущества и недостатки. Предлагается принцип формирования синтаксического дерева, который основан на JSON формате (текстовый формат обмена данными, основанный на JavaScript), и разбирается пример формирования синтаксического дерева на основе данного принципа. Результатом работы является подход к построению программной платформы трансляции последовательного кода в параллельный. Отличительной особенностью разработанной платформы является web-сервис, который потенциально позволяет расширить транслятор другими языками программирования. Взаимодействие с программной средой осуществляется посредством REST-запросов (HTTP-запросов, предназначенных для вызова удаленных процедур). Разработанная программная платформа состоит из трёх модулей: модуль обработки запросов, обеспечивающий взаимодействие с внешними системами посредством REST-запросов; модуль построения дерева, служащий для формирования синтаксического дерева на основе исходного программного кода; модуль преобразования кода, получающий параллельный программный код на основе синтаксического дерева.
Малахов С.В., Якупов Д.О., Воробьева Е.Г., Нехаев М.В., Мухтулов М.О., Новосельцева С.В. - Развитие и применение операционных систем и оболочек в мобильных технологиях: анализ истории развития и актуальных трендов в сфере мобильных ОС и оболочек c. 20-30

DOI:
10.7256/2454-0714.2024.1.70144

EDN: VPNJNF

Аннотация: Объектами исследования являются мобильные операционные системы и их оболочки. В качестве предмета исследования используется функциональность операционных систем Android, iOS и HarmonyOS, их история создания и тенденции развития. Авторы подробно рассматривают такие аспекты темы как, история создания операционных систем Android, iOS, HarmonyOS и оболочек TouchWiz, HTC Sense, MIUI и других, современные тренды в области мобильных операционных систем, которые отражают влияние технологических новинок и геополитических аспектов на развитие данной сферы. Проводят развернутый анализ ОС, используя приложения для тестирования производительности (AnTutu Benchmark, 3DMark Benchmark). Целью данного исследования является изучение истории развития мобильных ОС и оболочек от истоков до современных трендов технического прогресса. Методы исследования базируются на сборе и систематизации информации, анализе и сравнении систем, а также на тестах производительности. Научная новизна данной статьи заключается в использовании ОС и оболочек в мобильных устройствах, отвечающего всем запросам и требованиям пользователя, учитывая бурное развитие цифровых технологий и всё большее внедрение их в нашу повседневную жизнь. Основными выводами проведенного исследования являются выявление самой распространенной ОС, определение современных трендов, которые включают в себя интеграцию искусственного интеллекта, мультимодальность, обеспечение безопасности и конфиденциальности, а также расширение гибкости и портативности. Стремительное развитие технологий и вселенной мобильных приложений делает мобильные ОС и оболочки ключевыми компонентами успешного пользовательского опыта в мире мобильных технологий. Осознание истории и актуальных тенденций в сфере мобильных операционных систем и оболочек позволит более точно предугадать технологические изменения и потенциальные влияния в будущем.
Адияк Е.В., Берг Д.Б., Паначев А.А. - Моделирование развития автономизации финансов местного сообщества по экспериментальным данным в сегменте B2B c. 26-41

DOI:
10.7256/2454-0714.2020.4.34782

Аннотация: Работа посвящена изучению важной тенденции последних десятилетий – автономизации финансов местных сообществ. Объектом исследования являются замкнутые на территории цепочки производства и потребления, обеспечивающие этой территории определенную экономическую автономность. Наличие замкнутых сбалансированных финансовых потоков в этих цепочках создает условия для автономизации финансов местного сообщества. Целью работы является моделирование сценариев развития местного сообщества с замкнутыми контурами производства и потребления. Исследование основано на анализе данных банковских транзакций крупнейшего банка страны произведенных в течение одного месяца между юридическими лицами на территории городского округа с населением 75 тысяч человек.       По результатам анализа выявлен кластер из 59 компаний (агентов), транзакции между которыми образуют сеть с замкнутыми контурами. Внутри кластера выделено ядро из 12 компаний, наиболее тесно взаимодействующих друг с другом. Исследуются различные сценарии развития ядра из 12 компаний до размеров кластера из 59 компаний. Целевым экономическим параметром является объем сбалансированных платежей внутри сети и его доля в общем обороте внутри сети. Структурные параметры образующихся сетей рассчитываются согласно SNA-методологии (Social Network Analysis). Обсуждается потенциал той или иной стратегии развития местного сообщества в контексте автономизации их финансов.
Дагаев Д.В. - Ограничительная семантика языка в системе МультиОберон c. 26-41

DOI:
10.7256/2454-0714.2023.1.36217

EDN: IWIODR

Аннотация: Язык и системы на базе Оберон в реализации демонстрируют минималистский подход для достижения надежности, существенного отличающийся от большинства программных систем, стремящихся к максимизации числа поддерживаемых функций. Требования к критически важным системам для АЭС категории А запрещают использование еще большего числа практик программирования. Для соответствия требованию категории А стабильного числа итераций устанавливается запрет использования операторов цикла по условию. Для обеспечения эргодичности используется запрет использования динамической памяти и рекурсии. Уязвимость типа переполнения буфера закрывается запрещением модуля системных операций SYSTEM. Ограничения могут быть установлены на выявление проблемы хрупкого базового класса, операции смены типа и использование вложенных процедур. Отмечено, что переход к диалекту Оберон-07 в основном коснулся дополнительных ограничений и хорошо встраивается в рамки ограничительной семантики. Вместо языков и диалектов под каждый набор требований автором предложен подход ограничительной семантики, при котором используется один язык с системой ограничений. В язык введен один оператор RESTRICT как декларация ограничений на данный модуль. Реализован компилятор МультиОберон с одним фронтендом, включающем систему ограничений, и несколькими сменными бэкендами. Продемонстрирован синтаксический анализ компилятора на примерах. Показана стратегия масштабирования компилятора в зависимости от системы требований. Новизной подхода ограничительной семантики является достижение набора минимально необходимых свойств, соответствующих требованиям к системе. Использование разработчиками систем подхода «от ограничений» является преимуществом, т.к. декларирует действительно необходимые свойства системы, увязанные с требованиями.
Пекунов В.В. - Объектно-транзакционное расширение Cilk++ c. 28-34

DOI:
10.7256/2454-0714.2022.3.38823

EDN: LBFDUK

Аннотация: В данной работе рассматривается проблема разработки компактных средств, поддерживающих программирование в условиях динамической транзакционной памяти, подразумевающей оперативное порождение транзакционных страниц, для языка Cilk++. Утверждается, что подобная реализация требует ослабленной изоляции транзакций. Анализируется современное состояние проблемы. Отмечается, что существующие решения достаточно громоздки, хотя и позволяют работать со сложными структурами данных, такими как списки и деревья. Утверждается необходимость разработки новых решений в стиле минимализма, основанных на применении специализированных классов (порождающих транзакционные страницы; реализующих согласуемые транзакционные переменные) в сочетании с набором ключевых слов, характерных для Cilk++.   Предлагаются соответствующие новые решения. Вводятся новые элементы синтаксиса, реализуемые с помощью средств расширения языка, характерных для платформы Planning C. Описана семантика новых языковых элементов. Отмечается, что в отличие от аналогов, разработанные средства позволяют декларативно «выстроить» транзакции в сеть (сетевой график работ), определяющую порядок исполнения транзакций и существующий при этом потенциал параллелизма. Проведена апробация предложенного подхода на примере задачи построения гистограммы. Также упоминается об успешном решении с применением разработанных средств задачи обучения искусственной нейронной сети методом обратного распространения ошибки и задачи целочисленного линейного программирования методом ветвей и границ.
Дагаев Д.В. - Инструментальный подход к программированию в системе МультиОберон c. 31-47

DOI:
10.7256/2454-0714.2024.1.69437

EDN: WVZVVU

Аннотация: Объектно-ориентированные подходы к программированию, имеют свою область применимости. Для ряда задач традиционно отдают предпочтение классическим методам структурного программирования. Эти предпочтения нередки для детерминированного мира и в системах, ориентированных на машинное представление. Исторически классические методы развивались от архитектуры фон Неймана представления машины. При решении проблем детерминированного мира выявляются преимущества подходов, противоположных объектно-ориентированному мышлению. Например, язык и системы на базе модульного языка программирования Оберон в классической реализации демонстрируют минималистский путь для достижения надежности, существенно отличающийся от большинства программных систем, стремящихся к максимизации числа поддерживаемых функций. Технология программирования, управляемого данными также отходит от традиционной объектной модели, требуя сепарации кода от данных. Предлагаемый автором статьи инструментальный подход объединяет Оберон-технологии с программированием, управляемым данными, при этом оставляя присущие для ООП механизмы взаимодействия по интерфейсам. Вместо объекта предложен ассоциированный с объектом инструмент, не сохраняющий в себе данные. Предложенный в данной статье инструментальный подход отличается как от объектного представления, так и от классического структурного. Он позволяет сохранять преимущества обоих подходов. При этом инструментальный подход работает в инфраструктуре программирования управляемого данными. От объектно-ориентированного подхода берется полиморфизм и возможность работы по интерфейсам. От классического структурного программирования берется определение структур данных и взаимодействие с ними. От программирования, управляемого данными используется сепарация кода от данных и жизненный цикл последних в персистентном виде. Новизной является то, что инструментальный подход предлагает отличную от ООП ветвь развития для классического языка программирования Оберон и классического подхода. Реализованные в системе МультиОберон, инструментальный подход позволяет решать ряд важных задач, в частности, задачи автоматизации в критически важных системах.
Пекунов В.В. - Новые встроенные средства расширения языка Planning C c. 32-41

DOI:
10.7256/2454-0714.2022.1.37240

Аннотация: В данной работе рассматривается проблема разработки языковых расширений Planning C (диалекта C++). Проводится обзор существующих внешних программ и встроенных в языки решений, позволяющих транслировать вводимые в язык новые конструкции в выходной код. На основании анализа делается вывод о том, что наиболее естественным встроенным в язык решением будет некоторое сочетание улучшенных регулярных выражений (для выделения новых конструкций) с генераторами кода на базе процедурно-синтаксических макросов. При этом целесообразно применение элементов прямого логического программирования (как в макросах, так и в регулярных, точнее, регулярно-логических выражениях).   Предложенный подход позволяет более гибко выделять заменяемые конструкции по сравнению с шаблонными подходами и более просто заменять их выходным кодом в сравнении с подходами, основанными на манипуляциях с синтаксическим деревом. Описаны синтаксис и семантика предлагаемых решений. Предложена схема препроцессинга, реализующая выделение исходных конструкций сканерами (группами параметризованных регулярно-логических выражений) и их замену выходным кодом, реализуемую дедуктивными макромодулями (с возможным многократным согласованием). Такая схема позволяет работать с произвольными входным и выходным синтаксисами и обеспечивает оперативный ввод в Planning C новых конструкций, что особенно ценно, например, при прототипировании новых расширений. Работа содержит сведения об успешной апробации предложенных подходов (о разработке ряда синтаксически нетривиальных расширений Planning C).
Кузнецов С.С. - Проблемы автоматизации вещательно-производственного комплекса c. 35-44

DOI:
10.7256/2454-0714.2022.3.38800

EDN: LBYDAY

Аннотация: В телерадиоиндустрии эффективность работы аппаратной и программной части вещательно-производственных комплексов является основой конкурентного преимущества, в связи с чем в условиях глобальной цифровизации перед компаниями телевизионной индустрии стоит задача по постоянному совершенствованию вещательно-производственных комплексов. Такое совершенствование в большей степени обеспечивается новыми технологиями, часть из которых направлена на автоматизацию процессов вещания. В статье автором анализируются существующие проблемы автоматизации вещательно-производственных комплексов и делается вывод о том, что такие проблемы обусловлены стремлением телерадиокомпаний заменить традиционный подход к выпуску программ с использованием команды специалистов на программное обеспечение. Однако эффективность такого подхода сомнительна, особенно если выпуск программы связан с работой в прямом эфире, где в условиях неопределенной ситуации оперативно среагировать на какие-либо события с помощью автоматизированного программного обеспечения не представляется возможным. Отсюда автоматизация производственных процессов в области вещания становится эффективной и экономичной технологией только при правильной настройке программной части и тщательном подсчете перспектив автоматизации. Реальные перспективы автоматизации вещательно-производственных комплексов в настоящий момент находятся практически в неизученных областях для телевизионной сферы – областях голосового управления, в основу которого положен искусственный интеллект, базирующийся на различных алгоритмах обучения искусственных нейронных сетей, что требует дополнительного изучения и разработки соответствующей модели, адаптированной под конкретную задачу.
Барабаш К.А., Мангушева А.Р., Обухова М.Ю., Григорян К.А. - Разработка интерпретатора LISP c. 39-53

DOI:
10.7256/2454-0714.2022.4.39289

EDN: ZAAPXY

Аннотация: В статье освещаются аспекты разработки интерпретатора LISP. Несмотря на то, что язык LISP это не самый популярный в настоящие дни (в индексе TIOBE за ноябрь 2022 года данный язык стоит на 30-м месте), проделанная авторами работа является актуальной. Многие популярные на сегодня идеи и программные технологии были впервые разработаны с помощью LISP-машин. Разработанный интерпретатор позволяет программисту избегать определения элементов программы (функции, классы и др.) без необходимости. Также результат разработки позволяет запустить любую сущность LISP, которая возвращает осмысленный результат. Современные интерпретаторы LISP не имеют возможности перегрузки функций из-за чего пользователям приходится заучивать огромное количество имен функций, действия которых однотипны. Это значительно усложняет процесс обучения, так как приходится искать в документации названия примитивных функций. Из-за этого большая часть потенциальных пользователей бросает обучение, возвращаясь к современным языкам программирования, так и не познав возможности языка LISP. Статья раскрывает создание интерпретатора LISP, способного по простоте взаимодействия с объектами конкурировать с современными языками программирования. Также в статье предлагается подход, обеспечивающий механизм сборки мусора посредством подсчета ссылок на объекты.
Боревич Е.В., Янчус В.Э. - Информационная модель структуры данных и экспериментальная методика улучшения человеко-компьютерного графического интерфейса c. 42-54

DOI:
10.7256/2454-0714.2022.1.37730

Аннотация: В статье авторы описывают разработанную и апробированную методику проведения вычислительного эксперимента по изучению влияния цветового решения на визуальное восприятие видеокадра зрителем. Разработанная методика предназначена для оценки субъективной эмоциональной реакции зрителя, возникающей на завершающем этапе работы зрительной системы человека при восприятии визуальной информации. В статье описаны методы подготовки стимульного материала, методика проведения эксперимента с использованием разработанного программного модуля, расположенного на сетевом ресурсе. Авторами разработаны методика проведения эксперимента с online тестированием, информационная структура базы данных, анкета для сбора информации, форма прохождения тестирования испытуемыми, алгоритмы статистической обработки результатов эксперимента. Данное исследование основано на результатах серии экспериментов, проведенных с использованием программно-аппаратного комплекса фиксации глазодвигательной активности - айтрекера, позволяющего получать объективные параметрические данные шаблона рассматривания стимульного материала. Описанная в статье методика является дополнением к экспериментальному исследованию с использованием технологии айтрекинга. Результаты эксперимента целесообразно использовать при разработке учебных пособий по цветокоррекции, а также в проектировании элементов интерфейсов управления. Методика программно реализована и апробирована в локальной сети Санкт-Петербургского политехнического университета Петра Великого. Планируется доработка модуля интернет-опроса и проведение глобального эксперимента с последующей статистической обработкой результатов.
Волушкова В.Л., Волушкова А.Ю. - Единый формат спецификации в качестве API-артефакта микросервиса при использовании API-First c. 54-62

DOI:
10.7256/2454-0714.2022.4.39235

EDN: MFEXNN

Аннотация: Объектом исследования являются протоколы взаимодействия (API - Application Programming Interface) микросервисов. API микросервисов является важным объектом разработки, т.к. микросервисы создаются разными командами разработчиков и, не смотря на это, могут быть зависимы друг от друга. Для построения единой системы взаимодействия микросервисов использована методология синхронизации протоколов общения серверных приложений API-First. Целью работы является создание метода разработки API микросервисов серверных java-приложений с использованием библиотек spring. Метод основывается на том, что API декларируется как главная часть разработки микросервисных приложений и поэтому создается на начальном этапе проектирования. Предложен подход, основанный на едином API микросервисов и технике тестирования TDD, повышающий эффективность управления разработкой серверных java-приложений. API микросервисов создается с использованием спецификации в качестве API-артефакта. Разработанная методика позволяет: использовать созданный API другой командой независимо от языка проекта; увеличить производительность команд разработки; качественно документировать методы и модели; уменьшить объем ручного написания программ, т.к. код генерируется автоматически из спецификации; выявить ошибки дизайна API раньше, чем в традиционном подходе к проектированию (code-frist) за счет применения TDD и работы с API до его реализации.
Здор Д.В., Горностаева Т.Н. - Анализ способов завершения рекурсии в рекурсивных правилах на языке логического программирования Пролог c. 68-76

DOI:
10.7256/2454-0714.2021.4.35383

Аннотация: В настоящее время одним из развивающихся направлений в области программирования является логическое программирование, связанное с реализацией инструментальных средств создания искусственного интеллекта. Одним из таких языков программирования является непроцедурный декларативный язык логического программирования Пролог. Статья посвящена использованию рекурсивных правил в программе на Прологе. Цель работы: проанализировать способы завершения рекурсивных вызовов в рекурсивных правилах, а также продемонстрировать использование выявленных способов на примерах программ с рекурсией. Был проведен анализ специальной литературы по теме исследования, обобщены и систематизированы данные, проведено тестирование программы и анализ хода выполнения программы. Рекурсивное правило в программе на Прологе задает бесконечный цикл повторения предикатов. Чтобы закончить рекурсивный цикл, в программу нужно поместить условие, заканчивающее цикл. В статье рассмотрены варианты организации рекурсии с завершением бесконечного цикла различными способами. На рассмотренных примерах были продемонстрированы способы организации и использования рекурсии в программах на Прологе. Приведенные примеры позволяют использовать их в качестве технологической основы в процессе программирования на языке Пролог при решении сходных задач. Полученные результаты могут быть использованы в дальнейшей разработке вопросов использования рекурсивных предикатов в логических языках программирования.
Тюгин Д.Ю. - Разработка параллельных алгоритмов в прикладной гидрофизической задаче с использованием современных средств профилирования кода c. 70-80

DOI:
10.7256/2454-0714.2019.1.29554

Аннотация: В данной статье автор рассматривает разработку параллельного алгоритма для ускорения вычислений в прикладной научной задаче. Особое внимание уделяется программным инструментам для профилирования кода. Применение таких инструментов позволяет быстро выделить участки кода для распараллеливания. Рассматриваются библиотеки и технологии реализации параллельного кода для многопроцессорных систем с общей памятью. Обсуждаются подходы к написанию программ на основе потоков и на основе задач. Рассматриваются этапы разработки параллельного кода путем изменения последовательного кода. Приводится анализ времени выполнения функций приложения при помощи инструмента VTune. Предлагается способ распараллеливания по задачам на основе библиотеки TBB. Показана реализация кода позволяющая выполнять параллельные расчеты. В результате данной работы был разработан новый параллельный алгоритм для решения задачи нахождения характеристик внутренних волн в океане в рамках слабонелинейной теории. Полученный алгоритм проанализирован, получены метрики эффективности. Достигнуто ускорение позволяющее производить расчеты карт двумерных распределений в 39 раз быстрее последовательного алгоритма на 56 ядерном вычислительном сервере. Полученные результаты будут применены в дальнейшем при изучении внутренних волн в океане, а также позволят увеличить эффективность исследований при расчете карт параметров большего масштаба.
Корчагин В.Д. - Анализ современных SOTA-архитектур искусственных нейронных сетей для решения задач классификации изображений и детекции объектов c. 73-87

DOI:
10.7256/2454-0714.2023.4.69306

EDN: MZLZMK

Аннотация: Научное исследование сфокусировано на проведении анализа наиболее эффективных архитектур искусственных нейронных сетей для решения задач классификации изображений и детекции объектов, согласно данным, полученным с открытого портала для публикации результатов проведения эмпирического исследования собственного алгоритма или применения существующих решений для решения альтернативного перечня задач. Актуальность исследования опирается на растущий интерес к технологиям машинного обучения и регулярного улучшения существующих и разработке инновационных алгоритмов компьютерного зрения. Предметом анализа выступают структурные особенности существующих архитектур нейронных сетей. В частности, наиболее эффективные подходы, используемые в современных архитектурах, позволяющие достигать рекордных показателей в рамках используемых метрик качества, а также ключевые недостатки существующих подходов. Исследуется временной интервал, затрачиваемый как на обучение модели, так и на получение итогового результата.  В рамках данной статьи было проведено аналитическое исследование преимуществ и недостатков существующих решений, рассмотрены передовые SOTA архитектурные решения. Изучены наиболее эффективные подходы, обеспечивающие повышение точности базовых моделей. Определено количество используемых параметров, величина обучающей выборки, точность модели, её размер, адаптивность, сложность и требуемые вычислительные ресурсы для обучения отдельно взятой архитектуры. В рамках настоящей исследовательской работы была осуществлена детальная аналитика внутренней структуры наиболее эффективных архитектур нейронных сетей путем сравнительного анализа пяти перспективных решений, извлеченных из каждого анализируемого датасета, ориентированных на классификацию изображения и детекцию объектов. Построены графики зависимости точности от количества используемых параметров в модели и величины обучающей выборки. Проведенный сравнительный анализ эффективности рассматриваемых решений позволил выделить наиболее действенные методы и технологии для проектирования архитектур искусственных нейронных сетей. Дополнительно, были идентифицированы перспективы для последующих исследований, сфокусированных на гибридизации сверточных нейронных сетей с визуальными трансформерами. Предложен новый метод, ориентированный на создание комплексной адаптивной архитектуры модели, которая может динамически настраиваться в зависимости от входного набора параметров, что представляет собой потенциально значимый вклад в область построения адаптивных нейронных сетей.
Сморкалов А.Ю., Кирсанов А.Н. - Средства программирования поведения ботов в виртуальной реальности

DOI:
10.7256/2454-0714.2014.2.12679

Аннотация: В последнее время виртуальные миры неуклонно расширяют сферу своего применения в образовании. Тренажеры, симуляции, ролевые и серьезные игры являются наиболее удачными для обучения в виртуальных средах. Важной частью вышеперечисленных подходов к обучению являются педагогические агенты (боты), которые участвуют в процессе обучения и помогают студенту выполнить учебное задание. В виртуальном мире vAcademia поддерживается реализация активных форм обучения с помощью языка vJS, однако использование и программирование ботов до настоящего времени было недоступно. В статье рассматривается система управления ботами, которая позволяет каждому пользователю vAcademia размещать и настраивать ботов, а также задавать их поведение с помощью расширенного языка vJS. Программирование поведения ботов реализовано на основе использования объектно-ориентированного подхода, автосинхронизируемых функций, возможности задания последовательности выполнения асинхронных действий, а также организации взаимодействия с пользователем на основе озвученных текстовых диалогов с выбором варианта ответа. Взаимодействие с запрограммированными ботами может быть записано в виде 3D-записи для последующего просмотра, что имеет большое значение в образовательной сфере.
Сморкалов А.Ю., Кирсанов А.Н. - Средства программирования поведения ботов в виртуальной реальности c. 149-159

DOI:
10.7256/2454-0714.2014.2.65258

Аннотация: В последнее время виртуальные миры неуклонно расширяют сферу своего применения в образовании. Тренажеры, симуляции, ролевые и серьезные игры являются наиболее удачными для обучения в виртуальных средах. Важной частью вышеперечисленных подходов к обучению являются педагогические агенты (боты), которые участвуют в процессе обучения и помогают студенту выполнить учебное задание. В виртуальном мире vAcademia поддерживается реализация активных форм обучения с помощью языка vJS, однако использование и программирование ботов до настоящего времени было недоступно. В статье рассматривается система управления ботами, которая позволяет каждому пользователю vAcademia размещать и настраивать ботов, а также задавать их поведение с помощью расширенного языка vJS. Программирование поведения ботов реализовано на основе использования объектно-ориентированного подхода, автосинхронизируемых функций, возможности задания последовательности выполнения асинхронных действий, а также организации взаимодействия с пользователем на основе озвученных текстовых диалогов с выбором варианта ответа. Взаимодействие с запрограммированными ботами может быть записано в виде 3D-записи для последующего просмотра, что имеет большое значение в образовательной сфере.
Другие сайты издательства:
Официальный сайт издательства NotaBene / Aurora Group s.r.o.