
Alexander Alexandrovich Stepanov (russian: Алекса́ндр Алекса́ндрович Степа́нов; born November 16, 1950,
Moscow
Moscow ( , US chiefly ; rus, links=no, Москва, r=Moskva, p=mɐskˈva, a=Москва.ogg) is the capital and largest city of Russia. The city stands on the Moskva River in Central Russia, with a population estimated at 13.0 million ...
) is a Russian-American
computer programmer
A computer programmer, sometimes referred to as a software developer, a software engineer, a programmer or a coder, is a person who creates computer programs — often for larger computer software.
A programmer is someone who writes/creates ...
, best known as an advocate of
generic programming
Generic programming is a style of computer programming in which algorithms are written in terms of types ''to-be-specified-later'' that are then ''instantiated'' when needed for specific types provided as parameters. This approach, pioneered b ...
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'', ''co ...
,
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, originally named Bell Telephone Laboratories (1925–1984),
then AT&T Bell Laboratories (1984–1996)
and Bell Labs Innovations (1996–2007),
is an American industrial research and scientific development company owned by mult ...
close to
Andrew Koenig and tried to convince
Bjarne Stroustrup
Bjarne Stroustrup (; ; born 30 December 1950) is a Danish computer scientist, most notable for the invention and development of the C++ programming language. As of July 2022, Stroustrup is a professor of Computer Science at Columbia Universit ...
to introduce something like
Ada generics in C++. He is credited with the notion of
concept
Concepts are defined as abstract ideas. They are understood to be the fundamental building blocks of the concept behind principles, thoughts and beliefs.
They play an important role in all aspects of cognition. As such, concepts are studied by s ...
.
He is the author (with
Paul McJones
Paul may refer to:
* Paul (given name), a given name (includes a list of people with that name)
* Paul (surname), a list of people
People
Christianity
*Paul the Apostle (AD c.5–c.64/65), also known as Saul of Tarsus or Saint Paul, early Chr ...
) o
Elements of Programming a book that grew out of a "Foundations of Programming" course
that Stepanov taught at
Adobe Systems (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
A9.com is a former subsidiary of Amazon that develops search engine and search advertising technology. A9 is based in Palo Alto, California, with teams in Seattle, Bangalore, Beijing, Dublin, Iași, Munich and Tokyo. A9 has development efforts i ...
.
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 types ''to-be-specified-later'' that are then ''instantiated'' when needed for specific types provided as parameters. This approach, pioneered b ...
. Although David Musser David "Dave" Musser is a professor emeritus of computer science at the Rensselaer Polytechnic Institute in Troy, New York, United States.
He is known for his work in generic programming, particularly as applied to C++, and his collaboration with ...
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 mathematical expression ...
).
Stepanov recognized the full potential for generic programming and persuaded his then-colleagues at General Electric Research and Development (including, primarily, David Musser David "Dave" Musser is a professor emeritus of computer science at the Rensselaer Polytechnic Institute in Troy, New York, United States.
He is known for his work in generic programming, particularly as applied to C++, and his collaboration with ...
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
The arms industry, also known as the arms trade, is a global industry which manufactures and sells weapons and military technology. It consists of a commercial industry involved in the research and development, engineering, production, and ...
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 pointer
Pointer may refer to:
Places
* Pointer, Kentucky
* Pointers, New Jersey
* Pointers Airport, Wasco County, Oregon, United States
* The Pointers, a pair of rocks off Antarctica
People with the name
* Pointer (surname), a surname (including a list ...
s) is crucial to achieving generality without losing efficiency.
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'', ''co ...
of C++.
See also
* Object-oriented programming criticism
References
Further reading
*
External links
Collected Papers of Alexander A. Stepanov
1997
from Dr. Dobbs
''Dr. Dobb's Journal'' (''DDJ'') was a monthly magazine published in the United States by UBM Technology Group, part of UBM. It covered topics aimed at computer programmers. When launched in 1976, DDJ was the first regular periodical focused on ...
, March 1995
Range Partition Adapters
A STL-based multi-threaded library, inspired from an article of Alexander Stepanov.
An interview
by Andrew Binstock
Andrew is the English form of a given name common in many countries. In the 1990s, it was among the top ten most popular names given to boys in English-speaking countries. "Andrew" is frequently shortened to "Andy" or "Drew". The word is derived ...
, with Alexander Stepanov and Paul McJones
Paul may refer to:
* Paul (given name), a given name (includes a list of people with that name)
* Paul (surname), a list of people
People
Christianity
*Paul the Apostle (AD c.5–c.64/65), also known as Saul of Tarsus or Saint Paul, early Chr ...
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