Knowledge (XXG)

Execution (computing)

Source đź“ť

885: 583:
running on a digital system with a single CPU/MCU it is required to have some sort of software and hardware facilities to keep track of an executing processes data (memory page addresses, registers etc.) and to save and recover them back to the state they were in before they were suspended. This is
737:
is one language feature designed to handle runtime errors, providing a structured way to catch completely unexpected situations as well as predictable errors or unusual results without the amount of inline error checking required of languages without it. More recent advancements in runtime engines
560:
specific to the source language that provide crucial services not supplied directly by the computer itself. This supportive environment, for instance, usually decouples a program from direct manipulation of the computer peripherals, providing more general, abstract services instead.
660:, and code optimization are typically done at compile time, but may be done at runtime depending on the particular language and compiler. Many other runtime errors exist and are handled differently by different 892:
In simpler CPUs, the instruction cycle is executed sequentially, each instruction being processed before the next one is started. In most modern CPUs, the instruction cycles are instead executed
742:
which provides "root-cause" debug information for every exception of interest and is implemented independent of the source code, by attaching a special software product to the runtime engine.
707:. In some cases, a language or implementation will have these tasks done by the language runtime instead, though this is unusual in mainstream languages on common consumer operating systems. 373:. Each instruction of a program is a description of a particular action which must be carried out, in order for a specific problem to be solved. Execution involves repeatedly following a " 2305: 1014:, are designed to also emulate (or "virtually imitate") different system architectures thus allowing execution of software applications and operating systems written for another 827:
makes assumptions depending on the specific runtime system to generate correct code. Typically the runtime system will have some responsibility for setting up and managing the
1277: 992:
to share and manage hardware, allowing for multiple environments which are isolated from one another, yet exist on the same physical machine. Modern hypervisors use
881:
until the computer has shut down in order to process instructions. It is composed of three main stages: the fetch stage, the decode stage, and the execute stage.
2416: 1599: 904:: the next instruction starts being processed before the previous instruction has finished, which is possible because the cycle is broken up into separate steps. 2118: 680:
errors, and many other runtime errors generally considered as software bugs which may or may not be caught and handled by any particular computer language.
2275: 1841: 1658: 341: 726:
with real data, despite sophisticated compile-time checking and pre-release testing. In this case, the end-user may encounter a "runtime error" message.
1621: 382: 2270: 803:
have some form of runtime system that provides an environment in which programs run. This environment may address a number of issues including the
2342: 2095: 549:. Programs usually contain implicit and explicit assumptions about resources available at the time of execution. Most programs execute within 1222: 836: 3039: 2163: 1426: 1270: 3049: 2190: 1317: 1045: 964:
and provide functionality of a physical computer. Their implementations may involve specialized hardware, software, or a combination.
781: 769: 466: 415:
is used almost synonymously. A related meaning of both "to run" and "to execute" refers to the specific action of a user starting (or
449:) to produce an executable. This executable is then invoked, most often by an operating system, which loads the program into memory ( 2357: 2185: 2158: 1537: 1137: 1508: 3172: 2735: 1628: 1594: 1589: 1473: 993: 175: 3147: 3044: 2445: 2352: 2153: 1396: 1374: 1263: 784:, a piece of software that provides the programmer a more convenient environment for running programs during their production ( 334: 3208: 1892: 1327: 511: 470: 1239: 2347: 2195: 2029: 1643: 1604: 1461: 219: 2784: 2629: 2624: 2546: 2022: 1983: 1638: 1633: 1567: 1379: 844: 739: 462: 268: 1503: 2411: 2108: 1806: 1011: 812: 789: 76: 3061: 2708: 2125: 1616: 1584: 1354: 1342: 1322: 1161: 828: 657: 585: 401: 327: 3152: 3115: 3105: 1493: 1023: 677: 192: 163: 3167: 2574: 2510: 2487: 2337: 2299: 2135: 2085: 2080: 1557: 1451: 1359: 247: 169: 1364: 922:
of the program. Loosely speaking, an interpreter directly executes a program. This contrasts with a language
595:
is usually saved into a process descriptor in memory to implement switching of context. PCIDs are also used.
3120: 2903: 2797: 2761: 2678: 2662: 2504: 2293: 2252: 2240: 2103: 2017: 1938: 1703: 1307: 1019: 919: 913: 874: 792:
of an execution model being applied to the developed program which is itself then run in the aforementioned
637: 626: 622: 530: 432: 405: 300: 225: 104: 710:
Some program debugging can only be performed (or is more efficient or accurate when performed) at runtime.
315: 2926: 2898: 2808: 2773: 2522: 2516: 2498: 2232: 2226: 2130: 2034: 1925: 1864: 1726: 1369: 972: 923: 723: 510:, is a list of instructions and data to cause a computer "to perform indicated tasks according to encoded 381:. As the executing machine follows the instructions, specific effects are produced in accordance with the 274: 52: 3100: 3009: 2755: 2467: 2285: 2044: 2012: 1970: 1882: 1683: 1498: 1488: 1478: 1468: 1438: 1421: 1286: 961: 832: 580: 550: 197: 180: 408:. In this case, the "commands" are simply program instructions, whose execution is chained together. 3130: 3066: 2652: 2374: 2264: 2211: 1743: 1456: 1312: 1294: 1198: 901: 893: 800: 715: 673: 661: 358: 253: 3177: 2779: 3162: 2982: 2833: 2815: 2767: 2421: 2368: 2173: 2168: 2145: 2061: 1943: 1798: 1693: 1552: 1190: 977: 653: 579:
to work without interference and share the same hardware memory and access to the I/O system, in a
397: 69: 980:
VMs) provide a substitute for a real machine. They provide functionality needed to execute entire
3034: 3026: 2878: 2853: 2657: 2532: 2056: 1997: 1877: 1609: 1337: 897: 840: 772:
lifecycle phase of a program, during which the runtime system is in operation. When treating the
734: 693: 689: 592: 2987: 2954: 2870: 2802: 2703: 2693: 2683: 2614: 2609: 2604: 2527: 2456: 2362: 2322: 1955: 1905: 1855: 1831: 1713: 1653: 1648: 1530: 1446: 1218: 1210: 1143: 1133: 888:
This is a simple diagram illustrating the individual stages of the fetch-decode-execute cycle.
856: 804: 576: 474: 374: 525:
The exact interpretation depends upon the use. "Instructions" is traditionally taken to mean
3157: 3090: 2931: 2838: 2792: 2599: 2594: 2589: 2584: 2579: 2569: 2439: 2406: 2317: 2312: 2221: 2073: 2068: 2051: 2039: 1978: 1542: 1520: 1406: 1384: 1302: 981: 884: 820: 785: 700: 665: 615: 553: 515: 393: 389: 370: 47: 3071: 3056: 3004: 2908: 2883: 2720: 2713: 2564: 2559: 2554: 2493: 2401: 2391: 2113: 1948: 1900: 1663: 1547: 1515: 1416: 1411: 1332: 1078: 1050: 1040: 957: 935: 808: 765: 697: 669: 557: 454: 366: 229: 213: 109: 1214: 1203: 3182: 3016: 2999: 2992: 2888: 2745: 2482: 2396: 2327: 1910: 1872: 1821: 1816: 1811: 1525: 1349: 1070: 949: 751: 570: 187: 87: 1098: 545:
The context in which execution takes place is crucial. Very few programs execute on a
3202: 2977: 2893: 1933: 1915: 1708: 1401: 1186: 649: 17: 3187: 3125: 2941: 2918: 2730: 2451: 1389: 719: 641: 630: 546: 526: 442: 378: 142: 62: 2972: 2936: 2647: 2619: 2477: 2332: 1002:
are designed to execute computer programs in a platform-independent environment.
989: 711: 704: 458: 438: 283: 264: 132: 127: 465:
of the operating system. At this point execution begins and the program enters
437:
Prior to execution, a program must first be written. This is generally done in
2858: 2848: 2843: 2825: 2725: 2698: 1960: 1793: 1763: 1483: 1194: 1035: 985: 816: 486: 99: 2949: 2946: 2688: 1758: 1736: 1147: 926:
that converts a program from one language to another before it is executed.
450: 446: 147: 584:
achieved by a context switching. The running programs are often assigned a
2964: 1836: 1783: 1255: 1127: 967:
Virtual machines differ and are organized by their function, shown here:
953: 824: 645: 534: 362: 137: 57: 1773: 1731: 878: 278: 234: 640:
after or during the execution (running state) of a program, whereas a
533:. In some contexts, a file containing scripting instructions (such as 3076: 1788: 1753: 1718: 519: 259: 703:
it needs, and then the execution begins starting from the program's
2246: 1778: 1748: 883: 310: 996:, virtualization-specific hardware, primarily from the host CPUs. 3110: 2258: 2178: 1768: 1007: 718:
bounds checking are examples. For this reason, some programming
306: 243: 238: 1259: 633:. In other words, "runtime" is the running phase of a program. 1698: 1688: 1015: 1022:
allows the resources of a computer to be partitioned via the
780:(RTE), the first may be defined as a specific part of the 591:
In Linux-based operating systems, a set of data stored in
469:. The program then runs until it ends, either in a normal 625:, in which the code is being executed on the computer's 1132:. Marco Cesati (3 ed.). Sevastopol, CA: O'Reilly. 788:
and similar), while the second (RTE) would be the very
457:, and then begins execution by moving control to the 722:
are not discovered until the program is tested in a
3140: 3089: 3025: 2963: 2917: 2869: 2824: 2744: 2671: 2640: 2545: 2466: 2430: 2384: 2284: 2210: 2144: 2094: 2005: 1996: 1969: 1924: 1891: 1863: 1854: 1674: 1577: 1566: 1437: 1293: 1238:Crystal Chen, Greg Novick and Kirk Shimano (2000). 1162:"Difference between Swapping and Context Switching" 361:and software engineering is the process by which a 1202: 1026:. The terms are not universally interchangeable. 423:) a program, as in "Please run the application." 782:application software (IDE) used for programming 918:A system that executes a program is called an 461:of the program; all these steps depend on the 1271: 388:Programs for a computer may be executed in a 369:interprets and acts on the instructions of a 335: 8: 815:, mechanisms for passing parameters between 2276:Computer performance by orders of magnitude 1205:Compilers: Principles, Techniques and Tools 2741: 2381: 2002: 1860: 1574: 1278: 1264: 1256: 342: 328: 29: 377:" cycle for each instruction done by the 1006:Some virtual machine emulators, such as 1062: 676:errors, several types of underflow and 292: 205: 155: 119: 39: 32: 768:. This is not to be confused with the 764:, primarily implements portions of an 696:setup and links the program with any 648:before the program is ever executed. 537:) may also be considered executable. 502:, sometimes simply referred to as an 7: 2247:Floating-point operations per second 1121: 1119: 688:When a program is to be executed, a 1075:Merriam-Webster's Online Dictionary 835:, and may include features such as 847:features built into the language. 522:) by a program to be meaningful. 293:Notable compilers & toolchains 27:Running of a program by a computer 25: 960:. Virtual machines are based on 3173:Semiconductor device fabrication 1209:(2nd ed.). Boston, MA, US: 994:hardware-assisted virtualization 3148:History of general-purpose CPUs 1375:Nondeterministic Turing machine 730:Application errors (exceptions) 392:without human interaction or a 1328:Deterministic finite automaton 1129:Understanding the Linux Kernel 581:multitasking operating systems 1: 2119:Simultaneous and heterogenous 692:first performs the necessary 670:array subscript out of bounds 2803:Integrated memory controller 2785:Translation lookaside buffer 1984:Memory dependence prediction 1427:Random-access stored program 1380:Probabilistic Turing machine 1012:video game console emulators 740:automated exception handling 529:instructions for a physical 463:Application Binary Interface 441:, which is then compiled at 250:target-specific initializer) 92: 2259:Synaptic updates per second 811:, how the program accesses 586:Process Context IDentifiers 77:Intermediate representation 3225: 2663:Heterogeneous architecture 1585:Orthogonal instruction set 1355:Alternating Turing machine 1343:Quantum cellular automaton 933: 911: 867:fetch–decode–execute cycle 854: 749: 575:In order for programs and 568: 518:that must be interpreted ( 484: 445:(and statically linked at 430: 3153:Microprocessor chronology 3116:Dynamic frequency scaling 2271:Cache performance metrics 1126:Bovet, Daniel P. (2005). 644:error is detected by the 638:runtime error is detected 3168:Hardware security module 2511:Digital signal processor 2488:Graphics processing unit 2300:Graphics processing unit 1000:Process virtual machines 873:) is the cycle that the 614:is the final phase of a 385:of those instructions. 3121:Dynamic voltage scaling 2904:Memory address register 2798:Branch target predictor 2762:Address generation unit 2505:Physics processing unit 2294:Central processing unit 2253:Transactions per second 2241:Instructions per second 2164:Array processing (SIMT) 1308:Stored-program computer 1020:OS-level virtualization 973:System virtual machines 914:Interpreter (computing) 875:central processing unit 819:, interfacing with the 668:errors, domain errors, 627:central processing unit 433:Program lifecycle phase 301:GNU Compiler Collection 226:Common Language Runtime 2927:Hardwired control unit 2809:Memory management unit 2774:Memory management unit 2523:Secure cryptoprocessor 2517:Tensor Processing Unit 2499:Vision processing unit 2233:Cycles per instruction 2227:Instructions per cycle 2174:Associative processing 1865:Instruction pipelining 1287:Processor technologies 1099:"Machine Instructions" 962:computer architectures 889: 724:production environment 684:Implementation details 156:Compilation strategies 3209:Computing terminology 3010:Sum-addressed decoder 2756:Arithmetic logic unit 1883:Classic RISC pipeline 1837:Epiphany architecture 1684:Motorola 68000 series 1199:Ullman, Jeffrey David 1046:Runtime program phase 887: 823:, and otherwise. The 801:programming languages 776:as distinct from the 662:programming languages 453:), possibly performs 431:Further information: 181:Compile and go system 18:Execution (computers) 3131:Performance per watt 2709:replacement policies 2375:Package on a package 2265:Performance per watt 2169:Pipelined processing 1939:Tomasulo's algorithm 1744:Clipper architecture 1600:Application-specific 1313:Finite-state machine 1191:Lam, Monica Sin-Ling 902:instruction pipeline 674:arithmetic underflow 541:Context of execution 375:fetch–decode–execute 254:Java virtual machine 176:Tracing just-in-time 3163:Digital electronics 2816:Instruction decoder 2768:Floating-point unit 2422:Soft microprocessor 2369:System in a package 1944:Reservation station 1474:Transport-triggered 978:full virtualization 877:(CPU) follows from 871:fetch-execute cycle 865:(also known as the 778:runtime environment 762:runtime environment 654:register allocation 514:", as opposed to a 402:interactive session 70:Optimizing compiler 3035:Integrated circuit 2879:Processor register 2533:Baseband processor 1878:Operand forwarding 1338:Cellular automaton 890: 837:garbage collection 735:Exception handling 698:dynamically linked 577:interrupt handlers 558:run-time libraries 500:executable program 3196: 3195: 3085: 3084: 2704:Instruction cache 2694:Scratchpad memory 2541: 2540: 2528:Network processor 2457:Network on a chip 2412:Ultra-low-voltage 2363:Multi-chip module 2206: 2205: 1992: 1991: 1979:Branch prediction 1956:Register renaming 1850: 1849: 1832:VISC architecture 1654:Quantum computing 1649:VISC architecture 1531:Secondary storage 1447:Microarchitecture 1407:Register machines 1224:978-0-321-48681-3 1211:Pearson Education 1018:or architecture. 982:operating systems 863:instruction cycle 857:Instruction cycle 851:Instruction cycle 565:Context switching 352: 351: 34:Program execution 16:(Redirected from 3216: 3158:Processor design 3050:Power management 2932:Instruction unit 2793:Branch predictor 2742: 2440:System on a chip 2382: 2222:Transistor count 2146:Flynn's taxonomy 2003: 1861: 1664:Addressing modes 1575: 1521:Memory hierarchy 1385:Hypercomputation 1303:Abstract machine 1280: 1273: 1266: 1257: 1250: 1249: 1247: 1246: 1235: 1229: 1228: 1208: 1183: 1177: 1176: 1174: 1173: 1158: 1152: 1151: 1123: 1114: 1113: 1111: 1110: 1095: 1089: 1088: 1086: 1085: 1067: 990:native execution 869:, or simply the 821:operating system 666:division by zero 620: 616:computer program 554:operating system 371:computer program 344: 337: 330: 206:Notable runtimes 193:Transcompilation 40:General concepts 30: 21: 3224: 3223: 3219: 3218: 3217: 3215: 3214: 3213: 3199: 3198: 3197: 3192: 3178:Tick–tock model 3136: 3092: 3081: 3021: 3005:Address decoder 2959: 2913: 2909:Program counter 2884:Status register 2865: 2820: 2780:Load–store unit 2747: 2740: 2667: 2636: 2537: 2494:Image processor 2469: 2462: 2432: 2426: 2402:Microcontroller 2392:Embedded system 2380: 2280: 2213: 2202: 2140: 2090: 1988: 1965: 1949:Re-order buffer 1920: 1901:Data dependency 1887: 1846: 1676: 1670: 1569: 1568:Instruction set 1562: 1548:Multiprocessing 1516:Cache hierarchy 1509:Register/memory 1433: 1333:Queue automaton 1289: 1284: 1254: 1253: 1244: 1242: 1237: 1236: 1232: 1225: 1185: 1184: 1180: 1171: 1169: 1160: 1159: 1155: 1140: 1125: 1124: 1117: 1108: 1106: 1097: 1096: 1092: 1083: 1081: 1079:Merriam-Webster 1069: 1068: 1064: 1059: 1051:Program counter 1041:Run-time system 1032: 958:computer system 942:virtual machine 938: 936:Virtual machine 932: 930:Virtual machine 916: 910: 896:, and often in 859: 853: 807:of application 766:execution model 754: 748: 732: 686: 658:code generation 618: 601: 573: 567: 543: 496:executable file 492:Executable code 489: 483: 455:dynamic linking 435: 429: 367:virtual machine 348: 228:(CLR) and  214:Android Runtime 110:Virtual machine 28: 23: 22: 15: 12: 11: 5: 3222: 3220: 3212: 3211: 3201: 3200: 3194: 3193: 3191: 3190: 3185: 3183:Pin grid array 3180: 3175: 3170: 3165: 3160: 3155: 3150: 3144: 3142: 3138: 3137: 3135: 3134: 3128: 3123: 3118: 3113: 3108: 3103: 3097: 3095: 3087: 3086: 3083: 3082: 3080: 3079: 3074: 3069: 3064: 3059: 3054: 3053: 3052: 3047: 3042: 3031: 3029: 3023: 3022: 3020: 3019: 3017:Barrel shifter 3014: 3013: 3012: 3007: 3000:Binary decoder 2997: 2996: 2995: 2985: 2980: 2975: 2969: 2967: 2961: 2960: 2958: 2957: 2952: 2944: 2939: 2934: 2929: 2923: 2921: 2915: 2914: 2912: 2911: 2906: 2901: 2896: 2891: 2889:Stack register 2886: 2881: 2875: 2873: 2867: 2866: 2864: 2863: 2862: 2861: 2856: 2846: 2841: 2836: 2830: 2828: 2822: 2821: 2819: 2818: 2813: 2812: 2811: 2800: 2795: 2790: 2789: 2788: 2782: 2771: 2765: 2759: 2752: 2750: 2739: 2738: 2733: 2728: 2723: 2718: 2717: 2716: 2711: 2706: 2701: 2696: 2691: 2681: 2675: 2673: 2669: 2668: 2666: 2665: 2660: 2655: 2650: 2644: 2642: 2638: 2637: 2635: 2634: 2633: 2632: 2622: 2617: 2612: 2607: 2602: 2597: 2592: 2587: 2582: 2577: 2572: 2567: 2562: 2557: 2551: 2549: 2543: 2542: 2539: 2538: 2536: 2535: 2530: 2525: 2520: 2514: 2508: 2502: 2496: 2491: 2485: 2483:AI accelerator 2480: 2474: 2472: 2464: 2463: 2461: 2460: 2454: 2449: 2446:Multiprocessor 2443: 2436: 2434: 2428: 2427: 2425: 2424: 2419: 2414: 2409: 2404: 2399: 2397:Microprocessor 2394: 2388: 2386: 2385:By application 2379: 2378: 2372: 2366: 2360: 2355: 2350: 2345: 2340: 2335: 2330: 2328:Tile processor 2325: 2320: 2315: 2310: 2309: 2308: 2297: 2290: 2288: 2282: 2281: 2279: 2278: 2273: 2268: 2262: 2256: 2250: 2244: 2238: 2237: 2236: 2224: 2218: 2216: 2208: 2207: 2204: 2203: 2201: 2200: 2199: 2198: 2188: 2183: 2182: 2181: 2176: 2171: 2166: 2156: 2150: 2148: 2142: 2141: 2139: 2138: 2133: 2128: 2123: 2122: 2121: 2116: 2114:Hyperthreading 2106: 2100: 2098: 2096:Multithreading 2092: 2091: 2089: 2088: 2083: 2078: 2077: 2076: 2066: 2065: 2064: 2059: 2049: 2048: 2047: 2042: 2032: 2027: 2026: 2025: 2020: 2009: 2007: 2000: 1994: 1993: 1990: 1989: 1987: 1986: 1981: 1975: 1973: 1967: 1966: 1964: 1963: 1958: 1953: 1952: 1951: 1946: 1936: 1930: 1928: 1922: 1921: 1919: 1918: 1913: 1908: 1903: 1897: 1895: 1889: 1888: 1886: 1885: 1880: 1875: 1873:Pipeline stall 1869: 1867: 1858: 1852: 1851: 1848: 1847: 1845: 1844: 1839: 1834: 1829: 1826: 1825: 1824: 1822:z/Architecture 1819: 1814: 1809: 1801: 1796: 1791: 1786: 1781: 1776: 1771: 1766: 1761: 1756: 1751: 1746: 1741: 1740: 1739: 1734: 1729: 1721: 1716: 1711: 1706: 1701: 1696: 1691: 1686: 1680: 1678: 1672: 1671: 1669: 1668: 1667: 1666: 1656: 1651: 1646: 1641: 1636: 1631: 1626: 1625: 1624: 1614: 1613: 1612: 1602: 1597: 1592: 1587: 1581: 1579: 1572: 1564: 1563: 1561: 1560: 1555: 1550: 1545: 1540: 1535: 1534: 1533: 1528: 1526:Virtual memory 1518: 1513: 1512: 1511: 1506: 1501: 1496: 1486: 1481: 1476: 1471: 1466: 1465: 1464: 1454: 1449: 1443: 1441: 1435: 1434: 1432: 1431: 1430: 1429: 1424: 1419: 1414: 1404: 1399: 1394: 1393: 1392: 1387: 1382: 1377: 1372: 1367: 1362: 1357: 1350:Turing machine 1347: 1346: 1345: 1340: 1335: 1330: 1325: 1320: 1310: 1305: 1299: 1297: 1291: 1290: 1285: 1283: 1282: 1275: 1268: 1260: 1252: 1251: 1230: 1223: 1187:Aho, Alfred V. 1178: 1153: 1138: 1115: 1090: 1061: 1060: 1058: 1055: 1054: 1053: 1048: 1043: 1038: 1031: 1028: 1004: 1003: 997: 950:virtualization 934:Main article: 931: 928: 912:Main article: 909: 906: 855:Main article: 852: 849: 794:runtime system 774:runtime system 760:, also called 758:runtime system 752:Runtime system 750:Main article: 747: 746:Runtime system 744: 731: 728: 685: 682: 612:execution time 600: 597: 571:Context switch 569:Main article: 566: 563: 542: 539: 485:Main article: 482: 479: 428: 425: 350: 349: 347: 346: 339: 332: 324: 321: 320: 319: 318: 313: 304: 295: 294: 290: 289: 288: 287: 281: 272: 262: 257: 251: 241: 232: 223: 217: 208: 207: 203: 202: 201: 200: 195: 190: 188:Precompilation 185: 184: 183: 178: 167: 158: 157: 153: 152: 151: 150: 145: 140: 135: 130: 122: 121: 117: 116: 115: 114: 113: 112: 107: 102: 97: 96: 95: 88:Runtime system 80: 74: 73: 72: 67: 66: 65: 50: 42: 41: 37: 36: 26: 24: 14: 13: 10: 9: 6: 4: 3: 2: 3221: 3210: 3207: 3206: 3204: 3189: 3186: 3184: 3181: 3179: 3176: 3174: 3171: 3169: 3166: 3164: 3161: 3159: 3156: 3154: 3151: 3149: 3146: 3145: 3143: 3139: 3132: 3129: 3127: 3124: 3122: 3119: 3117: 3114: 3112: 3109: 3107: 3104: 3102: 3099: 3098: 3096: 3094: 3088: 3078: 3075: 3073: 3070: 3068: 3065: 3063: 3060: 3058: 3055: 3051: 3048: 3046: 3043: 3041: 3038: 3037: 3036: 3033: 3032: 3030: 3028: 3024: 3018: 3015: 3011: 3008: 3006: 3003: 3002: 3001: 2998: 2994: 2991: 2990: 2989: 2986: 2984: 2981: 2979: 2978:Demultiplexer 2976: 2974: 2971: 2970: 2968: 2966: 2962: 2956: 2953: 2951: 2948: 2945: 2943: 2940: 2938: 2935: 2933: 2930: 2928: 2925: 2924: 2922: 2920: 2916: 2910: 2907: 2905: 2902: 2900: 2899:Memory buffer 2897: 2895: 2894:Register file 2892: 2890: 2887: 2885: 2882: 2880: 2877: 2876: 2874: 2872: 2868: 2860: 2857: 2855: 2852: 2851: 2850: 2847: 2845: 2842: 2840: 2837: 2835: 2834:Combinational 2832: 2831: 2829: 2827: 2823: 2817: 2814: 2810: 2807: 2806: 2804: 2801: 2799: 2796: 2794: 2791: 2786: 2783: 2781: 2778: 2777: 2775: 2772: 2769: 2766: 2763: 2760: 2757: 2754: 2753: 2751: 2749: 2743: 2737: 2734: 2732: 2729: 2727: 2724: 2722: 2719: 2715: 2712: 2710: 2707: 2705: 2702: 2700: 2697: 2695: 2692: 2690: 2687: 2686: 2685: 2682: 2680: 2677: 2676: 2674: 2670: 2664: 2661: 2659: 2656: 2654: 2651: 2649: 2646: 2645: 2643: 2639: 2631: 2628: 2627: 2626: 2623: 2621: 2618: 2616: 2613: 2611: 2608: 2606: 2603: 2601: 2598: 2596: 2593: 2591: 2588: 2586: 2583: 2581: 2578: 2576: 2573: 2571: 2568: 2566: 2563: 2561: 2558: 2556: 2553: 2552: 2550: 2548: 2544: 2534: 2531: 2529: 2526: 2524: 2521: 2518: 2515: 2512: 2509: 2506: 2503: 2500: 2497: 2495: 2492: 2489: 2486: 2484: 2481: 2479: 2476: 2475: 2473: 2471: 2465: 2458: 2455: 2453: 2450: 2447: 2444: 2441: 2438: 2437: 2435: 2429: 2423: 2420: 2418: 2415: 2413: 2410: 2408: 2405: 2403: 2400: 2398: 2395: 2393: 2390: 2389: 2387: 2383: 2376: 2373: 2370: 2367: 2364: 2361: 2359: 2356: 2354: 2351: 2349: 2346: 2344: 2341: 2339: 2336: 2334: 2331: 2329: 2326: 2324: 2321: 2319: 2316: 2314: 2311: 2307: 2304: 2303: 2301: 2298: 2295: 2292: 2291: 2289: 2287: 2283: 2277: 2274: 2272: 2269: 2266: 2263: 2260: 2257: 2254: 2251: 2248: 2245: 2242: 2239: 2234: 2231: 2230: 2228: 2225: 2223: 2220: 2219: 2217: 2215: 2209: 2197: 2194: 2193: 2192: 2189: 2187: 2184: 2180: 2177: 2175: 2172: 2170: 2167: 2165: 2162: 2161: 2160: 2157: 2155: 2152: 2151: 2149: 2147: 2143: 2137: 2134: 2132: 2129: 2127: 2124: 2120: 2117: 2115: 2112: 2111: 2110: 2107: 2105: 2102: 2101: 2099: 2097: 2093: 2087: 2084: 2082: 2079: 2075: 2072: 2071: 2070: 2067: 2063: 2060: 2058: 2055: 2054: 2053: 2050: 2046: 2043: 2041: 2038: 2037: 2036: 2033: 2031: 2028: 2024: 2021: 2019: 2016: 2015: 2014: 2011: 2010: 2008: 2004: 2001: 1999: 1995: 1985: 1982: 1980: 1977: 1976: 1974: 1972: 1968: 1962: 1959: 1957: 1954: 1950: 1947: 1945: 1942: 1941: 1940: 1937: 1935: 1934:Scoreboarding 1932: 1931: 1929: 1927: 1923: 1917: 1916:False sharing 1914: 1912: 1909: 1907: 1904: 1902: 1899: 1898: 1896: 1894: 1890: 1884: 1881: 1879: 1876: 1874: 1871: 1870: 1868: 1866: 1862: 1859: 1857: 1853: 1843: 1840: 1838: 1835: 1833: 1830: 1827: 1823: 1820: 1818: 1815: 1813: 1810: 1808: 1805: 1804: 1802: 1800: 1797: 1795: 1792: 1790: 1787: 1785: 1782: 1780: 1777: 1775: 1772: 1770: 1767: 1765: 1762: 1760: 1757: 1755: 1752: 1750: 1747: 1745: 1742: 1738: 1735: 1733: 1730: 1728: 1725: 1724: 1722: 1720: 1717: 1715: 1712: 1710: 1709:Stanford MIPS 1707: 1705: 1702: 1700: 1697: 1695: 1692: 1690: 1687: 1685: 1682: 1681: 1679: 1673: 1665: 1662: 1661: 1660: 1657: 1655: 1652: 1650: 1647: 1645: 1642: 1640: 1637: 1635: 1632: 1630: 1627: 1623: 1620: 1619: 1618: 1615: 1611: 1608: 1607: 1606: 1603: 1601: 1598: 1596: 1593: 1591: 1588: 1586: 1583: 1582: 1580: 1576: 1573: 1571: 1570:architectures 1565: 1559: 1556: 1554: 1551: 1549: 1546: 1544: 1541: 1539: 1538:Heterogeneous 1536: 1532: 1529: 1527: 1524: 1523: 1522: 1519: 1517: 1514: 1510: 1507: 1505: 1502: 1500: 1497: 1495: 1492: 1491: 1490: 1489:Memory access 1487: 1485: 1482: 1480: 1477: 1475: 1472: 1470: 1467: 1463: 1460: 1459: 1458: 1455: 1453: 1450: 1448: 1445: 1444: 1442: 1440: 1436: 1428: 1425: 1423: 1422:Random-access 1420: 1418: 1415: 1413: 1410: 1409: 1408: 1405: 1403: 1402:Stack machine 1400: 1398: 1395: 1391: 1388: 1386: 1383: 1381: 1378: 1376: 1373: 1371: 1368: 1366: 1363: 1361: 1358: 1356: 1353: 1352: 1351: 1348: 1344: 1341: 1339: 1336: 1334: 1331: 1329: 1326: 1324: 1321: 1319: 1318:with datapath 1316: 1315: 1314: 1311: 1309: 1306: 1304: 1301: 1300: 1298: 1296: 1292: 1288: 1281: 1276: 1274: 1269: 1267: 1262: 1261: 1258: 1241: 1234: 1231: 1226: 1220: 1216: 1212: 1207: 1206: 1200: 1196: 1192: 1188: 1182: 1179: 1167: 1166:GeeksforGeeks 1163: 1157: 1154: 1149: 1145: 1141: 1139:0-596-00565-2 1135: 1131: 1130: 1122: 1120: 1116: 1104: 1103:GeeksforGeeks 1100: 1094: 1091: 1080: 1076: 1072: 1066: 1063: 1056: 1052: 1049: 1047: 1044: 1042: 1039: 1037: 1034: 1033: 1029: 1027: 1025: 1021: 1017: 1013: 1009: 1001: 998: 995: 991: 987: 983: 979: 976:(also termed 975: 974: 970: 969: 968: 965: 963: 959: 955: 951: 947: 943: 937: 929: 927: 925: 921: 915: 907: 905: 903: 900:, through an 899: 895: 886: 882: 880: 876: 872: 868: 864: 858: 850: 848: 846: 842: 838: 834: 830: 826: 822: 818: 814: 810: 806: 802: 797: 795: 791: 787: 783: 779: 775: 771: 767: 763: 759: 753: 745: 743: 741: 736: 729: 727: 725: 721: 717: 713: 708: 706: 702: 699: 695: 691: 683: 681: 679: 675: 671: 667: 663: 659: 655: 651: 650:Type checking 647: 643: 639: 634: 632: 628: 624: 617: 613: 609: 605: 598: 596: 594: 589: 587: 582: 578: 572: 564: 562: 559: 555: 552: 548: 540: 538: 536: 532: 528: 523: 521: 517: 513: 509: 505: 501: 497: 493: 488: 480: 478: 476: 472: 468: 464: 460: 456: 452: 448: 444: 440: 434: 426: 424: 422: 418: 414: 409: 407: 403: 399: 395: 391: 390:batch process 386: 384: 380: 376: 372: 368: 364: 360: 356: 345: 340: 338: 333: 331: 326: 325: 323: 322: 317: 314: 312: 308: 305: 302: 299: 298: 297: 296: 291: 285: 282: 280: 276: 273: 270: 266: 263: 261: 258: 255: 252: 249: 245: 242: 240: 236: 233: 231: 227: 224: 221: 218: 215: 212: 211: 210: 209: 204: 199: 198:Recompilation 196: 194: 191: 189: 186: 182: 179: 177: 174: 173: 171: 168: 165: 164:Ahead-of-time 162: 161: 160: 159: 154: 149: 146: 144: 141: 139: 136: 134: 131: 129: 126: 125: 124: 123: 120:Types of code 118: 111: 108: 106: 103: 101: 98: 94: 91: 90: 89: 86: 85: 84: 81: 78: 75: 71: 68: 64: 61: 60: 59: 56: 55: 54: 51: 49: 46: 45: 44: 43: 38: 35: 31: 19: 3188:Chip carrier 3126:Clock gating 3045:Mixed-signal 2942:Write buffer 2919:Control unit 2731:Clock signal 2470:accelerators 2452:Cypress PSoC 2109:Simultaneous 1926:Out-of-order 1558:Neuromorphic 1439:Architecture 1397:Belt machine 1390:Zeno machine 1323:Hierarchical 1243:. Retrieved 1240:"Pipelining" 1233: 1204: 1181: 1170:. Retrieved 1168:. 2021-06-10 1165: 1156: 1128: 1107:. Retrieved 1105:. 2015-11-03 1102: 1093: 1082:. Retrieved 1074: 1071:"executable" 1065: 1005: 999: 971: 966: 945: 941: 939: 917: 894:concurrently 891: 870: 866: 862: 860: 798: 793: 777: 773: 761: 757: 755: 733: 712:Logic errors 709: 687: 642:compile-time 635: 631:machine code 611: 607: 603: 602: 590: 574: 551:multitasking 547:bare machine 544: 527:machine code 524: 512:instructions 507: 503: 499: 495: 491: 490: 443:compile time 436: 420: 416: 412: 410: 387: 379:control unit 354: 353: 170:Just-in-time 143:Machine code 82: 63:Compile time 33: 2973:Multiplexer 2937:Data buffer 2648:Single-core 2620:bit slicing 2478:Coprocessor 2333:Coprocessor 2214:performance 2136:Cooperative 2126:Speculative 2086:Distributed 2045:Superscalar 2030:Instruction 1998:Parallelism 1971:Speculative 1803:System/3x0 1675:Instruction 1452:Von Neumann 1365:Post–Turing 1195:Sethi, Ravi 920:interpreter 908:Interpreter 705:entry point 471:termination 459:entry point 439:source code 406:interpreter 284:Zend Engine 265:Objective-C 133:Object code 128:Source code 105:Interpreter 53:Translation 3093:management 2988:Multiplier 2849:Logic gate 2839:Sequential 2746:Functional 2726:Clock rate 2699:Data cache 2672:Components 2653:Multi-core 2641:Core count 2131:Preemptive 2035:Pipelining 2018:Bit-serial 1961:Wide-issue 1906:Structural 1828:Tilera ISA 1794:MicroBlaze 1764:ETRAX CRIS 1659:Comparison 1504:Load–store 1484:Endianness 1245:2019-06-26 1213:. p.  1172:2022-08-10 1109:2019-09-18 1084:2008-07-19 1057:References 1036:Executable 986:hypervisor 924:translator 817:procedures 805:management 664:, such as 623:life cycle 504:executable 487:Executable 481:Executable 100:Executable 3027:Circuitry 2947:Microcode 2871:Registers 2714:coherence 2689:CPU cache 2547:Word size 2212:Processor 1856:Execution 1759:DEC Alpha 1737:Power ISA 1553:Cognitive 1360:Universal 954:emulation 948:) is the 843:or other 813:variables 701:libraries 629:(CPU) as 593:registers 516:data file 451:load time 447:link time 417:launching 411:The term 396:may type 383:semantics 355:Execution 309:and  277:and  267:and  237:and  148:Microcode 83:Execution 3203:Category 2965:Datapath 2658:Manycore 2630:variable 2468:Hardware 2104:Temporal 1784:OpenRISC 1479:Cellular 1469:Dataflow 1462:modified 1201:(2007). 1148:64549743 1030:See also 898:parallel 825:compiler 790:instance 678:overflow 672:errors, 646:compiler 608:run time 588:(PCID). 535:bytecode 498:, or an 467:run time 421:invoking 398:commands 363:computer 359:computer 222:(Erlang) 138:Bytecode 58:Compiler 3141:Related 3072:Quantum 3062:Digital 3057:Boolean 2955:Counter 2854:Quantum 2615:512-bit 2610:256-bit 2605:128-bit 2448:(MPSoC) 2433:on chip 2431:Systems 2249:(FLOPS) 2062:Process 1911:Control 1893:Hazards 1779:Itanium 1774:Unicore 1732:PowerPC 1457:Harvard 1417:Pointer 1412:Counter 1370:Quantum 879:boot-up 845:dynamic 841:threads 786:testing 770:runtime 738:enable 604:Runtime 599:Runtime 427:Process 279:Node.js 235:CPython 93:Runtime 3077:Switch 3067:Analog 2805:(IMC) 2776:(MMU) 2625:others 2600:64-bit 2595:48-bit 2590:32-bit 2585:24-bit 2580:16-bit 2575:15-bit 2570:12-bit 2407:Mobile 2323:Stream 2318:Barrel 2313:Vector 2302:(GPU) 2261:(SUPS) 2229:(IPC) 2081:Memory 2074:Vector 2057:Thread 2040:Scalar 1842:Others 1789:RISC-V 1754:SuperH 1723:Power 1719:MIPS-X 1694:PDP-11 1543:Fabric 1295:Models 1221:  1146:  1136:  1024:kernel 809:memory 694:memory 690:loader 520:parsed 508:binary 404:of an 400:in an 260:LuaJIT 172:(JIT) 3133:(PPW) 3091:Power 2983:Adder 2859:Array 2826:Logic 2787:(TLB) 2770:(FPU) 2764:(AGU) 2758:(ALU) 2748:units 2684:Cache 2565:8-bit 2560:4-bit 2555:1-bit 2519:(TPU) 2513:(DSP) 2507:(PPU) 2501:(VPU) 2490:(GPU) 2459:(NoC) 2442:(SoC) 2377:(PoP) 2371:(SiP) 2365:(MCM) 2306:GPGPU 2296:(CPU) 2286:Types 2267:(PPW) 2255:(TPS) 2243:(IPS) 2235:(CPI) 2006:Level 1817:S/390 1812:S/370 1807:S/360 1749:SPARC 1727:POWER 1610:TRIPS 1578:Types 988:uses 956:of a 829:stack 799:Most 716:array 619:' 610:, or 494:, an 475:crash 473:or a 311:Clang 303:(GCC) 286:(PHP) 269:Swift 256:(JVM) 216:(ART) 166:(AOT) 3111:ACPI 2844:Glue 2736:FIFO 2679:Core 2417:ASIP 2358:CPLD 2353:FPOA 2348:FPGA 2343:ASIC 2196:SPMD 2191:MIMD 2186:MISD 2179:SWAR 2159:SIMD 2154:SISD 2069:Data 2052:Task 2023:Word 1769:M32R 1714:MIPS 1677:sets 1644:ZISC 1639:NISC 1634:OISC 1629:MISC 1622:EPIC 1617:VLIW 1605:EDGE 1595:RISC 1590:CISC 1499:HUMA 1494:NUMA 1219:ISBN 1144:OCLC 1134:ISBN 1010:and 1008:QEMU 984:. A 861:The 833:heap 831:and 720:bugs 714:and 556:and 506:or 394:user 316:MSVC 307:LLVM 244:crt0 239:PyPy 230:Mono 220:BEAM 79:(IR) 48:Code 3106:APM 3101:PMU 2993:CPU 2950:ROM 2721:Bus 2338:PAL 2013:Bit 1799:LMC 1704:ARM 1699:x86 1689:VAX 1215:427 1016:CPU 531:CPU 419:or 413:run 365:or 357:in 3205:: 3040:3D 1217:. 1197:; 1193:; 1189:; 1164:. 1142:. 1118:^ 1101:. 1077:. 1073:. 946:VM 940:A 839:, 796:. 756:A 656:, 652:, 636:A 621:s 606:, 477:. 275:V8 271:'s 1279:e 1272:t 1265:v 1248:. 1227:. 1175:. 1150:. 1112:. 1087:. 952:/ 944:( 343:e 336:t 329:v 248:C 246:( 20:)

Index

Execution (computers)
Program execution
Code
Translation
Compiler
Compile time
Optimizing compiler
Intermediate representation
Execution
Runtime system
Runtime
Executable
Interpreter
Virtual machine
Source code
Object code
Bytecode
Machine code
Microcode
Ahead-of-time
Just-in-time
Tracing just-in-time
Compile and go system
Precompilation
Transcompilation
Recompilation
Android Runtime
BEAM
Common Language Runtime
Mono

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

↑