Библиотека в программировании это
Библиотеки
Библиотеки позволяют использовать разработанный ранее программный код в различных программах. Таким образом, программист может не разрабатывать часть кода для своей программы, а воспользоваться тем, что входит в состав библиотек.
В языке программирования C код библиотек представляет собой функции, размещенные в файлах, которые скомпилированы в объектные файлы, а те, в свою очередь, объединены в библиотеки. В одной библиотеке объединяются функции, решающие определенный тип задач. Например, существует библиотека математических функций.
У каждой библиотеки должен быть свой заголовочный файл, в котором должны быть описаны прототипы (объявления) всех функций, содержащихся в этой библиотеке. С помощью заголовочных файлов вы «сообщаете» вашему программному коду, какие библиотечные функции есть и как их использовать.
При компиляции программы библиотеки подключаются линковщиком, который вызывается gcc. Если программе требуются только стандартные библиотеки, то дополнительных параметров линковщику передавать не надо (есть исключения). Он «знает», где стандартные библиотеки находятся, и подключит их автоматически. Во всех остальных случаях при компиляции программы требуется указать имя библиотеки и ее местоположение.
Библиотеки бывают двух видов — статические и динамические. Код первых при компиляции полностью входит в состав исполняемого файла, что делает программу легко переносимой. Код динамических библиотек не входит в исполняемый файл, последний содержит лишь ссылку на библиотеку. Если динамическая библиотека будет удалена или перемещена в другое место, то программа работать не будет. С другой стороны, использование динамических библиотек позволяет сократить размер исполняемого файла. Также если в памяти находится две программы, использующие одну и туже динамическую библиотеку, то последняя будет загружена в память лишь единожды.
Далее будет описан пример, в котором создается библиотека, после чего используется при создании программы.
Пример создания библиотеки
Допустим, мы хотим создать код, который в дальнейшем планируем использовать в нескольких проектах. Следовательно, нам требуется создать библиотеку. Исходный код для библиотеки было решено разместить в двух файлах исходного кода.
Также на данный момент у нас есть план первого проекта, использующего эту библиотеку. Сам проект также будет включать два файла.
В итоге, когда все будет сделано, схема каталогов и файлов будет выглядеть так:
Пусть каталоги library и project находятся в одном общем каталоге, например, домашнем каталоге пользователя. Каталог library содержит каталог source с файлами исходных кодов библиотеки. Также в library будут находиться заголовочный файл (содержащий описания функций библиотеки), статическая (libmy1.a) и динамическая (libmy2.so) библиотеки. Каталог project будет содержать файлы исходных кодов проекта и заголовочный файл с описанием функций проекта. Также после компиляции с подключением библиотеки здесь будет располагаться исполняемый файл проекта.
В операционных системах GNU/Linux имена файлов библиотек должны иметь префикс «lib», статические библиотеки — расширение *.a, динамические — *.so.
Для компиляции проекта достаточно иметь только одну библиотеку: статическую или динамическую. В образовательных целях мы получим обе и сначала скомпилируем проект со статической библиотекой, потом — с динамической. Статическая и динамическая «разновидности» одной библиотеки по-идее должны называться одинаково (различаются только расширения). Поскольку у нас обе библиотеки будут находиться в одном каталоге, то чтобы быть уверенными, что при компиляции проекта мы используем ту, которую хотим, их названия различны (libmy1 и libmy2).
Исходный код библиотеки
В файле figure.c содержатся две функции — rect() и diagonals() . Первая принимает в качестве аргументов символ и два числа и «рисует» на экране с помощью указанного символа прямоугольник заданной ширины и высоты. Вторая функция выводит на экране две диагонали квадрата («рисует» крестик).
В файле text.c определена единственная функция, принимающая указатель на символ строки. Функция выводит на экране звездочки в количестве, соответствующем длине указанной строки.
Заголовочный файл можно создать в каталоге source, но мы лучше сохраним его там, где будут библиотеки. В данном случае это на уровень выше (каталог library). Тем самым как бы подчеркивается, что файлы исходных кодов после создания из них библиотеки вообще не нужны пользователям библиотек, они нужны лишь разработчику библиотеки. А вот заголовочный файл библиотеки требуется для ее правильного использования.
Создание статической библиотеки
Статическую библиотеку создать проще, поэтому начнем с нее. Она создается из обычных объектных файлов путем их архивации с помощью утилиты ar.
Все действия, которые описаны ниже выполняются в каталоге library (т.е. туда надо перейти командой cd). Просмотр содержимого каталога выполняется с помощью команды ls или ls -l.
Получаем объектные файлы:
В итоге в каталоге library должно наблюдаться следующее:
Далее используем утилиту ar для создания статической библиотеки:
Параметр r позволяет вставить файлы в архив, если архива нет, то он создается. Далее указывается имя архива, после чего перечисляются файлы, из которых архив создается.
Объектные файлы нам не нужны, поэтому их можно удалить:
В итоге содержимое каталога library должно выглядеть так:
, где libmy1.a — это статическая библиотека.
Создание динамической библиотеки
Объектные файлы для динамической библиотеки компилируются особым образом. Они должны содержать так называемый позиционно-независимый код (position independent code). Наличие такого кода позволяет библиотеке подключаться к программе, когда последняя загружается в память. Это связано с тем, что библиотека и программа не являются единой программой, а значит как угодно могут располагаться в памяти относительно друг друга. Компиляция объектных файлов для динамической библиотеки должна выполняться с опцией -fPIC компилятора gcc:
В отличие от статической библиотеки динамическую создают при помощи gcc указав опцию -shared:
Использованные объектные файлы можно удалить:
В итоге содержимое каталога library:
Использование библиотеки в программе
Исходный код программы
Теперь в каталоге project (который у нас находится на одном уровне файловой иерархии с library) создадим файлы проекта, который будет использовать созданную библиотеку. Поскольку сама программа будет состоять не из одного файла, то придется здесь также создать заголовочный файл.
Функция data() запрашивает у пользователя данные, помещая их в массив strs. Далее вызывает библиотечную функцию diagonals() , которая выводит на экране «крестик». После этого на каждой итерации цикла вызывается библиотечная функция text() , которой передается очередной элемент массива; функция text() выводит на экране звездочки в количестве равному длине переданной через указатель строки.
Обратите внимание на то, как подключается заголовочный файл библиотеки: через относительный адрес. Две точки обозначают переход в каталог на уровень выше, т.е. родительский по отношению к project, после чего путь продолжается во вложенный в родительский каталог library. Можно было бы указать абсолютный путь, например, «/home/sv/c/les_21/library/mylib.h». Однако при перемещении каталогов библиотеки и программы на другой компьютер или в другой каталог адрес был бы уже не верным. В случае с относительным адресом требуется лишь сохранять расположение каталогов project и library относительно друг друга.
Здесь два раза вызывается библиотечная функция rect() и один раз функция data() из другого файла проекта. Чтобы сообщить функции main() прототип data() также подключается заголовочный файл проекта.
Файл project.h содержит всего одну строчку:
Из обоих файлов проекта с исходным кодом надо получить объектные файлы для объединения их потом с файлом библиотеки. Сначала мы получим исполняемый файл, содержащий статическую библиотеку, потом — связанный с динамической библиотекой. Однако с какой бы библиотекой мы не компоновали объектные файлы проекта, компилируются они как для статической, так и динамической библиотеки одинаково:
При этом не забудьте сделать каталог project текущим!
Компиляция проекта со статической библиотекой
Теперь в каталоге project есть два объектных файла: main.o и data.o. Их надо скомпилировать в исполняемый файл project, объединив со статической библиотекой libmy1.a. Делается это с помощью такой команды:
Начало команды должно быть понятно: опция -o указывает на то, что компилируется исполняемый файл project из объектных файлов.
Помимо объектных файлов проекта в компиляции участвует и библиотека. Об этом свидетельствует вторая часть команды: -L../library -lmy1. Здесь опция -L указывает на адрес каталога, где находится библиотека, он и следует сразу за ней. После опции -l записывается имя библиотеки, при этом префикс lib и суффикс (неважно .a или .so) усекаются. Обратите внимание, что после данных опций пробел не ставится.
Опцию -L можно не указывать, если библиотека располагается в стандартных для данной системы каталогах для библиотек. Например, в GNU/Linux это /lib/, /urs/lib/ и др.
Запустив исполняемый файл project и выполнив программу, мы увидим на экране примерно следующее:
Посмотрим размер файла project:
Его размер равен 8698 байт.
Компиляция проекта с динамической библиотекой
Теперь удалим исполняемый файл и получим его уже связанным с динамической библиотекой. Команда компиляции с динамической библиотекой выглядит так:
Здесь в отличии от команды компиляции со статической библиотеки добавлены опции для линковщика: -Wl,-rpath. /library/. -Wl — это обращение к линковщику, -rpath — опция линковщика, ../library/ — значение опции. Получается, что в команде мы два раза указываем местоположение библиотеки: один раз с опцией -L, а второй раз с опцией -rpath. Видимо для того, чтобы понять, почему так следует делать, потребуется более основательно изучить процесс компиляции и компоновки программ на языке C.
Следует заметить, что если вы скомпилируете программу, используя приведенную команду, то исполняемый файл будет запускаться из командной строки только в том случае, если текущий каталог project. Стоит сменить каталог, будет возникать ошибка из-за того, что динамическая библиотека не будет найдена. Но если скомпилировать программу так:
, т.е. указать для линковщика абсолютный адрес, то программа в данной системе будет запускаться из любого каталога.
Размер исполняемого файла проекта, связанного с динамической библиотекой, получился равным 8604 байта. Это немного меньше, чем при компиляции проекта со статической библиотекой. Если посмотреть на размеры библиотек:
, то видно, что динамическая больше статической, хотя исполняемый файл проекта со статической библиотекой больше. Это доказывает, что в исполняемом файле, связанном с динамической библиотекой, присутствует лишь ссылка на нее.
Библиотека в программировании это
Библиотека в программировании (Library) – это сборник подпрограмм или объектов, используемых для разработки программ. Можно сказать и так: это набор классов, компонентов или модулей для разных задач.
В программах много стандартных элементов, например, кнопки, проигрыватели видео, запросы и т. д. Нет необходимости каждый раз писать их с нуля, потому что все это уже существует – есть открытые бесплатные библиотеки.
Библиотеки представляют собой уже написанные кем-то переносимые наборы проверенного кода. Это готовые решения, которые программисты могут присоединять к своим программам, вставлять их в свой код по специальным алгоритмам, причем в разных проектах.
Библиотеки для программирования бывают встроенными и дополнительными. У каждого языка есть свои библиотеки. Примеры. Библиотеки для Ruby ищут на The Ruby Toolbox. У Java есть множество готовых классов в Java Standard Libraries, а также в JHipster и т. д. Для С++ существует Boost, а для Python – Simplejson или Requests (вторую используют такие гиганты, как Amazon и Spotify). Готовые классы для кода на Objective-C и Swift можно найти в UIKit Framework. И так далее.
Количеством библиотек во многом определяется развитость и популярность языков. Чем больше приверженцев, тем больше библиотек. А чем больше библиотек, тем больше приверженцев.
Библиотеки бывают для компилируемых языков и интерпретируемых языков (об этом расскажем чуть позже, подписывайтесь на ALMAMAT в соцсетях); динамические и статические; используемые одной программой или несколькими; с критическими функциями и с дополнительными. Отличие динамических в том, что исходный код библиотеки не вставляется, а только прописывается путь и имя функции. В случае со статическими, напротив, исходный код из объектных файлов библиотек вставляется в программу на этапе компоновки, когда создается исполняемый файл программы. Соответственно, везде есть преимущества, нюансы и логика работы.
Они дают очевидную экономию времени на всех этапах. Использование библиотек – это составляющая функционального подхода к написанию программ. Программа состоит из подпрограмм. Современные программисты по мере необходимости используют готовые подпрограммы и целые модули, состоящие из подпрограмм, то есть библиотеки.
Сегодня конкурентоспособный софт по определению слишком сложный и мощный, чтобы программисты писали их полностью самостоятельно. Это нерентабельно, времязатратно и не реалистично, если говорить о темпах разработки. Многие алгоритмы, классы и функции, которые должны быть в коде, уже кем-то реализованы и обнародованы – это доступные всем библиотеки. Они не только облегчают разработку и ускоряют процесс, но и снижают количество ошибок в коде.
Чрезвычайно важно изучать библиотеки того языка, который вы выбрали, чтобы потом быстро ориентироваться в них: у развитых языков очень много библиотек. Навык обращения с библиотеками – один из обязательных для современного программиста. ALMAMAT. IT Faces
Библиотека (программирование)
- Найти и оформить в виде сносок ссылки на авторитетные источники, подтверждающие написанное.
- Проставив сноски, внести более точные указания на источники.
В некоторых языках программирования [каких?] то же, что модуль, в некоторых — несколько модулей. С точки зрения операционной системы (ОС) и прикладного ПО библиотеки разделяются на динамические и статические.
Термин «библиотека подпрограмм» по всей видимости одними из первых упомянули Уилкс М., Уиллер Д., Гилл С. в качестве одной из форм организации вычислений на компьютере [1] [2] . Исходя из изложенного в их книге под библиотекой понимался набор «коротких, заранее заготовленных программ для отдельных, часто встречающихся (стандартных) вычислительных операций» [3] .
Содержание
Динамические библиотеки
Часть основной программы, которая загружается в ОС по запросу работающей программы в ходе её выполнения (Run-time), то есть динамически (Dynamic Link Library, DLL в Windows, SO в Linux). Один и тот же набор функций (подпрограмм) может быть использован сразу в нескольких работающих программах, из-за чего они имеют ещё одно название — библиотеки общего пользования (Shared Library). Если динамическая библиотека загружена в адресное пространство самой ОС (System Library), то единственная копия может быть использована множеством работающих с нею программ, что положительно сказывается на степени использовании ресурса ОЗУ. Динамические библиотеки могут содержать в себе как критические для работы программы части, так и дополнительные функции. Дополнительным плюсом такого подхода является то, что динамическая библиотека может быть использована в качестве плагина (Plug-ins), расширяющего функциональность программы. Минусом является то, что в случае, если модуль, который содержит в себе критическую часть, отсутствует, программа не сможет продолжить работу.
Динамические библиотеки хранятся обычно в определенном месте и имеют стандартное расширение. Например, файлы .library в логическом томе Libs: в AmigaOS; в Microsoft Windows и OS/2 файлы библиотек общего пользования имеют расширение .dll; в UNIX‐подобных ОС — обычно .so; в Mac OS — .dylib.
При написании программы программисту достаточно указать транслятору (компилятору или интерпретатору) языка программирования, что следует подключить нужную библиотеку и использовать функцию из неё. Ни исходный текст, ни исполняемый код функции в состав программы на данном этапе не входит.
Статические библиотеки
Могут быть в виде исходного текста, подключаемого программистом к своей программе на этапе написания (например, для языка Fortran существует огромное количество библиотек для решения разных задач именно в исходных текстах), либо в виде объектных файлов, присоединяемых (линкуемых) к исполняемой программе на этапе компиляции (в Microsoft Windows такие файлы имеют расширение .lib, в UNIX‐подобных ОС — обычно .a). В результате программа включает в себя все необходимые функции, что делает её автономной, но увеличивает размер. Без статических библиотек объектных модулей (файлов) невозможно использование большинства современных компилирующих языков и систем программирования: Fortran, Pascal, C, C++ и других.
Примечания
- ↑Wilkes M. V., Wheeler D. J., Gill S. Preparation of Programs for an Electronic Digital Computer. — Addison-Wesley, 1951.
- ↑ Уилкс М., Уиллер Д., Гилл С. «Составление программ для электронных счётных машин». Издательство иностранной литературы, 1953
- ↑Волченскова, Надежда Ивановна, Технология многомашинной реализации и жизнеобеспечения библиотек подпрограмм вычислительной математики на языке Фортран, автореферат к диссертации, 1984
Литература
Николай Джосьютис C++ Стандартная библиотека. Для профессионалов = The C++ Standart Library. A Tutorial and Reference. — СПб. : Питер, 2004. — 730 с. — ISBN 5-94723-635-4
13 библиотек С++, о которых нужно знать
Помимо стандартной библиотеки, содержащей основные модули языка С++, разработаны десятки, а то и сотни дополнительных библиотек. Каждая из этих библиотек содержит программы и подпрограммы, производящие ряд действий.
Использование сторонних библиотек сокращает объём кода и оптимизирует работу программы, поскольку решения, использован ные разработчиками библиотеки и оттестированные сотнями программистов в разноплановых проектах, после нескольких лет шлифовки достигают лучших показателей по всем параметрам.
Знание и использование ряда полезных библиотек сильно упрощает работу программиста. По этому признаку работодатели легко отличают уверенного профессионала от неопытного новичка.
В этой статье Вы сможете познакомиться с рядом полезных библиотек, которые активно используются разработчиками по всему миру.
Веб-разработка
V8
Если Вам нужен удобный инструмент для работы с JavaScript, V8 подойдёт идеально.
Свои функции V8 реализует, используя специальные классы, написанные на с++ и объявленные в namespace V8. Работать с джава скрипт — структурами можно через привычную оболочку с++.
Схема взаимодействия объектов с++ и V8 реализована посредством использования v8::Handle (template-классов).
Установка V8 обычно не занимает много времени, а польза для тех, кому периодически приходится работать с JavaScript’ом, неоценима.
Кроме того, о библиотеках, с помощью которых могут взаимодействовать C++ и JavaScript очень любят спрашивать на собеседованиях. Поэтому даже, если вы не собираетесь работать с js , с V8 или другими подобными библиотеками лучше познакомиться.
WebKit
Так или иначе, почти все разработчики на разных этапах сталкиваются с необходимостью отображать web – элементы. Чтобы всё выглядело красиво и в коде, и в конечном отображении, а выполнение этой задачи не отнимало слишком много времени и сил, существует библиотека WebKit.
Некоторые программисты называют WebKit «чёрным ящиком», органично перерабатывающим html, css и JavaScript в полноценные веб-страницы.
Awesomium
Awesomium — это библиотека для интеграции браузера (на базе Chromium) в своё приложение. Библиотека имеет 2 режима работы: Offscreen и Windowed.
В режиме Offscreen отрисовка и работа скриптов на экране не отображается.
В режиме Windowed средствами библиотеки эффективно выполняется отрисовка в «окне приписки» и обработка активности мыши и клавиатуры.
Awesomium активно применяется в десятках разных приложений. Описаны случаи интеграции этой библиотеки в 3D игры.
Существенный минус – отсутствие активного сообщества, способного познакомить новичка с библиотекой, ответить на вопросы и исправить ошибки. А документация, доступная для работы с Awesomium на с++, даёт довольно смутное представление о принципах работы библиотеки.
Тем не менее, Awesomium остаётся очень удобным инструментом, завоевавшим признание сотен разработчиков по всему миру.
Работа с сервером
Libcurl
Хотите упростить взаимодействие с сервером? – используйте Libcurl.
Libcurl помогает передавать данные (изображения, файлы и пр.) приложениям. Libcurl поддерживает 13 основных протоколов FTP, FTPS, HTTP, HTTPS, TFTP, SCP, SFTP, Telnet, DICT, LDAP, а также POP3, IMAP и SMTP.
Изначально cUrl предназначался для использования на языке С. Сейчас для работы с Libcurl разработаны модули интеграции к 30 языкам программирования. Что говорит о высокой популярности библиотеки в среде разработчиков. На это же указывает высокий рейтинг продукта.
Сжатие данных
Библиотек для сжатия данных довольно много, одна из самых удобных и популярных
Zlib
Сжатие любых объёмов данных (даже превышающих объём памяти) с помощью zlib проводится предельно легко.
Zlib написана на языке С и применяется в тысячах проектов. Использование некоторых других библиотек невозможно без использования zlib. Примером такой библиотеки является основная библиотека для работы с растровой графикой в формате .png — libpng.
Работа с изображениями
Libpng и libjpg
Libpng, написанная на C с использованием ассемблера, предназначена для работы с изображениями в формате .png.
Для работы с изображениями в формате .jpg существует библиотека libjpg (также написанная на С с использованием Ассемблера)
Обе библиотеки имеют подробные инструкции и множество примеров использования как в С, так и в С++.
Работа с PDF
Периодически возникает необходимость конвертировать файлы в формат pdf. Для этого процесса разработана динамическая библиотека DynaPDF.
DynaPDF
DynaPDF – удобный гибкий инструмент. Формат .dll хотя и открывает достаточно широкие возможности, периодически становится причиной возникновения ошибок.
Для успешного устранения ошибок в сети есть много пошаговых инструкций.
Используется для программирования на языках C/C++, C#, Delphi, Lazarus, PHP, VB, VBA, and VB .Net.
Работа с базами данных
Большая часть приложений нуждается во взаимодействии с базами данных. Оттуда получаются и туда передаются потоки необходимой информации. Поэтому большинство работодателей интересует умение соискателей работать с базами данных.
Libpq
Libpq – удобная библиотека для взаимодействия С и PosgreSQL. Благодаря ей из кода С можно вносить изменения в базу данных, добавлять и безвозвратно удалять данные, создавать и удалять таблицы.
Существуют вариации libpq для C++, Python’a, Perl’a, Tcl, ECPG.
Отладка и тестирование
Ещё один важный пласт знаний для программиста – отладка и тестирование кода. Знание специфических библиотек, существенно упростит Вам решение этой задачи, а коллегам наглядно продемонстрирует уровень вашего профессионализма.
Check
Библиотека Check предназначена для модульного тестирования всех возможностей программ, написанных на языке С. Существенным плюсом использования Check’а служит возможность запуска тестов в отдельных процессах для более точной диагностики причин возникновения ошибок, снижения скорости и т.п
Для модульного тестирования на языке С++ используется Google C++ Testing Framework (Google Test).
Pcap
С помощью этой библиотеки создаются программы, отслеживающие трафик, поступающий на сетевую карту компьютера. Это может быть очень полезно для отладки программ, составления мониторинговых отчётов и т.п.
Pcap предназначена для работы с С и С++. Существуют обёртки, делающие эту библиотеку доступной для работы на других языках программирования.
Ещё Вам может пригодиться…
Libusb
Libusb — это библиотека, которая позволяет обмениваться данными с USB-устройствами прямо из кода программы.
В библиотеке поддерживаются все типы передачи (управление / объем / прерывание / изохронность). Важный элемент библиотеки – журнал сообщений. Он помогает правильно расшифровать коды ошибок, поступающие от USB- устройств.
Предназначена для работы с С. Для других языков программирования разработаны обёртки. Для С++ — Libusbpp
ZBar
Библиотека ZBar предназначена для распознавания штрихкодов из изображений.
ZBar имеет предельно простую и логичную документацию без «тёмной магии» и необъяснимых функций.
Работать с ней легко и удобно. Можно использовать из программных интерфейсов С, С++, Питона и других языков программирования.
Заключение
Большинство описанных библиотек работают и под Windows, и под Linux, и под macOS, и под BSD. Разработчики библиотек предоставляют подробную техническую документацию, а комьюнити готово поделиться пошаговыми инструкциями по установке и ответить на любые рабочие вопросы.
Умение работать с библиотеками – важный навык для любого программиста. Это своеобразный показатель его профессионального уровня и понимания процесса разработки.
Библиотеки помогают решить множество сложных задач, возникающих при разработке кода. Чем теснее Вы с ними «подружитесь», тем шире будет круг ваших профессиональных возможностей.
Не бойтесь новых задач – ищите их решение.
Пишите код, тестируйте и оттачивайте его до блеска. А команда progtips.ru всегда придёт Вам на помощь!
АНОНС
Вы думаете, это все полезные библиотеки? Нет! На десерт мы оставили самое интересное.
В следующем выпуске Вас ждут:
— лучшие графические библиотеки для С++;
— чем пользуются разработчики компьютерных игр в России и на Западе;
и как по графической библиотеке отличить любителя от профессионала.
Библиотека в программировании это
вйвмйпфелб ртпзтбнн — ПТЗБОЙЪПЧБООБС ОБ НБЫЙООПН ОПУЙФЕМЕ УПЧПЛХРОПУФШ ЛПНРШАФЕТОЩИ РТПЗТБНН, ДПУФХР Л ЛПФПТЩН ПУХЭЕУФЧМСЕФУС РП ЙИ ЙНЕОБН (ЙМЙ ЙОДЕЛУБН). в.Р. ХУЛПТСЕФ Й ПВМЕЗЮБЕФ РТПГЕУУ УПЪДБОЙС РПМШЪПЧБФЕМШУЛПК РТПЗТБННЩ, РПЪЧПМСС РТЙНЕОСФШ Ч ЛБЮЕУФЧЕ УПУФБЧОЩИ ЮБУФЕК ХЦЕ ЗПФПЧЩЕ ЖХОЛГЙЙ (РПДРТПЗТБННЩ), ДМС ЮЕЗП ДПУФБФПЮОП ХЛБЪБФШ ЙНС УППФЧЕФУФЧХАЭЕК ЖХОЛГЙЙ. вМБЗПДБТС в.Р. РТПГЕУУ РТПЗТБННЙТПЧБОЙС УФБОПЧЙФУС ВПМЕЕ ФЕИОПМПЗЙЮОЩН, Б УБНБ РПМШЪПЧБФЕМШУЛБС РТПЗТБННБ МЕЗЮЕ ДМС ЧПУРТЙСФЙС. уХЭЕУФЧЕООПК ЮБУФША РТПЗТБННОПЗП ПВЕУРЕЮЕОЙС в.Р. СЧМСЕФУС ОБВПТ УЕТЧЙУОЩИ РТПЗТБНН (ХФЙМЙФ), ПВЕУРЕЮЙЧБАЭЙИ УПЪДБОЙЕ ВЙВМЙПФЕЛЙ, ЧЛМАЮЕОЙЕ Й ЙУЛМАЮЕОЙЕ ЖХОЛГЙК (РПДРТПЗТБНН), ЧЩЧПД ПЗМБЧМЕОЙС Й ДТ.
в.Р. НПЗХФ УПУФПСФШ ЙЪ ПВЯЕЛФОЩИ НПДХМЕК (ДЧПЙЮОЩИ ЖБКМПЧ, РПМХЮЕООЩИ Ч ТЕЪХМШФБФЕ ФТБОУМСГЙЙ), ЙМЙ ФЕЛУФПЧ РТПЗТБНН ОБ ЙУИПДОПН СЪЩЛЕ РТПЗТБННЙТПЧБОЙС. вЙВМЙПФЕЛБ ПВЯЕЛФОЩИ НПДХМЕК — ЬФП, ЛБЛ РТБЧЙМП, ЖБКМ, УПУФПСЭЙК ЙЪ ЪБЗПМПЧЛБ Й РПУМЕДПЧБФЕМШОП ТБУРПМПЦЕООЩИ ПВЯЕЛФОЩИ НПДХМЕК. ч ЪБЗПМПЧЛЕ УПДЕТЦЙФУС УРЙУПЛ ЧУЕИ НПДХМЕК У ХЛБЪБОЙЕН УНЕЭЕОЙС ЛБЦДПЗП ЙЪ ОЙИ ПФ ОБЮБМБ ВЙВМЙПФЕЛЙ. лПЗДБ ЗМБЧОБС РТПЗТБННБ РТСНП ЙМЙ ЛПУЧЕООП ЧЩЪЩЧБЕФ ВЙВМЙПФЕЮОХА ЖХОЛГЙА, ТЕДБЛФПТ УЧСЪЕК ОБИПДЙФ ПРТЕДЕМЕОЙЕ ЬФПК ЖХОЛГЙЙ Ч ЪБЗПМПЧЛЕ в.Р. Й ДПВБЧМСЕФ УППФЧЕФУФЧХАЭЙК НПДХМШ Л ЗМБЧОПК РТПЗТБННЕ, УПЪДБЧБС ЕДЙОЩК ЙУРПМОСЕНЩК ЖБКМ. ч НХМШФЙЪБДБЮОПК ПРЕТБГЙПООПК УЙУФЕНЕ ФБЛБС УФБФЙЮЕУЛБС ЛПНРПОПЧЛБ ОЕЬЖЖЕЛФЙЧОБ, ФБЛ ЛБЛ РТЙЧПДЙФ Л ОЕЬЛПОПНОПНХ ЙУРПМШЪПЧБОЙА ПРЕТБФЙЧОПК РБНСФЙ. оБРТ., ЕУМЙ ДЧЕ ПДОПЧТЕНЕООП ЧЩРПМОСЕНЩЕ РТПЗТБННЩ ЧЩЪЩЧБАФ ПДОХ ЖХОЛГЙА, ФП Ч РБНСФЙ ВХДХФ ОБИПДЙФШУС ДЧЕ ЛПРЙЙ ЬФПК ЖХОЛГЙЙ. дЙОБНЙЮЕУЛЙ УЧСЪЩЧБЕНЩЕ (ЛПНРПОХЕНЩЕ) ВЙВМЙПФЕЛЙ, Ч ПФМЙЮЙЕ ПФ УФБФЙЮЕУЛЙИ, РПДЛМАЮБАФУС Л ПУОПЧОПК РТПЗТБННЕ ОЕРПУТЕДУФЧЕООП ЧП ЧТЕНС ПВТБЭЕОЙС Л ВЙВМЙПФЕЮОПК ЖХОЛГЙЙ. чП ЧТЕНС ЛПНРПОПЧЛЙ РТПЗТБННЩ Ч ЖБКМЕ УПЪДБЕФУС УУЩМЛБ ОБ в.Р., ЛПФПТБС ЙУРПМШЪХЕФУС ДМС ДЙОБНЙЮЕУЛПЗП ЧЛМАЮЕОЙС УППФЧЕФУФЧХАЭЕК ВЙВМЙПФЕЛЙ Ч БДТЕУОПЕ РТПУФТБОУФЧП ЧЩЪЩЧБАЭЕЗП РТПГЕУУБ РТЙ ЕЗП ЧЩРПМОЕОЙЙ. фБЛЙН ПВТБЪПН, РПСЧМСЕФУС ЧПЪНПЦОПУФШ ПДОПЧТЕНЕООПЗП ЙУРПМШЪПЧБОЙС (ТБЪДЕМЕОЙС) ДЙОБНЙЮЕУЛЙИ ВЙВМЙПФЕЛ ОЕУЛПМШЛЙНЙ РТПГЕУУБНЙ. йУРПМШЪПЧБОЙЕ ДЙОБНЙЮЕУЛЙИ ВЙВМЙПФЕЛ УПЛТБЭБЕФ ПВЯЕН РТПЗТБННЩ, ОП ОЕУЛПМШЛП ХУМПЦОСЕФ ХУФБОПЧЛХ РТЙМПЦЕОЙС, РПУЛПМШЛХ ПОП ОХЦДБЕФУС ЕЭЕ Й Ч УППФЧЕФУФЧХАЭЙИ ВЙВМЙПФЕЮОЩИ ЖБКМБИ.
рТПЗТБННЙУФЩ НПЗХФ УПЪДБФШ УЧПЙ УПВУФЧЕООЩЕ в.Р. пДОБЛП ДМС ЧЩРПМОЕОЙС ЮБУФП РПЧФПТСАЭЙИУС Ч ТБЪМЙЮОЩИ РТПЗТБННБИ ПРЕТБГЙК (ОБРТ., ЧЧПДБ-ЧЩЧПДБ, ХРТБЧМЕОЙС РБНСФША, ЧЩЮЙУМЕОЙС ЬМЕНЕОФБТОЩИ НБФЕНБФЙЮ. ЖХОЛГЙК Й ДТ.), ЛБЛ РТБЧЙМП, РТЙНЕОСАФ ЖХОЛГЙЙ ЙЪ УФБОДБТФОЩИ ВЙВМЙПФЕЛ, ЛПФПТЩЕ РПУФБЧМСАФУС ЧНЕУФЕ У ФТБОУМСФПТПН СЪЩЛБ ЙМЙ У ПРЕТБГЙПООПК УЙУФЕНПК. уЙУФЕНЩ РТПЗТБННЙТПЧБОЙС ДМС ОЕЛПФПТЩИ СЪЩЛПЧ (ОБРТ., жПТФТБОБ) РТПДПМЦБАФ УХЭЕУФЧПЧБФШ ЧП НОПЗПН ВМБЗПДБТС ФПНХ, ЮФП ДМС ОЙИ ТБЪТБВПФБО ТБЪЧЙФЩК БРРБТБФ ВЙВМЙПФЕЮОЩИ ЖХОЛГЙК. рТЙ ЧЩРПМОЕОЙЙ ПРТЕДЕМЕООЩИ УПЗМБЫЕОЙК в.Р. НПЦОП ЙУРПМШЪПЧБФШ Ч РТПЗТБННОЩИ РТПЕЛФБИ, ТЕБМЙЪХЕНЩИ ОБ ОЕУЛПМШЛЙИ СЪЩЛБИ РТПЗТБННЙТПЧБОЙС.
дПУФПЙОУФЧПН в.Р. ОБ ЙУИПДОПН СЪЩЛЕ РТПЗТБННЙТПЧБОЙС УЮЙФБЕФУС ЙИ ОЕЪБЧЙУЙНПУФШ ПФ ЛПОЛТЕФОПЗП ФЙРБ ЧЩЮЙУМЙФЕМШОПК УЙУФЕНЩ. юБУФП ФБЛБС ОЕЪБЧЙУЙНПУФШ ПВЕУРЕЮЙЧБЕФУС ЧЛМАЮЕОЙЕН Ч ФЕЛУФЩ ВЙВМЙПФЕЮОЩИ РТПЗТБНН ДЙТЕЛФЙЧ ХУМПЧОПК ЛПНРЙМСГЙЙ, РПДУФТБЙЧБАЭЙИ РТПЗТБННХ РПД ЛПОЛТЕФОЩК ФЙР ЛПНРШАФЕТБ Й ЕЗП ПРЕТБГЙПООХА УЙУФЕНХ ЧП ЧТЕНС РТПГЕУУБ ЛПНРЙМСГЙЙ. ьФЙ в.Р. ЬЖЖЕЛФЙЧОП ЙУРПМШЪХАФУС РТЙ ТЕЫЕОЙЙ ОБХЮОЩИ Й ЙОЦЕОЕТОЩИ ЪБДБЮ. хУМПЧОП ЙИ НПЦОП ТБЪДЕМЙФШ ОБ ВЙВМЙПФЕЛЙ ПВЭЕЗП ОБЪОБЮЕОЙС, ЙУРПМШЪХЕНЩЕ ДМС ТЕЫЕОЙС ЪБДБЮ Ч ТБЪМЙЮОЩИ ПВМБУФСИ, Й УРЕГЙБМЙЪЙТПЧБООЩЕ ВЙВМЙПФЕЛЙ. оБРТ., Ч 1970-80-И ЗЗ. УРЕГЙБМЙУФБНЙ пйсй (дХВОБ), нзх, жьй (пВОЙОУЛ) Й ДТ. ВЩМЙ УПЪДБОЩ в.Р. ДМС ПВТБВПФЛЙ УРЕЛФТПНЕФТЙЮЕУЛПК ЙОЖПТНБГЙЙ, РПМХЮБЕНПК Ч ИПДЕ ЬЛУРЕТЙНЕОФБМШОЩИ ЙУУМЕДПЧБОЙК, ВЙВМЙПФЕЛБ ЮЙУМЕООПЗП БОБМЙЪБ нзх, ЙЕТБТИЙС ВЙВМЙПФЕЛ ПРЕТБГЙПООПК УЙУФЕНЩ «дХВОБ». нОПЗЙЕ РТПЗТБННЩ ЙЪ ЬФЙИ ВЙВМЙПФЕЛ ДП УЙИ РПТ РТЙНЕОСАФУС ОБ УПЧТЕНЕООЩИ ЧЩЮЙУМЙФ. УЙУФЕНБИ. ыЙТПЛП ЙЪЧЕУФОЩ Й БЛФЙЧОП ЙУРПМШЪХАФУС Ч ОБЫЕК УФТБОЕ НЕЦДХОБТПДОЩЕ в.Р., ФБЛЙЕ ЛБЛ CERNLIB еЧТПРЕКУЛПЗП гЕОФТБ сДЕТОЩИ йУУМЕДПЧБОЙК (ыЧЕКГБТЙС), CPC (Computer Physics Communications) Й NAG (Numerical Algorithms Group), РТЕДОБЪОБЮЕООЩЕ ДМС ТЕЫЕОЙС ЪБДБЮ ЖЙЪЙЛЙ, НБФЕНБФЙЛЙ, ИЙНЙЙ Й ДТ. УНЕЦОЩИ ПВМБУФЕК ЪОБОЙК.
в. Р., ОБРЙУБООЩЕ ОБ ПВЯЕЛФОП-ПТЙЕОФЙТПЧБООЩИ СЪЩЛБИ, ФБЛЙИ ЛБЛ у++ ЙМЙ Object Pascal, ТЕБМЙЪХАЭЙЕ ВБЪПЧЩК ОБВПТ РПОСФЙК ОЕЛПФПТПК РТЕДНЕФОПК ПВМБУФЙ, ЮБУФП ОБЪЩЧБАФ ВЙВМЙПФЕЛБНЙ ЛМБУУПЧ (ЛПНРПОЕОФПЧ). оБРТ., ВЙВМЙПФЕЛЙ УФБОДБТФОЩИ ЬМЕНЕОФПЧ ЗТБЖЙЮЕУЛПЗП ЙОФЕТЖЕКУБ (НЕОА, РПМПУЩ РТПЛТХФЛЙ, УРЙУЛЙ, ЖМБЦЛЙ, ЛОПРЛЙ, ПЛОБ Й ДТ.). вЙВМЙПФЕЛЙ ЛМБУУПЧ РПЪЧПМСАФ ХРТПУФЙФШ ТБЪТБВПФЛХ РТЙМПЦЕОЙК, ЙНЕАЭЙИ УМПЦОЩК ЙОФЕТЖЕКУ, ПВМЕЗЮЙФШ ЧЪБЙНПДЕКУФЧЙЕ У ВБЪБНЙ ДБООЩИ Й Ф.Д.
мЙФЕТБФХТБ:
- нБЪОЩК з.м., рТПЗТБННЙТПЧБОЙЕ ОБ вьун-6 Ч УЙУФЕНЕ «дХВОБ» — н., 1978.
- зПТДЕЕЧ б.ч., нПМЮБОПЧ б.а., уЙУФЕНОПЕ РТПЗТБННОПЕ ПВЕУРЕЮЕОЙЕ — «рЙФЕТ», уБОЛФ-рЕФЕТВХТЗ, 2001.