36:
383:
172:, in addition to other portions which may be optionally implemented. The line between a language and its libraries therefore differs from language to language. Indeed, some languages are designed so that the meanings of certain syntactic constructs cannot even be described without referring to the core library. For example, in
188:
contains multiple coherent subsets that suffice to construct the rest of the language as library macros, and so the language designers do not even bother to say which portions of the language must be implemented as language constructs, and which must be implemented as parts of a library.
287:
What ought to be in the standard C++ library? One ideal is for a programmer to be able to find every interesting, significant, and reasonably general class, function, template, etc., in a library. However, the question here is not, "What ought to be in
197:
Standard libraries typically include definitions for commonly used algorithms, data structures, and mechanisms for input and output. Depending on the constructs made available by the host language, a standard library may include:
296:
library?" The answer "Everything!" is a reasonable first approximation to an answer to the former question but not the latter. A standard library is something every implementer must supply so that every programmer can rely on
301:
This suggests a relatively small standard library, containing only the constructs that "every programmer" might reasonably require when building a large collection of software. This is the philosophy that is used in the
321:, has embraced a much more inclusive vision of the standard library. Python attempts to offer an easy-to-code, object-oriented, high-level language. In the Python tutorial, he writes:
156:; however, contents of a language's associated library may also be determined (in part or whole) by more informal practices of a language's community.
168:, although the designers may have treated it as a separate entity. Many language specifications define a core set that must be made available in all
550:
325:
Python has a "batteries included" philosophy. This is best seen through the sophisticated and robust capabilities of its larger packages.
145:
153:
119:
53:
100:
365:
languages. In C++, such facilities are not part of the standard library, but instead are included in other libraries, such as
545:
72:
57:
491:
473:
346:
318:
185:
79:
184:, an anonymous function expression (a "block") constructs an instance of the library's BlockContext class. Conversely,
482:
460:
358:
350:
173:
86:
46:
496:
433:
303:
218:
207:
469:
366:
68:
447:
341:, and localization, facilities that the C++ standard library omits. This other philosophy is often found in
438:
252:
149:
133:
528:
141:
456:
429:
342:
230:
Most standard libraries include definitions for at least the following commonly used facilities:
276:
238:
93:
224:
314:
263:
248:
354:
213:
451:
362:
244:
177:
169:
539:
464:
408:
35:
17:
256:
202:
165:
164:
A language's standard library is often treated as part of the language by its
397:
234:
181:
393:
478:
334:
180:
is defined as an instance of the java.lang.String class; similarly, in
487:
442:
307:
280:
338:
275:
Philosophies of standard library design vary widely. For example,
262:
Interaction with the host platform, including input/output and
376:
330:
29:
27:
Library used in all implementations of a programming language
404:
329:
Van Rossum goes on to list libraries for processing
60:. Unsourced material may be challenged and removed.
152:. These libraries are conventionally described in
323:
285:
8:
120:Learn how and when to remove this message
507:
292:library?" but "What ought to be in the
7:
58:adding citations to reliable sources
154:programming language specifications
25:
381:
34:
45:needs additional citations for
551:Programming language standards
518:. 3rd Ed. Addison-Wesley, 1997
396:format but may read better as
373:Examples of standard libraries
1:
516:The C++ Programming Language
492:Python programming language
474:Factor programming language
567:
353:) or languages that use a
483:Ruby programming language
461:Java programming language
497:Standard Libraries (CLI)
443:C++ programming language
488:Python standard library
470:Factor standard library
448:Framework Class Library
405:converting this article
434:C programming language
327:
299:
144:made available across
546:Programming libraries
479:Ruby standard library
439:C++ Standard Library
310:standard libraries.
150:programming language
134:computer programming
54:improve this article
514:Bjarne Stroustrup.
343:scripting languages
527:Guido van Rossum.
457:Java Class Library
430:C standard library
407:, if appropriate.
239:sorting algorithms
69:"Standard library"
426:
425:
277:Bjarne Stroustrup
130:
129:
122:
104:
16:(Redirected from
558:
531:
525:
519:
512:
421:
418:
412:
403:You can help by
385:
384:
377:
315:Guido van Rossum
264:operating system
214:Global variables
138:standard library
125:
118:
114:
111:
105:
103:
62:
38:
30:
21:
566:
565:
561:
560:
559:
557:
556:
555:
536:
535:
534:
526:
522:
513:
509:
505:
459:(JCL), for the
450:(FCL), for the
422:
416:
413:
402:
386:
382:
375:
355:virtual machine
273:
245:Data structures
195:
170:implementations
162:
146:implementations
126:
115:
109:
106:
63:
61:
51:
39:
28:
23:
22:
18:Standard header
15:
12:
11:
5:
564:
562:
554:
553:
548:
538:
537:
533:
532:
520:
506:
504:
501:
500:
499:
494:
485:
476:
467:
454:
452:.NET Framework
445:
436:
424:
423:
389:
387:
380:
374:
371:
363:.NET Framework
339:email messages
317:, designer of
279:, designer of
272:
269:
268:
267:
260:
242:
228:
227:
222:
216:
211:
205:
194:
191:
178:string literal
161:
158:
128:
127:
42:
40:
33:
26:
24:
14:
13:
10:
9:
6:
4:
3:
2:
563:
552:
549:
547:
544:
543:
541:
529:
524:
521:
517:
511:
508:
502:
498:
495:
493:
489:
486:
484:
480:
477:
475:
471:
468:
466:
465:Java Platform
462:
458:
455:
453:
449:
446:
444:
440:
437:
435:
431:
428:
427:
420:
417:November 2016
411:is available.
410:
406:
400:
399:
395:
390:This article
388:
379:
378:
372:
370:
368:
364:
360:
356:
352:
348:
344:
340:
336:
332:
326:
322:
320:
316:
313:By contrast,
311:
309:
305:
298:
295:
291:
284:
282:
278:
270:
265:
261:
258:
254:
250:
246:
243:
240:
236:
233:
232:
231:
226:
223:
220:
217:
215:
212:
209:
206:
204:
201:
200:
199:
192:
190:
187:
183:
179:
175:
171:
167:
159:
157:
155:
151:
147:
143:
139:
135:
124:
121:
113:
102:
99:
95:
92:
88:
85:
81:
78:
74:
71: –
70:
66:
65:Find sources:
59:
55:
49:
48:
43:This article
41:
37:
32:
31:
19:
523:
515:
510:
414:
409:Editing help
391:
328:
324:
312:
300:
293:
289:
286:
274:
271:Philosophies
229:
196:
163:
137:
131:
116:
107:
97:
90:
83:
76:
64:
52:Please help
47:verification
44:
257:hash tables
221:definitions
210:definitions
203:Subroutines
540:Categories
503:References
490:, for the
481:, for the
472:, for the
441:, for the
432:, for the
357:, such as
283:, writes:
235:Algorithms
80:newspapers
247:(such as
237:(such as
225:Templates
182:Smalltalk
294:standard
193:Contents
160:Overview
110:May 2019
361:or the
345:(as in
335:XML-RPC
142:library
140:is the
94:scholar
463:, and
392:is in
347:Python
319:Python
255:, and
186:Scheme
96:
89:
82:
75:
67:
398:prose
367:Boost
266:calls
253:trees
249:lists
219:Class
208:Macro
166:users
148:of a
101:JSTOR
87:books
394:list
359:Java
351:Ruby
306:and
290:some
176:, a
174:Java
136:, a
73:news
349:or
331:XML
308:C++
297:it.
281:C++
132:In
56:by
542::
369:.
337:,
333:,
251:,
530:.
419:)
415:(
401:.
304:C
259:)
241:)
123:)
117:(
112:)
108:(
98:·
91:·
84:·
77:·
50:.
20:)
Text is available under the Creative Commons Attribution-ShareAlike License. Additional terms may apply.