HOME

TheInfoList



OR:

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