Использование библиотек в различных системах программирования

Содержание

Слайд 2

I. Библиотеки подпрограмм как составная часть систем программирования

I. Библиотеки подпрограмм как составная часть систем программирования

Слайд 3

В состав системы программирования может входить большое количество разнообразных библиотек. Среди

В состав системы программирования может входить большое количество разнообразных библиотек. Среди

них всегда можно выделить основную библиотеку, содержащую обязательные функции входного языка программирования. Остальные библиотеки необязательны и подключаются к результирующей программе только по прямому указанию разработчика.
Слайд 4

Новые возможности предоставили современные ОС, которые позволили подключать к результирующим программам

Новые возможности предоставили современные ОС, которые позволили подключать к результирующим программам

не статические, а динамические библиотеки.
Динамические библиотеки в отличие от статических библиотек подключаются к программе не в момент ее компоновки, а непосредственно в ходе выполнения, как только программа затребовала ту или иную функцию, находящуюся в библиотеке. Преимущества таких библиотек — они не требуют включать в программу объектный код часто используемых функций.
Слайд 5

Статические библиотеки – могут быть в виде исходного текста, подключаемого программистом


Статические библиотеки – могут быть в виде исходного текста, подключаемого программистом

к своей программе на этапе написания, либо в виде объектных файлов, присоединяемых (линкуемых) к исполняемой программе на этапе компиляции. В результате программа включает в себя все необходимые функции, что делает её автономной, но увеличивает размер.
Слайд 6

Результирующая программа Статическая библиотека Исходная программа + =

Результирующая программа

Статическая библиотека

Исходная программа

+

=

Слайд 7

Динамические библиотеки – это отдельные файлы, предоставляющие прикладным программам набор наиболее


Динамические библиотеки – это отдельные файлы, предоставляющие прикладным программам набор наиболее

часто используемых функций, и загружаемые на этапе выполнения при обращении программы к ОС с заявкой на выполнение функции из библиотеки. Если запрошенная библиотека уже загружена в основное запоминающее устройство, программа будет пользоваться загруженной копией. Такой подход позволяет экономить память, поскольку несколько программ используют одну копию библиотеки, загруженную в память.
Слайд 8

II. Включение текстов из файлов

II. Включение текстов из файлов

Слайд 9

Перечень обозначений заголовочных файлов для работы с библиотеками компилятора утвержден стандартом

Перечень обозначений заголовочных файлов для работы с библиотеками компилятора утвержден стандартом

языка:
assert.h - Диагностика программ
ctype.h - Преобразование и проверка символов
errno.h - Проверка ошибок
float.h - Работа с вещественными данными
limits.h - Предельные значения целочисленных данных
locate.h - Поддержка национальной среды
math.h - Математические вычисления
setjump.h - Возможности нелокальных переходов
signal.h - Обработка исключительных ситуаций
stdarg.h - Поддержка переменного числа параметров
stddef.h - Дополнительные определения
stdio.h - Средства ввода-вывода
stdlib.h - Функции общего назначения (работа с памятью)
string.h - Работа со строками символов
time.h - Определение дат и времени
Слайд 10

Стандартные заголовочные файлы могут быть нечаянно или нарочно включены в текст

Стандартные заголовочные файлы могут быть нечаянно или нарочно включены в текст

программы в любом порядке и по несколько раз без отрицательных побочных эффектов. Однако действие включаемого заголовочного файла распространяется на текст программы только в пределах одного модуля от места размещения директивы #include и до конца текстового файла (и всех включаемых в программу текстов).
Слайд 11

Заголовочные нестандартные файлы оказываются весьма эффективным средством при модульной разработке крупных

Заголовочные нестандартные файлы оказываются весьма эффективным средством при модульной разработке крупных

программ, когда связь между модулями, размещаемыми в разных файлах, реализуется не только с помощью параметров, но и через внешние объекты, глобальные для нескольких или всех модулей. Описания таких внешних объектов (переменных, массивов, структур и т.п.) и прототипы функций помещаются в одном файле, который с помощью директив #include включается во все модули, где необходимы внешние объекты.
Слайд 12

В тот же файл можно включить и директиву подключения файла с

В тот же файл можно включить и директиву подключения файла с

описаниями библиотеки функций ввода-вывода. Заголовочный файл может быть, например, таким:
#include
/* Включение средств обмена */
/* Целые внешние переменные */
extern int ii, jj, 11;
/* Вещественные внешние переменные */
extern float aa, bb;
Слайд 13

III. Библиотеки объектных модулей

III. Библиотеки объектных модулей

Слайд 14

Библиотека объектных модулей – это файл содержащий несколько объектных файлов, которые

Библиотека объектных модулей – это файл содержащий несколько объектных файлов, которые

будут использоваться вместе в стадии присоединения к программе.
Слайд 15

4. Создание статической библиотеки

4. Создание статической библиотеки

Слайд 16

Для создания статических библиотек существует простая специальная программа называемая ar (сокращенно

Для создания статических библиотек существует простая специальная программа называемая ar (сокращенно

от archiver – архиватор). Она используется для создания, модификации и просмотра объектных файлов в статических библиотеках, которые в действительности представляют из себя простые архивы.
Слайд 17

Ключи программы ar имеют следующий смысл: -d -исключить указанные (с помощью

Ключи программы ar имеют следующий смысл:
-d -исключить указанные (с помощью параметра

имя...) файлы из архивного файла;
-r -заменить указанные (параметром имя...) файлы в архивном файле.
-t - вывести в стандартный поток вывода оглавление архивного файла.
-р - вывести в стандартный поток вывода указанные (параметром имя...) файлы из архива;
-v - выдавать пояснительные сообщения;
-х - извлечь из архива указанные (параметром имя...) файлы.
-с - создать архивный файл. Обычно программа ar при необходимости создает архивный файл сама. Данный ключ подавляет информационное сообщение, выдаваемое при создании архивного файла.
Слайд 18

V. Создание библиотеки. Рассмотрим создание библиотеки на примере нахождения значения функции:

V. Создание библиотеки.
Рассмотрим создание библиотеки на примере нахождения значения функции:

Слайд 19

Листинг программы: #include #include #include double zl (double a); double z2

Листинг программы:

#include
#include
#include
double zl (double a);
double z2

(double a);
main(){
double a;
clrscr();
printf("Vvedite znachiniye parametra a:");
scanf("%lf',&a);
printf("Znacheniye funckcii zl ravno: %lf\n", zl(a) );
printf("Znacheniye funckcii z2 ravno: %lf\n", z2(a) );
 printf("Programma zavershaet svoyu rabotu.\nDlya zakritiya najmite lubuyu klavishu.");
getch(); return 0;}
double zl (double a){
return ( ( sin( PI/2+3*a ) )/( l-sin( 3*a-PI ) ) );}
double z2 (double a){
return ( ctan( 5/4*PI+3/2*a ) );}
Слайд 20

Создание библиотеки: Библиотека создаётся в интегрированной среде программирования Borland Turbo С

Создание библиотеки:

Библиотека создаётся в интегрированной среде программирования Borland Turbo С (tc.exe).

Библиотека включает в себя функции, необходимые для вычисления значения zl и z2 из задания. Также в библиотеку включена вещественная константа, значение которой приближается к значению π. Текст библиотеки приведён ниже.
Слайд 21

Листинг библиотеки (bib.ml): /* This is a training library which include

Листинг библиотеки (bib.ml):

/*
This is a training library which include following

function: sin(x) the x is double -> function return a double type cos(x) the x is double -> function return a double type ctan(x) the x is double -> function return a double type factorial(x) the x is double -> function return a double type pow(x,i) the x is double, i is int -> function return a double type and constants: PI-3,14159265358979
Pi=3,1415926535897932384626433832795 but it is too long :)
This library created by me: MC_CCCP for my laboratory works on SPE Data: 13042008
*/
Слайд 22

/*Declaration*/ double sin (double x); double cos (double x); double ctan

/*Declaration*/
double sin (double x);
double cos (double x);
double ctan (double x);

double factorial (double n );
double pow (double x,int i);
const double PI=3.14159265358979;
/*Definition*/
double sin (double x){
double y=0;
int p=l,i;
for(i=l;i<50;i+=2){
у += p*pow(x,i)/factorial(i);
p*=-l;}
return y;}
Слайд 23

double cos (double x){ double y=0; intp=l,i; for(i=0;i у += p*pow(x,i)/factorial(i);

double cos (double x){
double y=0;
intp=l,i;
for(i=0;i<50;i+=2){
у += p*pow(x,i)/factorial(i);
p*=-l;}
return y;}
double ctan (double x){
return

( cos(x)/sin(x) ) ;}
double factorial (double n){
double f=l;
for (n;n>0;n--)
f*=n;
return f;}
double pow (double x, int i){
double y=l;
int j;
for (j=0; jy*=x;
return y;}
Слайд 24

5. Динамическая библиотека

5. Динамическая библиотека

Слайд 25

Динамические библиотеки немного лучше статических, но их использование более сложное. Объектный

Динамические библиотеки немного лучше статических, но их использование более сложное.
Объектный

файл статистических библиотек вовсе не подходит для динамических библиотек. Связано это с тем, что все объектные файлы статистических библиотек не имеют представления о том, в какие адреса памяти будет загружена использующая их программа. Несколько различных программ могут использовать одну библиотеку, и каждая из них располагается в различном адресном пространстве. Поэтому требуется, чтобы переходы в функциях библиотеки (операции goto на ассемблере) использовали не абсолютную адресацию, а относительную. То есть генерируемый компилятором код должен быть независимым от адресов, такая технология получила название PIC - Position Independent Code. В компиляторе данная возможность включается ключом -fPIC.
Слайд 26

6. Пример использования некоторых библиотек

6. Пример использования некоторых библиотек

Слайд 27

Задача: Написать программу, которая задумывает число в диапазоне от 1 до

Задача:

Написать программу, которая задумывает число в диапазоне от 1 до 10

и предлагает пользователю угадать число за 3 попытки.
Слайд 28

#include #include // для доступа к srand #include void main() {

#include
#include // для доступа к srand
#include
void main()
{
int comp; // задуманное

число
int igrok; // вариант, игрока
int n; //количество попыток
time_t t; // текущее время - для инициализации генератора случайных чисел
srand((unsigned) time(&t));
comp=rand()%10+1;
clrscr();
cprintf("\n\rKomputer\"zdumal\"chislo ot 1 do\10\n\r");
cprintf("Vi dolzni ego ugadat za 3 popitki");
Слайд 29

n=0; do { cprintf("\n\r->"); cscanf("%i",&igrok); n++; } while ((igrok != comp)&&(n

n=0;
do {
cprintf("\n\r->");
cscanf("%i",&igrok);
n++;
} while ((igrok != comp)&&(n < 3));
if (igrok == comp)
{
textcolor

(RED+BLINK);
cprintf("\n\r VI VIIGRALI!");
}
else
{
textcolor(GREEN);
cprintf("\n\r Vi proigrali");
cprintf ("Komputer zadumal chislo %d",comp);
}
textcolor(LIGHTGRAY);
cprintf("\n\r Dla zavershenia nazmite lubuu klavishu...");
getch();
getch();
}
Слайд 30

В данной задаче использованы библиотеки conio.h, stdlib., time.h, их предназначение заключается

В данной задаче использованы библиотеки conio.h, stdlib., time.h, их предназначение заключается

в следующем:
Библиотека conio.h предназначена для работы с терминалом в текстовом режиме, в данной задаче используется функция textcolor(), которая устанавливает цвет символов по значению параметра, находящегося внутри круглых скобок (textcolor(GREEN)).
Библиотека stdlib.h предназначена для доступа к функции srand – функция инициализации генератора случайных чисел.
Библиотека time.h предназначена для определения дат и времени, в данной задаче предназначена для определения текущего времени для инициализации генератора случайных чисел.
Слайд 31

VII. Язык программирования Python. Стандартная библиотека

VII. Язык программирования Python. Стандартная библиотека

Слайд 32

Рассмотрим подробнее стандартную библиотеку Питона. Библиотека состоит из нескольких разделов: 1.

Рассмотрим подробнее стандартную библиотеку Питона. Библиотека состоит из нескольких разделов:
1.

Модули, дающие доступ к внутренностям интерпретатора и особенностям языка и реализации.
2. Модули для манипуляции со строками, в том числе и с юникодовыми строками.
3. Модули, дающие доступ к системной библиотеке, в первую очередь математические функции.
4. Модули для написания тестов в стиле Extreme Programming.
5. Модули для (относительно) переносимого способа доступа к функциям операционной системы.
Слайд 33

Так как модулей в стандартно библиотеке очень много, рассмотрим некоторые из

Так как модулей в стандартно библиотеке очень много, рассмотрим некоторые из

них:
1. Первый важный модуль - sys, модуль доступа к Системе. Не операционной системе, а Системе. То есть к интерпретатору.
2. Модули dumbdbm, dbm, gdbm, bsddb дают доступ к соответствующим встраиваемым базам данных
3. String - модуль для манипуляции со строками без регулярных выражений. Здесь собраны функции для поиска подстроки в строке, замены и тому подобное и т. д.
Слайд 34

IX. Библиотека TURBO VISION для TURBO PASCAL

IX. Библиотека TURBO VISION для TURBO PASCAL

Слайд 35

Библиотека TURBO VISION предназначена для создания интерактивных программ, работающих в текстовом

Библиотека TURBO VISION предназначена для создания интерактивных программ, работающих в текстовом

режиме, в соответствии со стандартом SAA/CUA .
Большинство программистов при написании каждой новой программы тратит много времени на разработку административной части.
TURBO VISION содержит элементы административной системы, которые наращиваются с помощью объектно-ориентированного программирования.
Слайд 36

Пример программы на Turbo Pascal с использованием библиотеки TurboVision

Пример программы на Turbo Pascal с использованием библиотеки TurboVision

Слайд 37

Простейшая программа, написанная с использованием TURBO VISION, имеет вид: Program Simplest;

Простейшая программа, написанная с использованием TURBO VISION, имеет вид:
Program Simplest;
uses App;
var

MyApp : TApplication;
begin
MyApp.Init;
MyApp.Run;
MyApp.Done;
end.
Завершается работа программы нажатием клавиш Alt+X или нажатием клавиши мыши, подведенной к строке состояния.
Эта программа, запущенная на выполнение, выводит на экран дисплея три подэлемента - пустую строку меню, рабочую область и строку состояния, которая содержит текст Alt+X Exit. Язык FORTRAN
Рассмотрим основные характеристики языка.