Knowledge

Library (computing)

Source 📝

214: 544:(OOP) was becoming a significant part of the programming landscape. OOP with runtime binding requires additional information that traditional libraries do not supply. In addition to the names and entry points of the code located within, they also require a list of the objects they depend on. This is a side-effect of one of OOP's core concepts, inheritance, which means that parts of the complete definition of any method may be in different places. This is more than simply listing that one library requires the services of another: in a true OOP system, the libraries themselves may not be known at 47: 2646: 2656: 2666: 684:(RPC) over a network to another computer. This maximizes operating system re-use: the code needed to support the library is the same code being used to provide application support and security for every other program. Additionally, such systems do not require the library to exist on the same machine, but can forward the requests over the network. 193:, although programmers can also create their own custom libraries. Most modern software systems provide libraries that implement the majority of the system services. Such libraries have organized the services which a modern application requires. As such, most code used by modern applications is provided in these system libraries. 403:, even though internally referenced, can be discarded from the compiled application. For example, a program that only uses integers for arithmetic, or does no arithmetic operations at all, can exclude floating-point library routines. This smart-linking feature can lead to smaller application file sizes and reduced memory usage. 379:
program that searches a set of libraries and other modules in a given order. Usually it is not considered an error if a link target can be found multiple times in a given set of libraries. Linking may be done when an executable file is created (static linking), or whenever the program is used at
577:
For some time object libraries held the status of the "next big thing" in the programming world. There were a number of efforts to create systems that would run across platforms, and companies competed to try to get developers locked into their own system. Examples include
527:
Shared libraries can be statically linked during compile-time, meaning that references to the library modules are resolved and the modules are allocated memory when the executable file is created. But often linking of shared libraries is postponed until they are loaded.
387:
The references being resolved may be addresses for jumps and other routine calls. They may be in the main program, or in one module depending upon another. They are resolved into fixed or relocatable addresses (from a common base) by allocating runtime memory for the
779:(shared object, dynamically linked library). Some systems might have multiple names for a dynamically linked library. These names typically share the same prefix and have different suffixes indicating the version number. Most of the names are names for 687:
However, such an approach means that every library call requires a considerable amount of overhead. RPC calls are much more expensive than calling a shared library that has already been loaded on the same machine. This approach is commonly used in a
159:, a library function is invoked via C's normal function call capability. The linker generates code to call a function via the library mechanism if the function is available from a library instead of from the program itself. 260:
held the subroutine library for this computer. Programs for EDSAC consisted of a main program and a sequence of subroutines copied from the subroutine library. In 1951 the team published the first textbook on programming,
1450: 209:
suggested that computer operations could be punched on separate cards from numerical input. If these operation punch cards were saved for reuse then "by degrees the engine would have a library of its own."
139:
When writing code that uses a library, a programmer only needs to know high-level information such as what items it contains at and how to use the items – not all of the internal details of the library.
1491:
Byte Code Generation Library is high level API to generate and transform JAVA byte code. It is used by AOP, testing, data access frameworks to generate dynamic proxy objects and intercept field access.
425:. In general, relocation cannot be done to individual libraries themselves because the addresses in memory may vary depending on the program using them and other libraries they are combined with. 566:
Soon the majority of the minicomputer and mainframe vendors instigated projects to combine the two, producing an OOP library format that could be used anywhere. Such systems were known as
125:
A library can be used by multiple, independent consumers (programs and other libraries). This differs from resources defined in a program which can usually only be used by that program.
417:
Some references in a program or library module are stored in a relative or symbolic form which cannot be resolved until all code and libraries are assigned final static addresses.
263: 470:
All of the modules required by a program are sometimes statically linked and copied into the executable file. This process, and the resulting stand-alone file, is known as a
559:
for data storage or processing. For instance, a program on a GUI-based computer would send messages to a minicomputer to return small samples of a huge dataset for display.
399:
whereby the linker is aware of or integrated with the compiler, such that the linker knows how external references are used, and code in a library that is never actually
170:. An alternative is to build the program executable to be separate from the library file. The library functions are connected after the executable is started, either at 574:, if they supported remote access (not all did). Microsoft's COM is an example of such a system for local use. DCOM, a modified version of COM, supports remote access. 2702: 1440: 551:
At the same time many developers worked on the idea of multi-tier programs, in which a "display" running on a desktop computer would use the services of a
467:, is one intended to be statically linked. Originally, only static libraries existed. Static linking must be performed when any modules are recompiled. 1091: 607: 1173:(1947). Planning and coding of problems for an electronic computing instrument (Report). Institute for Advanced Study. pp. 3, 21–22. 2695: 1689: 128:
When a consumer uses a library resource, it gains the value of the library without having to implement it itself. Libraries encourage
540:
until the late 1980s. It was generally available in some form in most operating systems by the early 1990s. During this same period,
213: 886:
files can be either static libraries or representations of dynamically linkable libraries needed only during compilation, known as "
724:, some data access frameworks, and for testing to generate dynamic proxy objects. They also are used to intercept field access. 2399: 2371: 2999: 2876: 2688: 2424: 1417: 1223: 1150: 1520: 3030: 2275: 1532:
Linux shared libraries are similar to the dynamic link libraries (DLLs) of Windows. Windows DLLs are usually identified by
978: 217:
A woman working next to a filing cabinet containing the subroutine library on reels of punched tape for the EDSAC computer.
2429: 1708: 317: 1941: 1265: 680:
Another library technique uses completely separate executables (often in some lightweight form) and calls them using a
483: 17: 829:
suffix instead). Most libraries in macOS, however, consist of "frameworks", placed inside special directories called "
2581: 2409: 1946: 1570: 1514: 1354: 1316: 709: 521: 381: 175: 1479: 2961: 2669: 1770: 2057: 1273: 166:. If the code of the library is accessed during the build of the invoking program, then the library is called a 2931: 2348: 2310: 1974: 1682: 650: 591: 845:
being either the dynamically linked library file or being a symlink to the dynamically linked library file in
2490: 2467: 2197: 2187: 603: 475: 412: 887: 524:, rather than being copied by a linker when it creates a single monolithic executable file for the program. 2711: 2571: 2159: 2067: 1979: 1755: 1740: 1649: 875: 668:(such as Maven Central for Java). Client code explicitly declare the dependencies to external libraries in 599: 305:
By the mid 1960s, copy and macro libraries for assemblers were common. Starting with the popularity of the
90: 3025: 2976: 2659: 2394: 1899: 1597: 721: 717: 642: 638: 541: 324: 1639: 2816: 2631: 2280: 1661: 1561:. The Morgan Kaufmann Series in Software Engineering and Programming (1 ed.). San Francisco, USA: 870:, although other file name extensions may identify specific-purpose dynamically linked libraries, e.g. 443:
When linking is performed during the creation of an executable or another object file, it is known as
2966: 2869: 2811: 2780: 2649: 2576: 2551: 2414: 2062: 1675: 634: 426: 237:, an early computer that was not yet operational at that time. They envisioned a physical library of 1087: 2728: 2500: 2333: 1926: 1795: 1584: 972: 630: 332: 156: 902:
one must first know if it is a regular static library or an import library. In the latter case, a
878:
libraries. The interface revisions are either encoded in the file names, or abstracted away using
309:, libraries containing other types of text elements, e.g., system parameters, also became common. 2561: 2495: 2386: 2202: 1869: 999: 536:
Although originally pioneered in the 1960s, dynamic linking did not reach the most commonly-used
238: 163: 1308: 1298: 787:
would be the filename for the second major interface revision of the dynamically linked library
2785: 2626: 2457: 2338: 2105: 2095: 2090: 1009: 879: 611: 37:
This article is about a software development concept. For a repository of digital assets, see
2596: 2566: 2556: 2452: 2366: 2242: 2182: 2149: 2139: 2029: 1994: 1984: 1921: 1790: 1765: 1760: 1725: 1446: 689: 681: 649:) and the instantiated objects residing only in memory (although potentially able to be made 560: 313: 294:. FORTRAN subprograms can be compiled independently of each other, but the compiler lacked a 152: 1506:
LPIC-1 Linux Professional Institute Certification Study Guide: Exam 101-400 and Exam 102-400
641:, or objects with their characteristics set to specific values. In some OOP languages, like 2862: 2795: 2356: 2328: 2300: 2295: 2124: 2100: 2052: 2037: 2019: 2009: 2004: 1966: 1916: 1911: 1828: 1774: 1630: 948: – Software component that adds a specific feature to an existing software application 933: 863: 645:, the distinction is clear, with the classes often contained in library files (like Java's 71: 8: 2971: 2760: 2621: 2546: 2462: 2447: 2212: 1999: 1956: 1848: 1838: 1810: 1624: 1005: 945: 697: 661:
that includes the entire state of the environment, classes and all instantiated objects.
583: 133: 1397: 833:" which wrap the library's required files and metadata. For example, a framework called 2838: 2826: 2733: 2586: 2485: 2361: 2318: 2227: 2169: 2154: 2144: 1936: 1735: 1409: 1243: 990: 984: 927: 921: 693: 665: 552: 452: 422: 371: 348: 295: 1599: 1555:(2000) . "Chapter 9: Shared Libraries & Chapter 10: Dynamic Linking and Loading". 421:
is the process of adjusting these references, and is done either by the linker or the
143:
Libraries can use other libraries resulting in a hierarchy of libraries in a program.
46: 2951: 2854: 2843: 2680: 2606: 2536: 2515: 2477: 2285: 2252: 2232: 1931: 1843: 1717: 1576: 1566: 1510: 1413: 1350: 1312: 1279: 1174: 1146: 899: 858: 646: 516:. Modules used by a program are loaded from individual shared objects into memory at 206: 186: 1617: 1247: 1203:. 1951 International Workshop on Managing Requirements Knowledge. IEEE. p. 79. 936: – Microsoft's implementation of the shared library concept in Windows and OS/2 2906: 2821: 2439: 2323: 2290: 2085: 2014: 1903: 1889: 1884: 1833: 1820: 1745: 1698: 1405: 1235: 1204: 1183:
it will probably be very important to develop an extensive "library" of subroutines
1170: 1166: 1138: 1067: 772: 587: 537: 509: 429:
avoids references to absolute addresses and therefore does not require relocation.
226: 222: 190: 75: 59: 31: 2916: 2510: 2404: 2376: 2270: 2222: 2207: 2192: 2047: 2042: 1989: 1879: 1853: 1805: 1750: 1643: 1562: 1504: 1439:
Collberg, Christian; Hartman, John H.; Babu, Sridivya; Udupa, Sharath K. (2003).
966: 202: 179: 162:
The functions of a library can be connected to the invoking program at different
67: 38: 1655: 924: – Computer program which combines multiple object files into a single file 286:
Another major contributor to the modern library concept came in the form of the
2956: 2831: 2775: 2748: 2616: 2520: 2419: 2265: 2237: 1608: 1552: 1304: 1261: 957: 830: 780: 669: 495: 479: 438: 389: 306: 274: 253: 245: 167: 3019: 2981: 2765: 2505: 1800: 1283: 960: – set of routines, external functions and variables in computer science 692:
that makes heavy use of such remote calls, notably client-server systems and
299: 1580: 1239: 1178: 1113: 629:
are the rough OOP equivalent of older types of code libraries. They contain
201:
The idea of a computer library dates back to the first computers created by
85:(generally called functions today). The concept now includes other forms of 2755: 2601: 2260: 1475: 1269: 1196: 1132: 1072: 658: 556: 545: 471: 369:
to library modules. The linking process is usually automatically done by a
257: 1471: 1208: 1142: 2889: 2790: 2770: 2591: 2217: 2129: 1021: 939: 563:(RPC) already handled these tasks, but there was no standard RPC system. 513: 234: 109: 102: 98: 2941: 2885: 2738: 2611: 2541: 2134: 1874: 1730: 915: 287: 283:
has a Communication Pool (COMPOOL), roughly a library of header files.
230: 129: 86: 82: 51: 1303:. ACM Monograph Series. New York, NY: Academic Press (A subsidiary of 2116: 2077: 993: – standard library for Java and other JVM programming languages 738: 713: 654: 517: 344: 171: 1398:"Chapter 3 - Portable Executable and Executable and Linking Formats" 273:
included "primitive capabilities for a library system" in 1959, but
2921: 2177: 1667: 1618:
Faster C++ program startups by improving runtime linking efficiency
456: 50:
Illustration of an application which uses libvorbisfile to play an
894:
world, which uses different file extensions, when linking against
951: 796: 291: 277:
described them as "inadequate library facilities" in retrospect.
2946: 1556: 1015: 328: 280: 112:
instead of making those system calls directly in the program.
1275:
The Preparation of Programs for an Electronic Digital Computer
1201:
1951 International Workshop on Managing Requirements Knowledge
267:, which detailed the creation and the purpose of the library. 264:
The Preparation of Programs for an Electronic Digital Computer
108:
For example, a program could use a library to indirectly make
2986: 2926: 2901: 808: 615: 270: 249: 94: 1636: 229:
speculated that it would be useful to create a "library" of
3004: 2936: 2911: 1602: 891: 637:) that involve objects. Class libraries are used to create 595: 30:"Software library" redirects here. Not to be confused with 657:, the class libraries are merely the starting point for a 27:
Collection of resources used to develop a computer program
814: 579: 298:. So prior to the introduction of modules in Fortran-90, 1438: 1064:
Metamorphic Detection Using Function Call Graph Analysis
474:
of the program. A static build may not need any further
155:
by which the functionality is invoked. For example, in
1041:
It was possible earlier between, e.g., Ada subprograms.
987: – Standard library for the C programming language 942: – File containing relocatable format machine code 2884: 2710: 1509:. John Wiley & Sons (published 2015). p. 82. 1002: – Standard library of Microsoft's .NET Framework 918: – Use of existing software to build new software 1338: 795:
files sometimes found in the library directories are
633:, which describe characteristics and define actions ( 1650:
2nd Library-Centric Software Design Workshop LCSD'06
1637:
1st Library-Centric Software Design Workshop LCSD'05
1363: 1165: 995:
Pages displaying wikidata descriptions as a fallback
962:
Pages displaying wikidata descriptions as a fallback
813:
The system inherits static library conventions from
783:
to the latest version. For example, on some systems
1349:. Wokingham, England: Addison-Wesley. p. 126. 1008: – Style of computer programming (used by the 672:configuration files (such as a Maven Pom in Java). 1503:Bresnahan, Christine; Blum, Richard (2015-04-27). 1376: 1325: 847:MyFramework.framework/Versions/Current/MyFramework 1290: 1260: 975: – Object Pascal framework for Windows (VCL) 451:. In this case, the linking is usually done by a 241:, with each wire storing reusable computer code. 3017: 882:interfaces. Depending on how they are compiled, 732: 395:Some programming languages use a feature called 151:A library of executable code has a well-defined 1080: 1445:. USENIX '05. Department of Computer Science, 1221: 825:-style dynamically linked libraries (with the 2870: 2696: 1707:Note: This template roughly follows the 2012 1683: 1658:by Ulrich Drepper (with much background info) 1502: 1066:(Thesis). San Jose State University Library. 1018: – Field of data in a shared object file 1345:Wilson, Leslie B.; Clark, Robert G. (1988). 1024: – Short and simple version of a method 799:archives, not usable by the system as such. 703: 361:process, which resolves references known as 302:between FORTRAN subprograms was impossible. 1344: 1278:. Addison-Wesley. pp. 45, 80–91, 100. 664:Today most class libraries are stored in a 508:is a file that is intended to be shared by 2877: 2863: 2703: 2689: 1690: 1676: 1224:"In Praise of 'Wilkes, Wheeler, and Gill'" 1296: 1222:Campbell-Kelly, Martin (September 2011). 1137:. Princeton: Princeton University Press. 1130: 1071: 1061: 708:Code generation libraries are high-level 1395: 837:would be implemented in a bundle called 212: 178:. In this case, the library is called a 45: 1134:The Computer from Pascal to von Neumann 1111: 353:Libraries are important in the program 101:. It can also refer to a collection of 14: 3018: 2400:Knowledge representation and reasoning 1551: 1194: 1118:Proceedings of the British Association 331:, developed in 1965, supported adding 2858: 2684: 2425:Philosophy of artificial intelligence 1671: 1402:Reverse Engineering Code with IDA Pro 81:Historically, a library consisted of 1751:Energy consumption (Green computing) 1697: 1633:- the Binary File Descriptor Library 979:Component Library for Cross Platform 852: 653:in separate files). In others, like 2430:Distributed artificial intelligence 1709:ACM Computing Classification System 1131:Goldstine, Herman H. (2008-12-31). 930: – Part of an operating system 675: 531: 489: 432: 24: 1942:Integrated development environment 1662:Anatomy of Linux dynamic libraries 1545: 1410:10.1016/b978-1-59749-237-9.00003-x 763:. The filenames always start with 621: 548:, and vary from system to system. 484:address space layout randomization 115: 93:and non-executable data including 25: 3042: 2410:Automated planning and scheduling 1947:Software configuration management 1347:Comparative Programming Languages 906:file must be present at runtime. 843:MyFramework.framework/MyFramework 2664: 2654: 2645: 2644: 1300:History of Programming Languages 969: – Type of software library 2655: 2058:Computational complexity theory 1625:How to Create Program Libraries 1587:from the original on 2012-12-05 1523:from the original on 2015-09-24 1496: 1482:from the original on 2010-01-12 1464: 1453:from the original on 2016-03-23 1442:SLINKY: Static Linking Reloaded 1432: 1389: 1094:from the original on 2013-07-03 1035: 817:, with the library stored in a 712:that can generate or transform 335:to libraries via its compiler. 314:IBM's OS/360 and its successors 1849:Network performance evaluation 1621:by Léon Bottou and John Ryland 1254: 1215: 1188: 1159: 1124: 1105: 1055: 727: 614:(COM/DCOM), and any number of 592:Distributed Objects Everywhere 455:, but may also be done by the 13: 1: 2213:Multimedia information system 2198:Geographic information system 2188:Enterprise information system 1784:Computer systems organization 1112:Babbage, H. P. (1888-09-12). 1048: 751:files in directories such as 733:Most modern Unix-like systems 413:Relocation (computer science) 406: 146: 66:is a collection of read-only 2712:Application binary interface 2572:Computational social science 2160:Theoretical computer science 1980:Software development process 1756:Electronic design automation 1741:Very Large Scale Integration 1656:How to create shared library 1404:. Elsevier. pp. 37–66. 600:Portable Distributed Objects 7: 3031:Operating system technology 2395:Natural language processing 2183:Information storage systems 1609:Beginner's Guide to Linkers 1297:Wexelblat, Richard (1981). 909: 767:, and end with a suffix of 722:aspect-oriented programming 542:object-oriented programming 392:of each module referenced. 325:object-oriented programming 10: 3047: 2817:Foreign function interface 2311:Human–computer interaction 2281:Intrusion detection system 2193:Social information systems 2178:Database management system 1062:Deshpande, Prasad (2013). 954:, also known as Prebinding 856: 806: 736: 493: 436: 410: 342: 338: 196: 120: 36: 29: 2995: 2897: 2812:Binary-code compatibility 2804: 2781:Position-independent code 2719: 2640: 2577:Computational engineering 2552:Computational mathematics 2529: 2476: 2438: 2385: 2347: 2309: 2251: 2168: 2114: 2076: 2028: 1965: 1898: 1862: 1819: 1783: 1716: 1705: 1472:"Code Generation Library" 1228:Communications of the ACM 704:Code generation libraries 427:Position-independent code 248:and his team constructed 244:Inspired by von Neumann, 70:that is leveraged during 2587:Computational healthcare 2582:Differentiable computing 2501:Graphics processing unit 1927:Domain-specific language 1796:Computational complexity 1028: 973:Visual Component Library 866:usually have the suffix 802: 775:, static library) or of 690:distributed architecture 239:magnetic wire recordings 164:program lifecycle phases 2562:Computational chemistry 2496:Photograph manipulation 2387:Artificial intelligence 2203:Decision support system 1240:10.1145/1995376.1995386 1114:"The Analytical Engine" 1000:Framework Class Library 205:. An 1888 paper on his 2627:Educational technology 2458:Reinforcement learning 2208:Process control system 2106:Computational geometry 2096:Algorithmic efficiency 2091:Analysis of algorithms 1746:Systems on Chip (SoCs) 1396:Kaminsky, Dan (2008). 1195:Wilkes, M. V. (1951). 1073:10.31979/etd.t9xm-ahsc 864:Dynamic-link libraries 612:Component Object Model 561:Remote procedure calls 233:for their work on the 218: 55: 3000:Comparison of formats 2597:Electronic publishing 2567:Computational biology 2557:Computational physics 2453:Unsupervised learning 2367:Distributed computing 2243:Information retrieval 2150:Mathematical analysis 2140:Mathematical software 2030:Theory of computation 1995:Software construction 1985:Requirements analysis 1863:Software organization 1791:Computer architecture 1761:Hardware acceleration 1726:Printed circuit board 1447:University of Arizona 1209:10.1109/afips.1951.13 1143:10.1515/9781400820139 839:MyFramework.framework 682:remote procedure call 216: 49: 2796:Virtual method table 2357:Concurrent computing 2329:Ubiquitous computing 2301:Application security 2296:Information security 2125:Discrete mathematics 2101:Randomized algorithm 2053:Computability theory 2038:Model of computation 2010:Software maintenance 2005:Software engineering 1967:Software development 1917:Programming language 1912:Programming paradigm 1829:Network architecture 1536:filename extensions. 1197:"The EDSAC Computer" 1010:C++ Standard Library 934:Dynamic-link library 698:Enterprise JavaBeans 318:partitioned data set 72:software development 2761:Memory segmentation 2632:Document management 2622:Operations research 2547:Enterprise software 2463:Multi-task learning 2448:Supervised learning 2170:Information systems 2000:Software deployment 1957:Software repository 1811:Real-time computing 1558:Linkers and Loaders 1006:Generic programming 720:. They are used by 694:application servers 584:System Object Model 572:distributed objects 512:and further shared 463:, also known as an 384:(dynamic linking). 3026:Computer libraries 2734:Calling convention 2415:Search methodology 2362:Parallel computing 2319:Interaction design 2228:Computing platform 2155:Numerical analysis 2145:Information theory 1937:Software framework 1900:Software notations 1839:Network components 1736:Integrated circuit 1642:2019-08-28 at the 1369:Wilson and Clark, 1088:"Static Libraries" 991:Java Class Library 985:C standard library 928:Loader (computing) 922:Linker (computing) 821:file, and can use 743:The system stores 666:package repository 349:Linker (computing) 219: 187:compiled languages 56: 18:Library (software) 3013: 3012: 2852: 2851: 2844:Year 2038 problem 2678: 2677: 2607:Electronic voting 2537:Quantum Computing 2530:Applied computing 2516:Image compression 2286:Hardware security 2276:Security services 2233:Digital marketing 2020:Open-source model 1932:Modeling language 1844:Network scheduler 1612:by David Drysdale 1419:978-1-59749-237-9 1171:von Neumann, John 1167:Goldstine, Herman 1152:978-1-4008-2013-9 890:". Unlike in the 859:Microsoft Windows 853:Microsoft Windows 538:operating systems 316:this is called a 207:Analytical Engine 16:(Redirected from 3038: 2879: 2872: 2865: 2856: 2855: 2822:Language binding 2705: 2698: 2691: 2682: 2681: 2668: 2667: 2658: 2657: 2648: 2647: 2468:Cross-validation 2440:Machine learning 2324:Social computing 2291:Network security 2086:Algorithm design 2015:Programming team 1975:Control variable 1952:Software library 1890:Software quality 1885:Operating system 1834:Network protocol 1699:Computer science 1692: 1685: 1678: 1669: 1668: 1595: 1593: 1592: 1539: 1538: 1535: 1529: 1528: 1500: 1494: 1493: 1488: 1487: 1468: 1462: 1461: 1459: 1458: 1436: 1430: 1429: 1427: 1426: 1393: 1387: 1380: 1374: 1367: 1361: 1360: 1342: 1336: 1329: 1323: 1322: 1294: 1288: 1287: 1258: 1252: 1251: 1219: 1213: 1212: 1192: 1186: 1185: 1163: 1157: 1156: 1128: 1122: 1121: 1109: 1103: 1102: 1100: 1099: 1084: 1078: 1077: 1075: 1059: 1042: 1039: 996: 963: 905: 897: 888:import libraries 885: 873: 869: 848: 844: 840: 836: 828: 824: 820: 794: 790: 786: 778: 770: 766: 762: 758: 754: 750: 746: 676:Remote libraries 618:-based systems. 588:Sun Microsystems 568:object libraries 532:Object libraries 510:executable files 490:Shared libraries 433:Static libraries 191:standard library 76:computer program 60:computer science 32:library software 21: 3046: 3045: 3041: 3040: 3039: 3037: 3036: 3035: 3016: 3015: 3014: 3009: 2991: 2893: 2883: 2853: 2848: 2800: 2721: 2715: 2709: 2679: 2674: 2665: 2636: 2617:Word processing 2525: 2511:Virtual reality 2472: 2434: 2405:Computer vision 2381: 2377:Multiprocessing 2343: 2305: 2271:Security hacker 2247: 2223:Digital library 2164: 2115:Mathematics of 2110: 2072: 2048:Automata theory 2043:Formal language 2024: 1990:Software design 1961: 1894: 1880:Virtual machine 1858: 1854:Network service 1815: 1806:Embedded system 1779: 1712: 1701: 1696: 1644:Wayback Machine 1627:by Baris Simsek 1590: 1588: 1573: 1563:Morgan Kaufmann 1553:Levine, John R. 1548: 1546:Further reading 1543: 1542: 1533: 1526: 1524: 1517: 1501: 1497: 1485: 1483: 1470: 1469: 1465: 1456: 1454: 1437: 1433: 1424: 1422: 1420: 1394: 1390: 1381: 1377: 1368: 1364: 1357: 1343: 1339: 1330: 1326: 1319: 1295: 1291: 1262:Wilkes, Maurice 1259: 1255: 1220: 1216: 1193: 1189: 1164: 1160: 1153: 1129: 1125: 1110: 1106: 1097: 1095: 1086: 1085: 1081: 1060: 1056: 1051: 1046: 1045: 1040: 1036: 1031: 994: 967:Runtime library 961: 912: 903: 895: 883: 871: 867: 861: 855: 846: 842: 838: 834: 826: 822: 818: 811: 805: 792: 788: 784: 776: 768: 764: 760: 756: 752: 748: 744: 741: 735: 730: 706: 678: 647:JAR file format 627:Class libraries 624: 622:Class libraries 534: 498: 492: 482:is used and no 441: 435: 415: 409: 390:memory segments 351: 343:Main articles: 341: 203:Charles Babbage 199: 180:dynamic library 149: 123: 118: 116:Characteristics 89:code including 74:to implement a 42: 39:Digital library 35: 28: 23: 22: 15: 12: 11: 5: 3044: 3034: 3033: 3028: 3011: 3010: 3008: 3007: 3002: 2996: 2993: 2992: 2990: 2989: 2984: 2979: 2974: 2969: 2964: 2959: 2954: 2949: 2944: 2939: 2934: 2929: 2924: 2919: 2914: 2909: 2904: 2898: 2895: 2894: 2882: 2881: 2874: 2867: 2859: 2850: 2849: 2847: 2846: 2841: 2836: 2835: 2834: 2824: 2819: 2814: 2808: 2806: 2805:Related topics 2802: 2801: 2799: 2798: 2793: 2788: 2783: 2778: 2776:Opaque pointer 2773: 2768: 2763: 2758: 2753: 2752: 2751: 2741: 2736: 2731: 2725: 2723: 2717: 2716: 2708: 2707: 2700: 2693: 2685: 2676: 2675: 2673: 2672: 2662: 2652: 2641: 2638: 2637: 2635: 2634: 2629: 2624: 2619: 2614: 2609: 2604: 2599: 2594: 2589: 2584: 2579: 2574: 2569: 2564: 2559: 2554: 2549: 2544: 2539: 2533: 2531: 2527: 2526: 2524: 2523: 2521:Solid modeling 2518: 2513: 2508: 2503: 2498: 2493: 2488: 2482: 2480: 2474: 2473: 2471: 2470: 2465: 2460: 2455: 2450: 2444: 2442: 2436: 2435: 2433: 2432: 2427: 2422: 2420:Control method 2417: 2412: 2407: 2402: 2397: 2391: 2389: 2383: 2382: 2380: 2379: 2374: 2372:Multithreading 2369: 2364: 2359: 2353: 2351: 2345: 2344: 2342: 2341: 2336: 2331: 2326: 2321: 2315: 2313: 2307: 2306: 2304: 2303: 2298: 2293: 2288: 2283: 2278: 2273: 2268: 2266:Formal methods 2263: 2257: 2255: 2249: 2248: 2246: 2245: 2240: 2238:World Wide Web 2235: 2230: 2225: 2220: 2215: 2210: 2205: 2200: 2195: 2190: 2185: 2180: 2174: 2172: 2166: 2165: 2163: 2162: 2157: 2152: 2147: 2142: 2137: 2132: 2127: 2121: 2119: 2112: 2111: 2109: 2108: 2103: 2098: 2093: 2088: 2082: 2080: 2074: 2073: 2071: 2070: 2065: 2060: 2055: 2050: 2045: 2040: 2034: 2032: 2026: 2025: 2023: 2022: 2017: 2012: 2007: 2002: 1997: 1992: 1987: 1982: 1977: 1971: 1969: 1963: 1962: 1960: 1959: 1954: 1949: 1944: 1939: 1934: 1929: 1924: 1919: 1914: 1908: 1906: 1896: 1895: 1893: 1892: 1887: 1882: 1877: 1872: 1866: 1864: 1860: 1859: 1857: 1856: 1851: 1846: 1841: 1836: 1831: 1825: 1823: 1817: 1816: 1814: 1813: 1808: 1803: 1798: 1793: 1787: 1785: 1781: 1780: 1778: 1777: 1768: 1763: 1758: 1753: 1748: 1743: 1738: 1733: 1728: 1722: 1720: 1714: 1713: 1706: 1703: 1702: 1695: 1694: 1687: 1680: 1672: 1666: 1665: 1659: 1653: 1647: 1634: 1628: 1622: 1613: 1604: 1571: 1547: 1544: 1541: 1540: 1515: 1495: 1463: 1431: 1418: 1388: 1375: 1362: 1355: 1337: 1324: 1317: 1305:Harcourt Brace 1289: 1266:Wheeler, David 1253: 1214: 1187: 1158: 1151: 1123: 1104: 1079: 1053: 1052: 1050: 1047: 1044: 1043: 1033: 1032: 1030: 1027: 1026: 1025: 1019: 1013: 1003: 997: 988: 982: 976: 970: 964: 958:Static library 955: 949: 943: 937: 931: 925: 919: 911: 908: 854: 851: 804: 801: 781:symbolic links 761:/usr/local/lib 734: 731: 729: 726: 705: 702: 677: 674: 623: 620: 610:, Microsoft's 533: 530: 502:shared library 496:Shared library 494:Main article: 491: 488: 480:virtual memory 461:static library 445:static linking 439:Static library 437:Main article: 434: 431: 411:Main article: 408: 405: 340: 337: 307:IBM System/360 290:innovation of 254:filing cabinet 198: 195: 168:static library 148: 145: 122: 119: 117: 114: 26: 9: 6: 4: 3: 2: 3043: 3032: 3029: 3027: 3024: 3023: 3021: 3006: 3003: 3001: 2998: 2997: 2994: 2988: 2985: 2983: 2980: 2978: 2975: 2973: 2970: 2968: 2965: 2963: 2960: 2958: 2955: 2953: 2950: 2948: 2945: 2943: 2940: 2938: 2935: 2933: 2930: 2928: 2925: 2923: 2920: 2918: 2915: 2913: 2910: 2908: 2905: 2903: 2900: 2899: 2896: 2891: 2887: 2880: 2875: 2873: 2868: 2866: 2861: 2860: 2857: 2845: 2842: 2840: 2837: 2833: 2830: 2829: 2828: 2825: 2823: 2820: 2818: 2815: 2813: 2810: 2809: 2807: 2803: 2797: 2794: 2792: 2789: 2787: 2784: 2782: 2779: 2777: 2774: 2772: 2769: 2767: 2766:Name mangling 2764: 2762: 2759: 2757: 2754: 2750: 2747: 2746: 2745: 2742: 2740: 2737: 2735: 2732: 2730: 2727: 2726: 2724: 2718: 2713: 2706: 2701: 2699: 2694: 2692: 2687: 2686: 2683: 2671: 2663: 2661: 2653: 2651: 2643: 2642: 2639: 2633: 2630: 2628: 2625: 2623: 2620: 2618: 2615: 2613: 2610: 2608: 2605: 2603: 2600: 2598: 2595: 2593: 2590: 2588: 2585: 2583: 2580: 2578: 2575: 2573: 2570: 2568: 2565: 2563: 2560: 2558: 2555: 2553: 2550: 2548: 2545: 2543: 2540: 2538: 2535: 2534: 2532: 2528: 2522: 2519: 2517: 2514: 2512: 2509: 2507: 2506:Mixed reality 2504: 2502: 2499: 2497: 2494: 2492: 2489: 2487: 2484: 2483: 2481: 2479: 2475: 2469: 2466: 2464: 2461: 2459: 2456: 2454: 2451: 2449: 2446: 2445: 2443: 2441: 2437: 2431: 2428: 2426: 2423: 2421: 2418: 2416: 2413: 2411: 2408: 2406: 2403: 2401: 2398: 2396: 2393: 2392: 2390: 2388: 2384: 2378: 2375: 2373: 2370: 2368: 2365: 2363: 2360: 2358: 2355: 2354: 2352: 2350: 2346: 2340: 2339:Accessibility 2337: 2335: 2334:Visualization 2332: 2330: 2327: 2325: 2322: 2320: 2317: 2316: 2314: 2312: 2308: 2302: 2299: 2297: 2294: 2292: 2289: 2287: 2284: 2282: 2279: 2277: 2274: 2272: 2269: 2267: 2264: 2262: 2259: 2258: 2256: 2254: 2250: 2244: 2241: 2239: 2236: 2234: 2231: 2229: 2226: 2224: 2221: 2219: 2216: 2214: 2211: 2209: 2206: 2204: 2201: 2199: 2196: 2194: 2191: 2189: 2186: 2184: 2181: 2179: 2176: 2175: 2173: 2171: 2167: 2161: 2158: 2156: 2153: 2151: 2148: 2146: 2143: 2141: 2138: 2136: 2133: 2131: 2128: 2126: 2123: 2122: 2120: 2118: 2113: 2107: 2104: 2102: 2099: 2097: 2094: 2092: 2089: 2087: 2084: 2083: 2081: 2079: 2075: 2069: 2066: 2064: 2061: 2059: 2056: 2054: 2051: 2049: 2046: 2044: 2041: 2039: 2036: 2035: 2033: 2031: 2027: 2021: 2018: 2016: 2013: 2011: 2008: 2006: 2003: 2001: 1998: 1996: 1993: 1991: 1988: 1986: 1983: 1981: 1978: 1976: 1973: 1972: 1970: 1968: 1964: 1958: 1955: 1953: 1950: 1948: 1945: 1943: 1940: 1938: 1935: 1933: 1930: 1928: 1925: 1923: 1920: 1918: 1915: 1913: 1910: 1909: 1907: 1905: 1901: 1897: 1891: 1888: 1886: 1883: 1881: 1878: 1876: 1873: 1871: 1868: 1867: 1865: 1861: 1855: 1852: 1850: 1847: 1845: 1842: 1840: 1837: 1835: 1832: 1830: 1827: 1826: 1824: 1822: 1818: 1812: 1809: 1807: 1804: 1802: 1801:Dependability 1799: 1797: 1794: 1792: 1789: 1788: 1786: 1782: 1776: 1772: 1769: 1767: 1764: 1762: 1759: 1757: 1754: 1752: 1749: 1747: 1744: 1742: 1739: 1737: 1734: 1732: 1729: 1727: 1724: 1723: 1721: 1719: 1715: 1710: 1704: 1700: 1693: 1688: 1686: 1681: 1679: 1674: 1673: 1670: 1663: 1660: 1657: 1654: 1651: 1648: 1645: 1641: 1638: 1635: 1632: 1629: 1626: 1623: 1620: 1619: 1614: 1611: 1610: 1605: 1603: 1600: 1598: 1586: 1582: 1578: 1574: 1572:1-55860-496-0 1568: 1564: 1560: 1559: 1554: 1550: 1549: 1537: 1522: 1518: 1516:9781119021186 1512: 1508: 1507: 1499: 1492: 1481: 1477: 1473: 1467: 1452: 1448: 1444: 1443: 1435: 1421: 1415: 1411: 1407: 1403: 1399: 1392: 1385: 1379: 1372: 1366: 1358: 1356:0-201-18483-4 1352: 1348: 1341: 1334: 1328: 1320: 1318:0-12-745040-8 1314: 1310: 1306: 1302: 1301: 1293: 1285: 1281: 1277: 1276: 1271: 1270:Gill, Stanley 1267: 1263: 1257: 1249: 1245: 1241: 1237: 1233: 1229: 1225: 1218: 1210: 1206: 1202: 1198: 1191: 1184: 1180: 1176: 1172: 1168: 1162: 1154: 1148: 1144: 1140: 1136: 1135: 1127: 1119: 1115: 1108: 1093: 1089: 1083: 1074: 1069: 1065: 1058: 1054: 1038: 1034: 1023: 1020: 1017: 1014: 1011: 1007: 1004: 1001: 998: 992: 989: 986: 983: 980: 977: 974: 971: 968: 965: 959: 956: 953: 950: 947: 944: 941: 938: 935: 932: 929: 926: 923: 920: 917: 914: 913: 907: 901: 893: 889: 881: 877: 865: 860: 850: 832: 816: 810: 800: 798: 782: 774: 740: 725: 723: 719: 715: 711: 701: 699: 695: 691: 685: 683: 673: 671: 667: 662: 660: 656: 652: 648: 644: 640: 636: 632: 628: 619: 617: 613: 609: 605: 601: 597: 593: 589: 585: 581: 575: 573: 569: 564: 562: 558: 554: 549: 547: 543: 539: 529: 525: 523: 519: 515: 511: 507: 506:shared object 503: 497: 487: 485: 481: 477: 473: 468: 466: 462: 458: 454: 450: 449:early binding 446: 440: 430: 428: 424: 420: 414: 404: 402: 398: 397:smart linking 393: 391: 385: 383: 378: 374: 373: 368: 364: 360: 356: 350: 346: 336: 334: 330: 326: 321: 319: 315: 310: 308: 303: 301: 300:type checking 297: 293: 289: 284: 282: 278: 276: 272: 268: 266: 265: 259: 255: 251: 247: 242: 240: 236: 232: 228: 224: 215: 211: 208: 204: 194: 192: 188: 183: 181: 177: 173: 169: 165: 160: 158: 154: 144: 141: 137: 135: 131: 126: 113: 111: 106: 104: 100: 96: 92: 88: 84: 79: 77: 73: 69: 65: 61: 53: 48: 44: 40: 33: 19: 2756:Machine code 2743: 2602:Cyberwarfare 2261:Cryptography 1951: 1652:at OOPSLA'06 1646:at OOPSLA'05 1616: 1607: 1589:. Retrieved 1557: 1531: 1525:. Retrieved 1505: 1498: 1490: 1484:. Retrieved 1476:Source Forge 1466: 1455:. Retrieved 1441: 1434: 1423:. Retrieved 1401: 1391: 1383: 1378: 1370: 1365: 1346: 1340: 1332: 1327: 1299: 1292: 1274: 1256: 1234:(9): 25–27. 1231: 1227: 1217: 1200: 1190: 1182: 1161: 1133: 1126: 1117: 1107: 1096:. Retrieved 1082: 1063: 1057: 1037: 862: 812: 742: 707: 686: 679: 663: 659:system image 626: 625: 608:ObjectBroker 586:(SOM/DSOM), 576: 571: 567: 565: 557:minicomputer 550: 546:compile time 535: 526: 514:object files 505: 501: 499: 486:is desired. 472:static build 469: 464: 460: 448: 444: 442: 418: 416: 400: 396: 394: 386: 376: 370: 366: 362: 358: 354: 352: 322: 311: 304: 285: 279: 269: 262: 258:punched tape 243: 220: 200: 184: 161: 150: 142: 138: 127: 124: 110:system calls 107: 80: 63: 57: 43: 2890:object file 2791:System call 2771:Object code 2722:conventions 2612:Video games 2592:Digital art 2349:Concurrency 2218:Data mining 2130:Probability 1870:Interpreter 1382:Wexelblat, 1331:Wexelblat, 1307:). p.  1022:Method stub 940:Object file 835:MyFramework 785:libfoo.so.2 728:File naming 275:Jean Sammet 235:IAS machine 231:subroutines 227:von Neumann 103:source code 83:subroutines 3020:Categories 2886:Executable 2786:Relocation 2739:Call stack 2670:Glossaries 2542:E-commerce 2135:Statistics 2078:Algorithms 1875:Middleware 1731:Peripheral 1664:at IBM.com 1591:2020-01-12 1527:2015-09-03 1486:2010-03-03 1457:2016-03-17 1425:2021-05-27 1098:2013-10-03 1049:References 916:Code reuse 880:COM-object 857:See also: 807:See also: 737:See also: 651:persistent 476:relocation 419:Relocation 407:Relocation 327:language, 323:The first 288:subprogram 147:Executable 130:code reuse 87:executable 52:Ogg Vorbis 2729:Alignment 2491:Rendering 2486:Animation 2117:computing 2068:Semantics 1766:Processor 1284:641145988 749:libfoo.so 739:Unix-like 714:byte code 655:Smalltalk 639:instances 553:mainframe 518:load time 345:Link time 223:Goldstine 172:load-time 153:interface 136:fashion. 68:resources 2650:Category 2478:Graphics 2253:Security 1922:Compiler 1821:Networks 1718:Hardware 1640:Archived 1615:Article 1606:Article 1601:Errata: 1585:Archived 1581:42413382 1521:Archived 1480:Archived 1451:Archived 1386:, p. 716 1384:op. cit. 1371:op. cit. 1335:, p. 258 1333:op. cit. 1272:(1951). 1248:20261972 1179:26239859 1092:Archived 1090:. TLDP. 910:See also 898:file in 757:/usr/lib 745:libfoo.a 696:such as 457:compiler 221:In 1947 2892:formats 2832:dynamic 2744:Library 2660:Outline 1373:, p. 52 1120:. Bath. 952:Prelink 946:Plug-in 900:Windows 841:, with 831:bundles 797:libtool 773:archive 635:methods 631:classes 604:Digital 602:(PDO), 594:(DOE), 522:runtime 465:archive 382:runtime 367:symbols 359:binding 355:linking 339:Linking 333:classes 292:FORTRAN 197:History 189:have a 176:runtime 134:modular 121:General 91:classes 64:library 2967:OS/360 2947:Mach-O 2839:Loader 2827:Linker 2749:static 2720:Parts, 1596:Code: 1579:  1569:  1513:  1416:  1353:  1315:  1282:  1246:  1177:  1149:  1016:soname 827:.dylib 791:. The 789:libfoo 453:linker 423:loader 377:binder 372:linker 329:Simula 296:linker 281:JOVIAL 246:Wilkes 95:images 2987:XCOFF 2927:ECOFF 2902:a.out 2714:(ABI) 2063:Logic 1904:tools 1244:S2CID 1029:Notes 981:(CLX) 884:*.LIB 872:*.OCX 868:*.DLL 809:macOS 803:macOS 670:build 616:CORBA 570:, or 363:links 271:COBOL 250:EDSAC 185:Most 132:in a 3005:.exe 2942:Hunk 2937:GOFF 2912:COFF 2888:and 1902:and 1775:Form 1771:Size 1577:OCLC 1567:ISBN 1534:.dll 1511:ISBN 1414:ISBN 1351:ISBN 1313:ISBN 1280:OCLC 1175:OCLC 1147:ISBN 904:.DLL 896:.LIB 892:UNIX 874:for 753:/lib 747:and 718:Java 716:for 710:APIs 643:Java 596:NeXT 459:. A 401:used 347:and 252:. A 225:and 99:text 97:and 62:, a 54:file 2977:PEF 2962:OMF 2932:ELF 2922:COM 2917:CMD 2907:AIF 1631:BFD 1406:doi 1309:274 1236:doi 1205:doi 1139:doi 1068:doi 876:OLE 823:.so 815:BSD 793:.la 777:.so 765:lib 759:or 606:'s 598:'s 582:'s 580:IBM 555:or 520:or 504:or 478:if 447:or 375:or 365:or 357:or 312:In 256:of 174:or 105:. 58:In 3022:: 2972:PE 2957:NE 2952:MZ 1773:/ 1583:. 1575:. 1565:. 1530:. 1519:. 1489:. 1478:. 1474:. 1449:. 1412:. 1400:. 1311:. 1268:; 1264:; 1242:. 1232:54 1230:. 1226:. 1199:. 1181:. 1169:; 1145:. 1116:. 849:. 819:.a 769:.a 755:, 700:. 590:' 500:A 320:. 182:. 78:. 2982:X 2878:e 2871:t 2864:v 2704:e 2697:t 2690:v 1711:. 1691:e 1684:t 1677:v 1594:. 1460:. 1428:. 1408:: 1359:. 1321:. 1286:. 1250:. 1238:: 1211:. 1207:: 1155:. 1141:: 1101:. 1076:. 1070:: 1012:) 771:( 157:C 41:. 34:. 20:)

Index

Library (software)
library software
Digital library

Ogg Vorbis
computer science
resources
software development
computer program
subroutines
executable
classes
images
text
source code
system calls
code reuse
modular
interface
C
program lifecycle phases
static library
load-time
runtime
dynamic library
compiled languages
standard library
Charles Babbage
Analytical Engine

Text is available under the Creative Commons Attribution-ShareAlike License. Additional terms may apply.