Knowledge

BEAM (Erlang virtual machine)

Source 📝

25: 900: 596: 43: 458:
Although BEAM was created for Erlang, several other languages have been either created for it or ported to run on it. The most popular of these is
446:
The predecessor of the BEAM was JAM (Joe's Abstract Machine), which was the first virtual machine for the Erlang language and was written by
936: 699: 385: 511: 466: 941: 494: 931: 630: 572: 439:, after Björn Gustavsson, who wrote and maintains the current version. Both developers worked on the system while at 61: 476: 219: 378: 462:, which had more responses than Erlang itself in the 2023 Stackoverflow survey. Other notable examples include: 435:, named after Bogumil "Bogdan" Hausman, who wrote the original version, but the name may also be referred to as 459: 406: 747: 482: 312: 600: 120: 498: 488: 447: 371: 273: 39: 946: 236: 207: 136: 291: 213: 344: 269: 148: 678: 359: 318: 96: 905: 723: 409: 241: 224: 126: 77: 297: 8: 654: 113: 636: 626: 578: 568: 516: 91: 402: 257: 153: 413: 231: 131: 925: 640: 582: 916: 186: 106: 910: 417: 327: 308: 176: 171: 143: 539: 501:
on the BEAM, designed and implemented by one of the creators of Erlang
772: 191: 868: 597:"Most Popular Programming Languages of 2018 - Elite Infoworld Blog" 440: 424:, which is then executed on the BEAM. BEAM bytecode files have the 421: 181: 101: 34:
provides insufficient context for those unfamiliar with the subject
796: 700:"Serialization series — Do you speak Erlang ETF or BERT? (part 1)" 470: 322: 278: 567:. Merritt, Eric., Carlsson, Richard. Stamford, CT: Manning Pub. 491:, Lisp Flavored Erlang, a lisp frontend for the Erlang compiler 303: 844: 354: 350: 287: 282: 895: 479:, a language for large-scale scientific data analysis 820: 906:
The Erlang BEAM Virtual Machine Specification, 1997
485:, a statically typed functional language for BEAM 923: 379: 16:Virtual machine in the Open Telecom Platform 917:Languages, and about languages, on the BEAM 534: 532: 512:Comparison of application virtual machines 386: 372: 62:Learn how and when to remove this message 697: 620: 562: 556: 529: 924: 748:"Stack Overflow Developer Survey 2023" 614: 623:Building web applications with Erlang 44:providing more context for the reader 18: 937:Programming language implementation 770: 679:"Confirmed Errata | O'Reilly Media" 13: 412:(OTP). BEAM is part of the Erlang 337:Notable compilers & toolchains 14: 958: 889: 453: 698:Kerjouan, Mathieu (2017-07-17). 433:Bogdan's Erlang Abstract Machine 23: 942:Register-based virtual machines 861: 837: 813: 789: 764: 437:Björn's Erlang Abstract Machine 740: 716: 691: 671: 647: 589: 431:Originally BEAM was short for 416:(ERTS), which compiles Erlang 1: 932:Erlang (programming language) 724:"Erlang BEAM Instruction Set" 522: 599:. 2018-03-30. Archived from 294:target-specific initializer) 7: 540:"The Erlang Runtime System" 505: 121:Intermediate representation 10: 963: 621:Zachary., Kessin (2012). 565:Erlang and OTP in action 563:Martin., Logan (2011). 345:GNU Compiler Collection 270:Common Language Runtime 200:Compilation strategies 625:. Beijing: O'Reilly. 410:Open Telecom Platform 225:Compile and go system 298:Java virtual machine 220:Tracing just-in-time 901:A History of Erlang 405:at the core of the 114:Optimizing compiler 40:improve the article 396: 395: 78:Program execution 72: 71: 64: 954: 947:Virtual machines 883: 882: 880: 879: 865: 859: 858: 856: 855: 841: 835: 834: 832: 831: 817: 811: 810: 808: 807: 793: 787: 786: 784: 783: 768: 762: 761: 759: 758: 744: 738: 737: 735: 734: 720: 714: 713: 711: 710: 695: 689: 688: 686: 685: 675: 669: 668: 666: 665: 651: 645: 644: 618: 612: 611: 609: 608: 593: 587: 586: 560: 554: 553: 551: 550: 536: 517:Register machine 428:file extension. 427: 388: 381: 374: 250:Notable runtimes 237:Transcompilation 84:General concepts 74: 73: 67: 60: 56: 53: 47: 27: 26: 19: 962: 961: 957: 956: 955: 953: 952: 951: 922: 921: 913:by Erik Stenman 892: 887: 886: 877: 875: 867: 866: 862: 853: 851: 843: 842: 838: 829: 827: 819: 818: 814: 805: 803: 795: 794: 790: 781: 779: 771:Facorro, Juan. 769: 765: 756: 754: 746: 745: 741: 732: 730: 722: 721: 717: 708: 706: 696: 692: 683: 681: 677: 676: 672: 663: 661: 653: 652: 648: 633: 619: 615: 606: 604: 595: 594: 590: 575: 561: 557: 548: 546: 544:happi.github.io 538: 537: 530: 525: 508: 456: 425: 414:Run-Time System 403:virtual machine 392: 272:(CLR) and  258:Android Runtime 154:Virtual machine 68: 57: 51: 48: 37: 28: 24: 17: 12: 11: 5: 960: 950: 949: 944: 939: 934: 920: 919: 914: 908: 903: 898: 896:Erlang website 891: 890:External links 888: 885: 884: 860: 836: 812: 788: 763: 752:Stack Overflow 739: 728:www.cs-lab.org 715: 690: 670: 646: 631: 613: 588: 573: 555: 527: 526: 524: 521: 520: 519: 514: 507: 504: 503: 502: 492: 486: 480: 474: 455: 454:BEAM Languages 452: 394: 393: 391: 390: 383: 376: 368: 365: 364: 363: 362: 357: 348: 339: 338: 334: 333: 332: 331: 325: 316: 306: 301: 295: 285: 276: 267: 261: 252: 251: 247: 246: 245: 244: 239: 234: 232:Precompilation 229: 228: 227: 222: 211: 202: 201: 197: 196: 195: 194: 189: 184: 179: 174: 166: 165: 161: 160: 159: 158: 157: 156: 151: 146: 141: 140: 139: 132:Runtime system 124: 118: 117: 116: 111: 110: 109: 94: 86: 85: 81: 80: 70: 69: 31: 29: 22: 15: 9: 6: 4: 3: 2: 959: 948: 945: 943: 940: 938: 935: 933: 930: 929: 927: 918: 915: 912: 911:The BEAM Book 909: 907: 904: 902: 899: 897: 894: 893: 874: 870: 864: 850: 846: 840: 826: 822: 816: 802: 798: 792: 778: 774: 767: 753: 749: 743: 729: 725: 719: 705: 701: 694: 680: 674: 660: 656: 650: 642: 638: 634: 632:9781449309961 628: 624: 617: 603:on 2018-05-09 602: 598: 592: 584: 580: 576: 574:9781933988788 570: 566: 559: 545: 541: 535: 533: 528: 518: 515: 513: 510: 509: 500: 496: 493: 490: 487: 484: 481: 478: 475: 472: 468: 465: 464: 463: 461: 451: 449: 448:Joe Armstrong 444: 442: 438: 434: 429: 423: 419: 415: 411: 408: 404: 400: 389: 384: 382: 377: 375: 370: 369: 367: 366: 361: 358: 356: 352: 349: 346: 343: 342: 341: 340: 336: 335: 329: 326: 324: 320: 317: 314: 310: 307: 305: 302: 299: 296: 293: 289: 286: 284: 280: 277: 275: 271: 268: 265: 262: 259: 256: 255: 254: 253: 249: 248: 243: 242:Recompilation 240: 238: 235: 233: 230: 226: 223: 221: 218: 217: 215: 212: 209: 208:Ahead-of-time 206: 205: 204: 203: 199: 198: 193: 190: 188: 185: 183: 180: 178: 175: 173: 170: 169: 168: 167: 164:Types of code 163: 162: 155: 152: 150: 147: 145: 142: 138: 135: 134: 133: 130: 129: 128: 125: 122: 119: 115: 112: 108: 105: 104: 103: 100: 99: 98: 95: 93: 90: 89: 88: 87: 83: 82: 79: 76: 75: 66: 63: 55: 45: 41: 35: 32:This article 30: 21: 20: 876:. Retrieved 872: 863: 852:. Retrieved 848: 839: 828:. Retrieved 824: 815: 804:. Retrieved 800: 791: 780:. Retrieved 776: 766: 755:. Retrieved 751: 742: 731:. Retrieved 727: 718: 707:. Retrieved 703: 693: 682:. Retrieved 673: 662:. Retrieved 658: 655:"erlang/otp" 649: 622: 616: 605:. Retrieved 601:the original 591: 564: 558: 547:. Retrieved 543: 469:, a port of 457: 445: 436: 432: 430: 398: 397: 263: 214:Just-in-time 187:Machine code 107:Compile time 58: 49: 38:Please help 33: 797:"Cuneiform" 418:source code 328:Zend Engine 309:Objective-C 177:Object code 172:Source code 149:Interpreter 97:Translation 926:Categories 878:2024-01-09 854:2024-01-09 830:2024-01-09 806:2024-01-09 782:2024-01-09 757:2024-01-09 733:2018-05-06 709:2018-05-06 684:2018-05-06 664:2018-05-06 607:2018-05-08 549:2018-05-05 523:References 144:Executable 801:Cuneiform 773:"Clojerl" 641:802882644 583:747046900 477:Cuneiform 353:and  321:and  311:and  281:and  192:Microcode 127:Execution 52:June 2018 506:See also 441:Ericsson 422:bytecode 266:(Erlang) 182:Bytecode 102:Compiler 869:"luerl" 821:"Gleam" 473:to BEAM 471:Clojure 467:Clojerl 401:is the 323:Node.js 279:CPython 137:Runtime 873:GitHub 849:GitHub 777:GitHub 704:Medium 659:GitHub 639:  629:  581:  571:  460:Elixir 407:Erlang 304:LuaJIT 216:(JIT) 845:"LFE" 825:Gleam 495:Luerl 483:Gleam 426:.beam 420:into 355:Clang 347:(GCC) 330:(PHP) 313:Swift 300:(JVM) 260:(ART) 210:(AOT) 637:OCLC 627:ISBN 579:OCLC 569:ISBN 399:BEAM 360:MSVC 351:LLVM 288:crt0 283:PyPy 274:Mono 264:BEAM 123:(IR) 92:Code 499:Lua 489:LFE 42:by 928:: 871:. 847:. 823:. 799:. 775:. 750:. 726:. 702:. 657:. 635:. 577:. 542:. 531:^ 497:, 450:. 443:. 319:V8 315:'s 881:. 857:. 833:. 809:. 785:. 760:. 736:. 712:. 687:. 667:. 643:. 610:. 585:. 552:. 387:e 380:t 373:v 292:C 290:( 65:) 59:( 54:) 50:( 46:. 36:.

Index

improve the article
providing more context for the reader
Learn how and when to remove this message
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

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