Система управления библиотеками для ЛЯПАСа | Прикладная дискретная математика. Приложение. 2015. № 8.

Система управления библиотеками для ЛЯПАСа

Предлагается реализация системы управления библиотеками для языка программирования ЛЯПАС. Эта система состоит из трёх основных частей: первая является серверной и отвечает за хранение библиотек, вторая является утилитой для создания библиотек, третья - утилитой, которая позволяет управлять набором библиотек, установленных на компьютере. Описывается формат библиотеки для ЛЯПАСа и система модульной компиляции.

The programming-libraries management system for LYaPAS.pdf Система управления библиотеками - набор программного обеспечения, позволяющего управлять процессом создания, установки, удаления и обновления библиотек. Такая система является важным инструментом создания программ, так как позволяет находить нужные для решения задачи библиотеки и тем самым существенно сократить время разработки. В настоящий момент транслятор с ЛЯПАСа [1] не поддерживает компиляцию программы из отдельных модулей, в частности не определён формат файла, содержащего библиотеку функций. Для модульной компиляции выделены три основных требования: 1) компактность исполняемого файла; 2) простота использования; 3) проверка корректности аргументов функции на этапе компиляции. В данный момент предполагается использование статических библиотек ввиду простоты реализации, в будущем планируется использование динамических библиотек. Компиляция библиотеки разбита на три этапа: 1) трансляция исходного кода на языке ЛЯПАС в набор подпрограмм на языке ассемблера NASM [2]; 2) преобразование набора подпрограмм на языке ассемблера в набор объектных файлов в формате ELF [3]; 3) сборка статической библиотеки из набора объектных файлов. Выходная статическая библиотека содержит отдельный объектный файл для каждой из подпрограмм компилируемой библиотеки. Можно выделить следующие особенности описанного подхода: 1) Утилита компоновки ld [4] добавляет из статической библиотеки только те объектные файлы, в которых содержится нужная для компоновки функция. В исполняемый файл будут добавлены только используемые функции. 2) Для каждой функции при трансляции в язык ассемблера создается специальная секция [3] с её сигнатурой. Если при компиляции в библиотеках не содержится функции с нужной сигнатурой, то компилятор сообщает об ошибке. 3) Для использования библиотеки необходимо указать её имя при помощи специальной директивы, а при запуске - путь к папке с этой библиотекой. Система управления библиотеками состоит из трёх подсистем. При помощи утилиты LBuilder можно создавать и редактировать библиотеки. Сервис LServer позволяет создать репозиторий, управлять библиотеками в нём, распространять с его помощью библиотеки. Конечный пользователь при помощи утилиты LManager выбирает репо-зитории других пользователей и загружает нужные библиотеки. На данном этапе ведётся разработка функциональности модульной компиляции для существующего компилятора ЛЯПАСа. В будущем планируется описать архитектуру для трёх утилит системы управления библиотеками, а затем разработать их на языке ЛЯПАС, что позволит использовать их в ОС ЛЯПАС.

Ключевые слова

ЛЯПАС, модульная компиляция, библиотека подпрограмм, LYaPAS, modular compilation, procedure library

Авторы

ФИООрганизацияДополнительноE-mail
Сафонов Вадим ОлеговичНациональный исследовательский Томский государственный университетстудент кафедры защиты информации и криптографииvsaffonov.1115@gmail.com
Всего: 1

Ссылки

The GNU linker ld (GNU Binutils) version 2.25. https://sourceware.org/binutils/docs-2. 25/ld/index.html
TIS Committee. Tool Interface Standard (TIS) Executable and Linking Format (ELF) Specification Version 1.2. 1995.
Netwide Assembler. http://www.nasm.us/
Агибалов Г. П., Липский В. Б., Панкратова И. А. О криптографическом расширении и его реализации для Русского языка программирования // Прикладная дискретная математика. 2013. №3. С. 93-105.
 Система управления библиотеками для ЛЯПАСа | Прикладная дискретная математика. Приложение. 2015. № 8.

Система управления библиотеками для ЛЯПАСа | Прикладная дискретная математика. Приложение. 2015. № 8.