Newsgroup: it.comp.lang.c++
Titolo: Interprete

Ciao,
Ho la necessità di dover scrivere un interprete per una tesina
all'università.
E' la prima volta che lo faccio quindi mi aiuterebbero molto avere materiale
utile ( siti o libri interessanti sull'argomento ); se poi tu fossi
personalmente in possesso di qualcosa in formato elettronico da potermi
inviare ( l'indirizzo è : 
ep...@iol.it
 ) sarebbe graditissimo.
Ci tenevo anche a sapere se ci sono dei linguaggi ( imperativi, funzionali o
altri ) particolarmente adatti al mio scopo e perchè.
In ogni caso grazie per la tua disponibilità ad ascoltarmi.
                                                            Eprol

Ci sono dei tools ben precisi per fare queste cose, ad esempio yacc e
lex (se non ricordo male). Io per un progettino tempo fa usai il
Cornel Syntetizer (mi sa che l'ho scritto male...).
Cmq fa una ricerca su lex e yacc
Paolo
-----------------------------------------------
  Paolo Marotta
  Computer Science, University of Pisa
  home:   
http://www.cli.di.unipi.it/~marotta
-----------------------------------------------

altri ) particolarmente adatti al mio scopo e perchè.
Generalmente un linguaggio lisp-like (clisp o scheme, ad esempio) si presta 
bene a questo tipo di applicazioni. Se ti interessa semplicemente interpretare 
una grammatica (ed eventualmente scrivere un compliatore) yacc e lex (o, piu' 
comunemente bison e flex) fanno al caso tuo.
-- 
God is Real, unless declared Integer.
ObjectZone - 
http://space.tin.it/computer/csadun/

 comunemente bison e flex) fanno al caso tuo.
E il Perl, non basterebbe?
Mi sembra comunque un po' OT in entrambi i NG, o mi sbaglio?
--
Alessandro Monti

 
Voto per lex e yacc, che nella versione GNU, disponibile
liberamente secondo la GPL, si chiamano flex e bison.
Sono due generatori di codice c: il primo serve a creare
l'analizzatore lessicale, che si occupa di scandire il
file di input e discernere fra costanti, identificatori,
operatori, istruzioni ecc., mentre bison serve a creare
l'analizzatore sintattico, che e' uno stadio piu' alto
del compilatore/interprete, nel quale i vari simboli letti
dall'analizzatore lessicale vengono messi insieme a formare
i costrutti del linguaggio
esempio:
  if a then com1 else com2
  l'analizzatore lessicale "dice" all'analizzatore
  sintattico: in ingresso c'e' un if, un identificatore,
  un then, un com1, un else, un com2
  l'analizzatore sintattico capisce che il costrutto e'
  corretto (se lo e' secondo la sintassi del linguaggio)
  e nel caso di un interprete puo' occuparsi direttamente
  di chiamare le funzioni corrispondenti ai comandi in input.
  L'analizzatore sintattico e' la parte di programma 
  (compilatore/ interprete) che capisce che "then 
   a ((; b while" non e'  corretto mentre "if a then b" lo e'.
Spero di averti confuso ancora di piu' le idee.
Comunque se non sai cos'e'una grammatica non ti avvicinare
neanche a bison e flex!
Ciao
==============================================Vincenzo Ciancia
Studente del Quarto anno  ( AH AH AH AH AH ...)
Corso di laurea in Informatica
Universita' di Pisa
-----------------------------------------------
Linux e' un regalo
Windows e' solo un pacco





esempio:





Ciao

=========================================== 




Microsoft ha giá smentito
vedi 
http://www.microsoft.it/italy/adv/jump.asp?cod=022_email
Ciao
Gigi
