
Alexander Alexandrovich Stepanov (; born November 16, 1950,
Moscow
Moscow is the Capital city, capital and List of cities and towns in Russia by population, largest city of Russia, standing on the Moskva (river), Moskva River in Central Russia. It has a population estimated at over 13 million residents with ...
) is a Russian-American
computer programmer
A programmer, computer programmer or coder is an author of computer source code someone with skill in computer programming.
The professional titles ''software developer'' and ''software engineer'' are used for jobs that require a progr ...
, best known as an advocate of
generic programming
Generic programming is a style of computer programming in which algorithms are written in terms of data types ''to-be-specified-later'' that are then ''instantiated'' when needed for specific types provided as parameters. This approach, pioneer ...
and as the primary designer and implementer of the
C++ Standard Template Library
The Standard Template Library (STL) is a software library originally designed by Alexander Stepanov for the C++ programming language that influenced many parts of the C++ Standard Library. It provides four components called ''algorithms'', '' ...
,
which he started to develop around 1992 while employed at
HP Labs
HP Labs is the exploratory and advanced research group for HP Inc. HP Labs' headquarters is in Palo Alto, California and the group has research and development facilities in Bristol, UK. The development of programmable desktop calculators, ink ...
. He had earlier been working for
Bell Labs
Nokia Bell Labs, commonly referred to as ''Bell Labs'', is an American industrial research and development company owned by Finnish technology company Nokia. With headquarters located in Murray Hill, New Jersey, Murray Hill, New Jersey, the compa ...
close to
Andrew Koenig and tried to convince
Bjarne Stroustrup
Bjarne Stroustrup (; ; born 30 December 1950) is a Danish computer scientist, known for the development of the C++ programming language. He led the Large-scale Programming Research department at Bell Labs, served as a professor of computer sci ...
to introduce something like
Ada generics in C++. He is credited with the notion of
concept
A concept is an abstract idea that serves as a foundation for more concrete principles, thoughts, and beliefs.
Concepts play an important role in all aspects of cognition. As such, concepts are studied within such disciplines as linguistics, ...
.
He is the author (with
Paul McJones) o
Elements of Programming a book that grew out of a "Foundations of Programming" course
that Stepanov taught at
Adobe Systems
Adobe Inc. ( ), formerly Adobe Systems Incorporated, is an American software, computer software company based in San Jose, California. It offers a wide range of programs from web design tools, photo manipulation and vector creation, through to ...
(while employed there). He is also the author (with Daniel E. Rose) o
From Mathematics to Generic Programming
He retired in January 2016 from
A9.com.
Alex Retirement
Jan 14, 2016
Standard Template Library and generic programming
Alexander Stepanov is an advocate of generic programming
Generic programming is a style of computer programming in which algorithms are written in terms of data types ''to-be-specified-later'' that are then ''instantiated'' when needed for specific types provided as parameters. This approach, pioneer ...
. Although David Musser had already developed and advocated some aspects of generic programming by 1971, it was limited to a rather specialized area of software development (computer algebra
In mathematics and computer science, computer algebra, also called symbolic computation or algebraic computation, is a scientific area that refers to the study and development of algorithms and software for manipulating expression (mathematics), ...
).
Stepanov recognized the full potential for generic programming and persuaded his then-colleagues at General Electric Research and Development (including, primarily, David Musser and Deepak Kapur) that generic programming should be pursued as a comprehensive basis for software development. At the time there was no real support in any programming language for generic programming.
The first major language to provide such support was Ada, with its generic units feature. By 1987 Stepanov and Musser had developed and published an Ada library for list processing that embodied the results of much of their research on generic programming. However, Ada had not achieved much acceptance outside the defense industry and C++ seemed more likely to become widely used and provide good support for generic programming even though the language was relatively immature. Another reason for turning to C++, which Stepanov recognized early on, was that the C/C++ model of computation (which allows very flexible access to storage via pointers) is crucial to achieving generality without losing efficiency
Efficiency is the often measurable ability to avoid making mistakes or wasting materials, energy, efforts, money, and time while performing a task. In a more general sense, it is the ability to do things well, successfully, and without waste.
...
.
It eventually led to the development of the Standard Template Library
The Standard Template Library (STL) is a software library originally designed by Alexander Stepanov for the C++ programming language that influenced many parts of the C++ Standard Library. It provides four components called ''algorithms'', '' ...
of C++.
See also
* Object-oriented programming criticism
References
Further reading
*
External links
Collected Papers of Alexander A. Stepanov
1997
from Dr. Dobbs, March 1995
Range Partition Adapters
A STL-based multi-threaded library, inspired from an article of Alexander Stepanov.
An interview
by Andrew Binstock, with Alexander Stepanov and Paul McJones o
Elements of Programming
A9 Video
lectures by Alexander Stepanov.
{{DEFAULTSORT:Stepanov, Alexander
C++ people
1950 births
Living people
Scientists from Moscow
Russian computer programmers