PROBLEMS IN PROGRAMMING
Not a member yet
761 research outputs found
Sort by
Розробка методів керування доступом до інформації у WIKI-ресурсах
The prospects and scope of Wiki technologies are considered, the structure of the content re presentation and MediaWiki software are analyzed. Considerable attention is given to architecture of MediaWiki and the components of this architecture. The problem deal with the need to access management to the content of Wiki-resources in accordance with the specifics of the information contained in such resources is identified. The results of the analysis show that the basic tools of MediaWiki are not capable to allow a satisfactory solution to this problem. Therefore, we need to create specialized software that is based on the content classification with the use of separate namespaces, categories, templates and semantic properties extracted from MediaWiki. Such software has to be independent of the MediaWiki core and be based on programming of content analysis at the skin level. We test the proposed solution in the process of development of the portal version of the Great Ukrainian Encyclopedia (e-vue) with use of knowledge regarding the knowledge base structure of this portal.Prombles in programming 2020; 1: 33-46Рассмотрены перспективы и область применения Wiki-технологий, проанализирована структура представления контента и программное обеспечение MediaWiki. Значительное внимание отводится архитектуре MediaWiki и компонентам этой архитектуры. Определена проблема, связанная с необходимостью управления доступом к контенту Wiki-ресурсов в соответствии со спецификой информации, которая содержится в таких ресурсах. Результаты анализа показали, что базовые средства MediaWiki не позволяют получить удовлетворительное решение этой задачи. Поэтому возникает потребность в создании специализированного программного обеспечения, которое базируется на классификации контента с использованием отдельных пространств имен, категорий, шаблонов и семантических свойств. которые извлекаются из MediaWiki, и являются независимыми от ядра MediaWiki, а базируется на программировании анализа контента на уровне скина. Приведенное решение апробировано в разработке портальной версии Большой украинской энциклопедии (е-вуе) и использует знания относительно структуры базы знаний этого портала.Prombles in programming 2020; 1: 33-46В роботі аналізуються технологічні засади розробки Wiki-ресурсів на основі програмного забезпечення MediaWiki, розглядаються проблеми доступу до інформації у цих ресурсах та наводяться методи та засоби вирішення цих проблем. Значна увага приділяється архітектурі MediaWiki та складовим цієї архітектури. Розроблені в результаті аналізу рішення апробовано у розробці порталу Великої української енциклопедії (е-ВУЕ) .Prombles in programming 2020; 1: 33-4
Система підтримки прийняття рішень в управлінні якістю навчального процесу
The authors describe the design of a decision support system, which allows automating the works on extracting information from the survey results. The generalization of modern publications had confirmed the relevance of the primary purpose of the paper. The domain analysis determined what tasks the decision support system should solve. The results of domain analysis became the base for the requirements specification. Logical and process views represent the system architecture design. A denormalized data structure, which accelerates the acquisition of aggregated data in different dimensions, is developed. The system design provides the work with various data sources as well as incremental development of the decision support system.Problems in programming 2020; 2-3: 218-227В работе выполнено проектирование системы поддержки принятия решений, позволяющей автоматизировать работы по извлечению информации из результатов анкетирования. Обобщение современных публикаций подтвердило актуальность цели работы. Проанализирована предметная область и определено, какие задачи должна решать система поддержки принятия решений. На основе результатов анализа сформулированы требования к проектируемой системе. В результате проектирования архитектуры системы получены логическое и процессное представление проектируемой системы. С целью ускорения выполнения аналитической обработки данных разработана денормализованная модель данных. Полученный проект предусматривает работу с различными источниками данных и ориентирован на постепенное дополнение функциональных возможностей системы.Problems in programming 2020; 2-3: 218-227В роботі виконано проектування системи підтримки прийняття рішень, яка дозволяє автоматизувати роботи з видобування інформації з результатів анкетування. Узагальнення сучасних публікацій підтвердило актуальність мети роботи. Проаналізовано предметну область та визначено, які задачі має вирішувати система підтримки прийняття рішень. На основі результатів аналізу сформульовані вимоги до проектованої системи. Як результат проектування архітектури системи отримано логічне і процесне подання проектованої системи. З метою прискорення виконання аналітичної обробки даних розроблено денормалізовану модель даних. Отриманий проект передбачає роботу з різними джерелами даних та орієнтований на поступове доповнення функціональних можливостей системи.Problems in programming 2020; 2-3: 218-22
Семантика та прагматика мови програмування ASAMPL
This paper presents semantics and practical implementation of the domain-specific programming language ASAMPL. This programming language has been developed to support the efficient processing of multimodal data processing, in particular, the processing of multimedia content which components are evidently defined in terms of time. The data processing concept employed in ASAMPL is based on the data structures, operations, and relations defined in the algebraic system of aggregates. The paper explains the compilation approach used for this programming language as well as it presents the test results and their discussion.Problems in programming 2020; 1: 74-83В данной статье представлены семантика проблемно-ориентированного языка программирования ASAMPL и практическая реализация его компилятора. Этот язык программирования был разработан для обеспечения эффективной обработки мультимодальных данных, в частности, обработки мультимедийного контента, компоненты которого явно определены на временной шкале. Концепция обработки данных, используемая в ASAMPL, основана на структурах данных, операциях и отношениях, определенных в алгебраической системе агрегатов. В статье представлены основные семантические конструкции языка, которые используются для обработки данных. Кроме того, в статье объясняется подход к компиляции программ на языке программирования ASAMPL, а также представлены результаты тестов. Для сравнения результатов, полученных для языка программирования ASAMPL, тестирование проводилось также для аналогичных программ, написанных на языке программирования С, компиляция которых производилась с помощью компилятора GCC. Важным результатом тестирования является подтверждение гипотезы, что язык программирования ASAMPL позволяет разрабатывать более компактный и понятный программный код, исполнение которого требует меньше памяти.Problems in programming 2020; 1: 74-83У цій статті представлено семантику проблемно-орієнтованої мови програмування ASAMPL та практичну реалізацію компілятора для неї. Ця мова програмування була розроблена для забезпечення ефективного оброблення мультимодальних даних, зокрема, оброблення мультимедійного контенту, компоненти якого явно визначені на часовій шкалі. Концепція оброблення даних, яка використовується в ASAMPL, заснована на структурах даних, операціях та відношеннях, визначених у алгебраїчній системі агрегатів. У статті представлено основні семантичні конструкції мови, які використовуються для оброблення даних. Крім того, в статті пояснюється підхід до компіляції програм на мові програмування ASAMPL, а також представлено результати тестів. Для порівняння результатів, отриманих для мови програмування ASAMPL, тестування проводилося також для аналогічних програм, написаних на мові програмування С, компіляція яких виконувалась за допомогою компілятора GCC. Важливим результатом тестування є підтвердження гіпотези про те, що мова програмування ASAMPL дозволяє розробляти більш компактний та зрозумілий програмний код, виконання якого вимагає менше пам'яті.Problems in programming 2020; 1: 74-8
Підвищення продуктивності коду мовою РYТНОN з використанням техніки переписувальних правил
Python is a popular programming language used in many areas, but its performance is significantly lower than many compiled languages. We propose an approach to increasing performance of Python code by transforming fragments of code to more efficient languages such as Cython and C++. We use high-level algebraic models and rewriting rules technique for semi-automated code transformation. Performance-critical fragments of code are transformed into a low-level syntax model using Python parser. Then this low-level model is further transformed into a high-level algebraic model that is language-independent and easier to work with. The transformation is automated using rewriting rules implemented in Termware system. We also improve the constructed high-level model by deducing additional information such as data types and constraints. From this enhanced high-level model of code we generate equivalent fragments of code using code generators for Cython and C++ languages. Cython code is seamlessly integrated with Python code, and for C++ code we generate a small utility file in Cython that also integrates this code with Python. This way, the bulk of program code can stay in Python and benefit from its facilities, but performance-critical fragments of code are transformed into more efficient equivalents, improving the performance of resulting program. Comparison of execution times between initial version of Python code, different versions of transformed code and using automatic tools such as Cython compiler and PyPy demonstrates the benefits of our approach – we have achieved performance gains of over 50x compared to the initial version written in Python, and over 2x compared to the best automatic tool we have tested.Problems in programming 2020; 2-3: 115-125 Предложен подход повышения производительности кода, написанного на языке Python, с помощью преобразования фрагментов кода в более эффективные языки Cython и C ++. Использованы высокоуровневые алгебраические модели и техника переписывающих правил для автоматизации преобразований кода. Проведено сравнение времени выполнения простых программ – начальной версии на языке Python, различных версий преобразованного кода, а также автоматических средств Cython и PyPy, что демонстрирует эффективность предложенного подхода.Problems in programming 2020; 2-3: 115-125Запропоновано підхід підвищення продуктивності коду, написаного мовою Python, шляхом перетворення фрагментів коду до більш ефективних мов Cython та C++. Використано високорівневі алгебраїчні моделі та техніку переписувальних правил для автоматизації перетворень програмного коду. Проведено порівняння часу виконання простих програм – початкової версії мовою Python, різних версій перетвореного коду, а також автоматичних засобів Cython та PyPy, що демонструє ефективність запропонованого підходу.Problems in programming 2020; 2-3: 115-12
Побудова семантичної моделі зображення з використанням машинного навчання на базі згорткових нейронних мереж
This paper describes the main areas of research in the field of developing computer models for the automatization of digital image recognition. The concept of the semantic image model is introduced and the implementation of the machine learning model for solving the problem of automatic construction of such a model is described. The semantic model consists of a list of objects represented in the image and their relationships. The developed model was compared to other solutions and showed better results in all but one case. The performance of the model is justified by the use of the latest achievements of machine learning, including ZNM, TL, Faster R-CNN, and VGG16. Much of the links represented in the image are spatial links, so for the model to work better, you need to use that fact in designing it, which was done.Problems in programming 2020; 2-3: 352-361В работе описаны основные направления исследований в области построения моделей автоматизации компьютерного распознавания сущности цифрового изображения. Введено понятие семантической модели изображения и описано реализацию модели машинного обучения для решения задачи автоматического построения такой модели для входного изображения. Семантическая модель состоит из списка объектов, которые показаны на изображении, и их связей. Разработанная модель была сравнена с другими решениями для этой самой проблемы и показала лучшие результаты во всех, за исключением одного, случаев. Эффективность работы модели обоснована использованием последних достижений машинного обучения, в частности СНС, TL, моделей Faster R-CNN i VGG16. Значительная часть связей представленных на изображении есть пространственными связями, таким образом, для лучшей работы модели, нужно использовать этот факт в ее проектировании, что и было сделано.Problems in programming 2020; 2-3: 352-361У роботі описано основні напрямки досліджень у сфері побудови моделей автоматизації комп’ютерного розпізнавання сутності цифрового зображення. Введено поняття семантичної моделі зображення та описано реалізацію моделі машинного навчання для вирішення задачі автоматичної побудови такої моделі для вхідного зображення. Семантична модель складається зі списку об’єктів, які показано на зображенні, та їх зв’язків. Розроблена модель була порівняна з іншими рішеннями для цієї самої проблеми і показала кращі результати в усіх, за винятком одного, випадків. Ефективність роботи моделі обґрунтована використанням останніх досягнень машинного навчання, зокрема ЗНМ, TL, моделей Faster R-CNN i VGG16. Значна частина зв’язків представлених на зображенні є просторовими зв’язками, таким чином, для кращої роботи моделі, потрібно використовувати цей факт у її проектуванні, що і було зроблено.Problems in programming 2020; 2-3: 352-36
Автоматизоване проектування програм для платформи .net, що використовують бібліотеку паралельних задач
The necessity to improve the performance of software solving labour-intensive tasks, on the one hand, and new capabilities provided by multicore architecture of contemporary microprocessors, on the other, encourages the development of specialized software tools for automated development of parallel programs for such architectures. Further progress in improving the efficiency of multithreaded programs on .NET platform is using the task parallel library TPL. The paper proposes the further development of previously developed algebra-algorithmic tools in the direction of formalized design and synthesis of C# programs using TPL. The library raises the labour productivity of developers by simplifying the procedure of adding parallelism to a program and dynamically scales parallelism level to use all available processors in the most efficient way. The proposed approach uses high-level language based on Glushkov’s system of algorithmic algebra and the method of designing syntactically correct programs that excludes the possibility of appearance of syntactic errors during scheme design. The results of the experiment consisting in executing examples of generated parallel programs on a multicore processor are given.Problems in programming 2020; 1: 17-24Необходимость в повышении производительности программного обеспечения для решения трудоемких задач, с одной стороны, и новые возможности распараллеливания вычислений, предоставляемые многоядерной архитектурой современных микропроцессоров, с другой, побуждает к созданию специализированных инструментальных средств для разработки параллельных программ для таких архитектур. Одним из способов дальнейшего повышения эффективности многопоточных программ, разработанных на платформе .NET, является использование библиотеки параллельных задач TPL. В статье выполнено дальнейшее развитие ранее разработанного алгебро-алгоритмического инструментария в направлении формализованного проектирования и синтеза параллельных программ на языке C#, использующих средства TPL. Упомянутая библиотека повышает производительность труда разработчиков за счет упрощения процедуры добавления параллелизма в программу и динамически масштабирует степень параллелизма для наиболее эффективного использования всех доступных процессоров. В основу предлагаемого подхода положены язык систем алгоритмических алгебр Глушкова и метод конструирования синтаксически правильных программ, который исключает возможность появления синтаксических ошибок в процессе проектирования схем. Проведен эксперимент по выполнению сгенерированных с помощью разработанного инструментария примеров параллельных программ на многоядерном процессоре.Problems in programming 2020; 1: 17-24Виконане налаштування алгебро-алгоритмічного інструментарію на формалізоване проектування та синтез паралельних програм мовою C# для платформи .NET, що використовують засоби бібліотеки паралельних задач TPL. Згадана бібліотека підвищує продуктивність праці розробників за рахунок спрощення процедури додавання паралелізму в програму та динамічно масштабує степінь паралелізму для найбільш ефективного використання усіх доступних процесорів. В основу пропонованого підходу покладені мова САА-схем, перевагою якої є простота в навчанні й використанні, а також метод конструювання синтаксично правильних програм, що виключає можливість появи синтаксичних помилок у процесі проектування схем. Проведено експеримент з виконання згенерованих за допомогою розробленого інструментарію прикладів паралельних програм на багатоядерному процесоріProblems in programming 2020; 1: 17-2
Елементи конкретної алгоритміки: обчислюваність і розв’язність
An approach to proving the fundamental results of the theory of recursive functions using specific algorithms is consider. For this, the basic constructions of the algorithm are describing exactly and Church's thesis for more narrow classes of algorithmically computational functions is specified (concretized). Using this approach, the belonging of functions to classes of algorithmically computable is argued by the construction of the corresponding algorithms.Problems in programming 2020; 2-3: 198-207Рассматривается подход к доказательству фундаментальных результатов теории рекурсивных функций с помощью использования конкретных алгоритмов. Для этого точно описываются основные конструкции алгоритма и уточняется (конкретизируется) тезис Чорча для более узких классов алгоритмически вычислительных функций. С помощью такого подхода принадлежность функций к классам алгоритмически вычислимых аргументируется построением соответствующих алгоритмов.Problems in programming 2020; 2-3: 198-207Розглядається підхід до доведення фундаментальних результатів теорії рекурсивних функцій за допомогою використання конкретних алгоритмів. Для цього точно описуються основні конструкції алгоритму і переформульовується (конкретизується) теза Чорча для більш вузьких класів алгоритмічно обчислюваних функцій. За допомогою такого підходу належність функцій до класів алгоритмічно обчислюваних аргументується побудовою відповідних алгоритмів.Problems in programming 2020; 2-3: 198-20
WEB-система оцінювання рівня регіонального розвитку
This article focuses on the automation tools development for evaluating the socio-economic development of Ukraine regions. In this work we present a method for automated determination of integral indicators based on factor analysis and expert estimation methods is presented. The method application improved the calculation results reliability and the opportunity provided to analyze the relationships between indicators in terms of their impact on the general regional socio-economic situation. The information-analytical Web-based system for evaluating the socio-economic development of Ukraine regions has been developed and implemented. The Web-based system has a three-level architecture of technical tools and intended for processes automation of socio-economic level development evaluating of Ukraine regions based on expert-statistical method. The Web-based application is designed to work with three user groups and provides access to control elements depending on the access level of user.Problems in programming 2020; 2-3: 22-30Работа посвящена разработке средств автоматизации процессов оценивания уровня социально-экономического развития регионов Украины. В работе представлен метод автоматизированного определения интегральных показателей на основе совместного использования методов факторного анализа и экспертного оценивания, что повысило надежность результатов расчетов и обеспечило возможность проведения анализа взаимосвязей между показателями с точки зрения их влияния на общую социально-экономическую ситуацию в регионе. Разработана и программно реализована информационно-аналитическая Web-система оценки уровня социально-экономического развития регионов Украины. Web-система имеет трехуровневую архитектуру технических средств и предназначена для автоматизации процессов оценивания уровня социально-экономического развития регионов Украины на основе экспертно-статистического метода. Web-приложение рассчитано на работу с тремя группами пользователей и обеспечивает доступ к элементам управления в зависимости от уровня доступа конкретного пользователя.Problems in programming 2020; 2-3: 22-30 Робота присвячена розробці засобів автоматизації процесів оцінювання рівня соціально-економічного розвитку регіонів України. В роботі представлено метод автоматизованого визначення інтегральних показників на основі спільного використання методів факторного аналізу і експертного оцінювання, що підвищило надійність результатів розрахунків і забезпечило можливість проведення аналізу взаємозв’язків між показниками з точки зору їхнього впливу на загальну соціально-економічну ситуацію в регіоні. Розроблено та програмно реалізовано інформаційно-аналітичну Web-систему оцінювання рівня соціально-економічного розвитку регіонів України. Web-система має трирівневу архітектуру технічних засобів і призначена для автоматизації процесів оцінювання рівня соціально-економічного розвитку регіонів України на основі експертно-статистичного методу. Web-додаток розрахований на роботу із трьома групами користувачів та забезпечує доступ до елементів управління взаємодією залежно від рівня доступу конкретного користувача.Problems in programming 2020; 2-3: 22-30
Застосування баз знань та дескриптивних логік до аналізу природно-мовних текстів
The article describes some ways of knowledge bases application to natural language texts analysis and solving some of their processing tasks. The basic problems of natural language processing are considered, which are the basis for their semantic analysis: problems of tokenization, parts of speech tagging, dependency parsing, correference resolution. The basic concepts of knowledge bases theory are presented and the approach to their filling based on Universal Dependencies framework and the correference resolution problem is proposed. Examples of applications for knowledge bases filled with natural language texts in practical problems are given, including checking constructed syntactic and semantic models for consistency and question answering.Problems in programming 2020; 2-3: 259-269В статье приведены пути использования баз знаний для анализа естественноязычных текстов и решения некоторых задач их обработки. Рассматриваются основные задачи обработки естественных языков, что являются базой для их семантического анализа: задачи токенизации, определение частей речи, поиска грамматических зависимостей, поиска кореферентностей. Представлены основные понятия теории баз знаний и предложен подход к их наполнения на основе зависимостей фреймворка Universal Dependencies и задачи кореферентности. Приведены примеры использования баз знаний, наполненных из текстов на естественном языке, для решения прикладных задач: проверки содержательности построенной синтаксической и семантической моделей, построения ответов на вопросы.Problems in programming 2020; 2-3: 259-269У статті наведено деякі шляхи використання баз знань для аналізу природномовних текстів та розв’язання деяких задач їх обробки. Розглядаються основні задачі обробки природних мов, що є базою для їх семантичного аналізу: задачі токенізації, визначення частин мови, пошуку граматичних залежностей, пошуку кореферентностей. Подано основні поняття теорії баз знань та запропоновано підхід до їх наповнення на основі залежностей фреймворку Universal Dependencies та задачі кореферентності. Наведено приклади використання баз знань, наповнених з текстів природною мовою, для вирішення прикладних задач: перевірки змістовності побудованої синтаксичної та семантичної моделей, побудови відповідей на запитання.Problems in programming 2020; 2-3: 259-26
Оптимізація паралельних алгоритмів з використанням моделі акторів
Introduced methods and instrumentation tools for actor model applied to block recursive algorithms optimization. Created formal model of distribution and coordination of the tasks in computation cluster as asynchronous reactive processes with message-passing represented with an actor model and choreography of actors. Created declarative definitions of algorithms which compiles to the system of actors. Proposed scheme of data placement in a cluster using prioritization of block-recursive operations to reduce idling time, data movement, with increased parallelism in situation of high-speed processors and reduced network bandwidth. Implemented adaptive adjustment of the data placement in a cluster at run time to account for current cluster load. Created autotuning of the actor placement in а cluster which uses statistics of previous runs for optimization. Usage of choreography of actors allows to remove central coordinating element and to avoid hard dependencies between cluster nodes, which provides flexible data placement, improves fault tolerance with no single point of failure and allows to use self-healing. Problems in programming 2020; 2-3: 126-137 Предложены методы и инструментальные средства для оптимизации блочно-рекурсивных алгоритмов с использованием модели актеров Форматизирована модель распределения и координации задач в вычислительном кластере в виде асинхронных реактивных процессов с обменом сообщениями представленных моделью актеров и хореографией актеров. Создано систему декларативного задания алгоритмов, которые трансформируются в систему актеров. На основе приоритезации операций блочно-рекурсивных алгоритмов предложено схему расположения данных в кластере для уменьшения времени ожидания и уменьшения количества обменов с повышением параллелизма в ситуации высокой скорости процессора и сниженной пропускной способности сети. Создано систему поддержки адаптивной схемы размещения данных между узлами кластера во время исполнения для повышения эффективности в рамках текущей загрузки кластера. Создано систему автотьюнинга схем расположения актеров в кластере, которая использует статистику предыдущих запусков для оптимизации. Использование хореографии без центрального координирующего элемента позволяет избавится от жесткой зависимости между узлами кластера, дает гибкость расположения данных, улучшает надежность при отсутствии единой точки отказа, дает возможность самовосстановления.Problems in programming 2020; 2-3: 126-137Запропоновані методи та інструментальні засоби для оптимізації блочно-рекурсивних алгоритмів із використанням моделі акторів. Формалізовано модель розподілення і координації задач в обчислювальному кластера у вигляді асинхронних реактивних процесів із обміном повідомленнями представлених моделлю акторів та хореографією акторів. Створено систему декларативного задання алгоритмів які трансформуються у систему акторів. На основі пріоритетизації операцій блочно-рекурсивних алгоритмів запропоновано схему розташування даних у кластері для зменшення часу очікування та зменшення кількості обмінів із підвищенням паралелізму при високій швидкодії процесора і зниженій пропускній здатності мережі. Створено підтримку адаптивної зміни схеми розміщення даних між вузлами кластеру під час виконання для підвищення ефективності в рамках поточного навантаження кластеру. Створено систему автотюнінгу схем розташування акторів у кластері, що враховує статистику попередніх запусків для оптимізації. Використання хореографії без центрального координуючого елементу дозволяє позбутися жорсткої залежності між вузлами кластера, дає гнучкість розташування даних, покращує надійність за відсутності єдиної точки відмови, та дає можливість самовідновлення.Problems in programming 2020; 2-3: 126-137