Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > comp.compilers > #820

Re: Compiling expressions

From glen herrmannsfeldt <gah@ugcs.caltech.edu>
Newsgroups comp.compilers
Subject Re: Compiling expressions
Date 2012-12-29 23:33 +0000
Organization Aioe.org NNTP Server
Message-ID <12-12-036@comp.compilers> (permalink)
References <12-12-035@comp.compilers>

Show all headers | View raw


James Harris <james.harris.1@gmail.com> wrote:

> Compiling expressions is turning out to be more 'interesting' than I
> anticipated! My requirements I believe to be fairly generic but they
> seem not to be supported by standard algorithms so it's not as simple
> as it might be. I thought I would post here as much out of interest as
> anything. I'm not after a prebuilt solution but would be interested to
> hear from other folks who have had similar issues to address. The
> requirements are:

> 1. Hand-written, not the output of a parser generator.

An interesting requirement.

I can understand need for speed, size, and such, and maybe one
of those requires a hand-written (hand optimized) parser.

If you are so restricted, do you allow your parser to be written
in a high-level language? To be compiled by a non-handwritten
compiler?

> 2. Efficient and without backtracking.

Seems reasonable to me, though the languages has to allow for it.

> 3. Precedences (and possibly associativities) defined in tables.

Tables most easily generated automatically, by a parser generator?

> 4. Output to be a tree structure.

> 5. Parenthesised subexpressions allowed.

> 6. Some operator families are *not* to associate with each other.
>    See below.

So you generate an error when such occurs. The usual problem is
to make the error message good enough that one can figure out
what happened.

> 7. Monadic prefix, dyadic infix and monadic postfix operators are all
> allowed.

> 8. Prefix and infix operators can use some same symbols (e.g. minus
> sign).

> Infix and postfix operators use distinct symbols. For example, if a
> certain symbol were used as a postfix operator it could not also be
> used as an infix operator.

(snip)

-- glen

Back to comp.compilers | Previous | Next — Previous in thread | Next in thread | Find similar | Unroll thread


Thread

Compiling expressions James Harris <james.harris.1@gmail.com> - 2012-12-29 05:11 -0800
  Re: Compiling expressions glen herrmannsfeldt <gah@ugcs.caltech.edu> - 2012-12-29 23:33 +0000
    Re: Compiling expressions James Harris <james.harris.1@gmail.com> - 2013-01-02 09:04 -0800
      Re: Compiling expressions "matzebraun@googlemail.com" <matzebraun@googlemail.com> - 2013-01-03 07:13 -0800
      Re: Compiling expressions Horst von Brand <vonbrand@inf.utfsm.cl> - 2013-01-14 16:31 -0300
  Re: Compiling expressions "Dmitry A. Kazakov" <mailbox@dmitry-kazakov.de> - 2012-12-30 08:58 +0100
    Re: Compiling expressions James Harris <james.harris.1@gmail.com> - 2013-01-02 09:10 -0800
    Re: Compiling expressions James Harris <james.harris.1@gmail.com> - 2013-01-03 12:01 -0800
      Re: Compiling expressions "Dmitry A. Kazakov" <mailbox@dmitry-kazakov.de> - 2013-01-04 10:18 +0100
  Re: Compiling expressions torbenm@diku.dk (Torben Ægidius Mogensen) - 2013-01-03 16:49 +0100
  Re: Compiling expressions James Harris <james.harris.1@gmail.com> - 2013-01-03 13:33 -0800
    Re: Compiling expressions James Harris <james.harris.1@gmail.com> - 2013-01-06 00:57 -0800
    Re: Compiling expressions "James Harris \(es\)" <james.harris.1@gmail.com> - 2013-03-07 11:11 +0000

csiph-web