2012-07-15 4 views
5

Sto cercando di sviluppare un compilatore basato sull'infrastruttura LLVM. La mia lingua ha una sintassi simile a C e quindi mi piacerebbe sfruttare i compilatori C esistenti. In questo momento mi sto concentrando sul frontend (analisi lessicale, analisi), ma sono confuso su quale frontend sarebbe l'approccio migliore. Clang, llvm-gcc o strumenti tradizionali flex/bisonti?frontend al compilatore basato su LLVM

Sono particolarmente interessato alla soluzione più semplice che mi consenta di generare codice IR LLVM per le fasi successive del mio compilatore.

+0

Se stai facendo il proprio parsing e l'analisi semantica, generando LLVM IR sarebbe essere abbastanza facile. Potresti aver riutilizzato un frontend esistente, come Clang, se dovessi prendere in prestito gran parte della sintassi C. Altrimenti non ne vale la pena, la generazione di IR è banale una volta ottenuto un AST valido. –

+0

Grazie. Cosa dovrei usare per generare IR da AST? –

+0

usa solo semplici regole di sostituzione - vedi l'esempio del Caleidoscopio LLVM. –

risposta

2

Se si vuole codificare tutto a mano, allora vi Suggerire il Caleidoscopio LLVM tutorial:

+0

Esiste un esempio di codice sorgente? Per me è più facile capire la fonte che il testo. – kravemir

+0

Bene anche il codice sorgente è fornito nel tutorial: http://llvm.org/docs/tutorial/LangImpl8.html – Phong