È male implementare una lingua in altre due lingue? [chiuso]

1

Ok, quindi ho una certa comprensione di parser e compilatori, almeno le basi di come funziona, e ho scritto una calcolatrice e un linguaggio giocattolo davvero piccolo che compila in un altro linguaggio di alto livello. Ora se voglio scrivere un linguaggio completo (per intero, voglio dire che può essere valutato) è male scrivere il parser in un linguaggio di scripting semplice (come Python), convertirlo nel mio "bytecode" e implementare un piccolo VM in C / C ++?

Al momento non sono esattamente preoccupato per le prestazioni, ma se questo è un "modo sbagliato" per farlo, non voglio sprecare il mio tempo. Inoltre, tutte le lingue che ho visto sono state implementate in un solo linguaggio di basso livello, come C, o hanno già un compilatore self-hosting. C'è un compilatore / interprete di linguaggio implementato in questo modo?

    
posta Guilherme Nemeth 09.05.2015 - 05:00
fonte

1 risposta

4

Non riesco a pensare ad alcun aspetto negativo a questo punto fintanto che i lati del parser non parser sono veramente separati. Se si finisce per implementare le stesse cose due volte, in due lingue diverse, ciò è problematico a causa di bug quando probabilmente non si comportano sempre allo stesso modo, così come lo sforzo duplicato. Se questo non accadrà, sembra una buona idea e ha senso usare un linguaggio amichevole per l'analisi e qualcos'altro per le altre cose. In un certo senso, puoi pensare alle utility di tipo lexx e yac facendo ciò che stai facendo. L'analisi è completamente separata dal resto. Dico, provaci, usa lo strumento migliore per ogni lavoro.

    
risposta data 09.05.2015 - 06:32
fonte

Leggi altre domande sui tag