Knowledge

Talk:LALR parser

Source 📝

459:(which was short). But my email at home is busted so I can't put it here yet. *sigh*. LALR stands for Lookahead LR and is a method for producing LR parsers. LR stands for Left-to-right scan, Rightmost derivation. 2nd ed Dragon does not use the term LALR parser, and neither do I so I'm not sure what one is; I assume it is an LR parser produced by the LALR method? Sorry I used the term "rubbish" because the original entry certainly is not. -- 151: 74: 53: 22: 487:, p. 24) that the "LL" and "LR" naming convention was introduced by Knuth. Might also mention that the "LR" in stands for "L" = "Left-to-Right" and "R" = "Rightmost production", and explain what that means. BTW, the "Gold", "Anagram", etc., software packages are LALR. You might want to add some references: 882:
The confusion about XPL's date is because the initial implementation of XPL used a different parser generator based on "extended mixed strategy precedence", a type of precedence parser. XPL switched over to the more powerful LALR methods a few years later. That happened at UC Santa Cruz, so DeRemer
516:
About LR parser versus LALR parser ... The parsing algorithm for an LALR parser is actually different than the parsing algorithm for an LR parser. An LALR parser has to save the reductions it makes in case of error recovery, whereas an LR parser does not have to save the reductions (it does not make
773:
for merging. The resultant article would have to have two enormous sections within it that are quite separate. You might argue (with some justification) that this is the most readable article structure -- however these are still two different topics, on two different tools, and need to be treated as
760:
an alternative name. No question about it. The two concepts are quite different: one is a tool, the another is a different tool, used to make examples of the first (it's easier to do it this way). There is no justification to merge because they're "the same thing" or "alternate names". That's simply
465:
A parser constructed by the LALR technique has tables the size of an LR(0) parser, yet is far more powerful and useful, which I think makes it a legitimate parser classification. It is also common enough (being produced by YACC) that the classification is useful in practice. The term "LALR parser"
969:
I am making this request because Knowledge is for public consumption, not just for us compugeeks. The terminology and the complexity of the sentences in the introduction that a normal person would probably go catatonic trying to figure out what it meant and, if that didn't happen, they'd spend the
520:
Finally ... LALR parsers can be used for context-sensitive languages, like C++, if the parser generator has advanced capability for integrating symbol-table lookups with dynamic grammar symbols. I'm pretty sure ANTLR has this capability. I know that my parser generator has this advanced feature.
799:
have distinct use cases because nobody writes LALR parsers by hand except when working out textbook examples: every LALR parser is produced by an LALR parser generator, and every LALR parser generator produces LALR parsers. Most importantly, an LALR parser, an SLR parser, and an NQLALR parser are
863:
The article used to read "The original and most widely known parser generator was yacc, developed on the UNIX operating system." The "LALR Parser Generator" article (LALR_parser_generator) gave dates for XPL as 1970 and yacc as 1975. I changed the date for XPL there to 1968 to correspond to the
505:
I just rewrote most of the article, trying to keep the previous text in the article when appropriate. This is a confusing subject for many people and I would like to have an accurate and precise article in Knowledge, so that people can use it to understand the subject. I have about 30 years of
620:
I think it's OK to have a separate page for LALR parser generator. A program that generates a parser is quite different from a parser. People have a lot of trouble figuring out this concept, computer generated software. If the two drastically different programs are combined into one page, the
878:
DeRemer implemented the first LALR parser generator as part of his thesis that invented LALR. He then turned that parser generator into the core component of a proprietary compiler writing system called Metaware, sold and supported by his company of that name. Metaware was coded in their own
172: 429:
So there's some precedent for calling something an "LALR parser" since they did it throughout the book and there are five citations, some of them multi-page, in the index for that phrase. I didn't create the initial entry, but I was kinda irked at the tone of the comment
879:
dialect of Pascal. Yacc, written in C, was developed by Stephen Johnson of AT&T Bell Labs, from published articles and maybe DeRemer's excellent thesis. I don't know if the early Metaware generator preceded or followed the initial implementation of yacc.
437:
Okay. I am intending to use my Dragon Book when I write the article so no doubt I would've found all this out anyway. "Recursing on the rightmost non-terminal in any grammar rule" is not really a good definition of producins a rightmost derivation BTW.
406:. Immediate issues: LALR is an algorithm for generating tables for a table driven LR shift reduce parser. It is not a parser (ooh except maybe the Natural Language community think it is). pretty sure the derivation of each of the letters is wrong.)) 648:
parser generators are distinct from, have quite different use cases, and have a very different history. If we develop these articles to a size where they'll cover the same ground, they'll also have enough detail to be even more distinct.
804:
arise from the manner in which the parsers were generated, so there is nothing interesting to be said about LALR parsers besides how they are generated. I still think merging these articles makes more sense than keeping them separate.
864:
original FJCC paper, but in either case yacc is not the "original" unless an earlier date is established, so I deleted this sentence. I'd accept "most widely known," except that now there are lots, starting with Gnu Bison.
970:
next 6 years learning all the terminology necessary just to start to understand it. A bit of hyperbole, actually, but I think you get my point. PLEASE "dumb down" the explanation for the mere mortals. Thanks!!!!
741:. But after I checked "what links here" and found the merger discussion I thought that I'd instead let you know that your opportunity to shine, and to demonstrate what you envisaged last year, has come. ☺ 764:
There is an argument (which I don't support, but I do recgonise it) that these are very closely related. One indeed cannot exist without the other. If we also recognise that the current article state (NB,
506:
experience implementing an LALR parser generator, so I have first hand knowledge of this subject. It was a long hard learning experience and I offer my explanations for the benefit of others.
196: 336: 827:
The article gives some idea of what an LALR parser is (well, this is obvious enough when the acronym is expanded). But LALR(1) and LALR(2) are then mentioned — what are these?
253: 191: 1161: 114: 480:
How about some information on DFA and state transition? Maybe a comparison to LL and LR parsing techniques? Niklaus Wirth states (in his book "Compiler Construction",
124: 1166: 1075: 1071: 1057: 795:
have different history from LALR parser generators. They were both invented in theory in 1969 by Frank DeRemer, and in practice during the 1970s. They also do
448:
seemed to imply. I agree recursing isn't the best way to describe it. Hm.. maybe I should go look at the stuff I said was rubbish and make sure I wasn't wrong.
90: 1156: 298: 703: 698: 707: 272: 1033: 690: 137: 81: 58: 361: 1043: 466:
is also unambiguous, and (above all else) is in common usage, and so I think the objection to its use in Knowledge is somewhat pedantic. --
828: 922:. In addition, I don't like "based on a finite-state-automata concept" in the first sentence. I suggest for the first two sentences: "In 1134: 244: 1053:
When you have finished reviewing my changes, you may follow the instructions on the template below to fix any issues with the URLs.
484: 225: 898:
Are you sure DeRemer wrote an LALR parser generator for his 1969 thesis? I can't find a reference to that in the dissertation. --
421:
ightmost derivation in reverse ... The third method, called lookahead LR (LALR for short) ... the LALR parser of Fig. 6.13 ..." --
513:
page that I created for Knowledge. Afterall, an LALR parser is not concerned with the computation of LALR(1) look-ahead sets.
545: 317: 409:
Hmmm. Looking at an old copy of the Dragon Book (which I've heard is pretty well respected in the field, but I may be wrong):
1133:
I've always heard it pronounced "laller" rather than "el-ay-el-ar" but it is hard to get a reference for this either way.
1118: 282: 163: 33: 670:
Subsequent comments should be made in a new section on this talk page. No further edits should be made to this section.
570:
Subsequent comments should be made in a new section on the talk page. No further edits should be made to this section.
738: 292: 206: 509:
About the detailed discussion of the LALR parser table construction algorithms ... I think that should belong to the
694: 327: 89:
related articles on Knowledge. If you would like to participate, please visit the project page, where you can join
737:
I almost just redirected it, given that it's at the very least a valid alternative title and currently largely a
354: 1074:
to delete these "External links modified" talk page sections if they want to de-clutter talk pages, but see the
832: 1138: 1034:
https://web.archive.org/web/20100804231352/http://www.cse.ohio-state.edu/~gurari/course/cse756/cse756su56.xht
1109: 1025: 1021: 782: 654: 1044:
https://web.archive.org/web/20100723153301/http://www.cse.ohio-state.edu/~gurari/course/cse756/cse756.xht
1093:
If you have discovered URLs which were erroneously considered dead by the bot, you can report them with
1081: 998: 869: 686: 602: 517:
any erroneous reductions). However, an SLR parser algorithm is the same as an LALR parser algorithm.
510: 496: 263: 39: 1024:. If you have any questions, or need the bot to ignore the links, or the page altogether, please visit 955: 605:. Once fully developed, these two articles are certain to have more similarities than differences. -- 800:
all identical pieces of software differing only in the edges in their automata, and those differences
1037: 943: 939: 586: 533: 21: 975: 541: 951: 1047: 947: 884: 474: 1078:
before doing mass systematic removals. This message is updated dynamically through the template
1094: 993:(i.e. why would I be interested in this), then get to the technical stuff in a later paragraph. 903: 810: 778: 746: 650: 634: 610: 481: 182: 994: 923: 888: 865: 234: 86: 1101: 769:
state, not topic or potential state) explains little difference, then there is an argument
582: 677:
From my talk page. As the merge was rejected, the generator article has no been prodded.
1060:, "External links modified" talk page sections are no longer generated or monitored by 971: 919: 622: 537: 524: 308: 150: 1100:
If you found an error with any archives or the URLs themselves, you can fix them with
521:
So I don't think Knowledge should say that LALR is not good for C++ type languages.
173:
Requested articles/Applied arts and sciences/Computer science, computing, and Internet
1150: 899: 806: 742: 630: 606: 467: 724: 402:((This is rubbish, I will try to write something at the weekend (2001-08-18). -- 1067: 1017: 883:
was very likely involved in the coding of that generator (written in XPL) also.
848: 598: 456: 431: 1066:. No special action is required regarding these talk page notices, other than 836: 935: 843: 452: 215: 73: 52: 460: 445: 439: 403: 965:
Please make the introductory explanation of LALR parser....introductory
488: 413:"These parsers are called LR parsers because they scan the input from 777:
The literature on these is vast, and there is no issue of sourcing.
451:
OK, I looked at my Dragon Book (2nd ed, BTW) and wrote the articles
1142: 1123: 1002: 979: 959: 907: 892: 873: 852: 814: 786: 750: 658: 638: 614: 590: 549: 499: 473:
Your source material link (to an Oberlin CS lecture) is dead. :( --
1038:
http://www.cse.ohio-state.edu/~gurari/course/cse756/cse756su56.xht
666:
The above discussion is preserved as an archive of the proposal.
791:
Andy, you're splitting hairs. LALR parsers most definitely do
492: 1048:
http://www.cse.ohio-state.edu/~gurari/course/cse756/cse756.xht
291:
Find pictures for the biographies of computer scientists (see
15: 1028:
for additional information. I made the following changes:
720: 716: 712: 985:
Not a bad idea. Somehow describe what an LALR parser
564:
The following is a closed discussion of the proposal.
444:
Well, I guess my definition was not TOTAL RUBBISH, as
629:
I think the parser generator can be a section here.
85:, a collaborative effort to improve the coverage of 1070:using the archive tool instructions below. Editors 197:Computer science articles needing expert attention 1056:This message was posted before February 2018. 337:WikiProject Computer science/Unreferenced BLPs 8: 621:people will be more confused than ever. -- 254:Computer science articles without infoboxes 192:Computer science articles needing attention 158:Here are some tasks awaiting attention: 132: 47: 1162:High-importance Computer science articles 1016:I have just modified 2 external links on 399:Talk moved; was originally on head page. 49: 19: 99:Knowledge:WikiProject Computer science 1167:WikiProject Computer science articles 597:There's no need to have one page for 102:Template:WikiProject Computer science 7: 731: 489:http://www.devincook.com/goldparser/ 79:This article is within the scope of 38:It is of interest to the following 273:Timeline of computing 2020–present 14: 1157:B-Class Computer science articles 1020:. Please take a moment to review 842:The number in parenthesis is the 299:Computing articles needing images 946:used in the LALR parsers is the 732:Talk:LALR parser#Merger proposal 149: 72: 51: 20: 575:The result of the proposal was 119:This article has been rated as 1: 1143:01:43, 10 February 2019 (UTC) 1124:07:35, 14 December 2017 (UTC) 1003:13:53, 26 February 2012 (UTC) 980:13:16, 26 February 2012 (UTC) 837:15:10, 24 December 2010 (UTC) 615:02:39, 23 February 2010 (UTC) 591:14:05, 24 November 2011 (UTC) 550:22:12, 9 September 2009 (UTC) 423:Principles of Compiler Design 417:eft-to-right and construct a 353:Tag all relevant articles in 93:and see a list of open tasks. 960:12:18, 2 February 2012 (UTC) 500:21:26, 7 February 2007 (UTC) 493:http://www.parsifalsoft.com/ 362:WikiProject Computer science 138:WikiProject Computer science 82:WikiProject Computer science 914:PDA is not a data structure 874:19:26, 6 October 2011 (UTC) 659:00:10, 23 August 2011 (UTC) 293:List of computer scientists 1183: 1087:(last update: 5 June 2024) 1013:Hello fellow Wikipedians, 908:01:15, 2 August 2014 (UTC) 815:01:11, 2 August 2014 (UTC) 771:on that narrow basis alone 477:11:31, Jan 30, 2006 (UTC) 470:16:33, Sep 17, 2004 (UTC) 125:project's importance scale 853:12:50, 8 March 2011 (UTC) 787:15:26, 29 June 2012 (UTC) 751:14:17, 29 June 2012 (UTC) 639:12:27, 8 March 2011 (UTC) 355:Category:Computer science 131: 118: 105:Computer science articles 67: 46: 822: 668:Please do not modify it. 567:Please do not modify it. 455:(which was longish) and 357:and sub-categories with 1129:Pronunciation of "LALR" 1009:External links modified 893:04:18, 9 May 2012 (UTC) 511:LALR parser gernerator 318:Computer science stubs 28:This article is rated 940:Finite-state machines 687:LALR parser generator 603:LALR parser generator 577:no consensus to merge 1068:regular verification 989:rather than what it 944:Model of computation 932:look-ahead LR parser 136:Things you can help 1058:After February 2018 1112:InternetArchiveBot 1063:InternetArchiveBot 948:pushdown automaton 680:The time has come. 34:content assessment 1088: 739:duplicate article 553: 536:comment added by 392: 391: 388: 387: 384: 383: 380: 379: 376: 375: 1174: 1122: 1113: 1086: 1085: 1064: 924:computer science 728: 710: 601:and another for 569: 552: 530: 425:, Aho and Ullman 395:Initial comments 366: 360: 235:Computer science 164:Article requests 153: 146: 145: 133: 107: 106: 103: 100: 97: 96:Computer science 87:Computer science 76: 69: 68: 63: 59:Computer science 55: 48: 31: 25: 24: 16: 1182: 1181: 1177: 1176: 1175: 1173: 1172: 1171: 1147: 1146: 1131: 1116: 1111: 1079: 1072:have permission 1062: 1026:this simple FaQ 1011: 967: 934:) is a type of 916: 861: 825: 823:What's LALR(1)? 767:current article 701: 685: 674: 565: 559: 557:Merger proposal 531: 397: 372: 369: 364: 358: 346:Project-related 341: 322: 303: 277: 258: 239: 220: 201: 177: 121:High-importance 104: 101: 98: 95: 94: 62:High‑importance 61: 32:on Knowledge's 29: 12: 11: 5: 1180: 1178: 1170: 1169: 1164: 1159: 1149: 1148: 1130: 1127: 1106: 1105: 1098: 1051: 1050: 1042:Added archive 1040: 1032:Added archive 1010: 1007: 1006: 1005: 966: 963: 920:data structure 915: 912: 911: 910: 860: 857: 856: 855: 829:89.217.239.233 824: 821: 820: 819: 818: 817: 775: 762: 735: 734: 729: 682: 681: 678: 673: 672: 662: 661: 642: 641: 626: 625: 596: 594: 580: 573: 572: 560: 558: 555: 528: 503: 436: 427: 426: 396: 393: 390: 389: 386: 385: 382: 381: 378: 377: 374: 373: 371: 370: 368: 367: 350: 342: 340: 339: 333: 323: 321: 320: 314: 304: 302: 301: 296: 288: 278: 276: 275: 269: 259: 257: 256: 250: 240: 238: 237: 231: 221: 219: 218: 212: 202: 200: 199: 194: 188: 178: 176: 175: 169: 157: 155: 154: 142: 141: 129: 128: 117: 111: 110: 108: 91:the discussion 77: 65: 64: 56: 44: 43: 37: 26: 13: 10: 9: 6: 4: 3: 2: 1179: 1168: 1165: 1163: 1160: 1158: 1155: 1154: 1152: 1145: 1144: 1140: 1136: 1135:198.91.146.14 1128: 1126: 1125: 1120: 1115: 1114: 1103: 1099: 1096: 1092: 1091: 1090: 1083: 1077: 1073: 1069: 1065: 1059: 1054: 1049: 1045: 1041: 1039: 1035: 1031: 1030: 1029: 1027: 1023: 1019: 1014: 1008: 1004: 1000: 996: 992: 988: 984: 983: 982: 981: 977: 973: 964: 962: 961: 957: 953: 949: 945: 941: 937: 933: 929: 925: 921: 918:PDA is not a 913: 909: 905: 901: 897: 896: 895: 894: 890: 886: 880: 876: 875: 871: 867: 858: 854: 851: 850: 845: 841: 840: 839: 838: 834: 830: 816: 812: 808: 803: 798: 794: 790: 789: 788: 784: 780: 776: 772: 768: 763: 759: 755: 754: 753: 752: 748: 744: 740: 733: 730: 726: 722: 718: 714: 709: 705: 700: 696: 692: 688: 684: 683: 679: 676: 675: 671: 669: 664: 663: 660: 656: 652: 647: 644: 643: 640: 636: 632: 628: 627: 624: 619: 618: 617: 616: 612: 608: 604: 600: 593: 592: 588: 584: 578: 571: 568: 562: 561: 556: 554: 551: 547: 543: 539: 535: 527: 526: 522: 518: 514: 512: 507: 502: 501: 498: 497:12.110.196.19 494: 490: 486: 485:0-201-40353-6 483: 478: 476: 475:utopianheaven 471: 469: 463: 462: 458: 454: 449: 447: 442: 441: 434: 433: 424: 420: 416: 412: 411: 410: 407: 405: 400: 394: 363: 356: 352: 351: 349: 347: 343: 338: 335: 334: 332: 330: 329: 324: 319: 316: 315: 313: 311: 310: 305: 300: 297: 294: 290: 289: 287: 285: 284: 279: 274: 271: 270: 268: 266: 265: 260: 255: 252: 251: 249: 247: 246: 241: 236: 233: 232: 230: 228: 227: 222: 217: 214: 213: 211: 209: 208: 203: 198: 195: 193: 190: 189: 187: 185: 184: 179: 174: 171: 170: 168: 166: 165: 160: 159: 156: 152: 148: 147: 144: 143: 139: 135: 134: 130: 126: 122: 116: 113: 112: 109: 92: 88: 84: 83: 78: 75: 71: 70: 66: 60: 57: 54: 50: 45: 41: 35: 27: 23: 18: 17: 1132: 1110: 1107: 1082:source check 1061: 1055: 1052: 1015: 1012: 990: 986: 968: 931: 927: 917: 881: 877: 862: 847: 826: 801: 796: 792: 779:Andy Dingley 770: 766: 757: 736: 667: 665: 651:Andy Dingley 645: 595: 576: 574: 566: 563: 529: 523: 519: 515: 508: 504: 479: 472: 464: 450: 443: 435: 428: 422: 418: 414: 408: 401: 398: 345: 344: 328:Unreferenced 326: 325: 307: 306: 281: 280: 262: 261: 243: 242: 224: 223: 205: 204: 181: 180: 162: 161: 120: 80: 40:WikiProjects 1018:LALR parser 995:Peter Flass 942:(FSM). The 928:LALR parser 866:Peter Flass 623:Paul B Mann 599:LALR parser 532:—Preceding 525:Paul B Mann 457:LALR parser 1151:Categories 1119:Report bug 761:incorrect. 583:Yellowdesk 1102:this tool 1095:this tool 972:ReveurGAM 950:(PDA)." 938:based on 936:LR parser 859:Earliest? 844:lookahead 538:Paulbmann 453:LR parser 216:Computing 1108:Cheers.— 756:This is 546:contribs 534:unsigned 264:Maintain 207:Copyedit 1022:my edit 952:Ginandi 900:Doradus 807:Doradus 743:Uncle G 704:protect 699:history 631:Sae1962 607:Doradus 468:Doradus 245:Infobox 183:Cleanup 123:on the 30:B-class 885:DBSand 849:Allen3 708:delete 646:Oppose 495:, etc. 226:Expand 36:scale. 926:, an 774:such. 725:views 717:watch 713:links 309:Stubs 283:Photo 140:with: 1139:talk 999:talk 987:does 976:talk 956:talk 930:(or 904:talk 889:talk 870:talk 846:. -- 833:talk 811:talk 783:talk 747:talk 721:logs 695:talk 691:edit 655:talk 635:talk 611:talk 587:talk 542:talk 482:ISBN 115:High 1076:RfC 1046:to 1036:to 802:all 797:not 793:not 758:not 461:drj 446:drj 440:drj 432:loh 404:drj 1153:: 1141:) 1089:. 1084:}} 1080:{{ 1001:) 991:is 978:) 958:) 906:) 891:) 872:) 835:) 813:) 805:-- 785:) 749:) 723:| 719:| 715:| 711:| 706:| 702:| 697:| 693:| 657:) 637:) 613:) 589:) 581:-- 579:. 548:) 544:• 491:, 438:-- 430:-- 365:}} 359:{{ 1137:( 1121:) 1117:( 1104:. 1097:. 997:( 974:( 954:( 902:( 887:( 868:( 831:( 809:( 781:( 745:( 727:) 689:( 653:( 633:( 609:( 585:( 540:( 419:r 415:l 348:: 331:: 312:: 295:) 286:: 267:: 248:: 229:: 210:: 186:: 167:: 127:. 42::

Index


content assessment
WikiProjects
WikiProject icon
Computer science
WikiProject icon
WikiProject Computer science
Computer science
the discussion
High
project's importance scale
WikiProject Computer science

Article requests
Requested articles/Applied arts and sciences/Computer science, computing, and Internet
Cleanup
Computer science articles needing attention
Computer science articles needing expert attention
Copyedit
Computing
Expand
Computer science
Infobox
Computer science articles without infoboxes
Maintain
Timeline of computing 2020–present
Photo
List of computer scientists
Computing articles needing images
Stubs

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