[Tutor] bootstrapping
spir
denis.spir at free.fr
Thu Apr 16 12:50:13 CEST 2009
Hello,
This question is rather intended to people who have some knowledge on parser generation and/or on self-compiling languages.
I have a custom PEG parser generator in python, called 'pijnu', just bootstrapped. Meaning it's a kind of specific language which generator (compiler) is able to produce itself by parsing its own meta-grammar, written in itself. Here is a picture that tries to illustrate how this works:
text.lang [langParser.py] ==> textTree [process.py] ==> <result>
^
|
+---------------------------------------------------+
|
^
lang.pijnu [pijnuParser.py] ==> langTree [generator.py] ==> <langParser>
^
|
+---------------------------------------------------+
| |
v ^
pijnu.pijnu [pijnuParser.py] ==> pijnuTree [generator.py] ==> <pijnuParser>
* level 1: use of a parser generated by pijnu to parse a user text, then process further
* level 2: use of pijnu to generate a parser for a user language (or any other format)
* level 3: use of pijnu to generate its own parser
I'm an amateur and it's the first time I do such a thing. I thought a main advantage of bootstrapping was the ability to produce a compiler of next generation by feeding the present parser/generator with a modified grammar.
Actually, this does not work for me. The reason I guess is that a feature addition or modification (semantic level) usually comes with a change in the language itself (syntactic, or rather grammatical, level). This latter change will prevent the current parser to accept the modified grammar: I need then to introduce the change in the current parser itself instead of only in the grammar.
Is there anything wrong in my method and/or reflexion?
[I still find it worthful anyway to recursively produce the generator by itself, not only for intellectual satisfaction, but also as way to validate the change.]
Denis
------
la vita e estrany
More information about the Tutor
mailing list