2010-08-02 3 views
0

J'écris ma propre langue et j'ai à peu près terminé les règles en bison. Maintenant, ce qui reste est de mettre en œuvre le bon côté. Il y a environ 650 lignes. Le langage est moins complexe que C mais assez complexe. Je n'ai pas essayé d'implémenter les règles, sauf pour une application de test pour l'apprendre. J'ai eu beaucoup de segfaults mais j'ai compris.Combien de temps faut-il implémenter le langage après que les règles ont été faites dans le bison?

Chaque règle était un appel de fonction, donc potentiellement 600 de ces lignes sont des appels de fonctions, donc il peut y avoir 500+ fonctions. Où les fonctions assez simples lorsque vous l'avez essayé? est la plupart du travail ces règles ou tous les autres codes pas dans les fonctions appelées? L'effort de séparation est-il entre?

+0

Compilateur ou interprète? –

Répondre

1

Écrire les règles est un jeu d'enfant. Je suppose que vous implémentez un interpréteur. Par vous avez dit qu'il semble que vous avez défini plus de 600 règles c'est beaucoup. Vous devrez probablement réduire le nombre de règles avant d'aller plus loin.

Quel est le nombre de motifs flexibles?

Une erreur fréquente consiste à ajouter de nombreux mots-clés lexicaux. Alors les bisons deviennent un cauchemar. A titre d'exemple j'ai vu dans le passé une interprétation qui redéfinit en lex de nombreuses fonctions des mathsh, telles que sin et cos ... Ensuite le développeur a défini SIN, jetons COS ... et crée le bon action yacc. C'est beaucoup de travail et pas extensible!

Récemment, j'ai écrit un interpréteur OOL et il contient environ 150 règles. Et environ la moitié d'entre eux sont liés à l'héritage d'une version précédente de mal-naissance. Le nombre de lignes d'interpréteur et de compilateur Bytecode est d'environ 10000 pour le noyau.

Questions connexes