- It can (typically) be specific to a Programming Language, such as a Perl5 Library or a Python2 Library.
- It can (often) be specific to a Programming Environment, such as a perl 5.10 x86 64-bit library.
- It can range from being a Static-Linking Software Library to being a Dynamic-Linking Software Library.
- It can range from being a Standard Software Library (such as
java.text) to being a Custom Software Library.
- It can range from being an Open-Source Library to being a Closed-Source Library.
- a Data Mining Library, which can contain numerical analysis, machine learning and statistics libraries.
- a Domain-Specific Library, such as an IR library, such as the Lucene.
- a General-Purpose Library, such as a Java Standard Library.
- a OS-Interface Library, such as a File I/O Interface Library.
- a Visualization Library, such as matplotlib and Bokeh.
- See: Non-Volatile Memory, Software Development, Code Reuse, Software Subroutine, Modular Programming.
- (Wikipedia, 2014) ⇒ http://en.wikipedia.org/wiki/library_(computing) Retrieved:2014-3-4.
In computer science, a library is a collection of implementations of behavior, written in terms of a language, that has a well-defined interface by which the behavior is invoked. This means that as long as a higher level program uses a library to make system calls, it does not need to be re-written to implement those system calls over and over again. In addition, the behavior is provided for reuse by multiple independent programs. A program invokes the library-provided behavior via a mechanism of the language. For example, in a simple imperative language such as C, the behavior in a library is invoked by using C's normal function-call. What distinguishes the call as being to a library, versus being to another function in the same program, is the way that the code is organized in the system.
Library code is organized in such a way that it can be used by multiple programs that have no connection to each other, while code that is part of a program is organized to only be used within that one program. This distinction can gain a hierarchical notion when a program grows large, such as a multi-million-line program. In that case, there may be internal libraries that are reused by independent sub-portions of the large program. The distinguishing feature is that a library is organized for the purposes of being reused by independent programs or sub-programs, and the user only needs to know the interface, and not the internal details of the library.
The value of a library is the reuse of the behavior. When a program invokes a library, it gains the behavior implemented inside that library without having to implement that behavior itself. Libraries encourage the sharing of code in a modular fashion, and ease the distribution of the code.
The behavior implemented by a library can be connected to the invoking program at different program lifecycle phases. If the code of the library is accessed during the build of the invoking program, then the library is called a static library. An alternative is to build the executable of the invoking program and distribute that, independently from the library implementation. The library behavior is connected after the executable has been invoked to be executed, either as part of the process of starting the execution, or in the middle of execution. In this case the library is called a dynamic library. A dynamic library can be loaded and linked as part of preparing a program for execution, by the linker. Alternatively, in the middle of execution, an application may explicitly request that a module be loaded.
Most compiled languages have a standard library although programmers can also create their own custom libraries. Most modern software systems provide libraries that implement the majority of system services. Such libraries have commoditized the services which a modern application requires. As such, most code used by modern applications is provided in these system libraries.
- QUOTE:A toolkit is an assembly of tools