Visualizzazione dei risultati da 1 a 5 su 5
  1. #1
    Utente di HTML.it
    Registrato dal
    Jun 2008
    Messaggi
    2

    Aiuto creazione mini-compilatore C

    Ciao a tutti! E' il mio primo post e vi spiego subito qual è il mio problema: devo fare un progetto per un esame di Laboratorio di linguaggi di programmazione e compilatori che consiste nella definizione di un mini-c. In particolare devono essere implementati: int, if, while, espressioni ridotte tipo = , pointer. Devo creare uno scanner per ottenere i token (credo con lex o flex) e un parser per l'analisi sintattica ( credo con yacc). In fine anche il traduttore. Insomma...non so proprio dove mettere le mani...Per favore, potete aiutarmi?!?

  2. #2
    Ciao,

    Il capitolo finale del seguente libro:

    Herbert Schildt
    C - The Complete Reference
    McGraw-Hill

    contiene un bell'esempio di traduttore di "mini C". È implementato a mano con la tecnica chiamata "a discesa ricorsiva".

    Un tecnica più efficiente è quella che utilizza un "LALR Parsing". Puoi implementarla con l'aiuto di Lex/Flex e Yacc/Bison.

    Qui:

    http://www.stanford.edu/class/cs143/

    trovi un ottimo corso con tanti esempi.


  3. #3
    Se non sei vincolato ad usare Flex+Bison valuta l'uso di ANTLRWorks, uno strumento che ti consente di definire la grammatica in modo visuale. Sul sito sono presenti vari esempi interessanti e la documentazione completa.
    "Se riesci a passare un pomeriggio assolutamente inutile in modo assolutamente inutile, hai imparato a vivere."

  4. #4
    Utente di HTML.it
    Registrato dal
    Jun 2008
    Messaggi
    2
    Ragazzi vi ringrazio tantissimo! Ora comincio a leggere quello che vi avete consigliato

  5. #5
    Qui puoi scaricarti un mini-compilatore C . Un buon punto di partenza su cui sviluppare il tuo progetto . Saluti

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.