Библиотека программ (Program library) — организованная совокупность программ или частей этих программ, а также, возможно, информации, относящейся к их использованию.
Примечание. Библиотека программ часто называется в соответствии с природой содержащихся в ней элементов.
[ГОСТ 19781-90. Обеспечение систем обработки информации программное. Термины и определения]
Библиотека программ (program library) — организованная совокупность программ или частей этих программ, а также, возможно, информации, относящейся к их использованию.
Примечание. Библиотека программ часто называется в соответствии с природой содержащихся в ней элементов.
[ГОСТ 33707-2016. (ISO/IEC 2382:2015) Информационные технологии (ИТ). Словарь]
Источник: slovaronline.com
Значение слова библиотека (library). Что такое библиотека (library).
Лекции (Ведищев) + шпоры к экзамену / Теория к экзаменам / вопросы 1+
1. История развития и классификация языков программирования (по уровню близости к аппаратному обеспечению; по степени автоматизации процесса программирования; по направлению использования создаваемого прикладного программного обеспечения).
Язык программирования – набор ключевых слов и система грамматических и синтаксических правил для конструирования операторов с помощью которых человек сообщает компьютеру последовательность команд.
История развития: 1. В машинных кодах; 2. Язык ASSEMBLER; 3. Язык FORTRUN 1954; 4. Язык COBOL 1960; 5. BASIC 1963; 6. PASCAL 1970 (Николас Вирт); 7. С 1972 (Ритчи, Кернеган).
Язык С хорошо зарекомендовал себя эффективностью, лаконичностью записи алгоритмов, логической стройностью программ. Во многих случаях программы, написанные на языке С, сравнимы по скорости с программами, написанными на языке ассемблера; при этом они более наглядны и просты в сопровождении.
Одним из основных достоинств языка Си считается высокая переносимость написанных на нем программ между компьютерами с различной архитектурой, между различными операционными средами. Язык С имеет ряд существенных особенностей, которые выделяют его среди других языков программирования.
Это язык программирования высокого уровня, обеспечивающий необычайно легкий доступ к аппаратным средствам компьютера. Иногда С называют языком программирования «среднего» уровня.
С одной стороны, как и другие современные языки высокого уровня, язык С поддерживает полный набор конструкций структурного программирования, модульность, блочную структуру программ, раздельную компиляцию. С другой стороны, в С реализованы некоторые операции низкого уровня (в частности, операции над битами). Некоторые из таких операций напрямую соответствуют машинным командам.
Базовые типы данных языка С отражают те же объекты, с которыми приходится иметь дело в программе на языке ассемблера, — байты, машинные слова, символы, строки. Несмотря на наличие в языке С развитых средств построения составных объектов (массивов и структур), в нем практически отсутствуют средства для работы с ними как с единым целым (нельзя, например, сложить две структуры). Язык С поддерживает механизм указателей на переменные и функции. Поддерживается арифметика указателей, что позволяет осуществлять непосредственный доступ и работу с адресами памяти практически так же легко, как на языке ассемблера.
Что такое framework Чем отличается от библиотеки?
Несмотря на эффективность и мощность конструкций языка С, он относительно мал по объему. В нем отсутствуют встроенные операторы для выполнения ввода-вывода, динамического распределения памяти, управления процессами и т.п., однако в системное окружение языка С входит библиотека стандартных функций, в которой реализованы подобные действия. Вынос этих функций в библиотеку позволяет отделить особенности архитектуры конкретного компьютера и соглашений операционной системы от реализации языка, сделать программу максимально независимой от деталей реализации операционной среды. В то же время программисты могут пользоваться системными библиотечными программами, чтобы более эффективно использовать особенности конкретных операционных сред.
Классификация языков программирования:
Процедурно-ориентированный язык – яп, в котором есть возможность описания программ как совокупности процедур. Процедуры имеют возможность вызова других процедур и самих себя (рекурсия). Программа может быть представлена одной процедурой, считающейся главной.
Процедура – Часть программы выполняющая некоторые операции над данными в соответствии с задаваемыми параметрами. К процедурным языкам программирования относятся фортран, си, паскаль, Алгол.
Логическое программирование – класс языков, который основывается на символической логике. Пример: пролог. Логические языки программирования наиболее приспособлены для реализации в рамках вычислительных архитектур с высокой степенью параллелизма.
Логические языки программирования являются основными при проектировании систем искусственного интеллекта, систем управления базами знаний и экспертных систем. Логические языки программирования позволяют хранить информацию в базах фактов и знаний, которые представляются в них в виде решающих правил. Вычисления сводятся к определению фактов и продуцированию выводов на основе логики вида «если существует факт 1, то сущ. факт 2» или «если истина А, то выполнить В».
Функциональный язык программирования – класс языков программирования, основанных на идеях лямбда-исчисления и теории рекурсивных функций. Программы представляют собой неупорядоченный набор уравнений, определяющих функции и их значения рекурсивно через функцию и значения, которые задаются функцией от других значений.
В конечном итоге полный набор уравнений достаточен для определения всех функций и значений через элементарные функции и значения, имеющиеся в языке. Среди задаваемых значений содержатся требуемые результаты, которые вычисляются в ходе выполнения программы. Пример: Лисп — предназначен для обработки нецифровых данных.
Основной структурой данных этого языка является список, элементами которого служат атомы. Собственно программы также представляют собой список, т.о. и программы и данные имеют одинаковую структуру. Лисп используется при программировании в области искусственного интеллекта.
Объектно-ориентированные языки программирования. В данном подходе проектирования программ понятия процедуры и данных, которые используются в других подходах программирования заменены на понятие объекта и сообщения. Объект – это пакет информации в совокупности с описанием порядка манипулирования этой информацией.
Сообщения – спецификация условий выполнения одной из операций обработки объекта. В отличие от процедуры, которая описывает, как должна проходить обработка, сообщения определяют, что желает отправитель, а получатель – что должно произойти. В этом подходе к проектированию программ используются следующие основные понятия: инкапсуляция, полиморфизм, наследование.
Инкапсуляция – хранение в объекте данных и методов их обработки. Этот принцип позволяет жестко ограничить набор способов модифицирования данных. Наследование позволяет создавать объекты с использованием средств ранее использованных объектов. Полиморфизм позволяет автоматизировать процесс обработки данных за счет автоматического выбора способов обработки в зависимости от вида данных. Все это значительно повышает производительность.
Классификация языков программирования: 1. Неструктурный (преобразование машинных кодов на языке Assembler); 2. Модульные (задачи→подзадачи →алгоритмы→функции); 3. Логический подход; 4. Объектно-ориентированный подход; 5. Функциональный подход; 6. Смешанный подход; 7. Компонентно-ориентированный подход;
2. Понятие формального алгоритма. Тезис Тьюринга – Черча об эквивалентности различных определений вычислимости.
Понятие формального алгоритма.
Алгоритм – это заранее заданная последовательность четко определенных правил или команд для получения решения задачи за конечное число шагов. Эффективным называют алгоритм, допускающий эффективную вычислительную реализацию. Понятие эффективной вычислимости предложено Тьюрингом 1936 г. Функция эффективно вычислима, если существует алгоритм правильно ее вычисляющий и удовлетворяющий следующим требованиям:
1. он состоит из конечного множества простых команд, для которых однозначно определен порядок исполнения.
2. Вычисления должны закончиться и дать результат за конечное число шагов, если аргумент принадлежит области определения и не должен приводить ни к каким результатам, если аргумент не из области определения.
Тезис Тьюринга-Черча об эквивалентности различных определений вычислимости.
До Тьюринга для определения формального алгоритма использовалось определение Черча. Определение основано на общей рекурсивности Геделя. В 1936 г. Тьюринг и Черч выдвинули тезис о том, что определения вычислимости могут быть сведены к определению Тьюринга. В частности любой алгоритм можно признать вычислимым, если он допускает реализацию на машине Тьюринга.
Машина Тьюринга – гипотетическая. Для неё определены правила выполнения элементарных определённых операций.
12.Средства выполнения программ. Понятие операционной системы для прикладного программиста. Интерфейс прикладного программиста с операционной системой, понятие API. Система программирования (средство поддержки программирования; средство поддержки программных разработок). Понятие о библиотеках программ, их использование.
Операционная система – набор программ, управляющих оперативной памятью, внешними устройствами, процессором и файлами, ведущими диалог с пользователем.
Перечень функций с описанием способа их вызова, входа и выхода параметров, доступных из прикладных программ и выполняемых операционной системой называется интерфейсом прикладных программ.
API – Application PI – набор функций операционной системы, позволяющих прикладным программам осуществить взаимодействие с аппаратным обеспечением ОС. К ним относят работу с файловой системой, взаимодействие с оперативной памятью, операции ввода/ вывода.
Например. Вызов функции из программы на языке с вывода на экран printf приводит к вызову функции ОС, которая позволяет выводить символ на экран.
Взаимодействие с функцией API реализуется через механизм программных прерываний. При вызове функции генерируется соответствующее прерывание, тип которого определяется номером и значением определенного регистра.
Система поддержки программных разработок – это вычислительная система, обеспечивающая необходимую поддержку проектировщика в фазе разработки программ при создании систем программного обеспечения. Такая система в стандартном ее варианте представляет простую базу данных в качестве информационного архива и инструментальные программные средства для редактирования исходных текстов программ компилирования, компоновки, загрузки и отладки.
Несмотря на эффективность и мощность конструкций языка Си, он относительно мал по объему. В нем отсутствуют встроенные операторы для выполнения ввода-вывода, динамического распределения памяти, управления процессами и т.п., однако в системное окружение языка Си входит библиотека стандартных функций, в которой реализованы подобные действия. Вынос этих функций в библиотеку позволяет отделить особенности архитектуры конкретного компьютера и соглашений операционной системы от реализации языка, сделать программу максимально независимой от деталей реализации операционной среды. В то же время программисты могут пользоваться системными библиотечными программами, чтобы более эффективно использовать особенности конкретных операционных сред. Библиотека программ — совокупность отдельных программ в программных пакетах, которые предназначены для всеобщего использования в какой-либо определенной среде.
3. Абстрактная машина фон Неймана. Понятие об элементарном исполнителе.
Нейман предложил трехкомпонентную архитектуру, получившее название треугольник Фон — Неймана. В Фон-Неймановская архитектура ЭВМвключает в себя:
1)ЦП – объединяющий в себе УУ(устройство управления) и АЛУ(арифметико-логическое устройство).
2) ЗУ — запоминающее устройство — память.
3)УВВ — устройство ввода-вывода.
Классификация памяти: 1.постоянная; 2.оперативная
Программы и данные должны храниться в памяти. Ввод/вывод осуществляется через устройство ввода/вывода. Общее управление осуществляет ЦП. Между УВВ и ЗУ предусмотрена связь, т. к. при выполнении медленных операций ввода-вывода, ЦП может выполнять другие вычисления, не требующие ввода-вывода.
А специальное устройство – контроллер прямого доступа к памяти управляет процессом передачи данных между ЗУ и УВВ. Под программой понимают набор команд, извлекаемые в порядке их следования, либо в соответствии с управляющими командами. Данные хранятся в виде переменных, которые могут быть поименованы для последующей реализации и изменения.
Программы данных хранятся в памяти. Память – последовательность ячеек для хранения порций информации. Доступ к информации ячеек осуществляется в соответствии с адресом (порядковым номером) информация хранится в двоичном виде.
Единица информации бит, байт – минимально адресуемая в памяти единица информации (1 байт=8 бит). Одним байтом может быть закодировано 2 8 , т. е. 256 различных значений. Байты объединяются в слова, двоичные слова. Размер машинного слова – разрядность ЭВМ.
Классификация памяти: постоянная и оперативная.
В процессоре объединены два устройства — УУ — для считывания команд данных из памяти и общей координации команд и АЛУ — для простейших логических и арифметических операций.
Регистры – быстродействующие ячейки памяти, расположенные на кристалле процессора.
Регистры специального назначения и регистры общего назначения:
РОН предназначены для логических и арифметических операций. РСН – в их состав входят счетчик команд; регистр состояния программы; регистр указателя стека. Счетчик команд хранит адрес следующей команды; регистр состояние программы – обязательно включает в себя флаги (1/0, да/нет, правда/ложь, true/false), характеризующие результат выполнения последней программы.
Флаги используются для выполнения условных операций. Регистр стека – хранит адрес вершины стека. Стек – область памяти, доступ к которой осуществляется по принципу LIFO.
Арифметико-логическое устройство процессора предназначено для выполнения операций в соответствии с кодом команды над данными, которые указываются в качестве аргумента.
Команда пересылки.
По ней данные, определяемые 1-м операндом пересылаются по месту хранения, которое определяется 2-м операндом. Данные пересылаются по адресу со смещением. При этом говорят о непосредственной адресации в случае, если указаны данные; прямой адресации данных, если указан адрес данных; косвенной, если указывается адрес адреса данных; индексная, если указан индекс блока адреса и смещение.
Команды перехода.
Командам безусловного перехода соответствует оператор goto; вместе с кодом операции указывается операнд определяющий адрес команды на которую передается управление. Фактически осуществляется команда пересылки адреса команды в реестр счетчика команд. Для задания адреса могут использоваться различные виды адресации. При команде условного перехода пересылка адреса выполняется в случае истинности условия перехода, что определяется значениями файлов регистра состояния программы.
Арифметические операции.
- «+» (выполняется в прямом коде).
- «-» (реализуется как сложение уменьшаемого с вычитаемым, которое представляется в дополнительном коде).
- Умножение (выполняется как комбинация сложений и сдвигов).
- Деление — комбинация вычитаний и сдвигов с определением частного и остатка.
- Операции над числами с плавающей точкой.
- Операции над действительными числами выполняются в зависимости от форм представления (с фиксированной или с плавающей точкой).
- Выполняется в виде совокупности операций или над мантиссой и характеристикой числа.
- И (++ = +, +- = -, — = -)
- ИЛИ (++ = +, +- = +, — = -)
- НЕ
- ИСКЛЮЧАЮЩЕЕ ИЛИ (++ = +, +- = неоднозначность, — = -).
- по алгоритму программы создается текст главного модуля, содержащего в виде комментариев основны6е этапы решения задачи. Желательно, чтобы каждая строка комментария представляла собой вызов подпрограммы, решающей подзадачу главной задачи
- основные этапы заменяются строчкой кода, представляющего собой вызов функции, соответствующей этапу решения задачи. Выбирается имя функции, тип возвращаемого значения и определяется список параметров.
- По каждой вновь созданной1 функции записывается определение. Тело функции содержит комментарии. Процедура повторяется до тех пор, пока комментарии не будут заменены кодом на языке С
Источник: studfile.net
Что такое библиотека кода?
Рылся в интернете, но так и не понял, что такое библиотека кода ( в программировании ).
Прошу вас в доступной форме разъяснить мне это понятие.
Нужно мне это для того, чтобы понять определение framework
- Вопрос задан более трёх лет назад
- 7711 просмотров
1 комментарий
Оценить 1 комментарий
))))))))00000000000))))))))))))))
Решения вопроса 2
Junior HTML Developer
Ну фигачишь ты функцию, которая превращает строки в массив слов в этой строке. И нафигачил ты её настолько круто, что дали тебе премию на работе, а в отдельном тёмном уголке офиса поставили «Уголок Поклонению Делителю Строк». Даже включили в дайджест на хабре.
Но есть одно «НО», тебе поручили писать новый проект, а ты без этой функции — как без воздуха, ну просто невозможно жить, через неё делятся строчки, выполняется код, покупаются акции Apple и управляются котики с помощью шапочек из фольги. Ну т.е. вообще никак.
И решил ты её перетащить в другой проект. Но решил не с помощью Ctrl+C -> Ctrl+V, а по-хитрому, создал целый файл с исходным кодом. Так вот этот файл и есть библиотека.
P.S. В ходе рассказа ни один котик не пострадал.
P.P.S. Но потом конечно же ты опубликовал её в npm и назвал фреймворком, но это уже другая история.
Ответ написан более трёх лет назад
Комментировать
Нравится 20 Комментировать
full-stack developer
«Библиотека кода» — в программировании такого термина я не встречал 🙂
На сайтах для программистов могут быть разделы — библиотеки кода, которые являются просто свалкой кода (примеров кода) для решения разнообразных задач 🙂
Если имеется ввиду библиотека классов (или просто библиотека — англ. library), то это набор классов/модулей/компонентов для выполнения конкретных задач.
В случае с CSS и HTML, которые упомянуты в тегах этого вопроса, библиотекой можно назвать набор готовых решений, типа Bootstrap (хотя это framework, который состоит из библиотек), Bourbon.
Основное преимущество библиотек — это переносимость, возможность использовать в разных проектах, отсутствие необходимости вникать в принципы работы.
При возникновении ошибок в коде библиотеки или добавлении улучшений, новых функций/возможностей, достаточно будет выпустить (или получить, смотря с какой стороны смотреть) новую версию. Это проще, чем держать однотипный код, одинаковые решения в разных проектах и потом из-за досадной опечатки сидеть и перелопачивать все 🙂 Использование библиотек экономит время.
Источник: qna.habr.com