Knowledge

Simula

Source 📝

575: 3147: 2813: 2803: 3119: 41: 690:(ACM), with the citation: "For ideas fundamental to the emergence of object oriented programming, through their design of the programming languages Simula I and Simula 67." Dahl and Nygaard died in June and August of that year, respectively, before the ACM Turing Award Lecture that was scheduled to be delivered at the November 2002 1333:
Hold (Normal (12, 4, u)); report (pname & " is requesting the fitting room"); fittingroom1.request; report (pname & " has entered the fitting room"); Hold (Normal (3, 1, u)); fittingroom1.leave; report (pname & " has left the fitting
1213:
Sam, Sally, and Andy are shopping for clothes. They must share one fitting room. Each one of them is browsing the store for about 12 minutes and then uses the fitting room exclusively for about three minutes, each following a normal distribution. A simulation of their fitting room experience is as
533:
compiler. SIMULA I was fully operational on the UNIVAC 1107 by January 1965. In the following few years, Dahl and Nygaard spent a lot of time teaching Simula. Simula spread to several countries around the world and SIMULA I was later implemented on other computers including the
549:
introduced the concept of record class construct, which Dahl and Nygaard extended with the concept of prefixing and other features to meet their requirements for a generalized process concept. Dahl and Nygaard presented their paper on
570:
and the class concept. This led to serious discussions, and the proposal was rejected by the board. Simula 67 was formally standardized on the first meeting of the Simula Standards Group (SSG) in February 1968.
566:, May 1967. This paper became the first formal definition of Simula 67. In June 1967, a conference was held to standardize the language and initiate a number of implementations. Dahl proposed to unify the 1647:
Lehrmann Madsen, Ole (2014). "Building Safe Concurrency Abstractions". In Agha, Gul; Igarashi, Atsushi; Kobayashi, Naoki; Masuhara, Hidehiko; Matsuoka, Satoshi; Shibayama, Etsuya; Taura, Kenjiro (eds.).
1418:
The main program creates all the objects and activates all the person objects to put them into the event queue. The main program holds for 100 minutes of simulated time before the program terminates.
1415:
and its activity is described using hold (time for browsing the store and time spent in the fitting room) and calls procedures in the fitting room object for requesting and leaving the fitting room.
1183: 1532:
Kristen Nygaard and Ole-Johan Dahl. 1978. The development of the SIMULA languages. History of programming languages. Association for Computing Machinery, New York, NY, USA, 439–480. DOI:
682:"For the introduction of the concepts underlying object-oriented programming through the design and implementation of SIMULA 67". In April 2002, they received the 2001 A. M. 384:; Simula 67 though was designed to be a general-purpose programming language and provided the framework for many of the features of object-oriented languages today. 1042: 2204: 2195: 529:
in August 1963 at a considerable discount, on which Dahl implemented the SIMULA I under contract with UNIVAC. The implementation was based on the UNIVAC
515: 1386:
for enabling simulation. The simulation package can be used on any block and simulations can even be nested when simulating someone doing simulations.
679: 654:
implemented the concept of public, protected, and private member variables and procedures, that later was integrated into Simula Standard in 1986.
2851: 704:
named after the Simula language, and Nygaard held a part-time position there from the opening in 2001. The new Computer Science building at the
3186: 284: 2032: 1870: 643: 3176: 3135: 2807: 3196: 3191: 346: 518:(IFIP). He invited Nygaard, who presented the paper "SIMULA – An Extension of ALGOL to the Description of Discrete-Event Networks". 3140: 979:. This means that in the above example, all classes can be instantiated. Calling a pure virtual procedure will however produce a 491: 453:
started writing computer simulation programs in 1957. Nygaard saw a need for a better way to describe the heterogeneity and the
1728: 1393:) for getting access to the fitting room. When someone requests the fitting room and it's in use they must wait in this queue ( 657:
Simula Standard 1986 is the latest standard and is ported to a wide range of platforms. There are mainly four implementations:
3130: 2381: 2267: 2119: 1665: 366: 1113: 1098:
for the controlling variable (k) and the expression (u). This allows the controlling variable to be used in the expression.
1621: 2871: 2844: 2494: 2226: 2178: 1888: 687: 53: 2489: 2876: 2538: 2418: 1797: 980: 578:
Pages from the DECsystem-10 SIMULA Language Handbook, as published by the Swedish National Defence Research Institute
1470: 2881: 2785: 2727: 2247: 1863: 1572: 377: 3201: 3150: 3082: 2955: 2837: 1807: 599: 454: 428: 319: 268: 3181: 3125: 3103: 3057: 3030: 3005: 2965: 1495: 1022: 944: 272: 264: 3097: 3000: 2970: 734: 551: 388: 342: 3072: 3067: 3010: 2990: 2068: 1964: 1546: 976: 948: 675: 587: 555: 424: 350: 256: 132: 69: 2775: 3015: 2911: 2894: 2363: 2063: 2047: 2000: 1856: 1834: 1754: 697: 613: 522: 303: 260: 3171: 3025: 2980: 2284: 1203: 362: 338: 2780: 3062: 2945: 2257: 2162: 574: 169: 164: 2556: 2252: 2132: 535: 2931: 2199: 1101:
Note that the Simula standard allows for certain restrictions on the controlling variable in a
396: 65: 61: 57: 1521:
The development of .. SIMULA I and SIMULA 67... were influenced by the design of SIMSCRIPT ...
2638: 2410: 2353: 2262: 2221: 2146: 2057: 605:
In the late sixties and the early seventies, there were four main implementations of Simula:
415:. The influence of Simula is often understated, and Simula-type objects are reimplemented in 708:
is named Ole Johan Dahl's House, in Dahl's honour, and the main auditorium is named Simula.
2860: 1489: 1397:). When someone leaves the fitting room the first one (if any) is released from the queue ( 1027: 480: 465: 299: 48: 1002:
can easily be implemented. However, the default transmission mode for simple parameter is
8: 2936: 2672: 2328: 1927: 765: 559: 296: 157: 514:
of a session at the second international conference on information processing hosted by
487:
was born, a special purpose programming language for simulating discrete event systems.
2648: 2428: 2323: 2127: 2011: 1897: 1671: 1595: 999: 705: 701: 633: 98: 1624:. Oslo, Norway: Institute for Studies in Research and Higher Education. Archived from 2916: 2817: 2653: 2528: 2423: 2343: 1803: 1661: 461: 432: 408: 27: 1732: 1599: 2747: 2742: 2661: 2543: 1675: 1653: 1652:. Lecture Notes in Computer Science. Vol. 8665. Berlin: Springer. p. 68. 1587: 972: 960: 789: 726: 392: 354: 191: 967:. The execution starts by executing the main program. Simula lacks the concept of 2704: 2688: 2680: 2625: 2584: 2509: 2438: 2108: 1509: 1466: 1206:. This simulation package is based on Simula's object-oriented features and its 800:
A more realistic example with use of classes, subclasses and virtual procedures:
740:
However, the minimal program is more conveniently represented as an empty block:
539: 458: 450: 315: 103: 86: 20: 472:
joined him on his work January 1962. The decision of linking the language up to
380:. As its name suggests, the first Simula version by 1962 was designed for doing 19:
This article is about the programming language. For the village in Estonia, see
2760: 2579: 2443: 2376: 2348: 2231: 1990: 1625: 1462: 968: 964: 546: 469: 311: 91: 2466: 1703: 1657: 1476:(Report). Norwegian Computing Center. Archived from the original on 2013-12-25 3165: 3035: 2696: 2609: 2517: 2504: 2484: 2433: 2027: 1994: 1513: 1003: 983: 722: 436: 420: 3087: 2926: 2737: 2732: 2709: 2643: 2617: 2561: 2533: 2474: 2333: 1095: 1015: 1011: 995: 753: 683: 464:
for describing a system, Nygaard realized that he needed someone with more
1813: 2722: 2630: 2479: 2456: 2451: 2371: 2338: 2318: 1533: 730: 591: 526: 511: 495: 404: 153: 148: 2829: 447:
The following account is based on Jan Rune Holmevik's historical essay.
387:
Simula has been used in a wide range of applications such as simulating
2995: 2548: 2499: 2461: 1960: 1955: 1199: 752:
It begins executing and immediately terminates. The language lacks any
623: 619: 477: 381: 373:(besides inheriting subclasses) were introduced in Simula derivatives. 1591: 1105:. The above code therefore uses a while loop for maximum portability. 3092: 2184: 1970: 1950: 1935: 1207: 595: 583: 567: 499: 412: 400: 370: 358: 331: 276: 244: 196: 183: 1848: 1839: 1689: 650:
These implementations were ported to a wide range of platforms. The
2598: 2395: 2306: 2190:
Euro-Asian Council for Standardization, Metrology and Certification
2091: 2087: 1917: 1912: 1907: 1102: 629: 530: 473: 327: 240: 179: 498:
computer. At that visit, Nygaard presented the ideas of Simula to
439:, creator of Java, have acknowledged Simula as a major influence. 2985: 2975: 2083: 1985: 1980: 1975: 1014:. The source code for the Jensen's Device must therefore specify 651: 639: 208: 200: 1781: 1305:
OutFix (Time, 2, 0); OutText (": " & message); OutImage;
40: 3052: 3020: 2073: 2052: 1843: 1573:"Compiling Simula: A historical study of technological genesis" 691: 609: 503: 323: 2960: 2950: 2921: 2899: 2172: 2102: 2078: 2042: 2005: 1940: 1879: 1007: 795: 507: 476:
was made shortly after. By May 1962, the main concepts for a
416: 280: 79: 510:
fan and found the Simula project compelling. Bemer was also
494:
late May 1962 in connection with the marketing of their new
3042: 2189: 2036: 2022: 2016: 1945: 1829: 563: 307: 223: 204: 1835:(last working version at archive.org, accessed 2022-02-26) 1782:"IBM System 360/370 Compiler and Historical Documentation" 3077: 3047: 1784:(The Simula Standard and other historical documentation). 212: 594:
of concurrent computation although Simula only supports
431:, and many other languages. Computer scientists such as 302:, Simula I and Simula 67, developed in the 1960s at the 1018:
for the parameters when compiled by a Simula compiler.
1178:{\displaystyle Z=\sum _{i=1}^{100}{1 \over (i+a)^{2}}} 1116: 1030: 674:
In November 2001, Dahl and Nygaard were awarded the
2798:^ = full name and link in prior ALGOL version above 2196:
International Federation for Information Processing
1729:"ACM Ole-Johan Dahl and Kristen Nygaard - Obituary" 1461: 1253:Wait (door); door.First.Out; 516:
International Federation for Information Processing
1177: 1036: 680:Institute of Electrical and Electronics Engineers 3163: 1646: 1404:) and accordingly removed from the door queue ( 558:declarations at the IFIP Working Conference on 457:of a system. To go further with his ideas on a 2035:(ESPOL) → New Executive Programming Language ( 1350:(FittingRoom) fittingRoom1; fittingRoom1:- 2845: 1864: 1457: 1455: 1453: 1451: 892:elements (i).print; OutImage; 582:Simula was influential in the development of 2205:Society of Applied Mathematics and Mechanics 1449: 1447: 1445: 1443: 1441: 1439: 1437: 1435: 1433: 1431: 2033:Executive Systems Problem Oriented Language 644:Swedish National Defence Research Institute 330:, and was also influenced by the design of 3118: 2852: 2838: 1871: 1857: 796:Classes, subclasses and virtual procedures 378:first object-oriented programming language 16:Early object-oriented programming language 2859: 1514:"The Development of the Simula Languages" 1428: 1190:Z:= Sigma (i, 1, 100, 1 / (i + a) ** 2); 733:. It consists of one thing only; a dummy 636:'s Joint Computer Installation at Kjeller 502:, the director of systems programming at 490:Kristen Nygaard was invited to visit the 1799:An Introduction to Programming in Simula 1570: 573: 1580:IEEE Annals of the History of Computing 1508: 729:in Simula, measured by the size of the 3164: 1795: 1534:https://doi.org/10.1145/800025.1198392 1389:The fitting room object uses a queue ( 759: 590:languages. It also helped inspire the 3187:Programming languages created in 1962 2833: 2268:Massachusetts Institute of Technology 1878: 1852: 1779: 1044:which can be implemented as follows: 285:object-oriented programming languages 1619: 1187:can then be implemented as follows: 1021:Another much simpler example is the 2179:Association for Computing Machinery 2101:Small Machine ALGOL Like Language ( 688:Association for Computing Machinery 492:Eckert–Mauchly Computer Corporation 13: 1789: 716: 14: 3213: 3177:Class-based programming languages 1821: 403:, and other applications such as 3197:Simulation programming languages 3192:Science and technology in Norway 3146: 3145: 3117: 2812: 2811: 2802: 2801: 1544: 1382:The main block is prefixed with 1375:Person ("Andy"); Hold (100); 39: 1747: 1721: 989: 2776:ALGOL 58 influence on ALGOL 60 1696: 1682: 1640: 1613: 1564: 1538: 1526: 1502: 1163: 1150: 846:print; OutChar(c); 711: 1: 1650:Concurrent Objects and Beyond 1547:"Before C, What Did You Use?" 1193: 2248:Case Institute of Technology 389:very-large-scale integration 182:(primarily; some components 7: 2781:ALGOL 68 to other languages 1755:"ACM Turing Award Lectures" 1704:"Portable Simula Revisited" 1571:Holmevik, Jan Rune (1994). 676:IEEE John von Neumann Medal 588:object-oriented programming 115:; 62 years ago 10: 3218: 1773: 1204:discrete event simulations 971:, since classes with pure 943:The above example has one 698:Simula Research Laboratory 614:Norwegian Computing Center 523:Norwegian Computing Center 442: 304:Norwegian Computing Center 25: 18: 3113: 2890: 2867: 2793: 2769: 2597: 2570: 2403: 2394: 2362: 2314: 2305: 2298: 2285:Royal Radar Establishment 2277: 2240: 2214: 2161: 2154: 2145: 2118: 1926: 1896: 1887: 1840:Portable Simula Revisited 1757:. Informatik.uni-trier.de 1731:. Acm.org. Archived from 1658:10.1007/978-3-662-44471-9 1494:: CS1 maint: unfit URL ( 936:Line (rgs); rg.print; 928:Char ('b'); rgs (4):- 924:Char ('b'); rgs (3):- 920:Char ('A'); rgs (2):- 888:UpperBound (elements, 1) 670:Portable Simula Revisited 376:Simula is considered the 363:discrete event simulation 255: 250: 239: 234: 218: 190: 175: 163: 147: 143: 131: 127: 109: 97: 85: 75: 47: 38: 2258:University of St Andrews 1421: 1411:Person is a subclass of 26:Not to be confused with 2557:Adriaan van Wijngaarden 2253:University of Edinburgh 2133:Van Wijngaarden grammar 1053:Sigma (k, m, n, u); 854:Line (elements); 694:conference in Seattle. 397:communication protocols 322:, it is an approximate 176:Implementation language 138:Simula 67, Simula I 2200:IFIP Working Group 2.1 1179: 1143: 1083:s:= s + u; k:= k + 1; 1038: 777:("Hello, World!"); 579: 435:, creator of C++, and 3202:Programming languages 2861:Programming languages 2639:Cornelis H. A. Koster 2411:Roland Carl Backhouse 2354:Joseph Henry Wegstein 2263:Manchester University 2222:Burroughs Corporation 1802:, Alfred Waller Ltd, 1368:Person ("Sally"); 1180: 1123: 1039: 1037:{\displaystyle \sum } 912:rgs (1 : 4); 577: 337:Simula 67 introduced 300:programming languages 3182:Norwegian inventions 1796:Pooley, Rob (1987), 1620:Holmevik, Jan Rune. 1471:Common Base Language 1114: 1094:The above code uses 1028: 932:Char ('a'); rg:- 560:simulation languages 506:. Bemer was a great 468:skills than he had. 466:computer programming 2673:Willem van der Poel 2329:Hermann Bottenbruch 1465:; Myhrhaug, Bjørn; 1361:Person ("Sam"); 1257:; inUse:= 1231:(Head) door; 766:Hello world program 760:Classic Hello world 295:is the name of two 110:First appeared 35: 2818:Category: ALGOL 60 2649:Charles H. Lindsey 2429:Edsger W. Dijkstra 2324:Friedrich L. Bauer 2012:Dartmouth ALGOL 30 1780:Sylvester, Peter. 1622:"Compiling Simula" 1297:report (message); 1281:door.First; 1202:package for doing 1198:Simula includes a 1175: 1034: 1023:summation function 973:virtual procedures 756:from the program. 706:University of Oslo 702:research institute 634:University of Oslo 580: 367:garbage collection 355:virtual procedures 33: 3159: 3158: 3141:Non-English-based 2827: 2826: 2756: 2755: 2718: 2717: 2654:Barry J. Mailloux 2593: 2592: 2529:Jacob T. Schwartz 2424:Stephen R. Bourne 2390: 2389: 2344:Heinz Rutishauser 2294: 2293: 2141: 2140: 1667:978-3-662-44471-9 1592:10.1109/85.329756 1551:Electronic Design 1173: 961:virtual procedure 947:(Glyph) with two 462:computer language 433:Bjarne Stroustrup 409:computer graphics 369:. Other forms of 290: 289: 283:, and many other 149:Typing discipline 3209: 3172:ALGOL 60 dialect 3149: 3148: 3121: 3120: 2854: 2847: 2840: 2831: 2830: 2815: 2814: 2805: 2804: 2748:John C. Reynolds 2693:van Wijngaarden^ 2662:Lambert Meertens 2544:Bernard Vauquois 2401: 2400: 2382:Robert M. Graham 2312: 2311: 2303: 2302: 2227:Elliott Brothers 2159: 2158: 2152: 2151: 1894: 1893: 1873: 1866: 1859: 1850: 1849: 1833: 1832: 1830:Official website 1817: 1812:, archived from 1785: 1767: 1766: 1764: 1762: 1751: 1745: 1744: 1742: 1740: 1725: 1719: 1718: 1716: 1714: 1700: 1694: 1693: 1686: 1680: 1679: 1644: 1638: 1637: 1635: 1633: 1628:on 20 April 2009 1617: 1611: 1610: 1608: 1606: 1577: 1568: 1562: 1561: 1559: 1557: 1542: 1536: 1530: 1524: 1523: 1518: 1510:Nygaard, Kristen 1506: 1500: 1499: 1493: 1485: 1483: 1481: 1475: 1467:Nygaard, Kristen 1459: 1414: 1407: 1403: 1396: 1392: 1385: 1354:FittingRoom; 1313:Person (pname); 1184: 1182: 1181: 1176: 1174: 1172: 1171: 1170: 1145: 1142: 1137: 1087:; Sigma:= s; 1072:s; k:= m; 1043: 1041: 1040: 1035: 994:Simula supports 969:abstract classes 959:). There is one 958: 954: 835:Char (c); 790:case-insensitive 764:An example of a 538:and the Russian 393:process modeling 391:(VLSI) designs, 230: 227: 225: 123: 121: 116: 87:Designed by 43: 36: 32: 3217: 3216: 3212: 3211: 3210: 3208: 3207: 3206: 3162: 3161: 3160: 3155: 3109: 2886: 2863: 2858: 2828: 2823: 2808:Category: ALGOL 2800: 2789: 2786:ALGOL 68 to C++ 2765: 2752: 2714: 2705:Philip Woodward 2689:Michel Sintzoff 2681:Douglas T. Ross 2589: 2585:Kristen Nygaard 2566: 2510:John E. L. Peck 2439:Robert W. Floyd 2386: 2358: 2290: 2273: 2236: 2210: 2164: 2137: 2128:Jensen's device 2114: 2001:Burroughs ALGOL 1922: 1899: 1889:Implementations 1883: 1877: 1828: 1827: 1824: 1810: 1792: 1790:Further reading 1776: 1771: 1770: 1760: 1758: 1753: 1752: 1748: 1738: 1736: 1735:on 19 July 2011 1727: 1726: 1722: 1712: 1710: 1702: 1701: 1697: 1688: 1687: 1683: 1668: 1645: 1641: 1631: 1629: 1618: 1614: 1604: 1602: 1575: 1569: 1565: 1555: 1553: 1545:Wong, William. 1543: 1539: 1531: 1527: 1516: 1507: 1503: 1487: 1486: 1479: 1477: 1473: 1463:Dahl, Ole-Johan 1460: 1429: 1424: 1412: 1405: 1398: 1394: 1390: 1383: 1380: 1285:; door:- 1196: 1191: 1166: 1162: 1149: 1144: 1138: 1127: 1115: 1112: 1111: 1108:The following: 1092: 1029: 1026: 1025: 1000:Jensen's Device 992: 965:implementations 956: 952: 941: 914:! Main program; 904:(Glyph) rg; 798: 786: 762: 750: 725:is the minimal 719: 717:Minimal program 714: 536:Burroughs B5500 451:Kristen Nygaard 445: 365:, and featured 316:Kristen Nygaard 222: 139: 119: 117: 114: 104:Kristen Nygaard 70:object-oriented 31: 24: 21:Simula, Estonia 17: 12: 11: 5: 3215: 3205: 3204: 3199: 3194: 3189: 3184: 3179: 3174: 3157: 3156: 3154: 3153: 3143: 3138: 3133: 3128: 3114: 3111: 3110: 3108: 3107: 3100: 3095: 3090: 3085: 3080: 3075: 3070: 3065: 3060: 3055: 3050: 3045: 3040: 3039: 3038: 3028: 3023: 3018: 3013: 3008: 3003: 2998: 2993: 2988: 2983: 2978: 2973: 2968: 2963: 2958: 2953: 2948: 2943: 2942: 2941: 2940: 2939: 2934: 2919: 2914: 2909: 2908: 2907: 2897: 2891: 2888: 2887: 2885: 2884: 2879: 2874: 2868: 2865: 2864: 2857: 2856: 2849: 2842: 2834: 2825: 2824: 2822: 2821: 2794: 2791: 2790: 2788: 2783: 2778: 2773: 2771: 2767: 2766: 2764: 2763: 2761:ALGOL Bulletin 2757: 2754: 2753: 2751: 2750: 2745: 2740: 2735: 2730: 2725: 2719: 2716: 2715: 2713: 2712: 2707: 2702: 2699: 2694: 2691: 2686: 2683: 2678: 2675: 2670: 2667: 2664: 2659: 2656: 2651: 2646: 2641: 2636: 2633: 2628: 2623: 2620: 2615: 2612: 2607: 2603: 2601: 2595: 2594: 2591: 2590: 2588: 2587: 2582: 2580:Ole-Johan Dahl 2576: 2574: 2568: 2567: 2565: 2564: 2559: 2554: 2551: 2546: 2541: 2536: 2531: 2526: 2523: 2520: 2515: 2512: 2507: 2502: 2497: 2495:Carroll Morgan 2492: 2487: 2482: 2477: 2472: 2469: 2464: 2459: 2454: 2449: 2446: 2444:Jeremy Gibbons 2441: 2436: 2431: 2426: 2421: 2416: 2413: 2408: 2404: 2398: 2392: 2391: 2388: 2387: 2385: 2384: 2379: 2377:Bernard Galler 2374: 2368: 2366: 2360: 2359: 2357: 2356: 2351: 2349:Klaus Samelson 2346: 2341: 2336: 2331: 2326: 2321: 2315: 2309: 2300: 2296: 2295: 2292: 2291: 2289: 2288: 2281: 2279: 2275: 2274: 2272: 2271: 2265: 2260: 2255: 2250: 2244: 2242: 2238: 2237: 2235: 2234: 2232:Regnecentralen 2229: 2224: 2218: 2216: 2212: 2211: 2209: 2208: 2202: 2193: 2187: 2182: 2176: 2169: 2167: 2156: 2149: 2143: 2142: 2139: 2138: 2136: 2135: 2130: 2124: 2122: 2116: 2115: 2113: 2112: 2106: 2099: 2094: 2081: 2076: 2071: 2066: 2061: 2055: 2050: 2045: 2040: 2030: 2025: 2020: 2014: 2009: 2003: 1998: 1991:Atlas Autocode 1988: 1983: 1978: 1973: 1968: 1958: 1953: 1948: 1943: 1938: 1932: 1930: 1924: 1923: 1921: 1920: 1915: 1910: 1904: 1902: 1891: 1885: 1884: 1876: 1875: 1868: 1861: 1853: 1847: 1846: 1837: 1823: 1822:External links 1820: 1819: 1818: 1808: 1791: 1788: 1787: 1786: 1775: 1772: 1769: 1768: 1746: 1720: 1695: 1681: 1666: 1639: 1612: 1563: 1537: 1525: 1501: 1426: 1425: 1423: 1420: 1406:door.First.Out 1334:room"); 1216: 1195: 1192: 1189: 1169: 1165: 1161: 1158: 1155: 1152: 1148: 1141: 1136: 1133: 1130: 1126: 1122: 1119: 1046: 1033: 1006:, contrary to 991: 988: 802: 797: 794: 770: 761: 758: 742: 718: 715: 713: 710: 672: 671: 668: 665: 662: 648: 647: 637: 627: 617: 547:C. A. R. Hoare 470:Ole-Johan Dahl 444: 441: 312:Ole-Johan Dahl 288: 287: 253: 252: 248: 247: 237: 236: 232: 231: 220: 216: 215: 194: 188: 187: 177: 173: 172: 167: 161: 160: 151: 145: 144: 141: 140: 137: 135: 133:Stable release 129: 128: 125: 124: 111: 107: 106: 101: 95: 94: 92:Ole-Johan Dahl 89: 83: 82: 77: 73: 72: 54:Multi-paradigm 51: 45: 44: 15: 9: 6: 4: 3: 2: 3214: 3203: 3200: 3198: 3195: 3193: 3190: 3188: 3185: 3183: 3180: 3178: 3175: 3173: 3170: 3169: 3167: 3152: 3144: 3142: 3139: 3137: 3134: 3132: 3129: 3127: 3124: 3116: 3115: 3112: 3106: 3105: 3101: 3099: 3096: 3094: 3091: 3089: 3086: 3084: 3081: 3079: 3076: 3074: 3071: 3069: 3066: 3064: 3061: 3059: 3056: 3054: 3051: 3049: 3046: 3044: 3041: 3037: 3036:Object Pascal 3034: 3033: 3032: 3029: 3027: 3024: 3022: 3019: 3017: 3014: 3012: 3009: 3007: 3004: 3002: 2999: 2997: 2994: 2992: 2989: 2987: 2984: 2982: 2979: 2977: 2974: 2972: 2969: 2967: 2964: 2962: 2959: 2957: 2954: 2952: 2949: 2947: 2944: 2938: 2935: 2933: 2930: 2929: 2928: 2925: 2924: 2923: 2920: 2918: 2915: 2913: 2910: 2906: 2903: 2902: 2901: 2898: 2896: 2893: 2892: 2889: 2883: 2880: 2878: 2875: 2873: 2870: 2869: 2866: 2862: 2855: 2850: 2848: 2843: 2841: 2836: 2835: 2832: 2820: 2819: 2810: 2809: 2799: 2796: 2795: 2792: 2787: 2784: 2782: 2779: 2777: 2774: 2772: 2768: 2762: 2759: 2758: 2749: 2746: 2744: 2743:Peter O'Hearn 2741: 2739: 2736: 2734: 2731: 2729: 2726: 2724: 2721: 2720: 2711: 2708: 2706: 2703: 2700: 2698: 2697:Niklaus Wirth 2695: 2692: 2690: 2687: 2684: 2682: 2679: 2676: 2674: 2671: 2668: 2665: 2663: 2660: 2657: 2655: 2652: 2650: 2647: 2645: 2642: 2640: 2637: 2634: 2632: 2629: 2627: 2624: 2621: 2619: 2616: 2613: 2611: 2610:Susan G. Bond 2608: 2605: 2604: 2602: 2600: 2596: 2586: 2583: 2581: 2578: 2577: 2575: 2573: 2569: 2563: 2560: 2558: 2555: 2552: 2550: 2547: 2545: 2542: 2540: 2537: 2535: 2532: 2530: 2527: 2524: 2521: 2519: 2518:Brian Randell 2516: 2513: 2511: 2508: 2506: 2505:Maurice Nivat 2503: 2501: 2498: 2496: 2493: 2491: 2490:John McCarthy 2488: 2486: 2485:Conor McBride 2483: 2481: 2478: 2476: 2473: 2470: 2468: 2465: 2463: 2460: 2458: 2455: 2453: 2450: 2447: 2445: 2442: 2440: 2437: 2435: 2434:Andrey Ershov 2432: 2430: 2427: 2425: 2422: 2420: 2417: 2414: 2412: 2409: 2406: 2405: 2402: 2399: 2397: 2393: 2383: 2380: 2378: 2375: 2373: 2370: 2369: 2367: 2365: 2361: 2355: 2352: 2350: 2347: 2345: 2342: 2340: 2337: 2335: 2332: 2330: 2327: 2325: 2322: 2320: 2317: 2316: 2313: 2310: 2308: 2304: 2301: 2297: 2286: 2283: 2282: 2280: 2276: 2269: 2266: 2264: 2261: 2259: 2256: 2254: 2251: 2249: 2246: 2245: 2243: 2239: 2233: 2230: 2228: 2225: 2223: 2220: 2219: 2217: 2213: 2206: 2203: 2201: 2197: 2194: 2191: 2188: 2186: 2183: 2180: 2177: 2174: 2171: 2170: 2168: 2166: 2160: 2157: 2155:Organizations 2153: 2150: 2148: 2144: 2134: 2131: 2129: 2126: 2125: 2123: 2121: 2117: 2110: 2107: 2104: 2100: 2098: 2095: 2093: 2089: 2085: 2082: 2080: 2077: 2075: 2072: 2070: 2067: 2065: 2062: 2059: 2056: 2054: 2051: 2049: 2046: 2044: 2041: 2038: 2034: 2031: 2029: 2028:Elliott ALGOL 2026: 2024: 2021: 2018: 2015: 2013: 2010: 2007: 2004: 2002: 1999: 1996: 1995:Edinburgh IMP 1992: 1989: 1987: 1984: 1982: 1979: 1977: 1974: 1972: 1969: 1966: 1962: 1959: 1957: 1954: 1952: 1949: 1947: 1944: 1942: 1939: 1937: 1934: 1933: 1931: 1929: 1925: 1919: 1916: 1914: 1911: 1909: 1906: 1905: 1903: 1901: 1895: 1892: 1890: 1886: 1881: 1874: 1869: 1867: 1862: 1860: 1855: 1854: 1851: 1845: 1841: 1838: 1836: 1831: 1826: 1825: 1816:on 2004-09-19 1815: 1811: 1805: 1801: 1800: 1794: 1793: 1783: 1778: 1777: 1756: 1750: 1734: 1730: 1724: 1709: 1705: 1699: 1691: 1685: 1677: 1673: 1669: 1663: 1659: 1655: 1651: 1643: 1627: 1623: 1616: 1601: 1597: 1593: 1589: 1585: 1581: 1574: 1567: 1552: 1548: 1541: 1535: 1529: 1522: 1515: 1511: 1505: 1497: 1491: 1472: 1468: 1464: 1458: 1456: 1454: 1452: 1450: 1448: 1446: 1444: 1442: 1440: 1438: 1436: 1434: 1432: 1427: 1419: 1416: 1409: 1401: 1387: 1378: 1374: 1371: 1367: 1364: 1360: 1357: 1353: 1349: 1345: 1341: 1337: 1332: 1329: 1326: 1323: 1320: 1316: 1312: 1309:; Process 1308: 1304: 1300: 1296: 1292: 1288: 1284: 1280: 1276: 1272: 1268: 1264: 1260: 1256: 1252: 1249: 1245: 1242: 1238: 1235:inUse; 1234: 1230: 1227: 1224:FittingRoom; 1223: 1220: 1215: 1211: 1209: 1205: 1201: 1188: 1185: 1167: 1159: 1156: 1153: 1146: 1139: 1134: 1131: 1128: 1124: 1120: 1117: 1109: 1106: 1104: 1099: 1097: 1090: 1086: 1082: 1079: 1075: 1071: 1068: 1064: 1060: 1056: 1052: 1049: 1045: 1031: 1024: 1019: 1017: 1013: 1009: 1005: 1004:call by value 1001: 997: 987: 985: 982: 978: 974: 970: 966: 962: 950: 946: 939: 935: 931: 927: 923: 919: 915: 911: 907: 903: 899: 895: 891: 887: 883: 879: 875: 872: 869:print; 868: 865: 862:elements; 861: 857: 853: 849: 845: 842: 838: 834: 830: 827: 823: 820: 816: 812: 809:Glyph; 808: 805: 801: 793: 791: 784: 780: 776: 773: 769: 767: 757: 755: 748: 745: 741: 738: 736: 732: 728: 724: 723:computer file 709: 707: 703: 699: 695: 693: 689: 685: 681: 677: 669: 666: 663: 660: 659: 658: 655: 653: 645: 641: 638: 635: 631: 628: 625: 621: 618: 615: 611: 608: 607: 606: 603: 601: 598:and not true 597: 593: 589: 585: 576: 572: 569: 565: 561: 557: 553: 548: 543: 541: 537: 532: 528: 524: 519: 517: 513: 509: 505: 501: 497: 493: 488: 486: 482: 479: 475: 471: 467: 463: 460: 456: 452: 448: 440: 438: 437:James Gosling 434: 430: 426: 422: 421:Object Pascal 418: 414: 410: 406: 402: 398: 394: 390: 385: 383: 379: 374: 372: 368: 364: 360: 356: 352: 348: 344: 340: 335: 333: 329: 325: 321: 320:Syntactically 317: 313: 309: 305: 301: 298: 294: 286: 282: 278: 274: 270: 266: 262: 258: 254: 249: 246: 242: 238: 235:Influenced by 233: 229: 221: 217: 214: 210: 206: 202: 198: 195: 193: 189: 185: 181: 178: 174: 171: 168: 166: 162: 159: 155: 152: 150: 146: 142: 136: 134: 130: 126: 112: 108: 105: 102: 100: 96: 93: 90: 88: 84: 81: 78: 74: 71: 67: 63: 59: 55: 52: 50: 46: 42: 37: 29: 22: 3136:Generational 3126:Alphabetical 3122: 3102: 2927:Visual Basic 2904: 2816: 2806: 2797: 2738:Ron Morrison 2733:Tony Brooker 2710:Nobuo Yoneda 2644:Peter Landin 2626:Gerhard Goos 2618:Robert Dewar 2571: 2562:Mike Woodger 2539:David Turner 2534:Micha Sharir 2522:Rutishauser^ 2475:Peter Landin 2448:Julien Green 2419:Richard Bird 2334:Charles Katz 2165:associations 2163:Professional 2096: 1814:the original 1798: 1759:. Retrieved 1749: 1737:. Retrieved 1733:the original 1723: 1711:. Retrieved 1707: 1698: 1684: 1649: 1642: 1630:. Retrieved 1626:the original 1615: 1603:. Retrieved 1586:(4): 25–37. 1583: 1579: 1566: 1554:. Retrieved 1550: 1540: 1528: 1520: 1504: 1478:. Retrieved 1417: 1410: 1399: 1388: 1381: 1376: 1372: 1369: 1365: 1362: 1358: 1355: 1351: 1347: 1343: 1339: 1335: 1330: 1327: 1324: 1321: 1318: 1314: 1310: 1306: 1302: 1298: 1294: 1290: 1286: 1282: 1278: 1274: 1270: 1266: 1262: 1258: 1254: 1250: 1247: 1243: 1240: 1236: 1232: 1228: 1225: 1221: 1218: 1212: 1197: 1186: 1110: 1107: 1100: 1096:call by name 1093: 1088: 1084: 1080: 1077: 1073: 1069: 1066: 1062: 1058: 1054: 1050: 1047: 1020: 1016:call by name 1012:call by name 996:call by name 993: 990:Call by name 977:instantiated 942: 937: 933: 929: 925: 921: 917: 913: 909: 905: 901: 897: 893: 889: 885: 881: 877: 876:i; 873: 870: 866: 863: 859: 855: 851: 847: 843: 840: 836: 832: 828: 825: 821: 818: 814: 810: 806: 803: 799: 787: 782: 778: 774: 771: 763: 754:return value 751: 746: 743: 739: 720: 696: 684:Turing Award 673: 656: 649: 604: 581: 544: 520: 500:Robert Bemer 489: 484: 449: 446: 386: 375: 336: 292: 291: 3131:Categorical 2728:John Barnes 2723:Hal Abelson 2631:Michael Guy 2480:Tom Maibaum 2467:Jørn Jensen 2457:Eric Hehner 2452:David Gries 2372:Bruce Arden 2339:Alan Perlis 2319:John Backus 1882:programming 1490:cite report 1480:17 November 1395:Wait (door) 1277:; 1217:Simulation 1010:which used 945:super class 850:; Glyph 831:; Glyph 824:print;; 768:in Simula: 731:source code 712:Sample code 664:Lund Simula 600:concurrency 592:actor model 527:UNIVAC 1107 512:chairperson 496:UNIVAC 1107 405:typesetting 382:simulations 347:inheritance 3166:Categories 2996:JavaScript 2872:Comparison 2770:Comparison 2549:Eiiti Wada 2500:Peter Naur 2462:Tony Hoare 2278:Government 2120:Formalisms 1961:ALGOL 68RS 1956:ALGOL 68-R 1809:0632016116 1761:14 January 1739:14 January 1402:door.first 1384:Simulation 1200:simulation 1194:Simulation 1076:k <= n 949:subclasses 916:rgs (1):- 788:Simula is 721:The empty 624:System/370 620:System/360 596:coroutines 586:and later 483:were set. 478:simulation 401:algorithms 359:coroutines 351:subclasses 297:simulation 251:Influenced 158:nominative 66:structured 62:imperative 58:procedural 3093:Smalltalk 2685:Samelson^ 2658:McCarthy^ 2622:Dijkstra^ 2553:Wegstein^ 2525:Samelson^ 2241:Education 2185:BSI Group 2147:Community 2058:Kidsgrove 1971:ALGOL 68S 1951:ALGOL 68C 1936:ABC ALGOL 1900:standards 1898:Technical 1690:"GNU Cim" 1301:message; 1295:Procedure 1289:Head; 1267:Procedure 1239:request; 1237:Procedure 1214:follows: 1210:concept. 1208:coroutine 1125:∑ 1061:k, m, n; 1057:k, u; 1051:Procedure 1032:∑ 963:with two 867:Procedure 844:Procedure 837:Character 822:Procedure 815:Procedure 735:statement 661:Simula AS 584:Smalltalk 455:operation 413:education 371:subtyping 332:Simscript 277:Smalltalk 245:Simscript 226:.simula67 197:Unix-like 184:Simscript 99:Developer 49:Paradigms 3151:Category 2917:Assembly 2877:Timeline 2701:Woodger^ 2677:Randell^ 2599:ALGOL 68 2396:ALGOL 60 2307:ALGOL 58 2215:Business 2092:Napier88 2088:PS-algol 1928:Dialects 1918:ALGOL 68 1913:ALGOL 60 1908:ALGOL 58 1632:19 April 1600:18148999 1512:(1978). 1469:(1970). 1400:Activate 1370:Activate 1363:Activate 1356:Activate 1279:Activate 1273:inUse:= 1265:; 1261:; 1103:for loop 981:run-time 908:(Glyph) 858:(Glyph) 779:Outimage 630:CDC 3000 612:1100 by 556:Subclass 545:In 1966 531:ALGOL 60 485:SIMULA I 481:language 474:ALGOL 60 328:ALGOL 60 324:superset 241:ALGOL 60 180:ALGOL 60 3104:more... 3083:Scratch 2986:Haskell 2976:Fortran 2932:classic 2882:History 2614:Bourne^ 2514:Perlis^ 2407:Backus^ 2198:(IFIP) 2084:S-algol 1986:ALGOL X 1981:ALGOL W 1976:ALGOL N 1774:Sources 1713:17 June 1676:1000741 1413:Process 1344:Integer 1317:pname; 1269:leave; 1233:Boolean 1059:Integer 998:so the 975:can be 874:Integer 811:Virtual 775:OutText 727:program 686:by the 678:by the 667:GNU Cim 652:TOPS-10 640:TOPS-10 540:Ural-16 443:History 343:classes 339:objects 269:Emerald 219:Website 209:TOPS-10 201:Windows 170:Lexical 118: ( 28:Simulia 3123:Lists: 3058:Python 3053:Prolog 3031:Pascal 3021:MATLAB 3006:Kotlin 2966:Erlang 2905:Simula 2635:Hoare^ 2606:Bauer^ 2572:Simula 2415:Bauer^ 2299:People 2207:(GAMM) 2192:(EASC) 2097:Simula 2074:NELIAC 2053:JOVIAL 1844:GitHub 1806:  1708:GitHub 1674:  1664:  1605:12 May 1598:  1556:22 May 1346:u; 1246:inUse 880:i:= 1 839:c; 817:print 692:OOPSLA 626:by NCC 610:UNIVAC 525:got a 504:Univac 459:formal 411:, and 361:, and 293:Simula 273:Pascal 265:Eiffel 154:Static 76:Family 34:Simula 3098:Swift 3088:Shell 3001:Julia 2971:Forth 2961:COBOL 2922:BASIC 2900:ALGOL 2669:Peck^ 2666:Naur^ 2471:Katz^ 2287:(RRE) 2270:(MIT) 2181:(ACM) 2175:Group 2173:ALCOR 2111:ALGOL 2103:SMALL 2079:RTL/2 2060:Algol 2043:FLACC 2019:ALGOL 2006:CORAL 1941:ALCOR 1880:ALGOL 1672:S2CID 1596:S2CID 1576:(PDF) 1517:(PDF) 1474:(PDF) 1422:Notes 1342:; 1338:; 1331:Begin 1322:While 1319:Begin 1311:Class 1303:Begin 1293:; 1275:False 1271:Begin 1251:Begin 1241:Begin 1226:Begin 1222:Class 1219:Begin 1081:Begin 1074:While 1067:Begin 1008:ALGOL 984:error 910:Array 900:; 896:; 886:Until 871:Begin 864:Begin 860:Array 852:Class 841:Begin 833:Class 826:Begin 807:Class 804:Begin 772:Begin 744:Begin 700:is a 646:(FOA) 616:(NCC) 552:Class 508:ALGOL 310:, by 228:.info 165:Scope 80:ALGOL 3073:Rust 3068:Ruby 3043:Perl 3011:Lisp 2991:Java 2937:.NET 2109:SMIL 2069:Mary 2037:NEWP 2023:DG/L 2017:DASK 1965:ELLA 1946:ALGO 1804:ISBN 1763:2012 1741:2012 1715:2019 1662:ISBN 1634:2017 1607:2010 1558:2017 1496:link 1482:2020 1391:door 1325:True 1315:Text 1299:Text 1259:True 1248:Then 1070:Real 1063:Real 1055:Name 1048:Real 957:Line 955:and 953:Char 882:Step 622:and 568:type 564:Oslo 554:and 521:The 425:Java 349:and 314:and 308:Oslo 257:BETA 205:z/OS 120:1962 113:1962 3078:SQL 3048:PHP 3016:Lua 2951:C++ 2912:APL 2895:Ada 2364:MAD 2064:MAD 2048:IMP 1842:on 1654:doi 1588:doi 1408:). 1377:End 1373:New 1366:New 1359:New 1352:New 1348:Ref 1340:End 1336:End 1307:End 1291:End 1287:New 1283:End 1263:End 1255:End 1229:Ref 1140:100 1089:End 1085:End 1065:u; 938:End 934:New 930:New 926:New 922:New 918:New 906:Ref 902:Ref 898:End 894:End 878:For 856:Ref 848:End 829:End 783:End 747:End 642:by 632:by 562:in 417:C++ 326:of 306:in 281:C++ 261:CLU 224:www 213:MVS 3168:: 3026:ML 2981:Go 2956:C# 2090:, 2086:, 2008:66 1706:. 1670:. 1660:. 1594:. 1584:16 1582:. 1578:. 1549:. 1519:. 1492:}} 1488:{{ 1430:^ 1379:; 1328:Do 1244:If 1091:; 1078:Do 986:. 940:; 890:Do 884:1 819:Is 813:: 792:. 785:; 781:; 749:; 737:. 602:. 542:. 429:C# 427:, 423:, 419:, 407:, 399:, 395:, 357:, 353:, 345:, 341:, 334:. 318:. 279:, 275:, 271:, 267:, 263:, 259:, 243:, 211:, 207:, 203:, 199:, 192:OS 156:, 68:, 64:, 60:, 56:: 3063:R 2946:C 2853:e 2846:t 2839:v 2105:) 2039:) 1997:) 1993:( 1967:) 1963:( 1872:e 1865:t 1858:v 1765:. 1743:. 1717:. 1692:. 1678:. 1656:: 1636:. 1609:. 1590:: 1560:. 1498:) 1484:. 1168:2 1164:) 1160:a 1157:+ 1154:i 1151:( 1147:1 1135:1 1132:= 1129:i 1121:= 1118:Z 951:( 186:) 122:) 30:. 23:.

Index

Simula, Estonia
Simulia

Paradigms
Multi-paradigm
procedural
imperative
structured
object-oriented
ALGOL
Designed by
Ole-Johan Dahl
Developer
Kristen Nygaard
Stable release
Typing discipline
Static
nominative
Scope
Lexical
ALGOL 60
Simscript
OS
Unix-like
Windows
z/OS
TOPS-10
MVS
www.simula67.info
ALGOL 60

Text is available under the Creative Commons Attribution-ShareAlike License. Additional terms may apply.