Knowledge (XXG)

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: 2653: 2663: 2673: 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.
263: 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.
2709: 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.
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. 213: 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
2702: 1689: 467:, is one intended to be statically linked. Originally, only static libraries existed. Static linking must be performed when any modules are recompiled. 2406: 2378: 1091: 3006: 2883: 2695: 2431: 1417: 1150: 3037: 2282: 978: 1173:(1947). Planning and coding of problems for an electronic computing instrument (Report). Institute for Advanced Study. pp. 3, 21–22. 2436: 1708: 1941: 1265: 483: 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,
2588: 2416: 1946: 1570: 1514: 1354: 1316: 886:
files can be either static libraries or representations of dynamically linkable libraries needed only during compilation, known as "
709: 521: 381: 175: 2968: 2676: 1770: 724:, some data access frameworks, and for testing to generate dynamic proxy objects. They also are used to intercept field access. 2064: 2317: 2938: 2355: 1974: 1682: 1223: 650: 591: 1520: 1532:
Linux shared libraries are similar to the dynamic link libraries (DLLs) of Windows. Windows DLLs are usually identified by
217:
A woman working next to a filing cabinet containing the subroutine library on reels of punched tape for the EDSAC computer.
2497: 2474: 2204: 2194: 603: 475: 412: 2718: 2578: 2166: 2074: 1979: 1755: 1740: 875: 599: 90: 680:
Another library technique uses completely separate executables (often in some lightweight form) and calls them using a
3032: 2983: 2666: 2401: 1899: 829:
suffix instead). Most libraries in macOS, however, consist of "frameworks", placed inside special directories called "
721: 717: 642: 638: 541: 324: 1479: 2823: 2638: 2287: 2973: 2876: 2818: 2787: 2656: 2583: 2558: 2421: 2069: 1675: 634: 426: 1273: 166:. If the code of the library is accessed during the build of the invoking program, then the library is called a 2735: 2507: 2340: 1926: 1795: 972: 630: 332: 317: 156: 845:
being either the dynamically linked library file or being a symlink to the dynamically linked library file in
2568: 2502: 2393: 2209: 1869: 999: 524:, rather than being copied by a linker when it creates a single monolithic executable file for the program. 238: 163: 1649: 1009: 668:(such as Maven Central for Java). Client code explicitly declare the dependencies to external libraries in 305:
By the mid 1960s, copy and macro libraries for assemblers were common. Starting with the popularity of the
2792: 2633: 2464: 2345: 2112: 2102: 2097: 879: 611: 1597: 2603: 2573: 2563: 2459: 2373: 2249: 2189: 2156: 2146: 2029: 1994: 1984: 1921: 1790: 1765: 1760: 1725: 1639: 1446: 689: 681: 560: 313: 152: 46: 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
2869: 2802: 2363: 2335: 2307: 2302: 2131: 2107: 2059: 2042: 2037: 2019: 2009: 2004: 1966: 1916: 1911: 1828: 1774: 933: 887: 863: 237:, an early computer that was not yet operational at that time. They envisioned a physical library of 71: 1087: 2978: 2767: 2628: 2553: 2469: 2454: 2219: 1999: 1956: 1848: 1838: 1810: 1599: 1584: 1005: 945: 697: 583: 133: 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
607: 309:, libraries containing other types of text elements, e.g., system parameters, also became common. 2845: 2833: 2740: 2593: 2492: 2368: 2325: 2234: 2176: 2161: 2151: 1936: 1735: 1243: 990: 984: 927: 921: 693: 665: 552: 536:
Although originally pioneered in the 1960s, dynamic linking did not reach the most commonly-used
452: 422: 371: 348: 295: 1308: 1298: 787:
would be the filename for the second major interface revision of the dynamically linked library
2958: 2850: 2613: 2543: 2522: 2484: 2292: 2259: 2239: 1931: 1843: 1717: 1576: 1566: 1510: 1413: 1350: 1312: 1279: 1174: 1146: 899: 858: 646: 206: 186: 37:
This article is about a software development concept. For a repository of digital assets, see
649:) and the instantiated objects residing only in memory (although potentially able to be made 294:. FORTRAN subprograms can be compiled independently of each other, but the compiler lacked a 2913: 2828: 2446: 2330: 2297: 2092: 2014: 1903: 1889: 1884: 1833: 1820: 1745: 1698: 1506:
LPIC-1 Linux Professional Institute Certification Study Guide: Exam 101-400 and Exam 102-400
1405: 1235: 1204: 1170: 1166: 1138: 1067: 772: 641:, or objects with their characteristics set to specific values. In some OOP languages, like 587: 537: 509: 226: 222: 190: 75: 59: 31: 1630: 948: – Software component that adds a specific feature to an existing software application 645:, the distinction is clear, with the classes often contained in library files (like Java's 2923: 2517: 2411: 2383: 2277: 2229: 2214: 2199: 2054: 2049: 1989: 1879: 1853: 1805: 1750: 1643: 1562: 966: 202: 179: 67: 38: 1624: 661:
that includes the entire state of the environment, classes and all instantiated objects.
1397: 833:" which wrap the library's required files and metadata. For example, a framework called 2963: 2838: 2782: 2755: 2623: 2527: 2426: 2272: 2244: 1552: 1409: 1304: 1261: 957: 830: 780: 669: 495: 479: 438: 389: 306: 274: 253: 245: 167: 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.
3026: 2988: 2861: 2772: 2687: 2512: 1800: 516:. Modules used by a program are loaded from individual shared objects into memory at 299: 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 2762: 2608: 2267: 1475: 1269: 1183:
it will probably be very important to develop an extensive "library" of subroutines
658: 556: 545: 471: 429:
avoids references to absolute addresses and therefore does not require relocation.
257: 1504: 1439:
Collberg, Christian; Hartman, John H.; Babu, Sridivya; Udupa, Sharath K. (2003).
162:
The functions of a library can be connected to the invoking program at different
2896: 2797: 2777: 2598: 2224: 2136: 1655: 1021: 939: 924: – Computer program which combines multiple object files into a single file 513: 286:
Another major contributor to the modern library concept came in the form of the
234: 109: 102: 98: 1608: 2948: 2892: 2745: 2618: 2548: 2141: 1874: 1730: 915: 287: 230: 129: 86: 82: 51: 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
17: 2123: 2084: 1580: 1239: 1178: 1113: 738: 713: 654: 629:
are the rough OOP equivalent of older types of code libraries. They contain
517: 344: 201:
The idea of a computer library dates back to the first computers created by
171: 85:(generally called functions today). The concept now includes other forms of 1196: 1132: 1072: 369:
to library modules. The linking process is usually automatically done by a
1471: 1208: 1142: 2928: 2184: 563:(RPC) already handled these tasks, but there was no standard RPC system. 456: 951: 796: 291: 283:
has a Communication Pool (COMPOOL), roughly a library of header files.
1303:. ACM Monograph Series. New York, NY: Academic Press (A subsidiary of 2953: 1015: 993: – standard library for Java and other JVM programming languages 328: 280: 1398:"Chapter 3 - Portable Executable and Executable and Linking Formats" 273:
included "primitive capabilities for a library system" in 1959, but
1667: 1618:
Faster C++ program startups by improving runtime linking efficiency
50:
Illustration of an application which uses libvorbisfile to play an
2993: 2933: 2908: 894:
world, which uses different file extensions, when linking against
808: 615: 270: 249: 212: 94: 45: 277:
described them as "inadequate library facilities" in retrospect.
3011: 2943: 2918: 891: 595: 2865: 2691: 1671: 1556: 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
814: 579: 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
1636: 229:
speculated that it would be useful to create a "library" of
1602: 637:) that involve objects. Class libraries are used to create 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
298:. So prior to the introduction of modules in Fortran-90, 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 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 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
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
2811: 2726: 2536: 2483: 2445: 2392: 2354: 2316: 2258: 2175: 2121: 2083: 2028: 1965: 1898: 1862: 1819: 1783: 1716: 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). 847:MyFramework.framework/Versions/Current/MyFramework 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. 882:interfaces. Depending on how they are compiled, 395:Some programming languages use a feature called 151:A library of executable code has a well-defined 1445:. USENIX '05. Department of Computer Science, 825:-style dynamically linked libraries (with the 2877: 2703: 1707:Note: This template roughly follows the 2012 1683: 1658:by Ulrich Drepper (with much background info) 1066:(Thesis). San Jose State University Library. 1018: – Field of data in a shared object file 8: 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. 361:process, which resolves references known as 302:between FORTRAN subprograms was impossible. 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 2884: 2870: 2862: 2710: 2696: 2688: 1690: 1676: 1668: 1224:"In Praise of 'Wilkes, Wheeler, and Gill'" 1222:Campbell-Kelly, Martin (September 2011). 1137:. Princeton: Princeton University Press. 1071: 708:Code generation libraries are high-level 837:would be implemented in a bundle called 178:. In this case, the library is called a 1134:The Computer from Pascal to von Neumann 1054: 1034: 353:Libraries are important in the program 101:. It can also refer to a collection of 2407:Knowledge representation and reasoning 1118:Proceedings of the British Association 331:, developed in 1965, supported adding 2432:Philosophy of artificial intelligence 1402:Reverse Engineering Code with IDA Pro 81:Historically, a library consisted of 7: 1751:Energy consumption (Green computing) 1633:- the Binary File Descriptor Library 979:Component Library for Cross Platform 653:in separate files). In others, like 2437:Distributed artificial intelligence 1709:ACM Computing Classification System 1131:Goldstine, Herman H. (2008-12-31). 930: – Part of an operating system 1942:Integrated development environment 1662:Anatomy of Linux dynamic libraries 1410:10.1016/b978-1-59749-237-9.00003-x 763:. The filenames always start with 548:, and vary from system to system. 484:address space layout randomization 93:and non-executable data including 25: 2417:Automated planning and scheduling 1947:Software configuration management 1347:Comparative Programming Languages 906:file must be present at runtime. 843:MyFramework.framework/MyFramework 2671: 2661: 2652: 2651: 1300:History of Programming Languages 969: – Type of software library 2662: 2065: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 1482:from the original on 2010-01-12 1453:from the original on 2016-03-23 1442:SLINKY: Static Linking Reloaded 1094:from the original on 2013-07-03 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 614:(COM/DCOM), and any number of 592:Distributed Objects Everywhere 455:, but may also be done by the 1: 2220:Multimedia information system 2205:Geographic information system 2195:Enterprise information system 1784:Computer systems organization 1112:Babbage, H. P. (1888-09-12). 751:files in directories such as 733:Most modern Unix-like systems 413:Relocation (computer science) 66:is a collection of read-only 2719:Application binary interface 2579:Computational social science 2167: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 3038:Operating system technology 2402:Natural language processing 2190:Information storage systems 1609:Beginner's Guide to Linkers 1297:Wexelblat, Richard (1981). 767:, and end with a suffix of 722:aspect-oriented programming 542:object-oriented programming 392:of each module referenced. 325:object-oriented programming 3054: 2824:Foreign function interface 2318:Human–computer interaction 2288:Intrusion detection system 2200:Social information systems 2185:Database management system 1062:Deshpande, Prasad (2013). 954:, also known as Prebinding 856: 806: 736: 493: 436: 410: 342: 36: 29: 3002: 2904: 2819:Binary-code compatibility 2788:Position-independent code 2647: 2584:Computational engineering 2559:Computational mathematics 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 2594:Computational healthcare 2589:Differentiable computing 2508:Graphics processing unit 1927:Domain-specific language 1796:Computational complexity 973:Visual Component Library 866:usually have the suffix 775:, static library) or of 690:distributed architecture 239:magnetic wire recordings 164:program lifecycle phases 2569:Computational chemistry 2503:Photograph manipulation 2394:Artificial intelligence 2210:Decision support system 1240:10.1145/1995376.1995386 1114:"The Analytical Engine" 1000:Framework Class Library 205:. An 1888 paper on his 2634:Educational technology 2465:Reinforcement learning 2215:Process control system 2113:Computational geometry 2103:Algorithmic efficiency 2098: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: 3007:Comparison of formats 2604:Electronic publishing 2574:Computational biology 2564:Computational physics 2460:Unsupervised learning 2374:Distributed computing 2250:Information retrieval 2157:Mathematical analysis 2147: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: 2803:Virtual method table 2364:Concurrent computing 2336:Ubiquitous computing 2308:Application security 2303:Information security 2132:Discrete mathematics 2108:Randomized algorithm 2060: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 2768:Memory segmentation 2639:Document management 2629:Operations research 2554:Enterprise software 2470:Multi-task learning 2455:Supervised learning 2177: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). 3033:Computer libraries 2741:Calling convention 2422:Search methodology 2369:Parallel computing 2326:Interaction design 2235:Computing platform 2162:Numerical analysis 2152: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: 3020: 3019: 2859: 2858: 2851:Year 2038 problem 2685: 2684: 2614:Electronic voting 2544:Quantum Computing 2537:Applied computing 2523:Image compression 2293:Hardware security 2283:Security services 2240: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 3045: 2886: 2879: 2872: 2863: 2829:Language binding 2712: 2705: 2698: 2689: 2675: 2674: 2665: 2664: 2655: 2654: 2475:Cross-validation 2447:Machine learning 2331:Social computing 2298:Network security 2093: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: 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: 3053: 3052: 3048: 3047: 3046: 3044: 3043: 3042: 3023: 3022: 3021: 3016: 2998: 2900: 2890: 2860: 2855: 2807: 2728: 2722: 2716: 2686: 2681: 2672: 2643: 2624:Word processing 2532: 2518:Virtual reality 2479: 2441: 2412:Computer vision 2388: 2384:Multiprocessing 2350: 2312: 2278:Security hacker 2254: 2230:Digital library 2171: 2122:Mathematics of 2117: 2079: 2055:Automata theory 2050: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. 1551: 1548: 1546:Further reading 1543: 1542: 1533: 1526: 1524: 1517: 1502: 1501: 1497: 1485: 1483: 1470: 1469: 1465: 1456: 1454: 1438: 1437: 1433: 1424: 1422: 1420: 1395: 1394: 1390: 1381: 1377: 1368: 1364: 1357: 1344: 1343: 1339: 1330: 1326: 1319: 1296: 1295: 1291: 1262:Wilkes, Maurice 1260: 1259: 1255: 1221: 1220: 1216: 1194: 1193: 1189: 1165: 1164: 1160: 1153: 1130: 1129: 1125: 1111: 1110: 1106: 1097: 1095: 1086: 1085: 1081: 1061: 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: 3051: 3049: 3041: 3040: 3035: 3025: 3024: 3018: 3017: 3015: 3014: 3009: 3003: 3000: 2999: 2997: 2996: 2991: 2986: 2981: 2976: 2971: 2966: 2961: 2956: 2951: 2946: 2941: 2936: 2931: 2926: 2921: 2916: 2911: 2905: 2902: 2901: 2891: 2889: 2888: 2881: 2874: 2866: 2857: 2856: 2854: 2853: 2848: 2843: 2842: 2841: 2831: 2826: 2821: 2815: 2813: 2812:Related topics 2809: 2808: 2806: 2805: 2800: 2795: 2790: 2785: 2783:Opaque pointer 2780: 2775: 2770: 2765: 2760: 2759: 2758: 2748: 2743: 2738: 2732: 2730: 2724: 2723: 2717: 2715: 2714: 2707: 2700: 2692: 2683: 2682: 2680: 2679: 2669: 2659: 2648: 2645: 2644: 2642: 2641: 2636: 2631: 2626: 2621: 2616: 2611: 2606: 2601: 2596: 2591: 2586: 2581: 2576: 2571: 2566: 2561: 2556: 2551: 2546: 2540: 2538: 2534: 2533: 2531: 2530: 2528:Solid modeling 2525: 2520: 2515: 2510: 2505: 2500: 2495: 2489: 2487: 2481: 2480: 2478: 2477: 2472: 2467: 2462: 2457: 2451: 2449: 2443: 2442: 2440: 2439: 2434: 2429: 2427:Control method 2424: 2419: 2414: 2409: 2404: 2398: 2396: 2390: 2389: 2387: 2386: 2381: 2379:Multithreading 2376: 2371: 2366: 2360: 2358: 2352: 2351: 2349: 2348: 2343: 2338: 2333: 2328: 2322: 2320: 2314: 2313: 2311: 2310: 2305: 2300: 2295: 2290: 2285: 2280: 2275: 2273:Formal methods 2270: 2264: 2262: 2256: 2255: 2253: 2252: 2247: 2245:World Wide Web 2242: 2237: 2232: 2227: 2222: 2217: 2212: 2207: 2202: 2197: 2192: 2187: 2181: 2179: 2173: 2172: 2170: 2169: 2164: 2159: 2154: 2149: 2144: 2139: 2134: 2128: 2126: 2119: 2118: 2116: 2115: 2110: 2105: 2100: 2095: 2089: 2087: 2081: 2080: 2078: 2077: 2072: 2067: 2062: 2057: 2052: 2047: 2046: 2045: 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: 1697: 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: 24: 14: 13: 10: 9: 6: 4: 3: 2: 3050: 3039: 3036: 3034: 3031: 3030: 3028: 3013: 3010: 3008: 3005: 3004: 3001: 2995: 2992: 2990: 2987: 2985: 2982: 2980: 2977: 2975: 2972: 2970: 2967: 2965: 2962: 2960: 2957: 2955: 2952: 2950: 2947: 2945: 2942: 2940: 2937: 2935: 2932: 2930: 2927: 2925: 2922: 2920: 2917: 2915: 2912: 2910: 2907: 2906: 2903: 2898: 2894: 2887: 2882: 2880: 2875: 2873: 2868: 2867: 2864: 2852: 2849: 2847: 2844: 2840: 2837: 2836: 2835: 2832: 2830: 2827: 2825: 2822: 2820: 2817: 2816: 2814: 2810: 2804: 2801: 2799: 2796: 2794: 2791: 2789: 2786: 2784: 2781: 2779: 2776: 2774: 2773:Name mangling 2771: 2769: 2766: 2764: 2761: 2757: 2754: 2753: 2752: 2749: 2747: 2744: 2742: 2739: 2737: 2734: 2733: 2731: 2725: 2720: 2713: 2708: 2706: 2701: 2699: 2694: 2693: 2690: 2678: 2670: 2668: 2660: 2658: 2650: 2649: 2646: 2640: 2637: 2635: 2632: 2630: 2627: 2625: 2622: 2620: 2617: 2615: 2612: 2610: 2607: 2605: 2602: 2600: 2597: 2595: 2592: 2590: 2587: 2585: 2582: 2580: 2577: 2575: 2572: 2570: 2567: 2565: 2562: 2560: 2557: 2555: 2552: 2550: 2547: 2545: 2542: 2541: 2539: 2535: 2529: 2526: 2524: 2521: 2519: 2516: 2514: 2513:Mixed reality 2511: 2509: 2506: 2504: 2501: 2499: 2496: 2494: 2491: 2490: 2488: 2486: 2482: 2476: 2473: 2471: 2468: 2466: 2463: 2461: 2458: 2456: 2453: 2452: 2450: 2448: 2444: 2438: 2435: 2433: 2430: 2428: 2425: 2423: 2420: 2418: 2415: 2413: 2410: 2408: 2405: 2403: 2400: 2399: 2397: 2395: 2391: 2385: 2382: 2380: 2377: 2375: 2372: 2370: 2367: 2365: 2362: 2361: 2359: 2357: 2353: 2347: 2346:Accessibility 2344: 2342: 2341:Visualization 2339: 2337: 2334: 2332: 2329: 2327: 2324: 2323: 2321: 2319: 2315: 2309: 2306: 2304: 2301: 2299: 2296: 2294: 2291: 2289: 2286: 2284: 2281: 2279: 2276: 2274: 2271: 2269: 2266: 2265: 2263: 2261: 2257: 2251: 2248: 2246: 2243: 2241: 2238: 2236: 2233: 2231: 2228: 2226: 2223: 2221: 2218: 2216: 2213: 2211: 2208: 2206: 2203: 2201: 2198: 2196: 2193: 2191: 2188: 2186: 2183: 2182: 2180: 2178: 2174: 2168: 2165: 2163: 2160: 2158: 2155: 2153: 2150: 2148: 2145: 2143: 2140: 2138: 2135: 2133: 2130: 2129: 2127: 2125: 2120: 2114: 2111: 2109: 2106: 2104: 2101: 2099: 2096: 2094: 2091: 2090: 2088: 2086: 2082: 2076: 2073: 2071: 2068: 2066: 2063: 2061: 2058: 2056: 2053: 2051: 2048: 2044: 2041: 2040: 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: 1545: 1537: 1522: 1518: 1516:9781119021186 1512: 1508: 1507: 1499: 1496: 1492: 1481: 1477: 1473: 1467: 1464: 1452: 1448: 1444: 1443: 1435: 1432: 1421: 1415: 1411: 1407: 1403: 1399: 1392: 1389: 1385: 1379: 1376: 1372: 1366: 1363: 1358: 1356:0-201-18483-4 1352: 1348: 1341: 1338: 1334: 1328: 1325: 1320: 1318:0-12-745040-8 1314: 1310: 1306: 1302: 1301: 1293: 1290: 1285: 1281: 1277: 1276: 1271: 1270:Gill, Stanley 1267: 1263: 1257: 1254: 1249: 1245: 1241: 1237: 1233: 1229: 1225: 1218: 1215: 1210: 1206: 1202: 1198: 1191: 1188: 1184: 1180: 1176: 1172: 1168: 1162: 1159: 1154: 1148: 1144: 1140: 1136: 1135: 1127: 1124: 1119: 1115: 1108: 1105: 1093: 1089: 1083: 1080: 1074: 1069: 1065: 1058: 1055: 1048: 1038: 1035: 1028: 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: 909: 907: 901: 893: 889: 881: 877: 865: 860: 852: 850: 832: 816: 810: 802: 800: 798: 782: 774: 740: 732: 727: 725: 723: 719: 715: 711: 703: 701: 699: 695: 691: 685: 683: 675: 673: 671: 667: 662: 660: 656: 652: 648: 644: 640: 636: 632: 628: 621: 619: 617: 613: 609: 605: 601: 597: 593: 589: 585: 581: 575: 573: 569: 564: 562: 558: 554: 549: 547: 543: 539: 531: 529: 525: 523: 519: 515: 511: 507: 506:shared object 503: 497: 489: 487: 485: 481: 477: 473: 468: 466: 462: 458: 454: 450: 449:early binding 446: 440: 432: 430: 428: 424: 420: 414: 406: 404: 402: 398: 397:smart linking 393: 391: 385: 383: 378: 374: 373: 368: 364: 360: 356: 350: 346: 338: 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: 196: 194: 192: 188: 183: 181: 177: 173: 169: 165: 160: 158: 154: 146: 144: 141: 137: 135: 131: 126: 120: 115: 113: 111: 106: 104: 100: 96: 92: 88: 84: 79: 77: 73: 69: 65: 61: 53: 48: 44: 40: 33: 19: 18:Class library 2763:Machine code 2750: 2609:Cyberwarfare 2268: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: 2897:object file 2798:System call 2778:Object code 2729:conventions 2619:Video games 2599:Digital art 2356:Concurrency 2225:Data mining 2137: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 3027:Categories 2893:Executable 2793:Relocation 2746:Call stack 2677:Glossaries 2549:E-commerce 2142:Statistics 2085:Algorithms 2043:Stochastic 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 2736:Alignment 2498:Rendering 2493:Animation 2124:computing 2075: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 2657:Category 2485:Graphics 2260: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 2899:formats 2839:dynamic 2751:Library 2667: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 2974:OS/360 2954:Mach-O 2846:Loader 2834:Linker 2756:static 2727: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 2994:XCOFF 2934:ECOFF 2909:a.out 2721:(ABI) 2070: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 3012:.exe 2949:Hunk 2944:GOFF 2919:COFF 2895: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 2984:PEF 2969:OMF 2939:ELF 2929:COM 2924:CMD 2914: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 3029:: 2979:PE 2964:NE 2959: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:. 2989:X 2885:e 2878:t 2871:v 2711:e 2704:t 2697: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

Class library
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.