Re: StringBuilder Extension: IsQuotedBy

Barry Kelly <[email protected]> Sat, 16 Feb 2008 09:28:32 +0000
Newsgroups gmane.comp.windows.devel.dotnet.clr
Message-ID <[email protected]>
Brady Kelly <[email protected]> wrote:

> This thread has highlighted two areas of my knowledge found wanting.  The
> first is a detailed, technical understanding of CLR memory management,
> beyond simply knowledge of the generation construct,

Most of the specifics of the CLR GC I know about has come from following
blogs (ricom and maoni on blogs.msdn.com in particular) and watching the
videos of the presentations from PDC 05; as well as experience tuning
application servers in production, to get a feel for the more concrete
implications.

> and the second is
> knowledge of DFA'a and NFA's, state meachines in general, and their
> application in parsing and regex.

That page I mentioned:

http://swtch.com/~rsc/regexp/regexp1.html

... has a fairly decent brief overview of state machines, DFAs and NFAs
as applied to regex matching.

For general parsing, you usually need something more powerful than
regex, and consequentially something more than a finite automaton (the
FA above) - LALR(1) parsing uses a push-down automaton, for example.
LL(1) parsing isn't quite as powerful as LALR(1), but can be easily
hand-written, and it tends to give better error diagnostics and
recovery, in my experience.

The case for hand-writing LL(1) isn't nearly as strong as for a
tokenizer. For high-performance parsing of (usually slightly ambiguous)
languages in commercial compilers, however, hand-writing tends to be the
most prevalent.

The Dragon book - Compilers: Principles, Techniques and Tools, by Aho,
Sethi & Ullman, is the classic undergraduate text. It's strongest for
front-end stuff: tokenizing, parsing etc. The second edition, recently
published, is probably better for more recent developments in middle /
back-end, but I haven't reviewed it.

-- Barry

-- 
http://barrkel.blogspot.com/

===================================
This list is hosted by DevelopMentorĀ®  http://www.develop.com

View archives and manage your subscription(s) at http://discuss.develop.com