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.

simulation 431Further ReadingCharles in Space. Available online. URL: http://www.charlesinspace.com/. Accessed November 14, 2007.Greene, Stephen G. “Entrepreneur Seeks to Promote Excellencethrough Philanthropy.” Chronicle <strong>of</strong> Philanthropy 16 (February19, 2004): 20.Intentional S<strong>of</strong>tware. Available online. URL: http://www.intents<strong>of</strong>t.com/. Accessed November 14, 2007.Rosenberg, Scott. “Anything You Can Do, I Can Do Meta: SpaceTourist <strong>and</strong> Billionaire Programmer Charles SimonyiDesigned Micros<strong>of</strong>t Office. Now He Wants to ReprogramS<strong>of</strong>tware.” <strong>Technology</strong> Review, January 2007. Available online.URL: http://www.technologyreview.com/Infotech/18047/?a=f.Accessed November 14, 2007.SimulaOne <strong>of</strong> the most interesting applications <strong>of</strong> computers isthe simulation <strong>of</strong> systems in which many separate actionsor events are happening simultaneously (see simulation).During the 1950s, Norwegian computer scientist KristenNygaard began to develop a more formal way <strong>of</strong> describing<strong>and</strong> designing simulations. A typical simulation consists<strong>of</strong> a number <strong>of</strong> “objects,” such as cars in a traffic flow orcustomers waiting in a bank line. In a bank simulation,for example, the objects (customers) would dem<strong>and</strong> servicefrom particular serving objects (teller windows). Theywould move in a queue <strong>and</strong> their motion would be capturedat various points <strong>of</strong> time.Nygaard used his ideas to create symbols <strong>and</strong> flow diagramsto represent the events going on in a simulation.However, existing computer languages such as Algol 60were designed to carry out procedures sequentially <strong>and</strong> oneat a time, not simultaneously. This made it difficult to writea program representing a situation in which many cars orcustomers were moving simultaneously.In the early 1960s, Nygaard was joined by Ole-JohanDahl, who had more experience with systems programming<strong>and</strong> computer language design. They worked together tocreate a new language that they called Simula, reflectingtheir emphasis on simulation programming. In designingSimula, the authors sought to create a data structure thatwas better suited to simultaneous actions or events. Forexample, in a simulation <strong>of</strong> automobile traffic, each carwould be an “object” with data such as its location <strong>and</strong>speed as well as actions or capabilities such as changingspeed or direction. The data for each object must be maintainedseparately <strong>and</strong> updated frequently.The Algol 60 language already had a way to define code“blocks” (see procedures <strong>and</strong> functions) that could containtheir own local data as well as actions to be performed.Further, such blocks could be called repeatedly such thatmany copies could be “open” at the same time. However,these calls were still essentially sequential, not simultaneous.In their new Simula 1 language (introduced in 1965),Dahl <strong>and</strong> Nygaard created a way to simulate simultaneousprocessing. Even though the computer would (probably)only have a single processor such that only one copy <strong>of</strong>a block <strong>of</strong> code could be executing at a given time, Simulaset up special variables for keeping track <strong>of</strong> simulatedtime. Control would “jump” from one instance <strong>of</strong> a block toanother such that all blocks would, for example, have theiractions for the time 20:15 executed, then actions for 20:16would be executed, <strong>and</strong> so on. A list kept track <strong>of</strong> processesin time order. Thus, Simula 1 kept all the features <strong>of</strong> Algolbut made it more suitable for modeling simultaneous events(see multiprocessing).Simula 1 was quite successful as a simulation language,but the authors soon realized that the ability to use separateinvocations <strong>of</strong> a procedure to create individual “objects”had a more general application to representing data inapplications other than simulations. In creating Simula 67(the version <strong>of</strong> the language still used today), they thereforeintroduced the formal concept <strong>of</strong> the class as a specificationthat could be used to create objects <strong>of</strong> that type. Theyalso introduced the key idea <strong>of</strong> inheritance (where one classcan be derived from an earlier class), as well as a way that aderived class could redefine a procedure that it had inheritedfrom the original (base) class (see object-orientedprogramming <strong>and</strong> class).Although Simula 67 would continue to be used primarilyfor simulations rather than as a general-purpose programminglanguage, its object-oriented ideas would proveto be very influential. The designers <strong>of</strong> Smalltalk <strong>and</strong> Adawould look to Simula for structural ideas, <strong>and</strong> the popularC++ language began with an effort to create a “C withclasses” language along the lines <strong>of</strong> Simula. (See Smalltalk,Ada, <strong>and</strong> C++.)Further ReadingHolmevik, Jan-Rune. “Compiling Simula: a Study in the History <strong>of</strong>Computing <strong>and</strong> the Construction <strong>of</strong> the SIMULA ProgrammingLanguages.” STS Report (Trondheim). Available online. URL:http://staff.um.edu.mt/jskl1/simula.html. Accessed August 21,2007.Nygaard, K., <strong>and</strong> O.-J. Dahl. “The Development <strong>of</strong> the Simula Languages”in The History <strong>of</strong> Programming Languages, R. L. Wexelblat,ed. New York: Academic Press, 1981.Pooley, R. Introduction to Programming with Simula. Oxfordshire,U.K.: Alfred Waller, 1987.Sebesta, Robert W. Concepts <strong>of</strong> Programming Languages. 7th ed.Boston: Addison-Wesley, 2006.Sklenar, J. “Introduction to OOP in Simula.” Available online.URL: http://staff.um.edu.mt/jskl1/talk.html. Accessed August21, 2007.simulationA simulation is a simplified (but adequate) model that representshow a system works. The system can be an existing,real-world one, such as a stock market or a human heart,or a proposed design for a system, such as a new factory oreven a space colony.If a system is simple enough (a cannonball falling froma height, for example), it is possible to use formulas suchas those provided by Newton to get an exact answer. However,many real-world systems involve many discrete entitieswith complex interactions that cannot be captured witha single equation. During the 1940s, scientists encounteredjust this problem in attempting to underst<strong>and</strong> what wouldhappen under various conditions in a nuclear reaction.

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

Saved successfully!

Ooh no, something went wrong!