The Future of Library Specification by Gary T. Leavens Abstract Programming language technology has started to achieve one of the dreams of software engineering -- large scale utilization of reusable components. This is due to the standardization of large libraries and frameworks in popular programming languages such as C++, Java, C#, and Python. This standardization and widespread use of libraries will continue to make module specification more and more important. Yet most libraries and frameworks are only specified informally using natural language. This position paper explores research questions related to the specification of such libraries and frameworks. Keywords: library, framework, specification, documentation. 2010 CR Categories: D.2.1 Software Engineering Requirements / Specifications --- langauges, tools; D.2.2 Software Engineering Design Tools and Techniques --- modules and interfaces, software libraries; D.2.4 Software Engineering Software / Program Verification --- formal methods, programming by contract; D.2.5 Software Engineering Testing and Debugging --- debugging aids, testing tools; D.2.7 Software Engineering Distribution, Maintenance, and Enhancement --- documentation; D.2.13 Software Engineering Reusable Software --- reusable libraries; F.3.1 Logics and Meanings of Programs Specifying and Verifying and Reasoning about Programs --- specification techniques; To appear in FoSER 2010, copyright (c) 2010 ACM 978-1-4503-0427-6/10/11. Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. To copy otherwise, to republish, to post on servers or to redistrubte to lists, requires prior specific permission and/or a fee.