Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > comp.compilers > #1110
| From | Sébastien Fricker <sebastien.fricker@gmail.com> |
|---|---|
| Newsgroups | comp.compilers |
| Subject | Re: Best tools for writing an assembler? |
| Date | 2014-02-24 07:32 +0100 |
| Organization | Guest of ProXad - France |
| Message-ID | <14-02-031@comp.compilers> (permalink) |
| References | <14-02-018@comp.compilers> <14-02-021@comp.compilers> <14-02-023@comp.compilers> <14-02-030@comp.compilers> |
On 23/02/2014 17:22, noitalmost wrote: > > I wouldn't bother with any generation tools like flex or bison, unless > you want to gain experience with those tools for some other project. > Since it's your own architecture, which has no native tools, you'll be > cross-compiling so speed of the assembler won't matter. It'll be a > long time before you write a program for your architecture that'll > take longer than a second to compile, even if you use Perl. So the > language you use should be the one you know best. My bias is toward > C++, but it really won't matter in your case. > > I think that by hand-writing your own scanner and parser, you'll get > to know your assembly syntax better. And unless you have something > really strange, simple recursive descent will work fine for the > parser. > Sorry, but even if Flex/Bison are difficult to setup, writing a parser by hand is not a good way to work. Tools like Flex/Bison give several advantages that you cannot cover by writing a parser by hand: 1) They are able to manage complex rules which would need many lines of code. For example, parsing an integer consists only of matching the regular expression pattern "[0-9]+". It is simple and more readable than writing directly its C++ code. 2) The generated code is optimized at a level different to what the compiler does. For example, if in your keyword you have "visual" and "virtual", the generated code will first match "vi" and then "rtual" or "sual". Of course writing such optimization by hand is practically not possible. 3) Flex/Bison are performing some error analysis which permits detect unused rules, unreachable states, ... All this checks are not existing for hand written parser. That's mean that your test suite need to handle such kind of non detected errors. 4) Inserting a new keyword/extending a syntax of an existing parser is more safe. In fact, due to all checks make by the parser generator, if the code compiles without bison/flex warnings you can be sure that your new syntax extension does not collide with the existing one. In other words, you did not program a regression my extending your syntax. In other words, saying that writing parser by hand is better is the same as saying "why using object oriented programming? I can do the same in C with struct!" Yes, but the result is less readable, the compiler does does less verifications. [Yacc or bison provides the pleasant assurance that the langauge your program parses is exactly the one in the grammar, and not some superset due to missing error checks. -John]
Back to comp.compilers | Previous | Next — Previous in thread | Next in thread | Find similar | Unroll thread
Best tools for writing an assembler? tpphysik@gmail.com - 2014-02-18 16:04 -0800
Re: Best tools for writing an assembler? "C. Bergström" <cbergstrom@pathscale.com> - 2014-02-19 11:14 +0700
Re: Best tools for writing an assembler? glen herrmannsfeldt <gah@ugcs.caltech.edu> - 2014-02-19 04:25 +0000
Re: Best tools for writing an assembler? Ivan Godard <ivan@ootbcomp.com> - 2014-02-18 23:23 -0800
Re: Best tools for writing an assembler? Robert A Duff <bobduff@TheWorld.com> - 2014-02-19 18:20 -0500
Re: Best tools for writing an assembler? Sébastien Fricker <sebastien.fricker@gmail.com> - 2014-02-21 12:00 +0100
Re: Best tools for writing an assembler? "BartC" <bc@freeuk.com> - 2014-02-22 00:28 +0000
Re: Best tools for writing an assembler? noitalmost <noitalmost@cox.net> - 2014-02-23 11:22 -0500
Re: Best tools for writing an assembler? Sébastien Fricker <sebastien.fricker@gmail.com> - 2014-02-24 07:32 +0100
Re: Best tools for writing an assembler? Louis Krupp <lkrupp@pssw.com> - 2014-02-24 15:39 -0700
Re: Best tools for writing an assembler? Ivan Godard <ivan@ootbcomp.com> - 2014-02-24 15:04 -0800
Re: Best tools for writing an assembler? rpw3@rpw3.org (Rob Warnock) - 2014-02-25 13:00 +0000
Re: Best tools for writing an assembler? Hans-Peter Diettrich <DrDiettrich1@aol.com> - 2014-02-25 04:09 +0100
Re: Best tools for writing an assembler? "James Harris" <james.harris.1@gmail.com> - 2014-02-24 23:18 +0000
Re: Best tools for writing an assembler? noitalmost <noitalmost@cox.net> - 2014-02-27 18:11 -0500
Re: Best tools for writing an assembler? George Neuner <gneuner2@comcast.net> - 2014-03-01 13:09 -0500
Re: Best tools for writing an assembler? federation2005@netzero.com - 2014-03-26 17:57 -0700
Re: Best tools for writing an assembler? federation2005@netzero.com - 2014-04-13 12:24 -0700
Re: Best tools for writing an assembler? Sébastien Fricker <sebastien.fricker@gmail.com> - 2014-02-19 09:59 +0100
Re: Best tools for writing an assembler? Robert A Duff <bobduff@shell01.TheWorld.com> - 2014-02-19 18:27 -0500
Re: Best tools for writing an assembler? Patrik Túri <tpphysik@gmail.com> - 2014-02-20 17:15 -0800
Re: Best tools for writing an assembler? Hans-Peter Diettrich <DrDiettrich1@aol.com> - 2014-02-21 12:09 +0100
Re: Best tools for writing an assembler? glen herrmannsfeldt <gah@ugcs.caltech.edu> - 2014-02-24 20:42 +0000
Re: Best tools for writing an assembler? Ivan Godard <ivan@ootbcomp.com> - 2014-02-24 15:13 -0800
Re: Best tools for writing an assembler? hu47121@usenet.kitty.sub.org (Hannah) - 2014-02-25 00:43 +0000
Re: Best tools for writing an assembler? Walter Banks <walter@bytecraft.com> - 2014-02-27 14:14 -0500
Re: Best tools for writing an assembler? Hans-Peter Diettrich <DrDiettrich1@aol.com> - 2014-02-25 04:23 +0100
Re: Best tools for writing an assembler? glen herrmannsfeldt <gah@ugcs.caltech.edu> - 2014-02-24 20:35 +0000
csiph-web