Stackless & String-processing
Graham Matthews
graham at sloth.math.uga.edu
Thu Jul 15 10:39:57 EDT 1999
More information about the Python-list mailing list
Thu Jul 15 10:39:57 EDT 1999
- Previous message (by thread): Stackless & String-processing
- Next message (by thread): Stackless & String-processing
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
[Neel Krishnaswami] : > If we could compose generators just like functions, then the bookkeeping : > can be abstracted away and the same approach will work for arbitrarily : > complicated parsing tasks. Tim Peters (tim_one at email.msn.com) wrote: : The latter is one of the arguments Griswold gave in the paper that : introduced Icon, contrasting Icon's uniform approach to SNOBOL4's distinct : pattern and procedural sublanguages. : : I don't think he'd make the same argument today! Icon is an idiosyncratic : delight, but most string pattern matching was in fact easier (to write, : modify, or read) in SNOBOL4. Once you start using Icon for complex pattern : matching, you'll soon discover that it's very hard to go back to old code : and disentangle "the pattern" from "the processing" -- *because* everything : looks the same, and it's all intermixed. The distinct sublanguages in : SNOBOL4 enforced a clean separation; and that was more often an aid than a : burden. As far as I understand this thread I think Neel is right, and Tim and Griswold are wrong. I have been recently doing a lot of programming with parser combinators in Clean and Haskell. They are something like what Neel is talking about (as the name "parser combinators" suggests you write small "string parsers" as functions, and then have "parser combinators" that stitch these together). Note that in this parser combinator approach there is no distinction between the code for "the pattern" and the code for "the processing" -- they are all written in the same language (Clean/Haskell in my case). At first I found the idea of having the two types of code (the pattern and the processing) in the same language (rather than in 2 distinct languages as in the traditional way) a bit difficult. But I perservered and I am glad I did. I found that once you reach a certain level of familiarity with combinators you can write new pattern and processing code very quickly and very reliably. The trick is to get the combinators right. graham -- This ain't no technological breakdown Oh no, this is the road to hell
- Previous message (by thread): Stackless & String-processing
- Next message (by thread): Stackless & String-processing
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
More information about the Python-list mailing list