Alexander A. Stepanov
This site is a collection of Alex Stepanov's books, papers, class notes, and source code, covering
generic programming and other topics. Technical contact: email@example.com.
- From Mathematics to Generic Programming
- Alexander A. Stepanov and Daniel E. Rose: From Mathematics to Generic Programming. Addison-Wesley Professional, November 7, 2014. See www.fm2gp.com for more information, including sample chapter, source code, and errata. See below for the videos and slides of the Three Algorithmic Journeys course from which this book evolved.
- Elements of Programming
- Alexander Stepanov and Paul McJones: Elements of Programming. Semigroup Press, June 2019 and Addison-Wesley Professional, June 2009. See elementsofprogramming.com for a free PDF version, a link to purchase a paperback copy, source code, and errata.
- Alexander Stepanov: Transformations and their orbits. Lecture based on Chapter 2 of Elements of Programming presented at Yandex, April 20, 2010.
- Alexander Stepanov and Paul McJones: Elements of Programming. Lecture presented at Stanford University Department of Electrical Engineering Computer Systems Colloquium (EE380), November 3, 2010.
- C++ Standard Template Library
- P.J. Plauger, Meng Lee, David Musser, and Alexander A. Stepanov: C++
Standard Template Library. Prentice Hall PTR, December 2000, 498 pages.
- The Ada Generic Library Linear List Processing Packages
- David R. Musser and Alexander A. Stepanov: The Ada Generic Library Linear List Processing Packages. Springer-Verlag, 1989, 289 pages.
- D. Kapur, D. R. Musser, and A. A. Stepanov: Operators and Algebraic Structures.
Proceedings of the 1981 conference on Functional programming languages and computer
architecture, pages 59-63. PDF (online at acm.org)
- Also appears as
General Electric Company, Corporate Research and Development, Report
- Deepak Kapur, David R. Musser, and Alexander A. Stepanov: Tecton: A Language
for Manipulating Generic Objects. In Program Specification, Proceedings of a Workshop, Aarhus, Denmark, August 1981, J. Staunstrup, editor, Lecture Notes In Computer Science, volume 134, Springer-Verlag, London, pages 402-414. PDF
- Alexander Stepanov and Aaron Kershenbaum: Using Tournament Trees to
Sort, Center for Advanced Technology in Telecommunications Technical Report
86-13, Polytechnic University of New York, 1986.
- Alexander A. Stepanov, Aaron Kershenbaum, and David R. Musser: Higher Order
Programming. March 5, 1987. PDF
- David R. Musser and Alexander A. Stepanov: A library of generic algorithms
in Ada. Proceedings of the 1987 annual ACM SIGAda international conference on
Ada, pages 216-225. PDF (online at acm.org)
slides from conference presentation. PDF
- Aaron Kershenbaum, David Musser, and Alexander Stepanov:
Higher Order Imperative Programming. Rensselaer Polytechnic Institute Computer
Science Department, Technical Report 88-10. April 1988. PDF
- David R. Musser and Alexander A. Stepanov: Generic Programming. ISSAC 1988,
pages 13-25. PDF PostScript
- D. R. Musser and A. A. Stepanov: Ada Generic Library Linear Data Structure
Packages, Release 1.1, General Electric Company, Corporate Research and
- Volume One, Report 88CRD112, March 4, 1988. PDF
- Volume Two, Report 88CRD113, March 3, 1988. PDF
- D. Kapur, D. Musser, W. Olthoff, A. Snyder, A. Stepanov, and A. Szymanski. A Prototyping Language for Rapid Reuse : Technical Proposal. Software Technology Laboratory Report STL-89-10, Hewlett-Packard Laboratories, 1989. PDF
- Alexander A. Stepanov: Design of Generic Libraries. Lecture given at
SRI, 1991. PDF
- David R. Musser and Alexander A. Stepanov: Algorithm-oriented Generic Libraries.
- Software—Practice and Experience, Vol. 24(7), July 1994, pages 623-642. PDF
- HP Laboratories
Technical Report 94-13, February 1994. PDF (online at hp.com)
- Preprint. September 1993. PDF PostScript
- Algorithm-Oriented Generic Libraries. Rensselaer Polytechnic Institute Computer Science Department Technical Report 92-23, 1993.
- Algorithm-Oriented Generic Software Library Development. HPL-92-65(R.1),
November 1993 PDF (online at hp.com)
- Algorithm-Oriented Generic Software Library Development. Rensselaer Polytechnic Institute Computer Science Department Technical Report 92-13, April 1992.
- Mehdi Jazayeri, Meng Lee, and Alex Stepanov: Generic C++ Components. Hewlett-Packard Laboratories/CSL/CCD/PAP/CLL talk, October 4, 1993, 17 slides. PDF
- Alexander A. Stepanov: Science of C++ Programming. Invited presentation to C++ standards committee, San Jose, California, November 11, 1993, 25 slides. PDF
- Meng Lee & Alexander Stepanov: Science of C++ Programming. Hewlett-Packard Laboratories, January 1994, 45 slides. PDF
- Alexander Stepanov & Meng Lee: The Standard Template Library. Presentation to the C++ standards committee, March 7, 1994, 19 slides. PDF
- Alexander Stepanov and Meng Lee: The Standard Template Library. HP Laboratories
Technical Report 95-11(R.1), November 14, 1995.
PDF PostScript FrameMaker
- Revised version of A. A. Stepanov and M. Lee: The Standard Template Library, Technical Report
X3J16/94-0095, WG21/N0482, ISO Programming Language C++ Project, May 1994.
- Supercedes Alexander Stepanov and Meng Lee: The Standard Template Library. HP Laboratories
Technical Report 94-34(R.1), April 13, 1994.
- Alexander Stepanov: The Standard Template Library. BYTE Magazine,
October 1995. HTML (online at byte.com via Internet Archive)
Note: in the code for remove_copy_if, the expression !prod(*first)
should be !pred(*first).
- Matthew H. Austern, Ross A. Towle, and Alexander A. Stepanov: Range partition
adaptors: a mechanism for parallelizing STL. ACM SIGAPP Applied Computing Review,
Volume 4, Issue 1. Spring 1996, pages 5-6. PDF
(online at acm.org)
- Alexander Stepanov: Generic Programming. Keynote Lecture presented at The Second International
Andrei Ershov Memorial Conference on Perspectives of System Informatics; abstract appears in Lecture
Notes In Computer Science, volume 1181, June 1996, page 40.
- David R. Musser and Alexander A. Stepanov: Generic Programming Projects
and Open Problems. August 25, 1998. online at rpi.edu (local) PDF
- James C. Dehnert and Alexander A. Stepanov: Fundamentals of Generic
Programming. Report of the Dagstuhl Seminar on Generic Programming, Schloss Dagstuhl,
Germany, Apr. 1998. Lecture Notes in Computer Science,
- Alexander Stepanov: Greatest Common Measure: the Last 2500 Years. Originally prepared as the 1999 Arthur Schoffstall Lecture in Computer Science
and Computer Engineering at the Rensselaer Polytechnic Institute.
- Slides. Updated June 2004. PDF PowerPoint
- Video of
same lecture presented at SmartFriends U, September 27, 2003 (by permission
- Video of same lecture presented at Yandex, Moscow, April 19, 2010.
- Alexander Stepanov: Foreword. Appears in David R. Musser, Gillmer J. Derge, and Atul
Saini, STL Tutorial and Reference Guide, Second Edition: C++ Programming
with the Standard Template Library. Boston, MA: Addison-Wesley, 2001.
- Alexander Stepanov: STL and Its Design Principles. Talk presented at
Adobe Systems Inc., January 30, 2002.
PDF PowerPoint Real Player
- Alexander Stepanov: Foreword. Appears in Jeremy G. Siek, Lie-Quan Lee and Andrew
Lumsdaine: The Boost Graph Library: User Guide and Reference Manual.
Boston, MA: Addison-Wesley, 2002. HTML
- Alexander Stepanov: Future of Abstraction. A keynote address at Joint
ACM Java Grande - ISCOPE 2002 Conference, Seattle, Washington, November
3-5, 2002. Abstract PDF PowerPoint
- Alexander Stepanov: Designing Efficient Libraries. Talk presented at Adobe System Inc., July 21, 2003.
- Alexander Stepanov: Short History of STL.
Contributed to Evolving a language in and for the real world: C++ 1991-2007 by Bjarne Stroustrup, August 10, 2006. PDF
- Alexander A. Stepanov, Anil R. Gangolli, Daniel E. Rose, Ryan J. Ernst, and Paramjit S. Oberoi: SIMD-Based Decoding of Posting Lists. ACM Conference on Information and Knowledge Management (CIKM 2011), October 24–28, 2011, Glasgow, Scotland, UK.
- Alexander A. Stepanov, Anil R. Gangolli, Daniel E. Rose, Ryan J. Ernst, and Paramjit S. Oberoi: SIMD-Based Decoding of Posting Lists. A9 Technical Report A9TR-2011-01, revision 2, June 2014, 30 pages. Appendix includes C++ code. PDF
- D. Kapur, D. R. Musser, and A. A. Stepanov: A Guide to Tecton and Natural
Logic. Working document, General Electric Research & Development Center,
July 1983. PDF
- D. Kapur, D. R. Musser, and A. A. Stepanov: Notes on a Logic of Objects. Working document, General Electric Research & Development Center, July 1983. PDF
- D. Kapur, D. R. Musser, and A. A. Stepanov: Modalities, Abstraction and
Reasoning. Working document, General Electric Research & Development Center,
July 1983. PDF
- D. Kapur, D. R. Musser, and A. A. Stepanov: Syntax of the Tecton Language. Working document, General Electric Research & Development Center, February
- Alexander Stepanov: Towards a Theory of Causal Implication. Department
of Electrical Engineering and Computer Science, Polytechnic University of
New York, 1985. PDF Word
- V. Lumelsky and A. Stepanov: Navigation Strategies for an Autonomous
Vehicle with Incomplete Information on the Environment. General Electric
Company, Corporate Research and Development, Report 84CRD070.
- Vladimir J. Lumelsky and Alexander A. Stepanov: Effect of Uncertainty on
Continuous Path Planning for an Autonomous Vehicle. Proceedings of 23rd
Conference on Decision and Control, Las Vegas NV, December 1984, pages
- V. Lumelsky and A. Stepanov: Dynamic path planning for a mobile automaton
with limited information on the environment. IEEE Trans. on Automatic Control,
AC-31, pages 1058-1063, 1986. PDF
- V. Lumelsky and A. Stepanov: Path planning strategies for a point mobile
automaton moving amidst unknown obstacles of arbitrary shape. Algorithmica,
Volume 2, pages 403-430, 1987.
PDF Republished in Autonomous robot vehicles,
pages 363-390, 1990.
- Robert M. English and Alexander A. Stepanov: Loge: a self-organizing disk
controller. Proceedings of USENIX Winter 1992 Technical Conference, January
20-24, 1992 (San Francisco, CA), pages 237-251. PDF
- Chia Chao, Robert English, David Jacobson, Alexander Stepanov, and John Wilkes:
Mime: a high performance parallel storage device with strong recovery guarantees.
HP Laboratories Technical Report HPL-CSP-92-9rev1, March 1992, revised November
1992. PDF PostScript
- John Wilkes, Chia Chao, Robert English, David Jacobson, Bart Sears, Carl
Staelin, and Alex Stepanov: DataMesh parallel storage servers. ACM SIGOPS Operating
Systems Review, Volume 26 , Issue 2, April 1992, page 11.
PDF (online at acm.org)
- John Wilkes, with Chia Chao, Robert English, David Jacobson, Sai-Lai Lo,
Chris Ruemmler, Bart Sears, Alex Stepanov, and Rebecca Wright: DataMesh research
project, phase 1. Proceedings of USENIX Workshop on File Systems (Ann Arbor,
MI), 21-22 May 1992, pages 63-69. PDF
- Chia Chao, Robert English, David Jacobson, Bart Sears, Alexander Stepanov,
and John Wilkes: DataMesh Architecture 1.0. HP Laboratories Technical Report
HPL-92-153, December 1992. PDF
- Alexander Stepanov: Professionalism in Programming. Presented at Adobe
Systems Inc., April 17, 2003.
- Alexander Stepanov: Industrializing Software Development. A keynote
address at The First International Conference on Embedded Software and
System, Zhejiang University, Hangzhou, P. R. China, December 9, 2004.
- Alexander Stepanov: Educating Programmers: A Customer Perspective. Presented at Workshop on Quality Software: A Festschrift for Bjarne Stroustrup, Texas A&M University, April 27‐28, 2012. Video at YouTube PDF PowerPoint
- Alexander Stepanov: One algorithm from The Book: A tribute to Ira Pohl. Invited lecture at Ira Fest – in Honor of Computer Science Professor Emeritus Ira Pohl, University of California Santa Cruz, April 26, 2014. PDF PowerPoint
- Alexander Stepanov: Scheme higher order programming library, August
1986. .tar unpacked notes
- Alexander Stepanov:
gclib, AT&T Bell Laboratories, 1987. With only cosmetic changes, this becam
Array_alg within the USL C++ Standard Components. C documentation
- David R. Musser and Alexander A. Stepanov: Ada Generic Library (source
files described in The Ada Generic Library: Linear List Processing
Packages, Compass Series, Springer-Verlag, 1989). .zip unpacked README
- Alexander Stepanov: Algorithmic simulation and measurement codes, 1993. .zip unpacked
- Alexander Stepanov and Meng Lee:
The Standard Template Library, HP Laboratories, release of October 31, 1995.
- Release directory. Contains STL, FAQ, and related materials. unpacked (originally from ftp://butler.hpl.hp.com/stl/)
(originally from ftp://butler.hpl.hp.com/stl/stl.zip)
- Alex Stepanov: Abstraction Penalty Benchmark, version 1.2 (KAI). Silicon
Graphics, Incorporated, 199?. C++
- Also appears as Appendix
D.3 of Technical Report on C++ Performance, ISO/IEC PDTR 18015, 11 August 2003 PDF
- Matthew Austern and Alexander Stepanov: jal (Java Algorithm Library),
Silicon Graphics, Incorporated, 1996.
- Matt Austern with Hans Boehm (managed by Alexander Stepanov). SGI
Standard Template Library. Source code and documentation for the version of
the Standard Template Library developed at Silicon Graphics, Inc. during
1996-1999. (online at sgi.com/tech/stl/ via Internet Archive)
- Bjarne Stroustrup and Alex Stepanov: Standard Container Benchmark, version 0.9. May 2003 C++
Note: The documents in this section have been superseded by From Mathematics to Generic Programming and Elements of Programming (see above).
- Alexander Stepanov: Notes for the Higher Order Programming in Scheme
course taught at the General Electric Corporate R&D Center. Schenectady, New
York, July 1986. PDF text
- A. A. Stepanov: CS 603 Notes. Department of Electrical Engineering and
Computer Science, Polytechnic University of New York, 1986(?). PDF
- Alexander A. Stepanov: Handouts for the Advanced Programming class taught by
David R. Musser at Rensselaer Polytechnic Institute. 1990. PDF
- Jim Dehnert, Alexander Stepanov, and John Wilkinson: Incomplete notes
for the Generic Programming course taught by Alex at Silicon Graphics Inc. December 1998. HTML PDF
- Alexander Stepanov: Incomplete notes for the Foundations of
Programming course taught at Adobe. May 2004 (corrected version May 2005). PDF Word
- Alexander A. Stepanov and Matthew A. Marcus: Notes for the Foundations of Programming
course at Adobe. 2004-2005.
- Section 1 (mathematical
preliminaries up to RSA). PDF
- Section 2 (generic programming). PDF
- Section 3 (partition algorithms). PDF Word
- Alexander Stepanov: Notes for the Programming course at Adobe. 2005-2006 (updated October 2007 to fix bugs in partition_bidirectional and December 2012 to fix a bug in partition_3way_bidirectional). PDF Word
- Alexander Stepanov: Three Algorithmic Journeys. Lectures presented at A9.com, 2012. A fourth journey was originally planned but there are no immediate plans to complete it.
- I. Spoils of the Egyptians: How elementary properties of commutativity and associativity of addition and multiplication led to fundamental algorithmic and mathematical discoveries. Video at YouTube PDF
- II. Heirs of Pythagoras: How division with remainder led to discovery of many fundamental abstractions. Video at YouTube PDF
- III. Successors of Peano: The axioms of natural numbers and their relation to iterators.Video at YouTube PDF
- Epilogue. Video at YouTube PDF
- Alexander A. Stepanov and Daniel E. Rose: Three Algorithmic Journeys. Preliminary draft 0.3, January 4, 2013. PDF
- Alexander A. Stepanov and Daniel E. Rose: Notes on Set Theory, Logic, and Computation. August 29, 2013. PDF
Authors' Note: This document contains material from the Three Algorithmic Journeys course taught by Alex Stepanov at A9 in 2012, which we decided to remove from the forthcoming book based on the course.
- Alexander A. Stepanov: Efficient Programming with Components. Lectures at A9.com, 2013.
- Alexander A. Stepanov and Paramjit Oberoi: Programming Conversations. Ongoing lectures at A9.com, 2014.
- Alexander A. Stepanov: Civilizing the Barbarians. Lectures at A9.com, 2015.
Reading list and video
- The Short Canon: A short list of materials for civilizing programmers. Reading list
- Alex Fest: A celebration of the work of Alexander A. Stepanov. Held by A9 on January 11, 2016 in Palo Alto, California.
Paul McJones maintains this collection. He began in the spring of 2004, and has been assisted by Dave Musser, Meng Lee, Jim Dehnert, Jeremy Siek, Mat Marcus, Paramjit Oberoi, and Alex Stepanov.
Notice: Some of the documents distributed by this server have
been provided by the contributing authors as a means to ensure timely dissemination
of scholarly and technical work on a noncommercial basis. Copyright and all
rights therein are maintained by the authors or by other copyright holders,
notwithstanding that they have offered their works here electronically. It is
understood that all persons copying this information will adhere to the terms
and constraints invoked by each author's copyright. These works may not be
reposted without the explicit permission of the copyright holder.