|
|
|
| |||||||||
![]() |
|
|
«
Previous Thread
|
Next Thread
»
|
Thread Tools | Search this Thread | Display Modes |
|
#1
|
|||
|
|||
|
LR(k) parser generator for k>1?
I have searched on Internet and the comp.compilers news group for
LR(k) parser generator implementation where k 1. The most important theorectical work since 1980s seem to include those of M. Ancona (1980s-1990s) and Terence Parr (1993). Many people share Terence's idea of splitting the atomic k-tuple. The LR(k) implementation attempts I could find so far include: - Lark of the Cocktail Toolbox. By Josef Grosch. 1995. His online comment said It was practical for medium size grammars only for LR(1). LR(k) was even more expensive. - LR(1). Gofer. By Bob Buckley. 1995. He said It was a long way from being production software though. - Ancona et. al. also claimed to have an implementation, but so further information is available. - In 2005 Karsten Nyblad was planning to work on a LR(k) parser generator. No more information available. - Yacc++ by Chris F Clark implemented LR(k) but it seemed to have an infinite loop issue. - Ralph Boland was working something in this direction. - MSTA of the CCM toolset implemented LR(k) in 1998 and claimed to be efficient. It seems the only one that claims to be fully functional and efficient is MSTA. Anyone used it and how was it like? Would it be meaningful to implement one? I'm very interested to know. Thanks, Tom |
|
#2
|
|||
|
|||
|
LR(k) parser generator for k>1?
Tom wrote:
I have searched [] for LR(k) parser generator implementation where k 1. Would it be meaningful to implement one? I'm very interested to know. From the point of view of practial programming, GLR might be preferred. For example Bison has one based on LALR(1). Hans |
|
#3
|
|||
|
|||
|
LR(k) parser generator for k>1?
Hi Chris, thanks a lot for your reply!
I agree with your opinion on the segmentation issue of the parser generators. I have tried some myself and found it hard to start using all of them in a short time due to different input format. Right now I'm working on Hyacc and it tries to keep a consistent interface with Yacc and Bison, so hopefully easier to use. Now indeed there is the danger of this turned into unattended legacy code, since even though I'm working hard I'm the only one working on it so far. I agree with you that the default choice is probably BISN. If they agree then I'll be very willing to combine this into BISN at a later time when I'm not so exclusively occupied with my academic effort. It seems that Yacc++ is a highly respectable commercial parser generator besides the free version. You also contacted Karsten Nyblad in 2005 for a similar request on basing the LR(k) implementation on Yacc Now Hyacc almost has the framework of incorporating the paths to LR(k), and BISN is the default choice, so I don't feel the immediate urge to digress to Yacc++ at this time. I believe you can understand this. Also at this time LR(k) is more of an experimentation to try, I know many attempts to LR(k) didn't turn out very well. Given how I need to concentrate on the target itself instead of getting warmed up to a new platform, I prefer to keep what I'm doing now rather than switching to something else. That said, I'm very interested in this field and also very willing to exchange ideas with people. I would be most glad to be able to have more communication with you on various issues and possibilities of LR(k). I'll see how lucky I am. Look forward to more communication with you. Best regards, Tom |
![]() |
| Viewing: Web Development Archives > FAQs > Compilers > LR(k) parser generator for k>1? |
| Thread Tools | Search this Thread |
| Display Modes | Rate This Thread |
|
|
|
|