11.07.2015 Views

Encyclopedia of Computer Science and Technology

Encyclopedia of Computer Science and Technology

Encyclopedia of Computer Science and Technology

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

460 structured programmingsuited for distributed computing <strong>and</strong> parallel programmingwhere there were many separate entities running at thesame time.However, Simula was fairly obscure, <strong>and</strong> it was unlikelythat the large community <strong>of</strong> systems programmers whowere using C would switch to a totally different language.Instead, starting in the early 1980s, Stroustrup decided toadd object-oriented features (such as classes with memberfunctions, user-defined operators, <strong>and</strong> inheritance) to C. Atfirst he gave the language the rather unwieldy name <strong>of</strong> “Cwith Classes.” However, in 1985 he changed the name toC++. (The ++ is a reference to an operator in C that adds oneto its oper<strong>and</strong>, thus C++ is “C with added features.”)At first some critics criticized C++ for retaining most <strong>of</strong>the non-object oriented features <strong>of</strong> C (unlike pure objectlanguages such as Smalltalk), while others complainedthat the overhead required in processing classes made C++slower than C. During the 1990s, however, C++ becameincreasingly popular, aided by its relatively smooth learningcurve for C programmers <strong>and</strong> the development or moreefficient compilers. C++ is now the most widely used generalpurpose computer language.Stroustrup has been honored for his contributions tocomputer science. In 1993 he received the ACM Grace HopperAward for his work on C++, <strong>and</strong> became an AT&TFellow. After leaving AT&T Stroustrup became a pr<strong>of</strong>essorholding the College <strong>of</strong> Engineering Chair in <strong>Computer</strong> <strong>Science</strong>at Texas A&M University. In 2004 Stroustrup receivedthe IEEE <strong>Computer</strong> Society <strong>Computer</strong> EntrepreneurAward, <strong>and</strong> in 2005 the William Procter Prize for ScientificAchievement.Further ReadingBjarne Stroustrup [home page]. Available online. URL: http://parasol.tamu.edu/people/bs/.Accessed August 22, 2007.Dolya, Aleksey. “Interview with Bjarne Stroustrup.” Linux Journal,August 28, 2003. Available online. URL: http://www.linuxjournal.com/article/7099. Accessed August 22, 2007.Pontin, Jason. “The Problem with Programming: Bjarne Stroustrup,the Inventor <strong>of</strong> the C++ Programming Language, DefendsHis Legacy <strong>and</strong> Examines What’s Wrong with Most S<strong>of</strong>twareCode.” <strong>Technology</strong> Review, November 28, 2006. Availableonline. URL: http://www.techreview.com/Infotech/17831/page1/. Accessed August 22, 2007.Stroustrup, Bjarne. The C++ Programming Language. Special 3rded. Upper Saddle River, N.J.: Addison-Wesley, 1997.———. The Design <strong>and</strong> Evolution <strong>of</strong> C++. Reading, Mass.: Addison-Wesley, 1995.structured programmingAs programs grew longer <strong>and</strong> more complex during the1960s, computer scientists began to pay more attention tothe ways in which programs were organized. Most programminglanguages had a statement called “GOTO” or itsequivalent. This statement transfers control to some arbitraryother point in the program, as identified by a label orline number.In 1968, computer scientist Edsger Dijkstra (see dijkstra,edsger) sent a letter to the editor <strong>of</strong> the Proceedings <strong>of</strong>the ACM with the title “GO TO Statement Considered Harmful.”In it he pointed out that the more such jumps programsmade from place to place, the harder it was for someone tounderst<strong>and</strong> the logic <strong>of</strong> the program’s operation.The following year, Dijkstra introduced the term structuredprogramming to refer to a set <strong>of</strong> principles for writingwell-organized programs that could be more easily shownto be correct. One <strong>of</strong> these principles is statements such asIf . . . Then . . . Else be used to organize a choice betweentwo or more alternatives (see branching statements) <strong>and</strong>that statements such as While be used to control repetitionor iteration <strong>of</strong> a statement (see loop).Other computer scientists added further principles, suchas modularization (breaking down a program into separateprocedures, such as for data input, different stages <strong>of</strong> processing,<strong>and</strong> output or printing). Modularization makes iteasier to figure out which part <strong>of</strong> a program may be causing aproblem, <strong>and</strong> to fix part <strong>of</strong> a problem without affecting otherparts. A related principle, information hiding, keeps the dataused by a procedure “hidden” in that procedure so that itcan’t be changed from some other part <strong>of</strong> the program.Structured programming also encourages stepwiserefinement, a program design process described by NiklausWirth, creator <strong>of</strong> Pascal. This is a top-down approach inwhich the stages <strong>of</strong> processing are first described in highlevelterms (see also pseudocode), <strong>and</strong> then graduallyfleshed out in their details, much like the writing <strong>of</strong> anoutline for a book.The principles <strong>of</strong> structured programming were soonembodied in a new generation <strong>of</strong> programming languages(see Algol, Pascal, <strong>and</strong> c). Although use <strong>of</strong> well-structuredlanguage didn’t guarantee good structured programmingpractice, it at least made the tools available.The ideas <strong>of</strong> structured programming form a solid basisfor programming style today. They have been supplementedrather than replaced by a new paradigm developed in the1970s <strong>and</strong> 1980s (see object-oriented programming).Further ReadingDhal, Ole-Johan, Edsger W. Dijkstra, <strong>and</strong> C. A. R. Hoare, eds.Structured Programming. New York: Academic Press, 1972.Dijkstra, Edsger. A Discipline <strong>of</strong> Programming. Englewood Cliffs,N.J.: Prentice Hall, 1976.———. “Go To Statement Considered Harmful.” Communications<strong>of</strong> the ACM 11, no. 3 (1968): 147–148.———. “Notes on Structured Programming.” Available online. URL:http://www.cs.utexas.edu/users/EWD/ewd02xx/EWD249.PDF.Accessed August 22, 2007.Orr, Kenneth T. Structured Systems Development. New York: YourdonPress, 1977.Sun MicrosystemsFounded in 1982, Sun Microsystems (NASDAQ symbol:JAVA) has played an important role in the development<strong>of</strong> computer workstations <strong>and</strong> servers, UNIX-based operatingsystems, <strong>and</strong> the Java programming language (see Java,unix, <strong>and</strong> workstation).During the 1980s, Sun was known mainly for its workstationsfor programmers <strong>and</strong> graphics pr<strong>of</strong>essionals, runningon its own SPARC series microprocessors. However,

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!