Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > comp.compilers > #3455
| From | gah4 <gah4@u.washington.edu> |
|---|---|
| Newsgroups | comp.compilers |
| Subject | Re: Deep expression chain performance |
| Date | 2023-04-26 13:06 -0700 |
| Organization | Compilers Central |
| Message-ID | <23-04-014@comp.compilers> (permalink) |
| References | <23-04-012@comp.compilers> |
On Tuesday, April 25, 2023 at 9:21:44 AM UTC-7, Andy wrote: > I am writing C grammar. > Grammar speed may be down caused by deep expression chain. > For example, simple "n=0" has 20 levels: > assignmentExpression > conditionalExpression > logicalOrExpression > logicalAndExpression > inclusiveOrExpression > exclusiveOrExpression > andExpression > eqaulityExpression > relationalExpression > shiftExpression > additiveExpression > multiplicativeExpression > castExpression > unaryExpression > postfixExpression > postfixExpressionLeft > atom > literal > IntegerConstant > DeciamlConstant A not unusual compiler design in the olden (small memory) days, is recursive descent for statements, and operator precedence for expressions. If you do expressions with recursive descent, you get, as you note, 20 levels on the stack. Operator precedence avoids all those levels, and works well for expressions for most languages. Others have explained how parser generators do it. Otherwise, the design of small-memory compilers is a lost art.
Back to comp.compilers | Previous | Next — Previous in thread | Next in thread | Find similar
Deep expression chain performance Andy <borucki.andrzej@gmail.com> - 2023-04-25 06:51 -0700
Re: Deep expression chain performance anton@mips.complang.tuwien.ac.at (Anton Ertl) - 2023-04-26 16:33 +0000
Re: Deep expression chain performance gah4 <gah4@u.washington.edu> - 2023-04-26 13:06 -0700
Re: Deep expression chain performance Kaz Kylheku <864-117-4973@kylheku.com> - 2023-04-27 00:28 +0000
Re: Deep expression chain performance anton@mips.complang.tuwien.ac.at (Anton Ertl) - 2023-04-27 06:17 +0000
csiph-web