Newsgroup: it.comp.lang.c++
Titolo: una stringa da interpretare

ciao a tutto il ng,
qualcuno saprebbe indicarmi
(con esempi, siti libri etc, o con una traccia di codice)
come far interpretare e quindi a calcolare
una stringa del tipo: a+b*(c+2+4)
i valori di a, b, c mi verrebbero
chiesti all'inizio del programma
e poi digitando una stringa del tipo
sopra il programma dovrebbe darmi il risultato
grazie
frak
-- 
Posted via Mailgate.ORG Server - 
http://www.Mailgate.ORG

 sopra il programma dovrebbe darmi il risultato
Il capitolo 6 di "The C++ Programming Language", 3 ed. di B. Stroustrup
usa come esempio proprio questo problema. Ovviamente questo non e' un
riferimento specifico, ma se intendi fare seriamente col C++ e' un
libro del quale non potrai fare a meno ed e' probabilmente piu' facile
approcciare il problema da un testo di carattere generale che non
perderti nei dettagli di un testo specializzato.
Ciao,
Nicola
P.S. A meno che tu non abbia gia' sentito parlare di linguaggi
regolari, grammatiche context free, ecc., ma in questo caso non avresti
posto la domanda.

 posto la domanda.
grazie
si ho sentito parlare
di grammatiche, parser, ma vagamente
e quindi senza voler studiare e/o approfondire
il tema dei traduttori, mi serviva
qualcosa di immediato e semplice per
poter implementare quanto richiesto
saluti


 poter implementare quanto richiesto
Grammatiche e parser *sono* il modo semplice di risolvere il
problema, tutti gli altri sono più complicati. Naturalmente non
occorre essere in grado di superare un esame universatario sul
tema, soprattutto perchè lo scopo è il parsing di un linguaggio
tutto sommato già sviscerato (espressioni) piuttosto che creare
la grammatica per un linguaggio del tutto nuovo. Occcore
un'infarinatura sui concetti principali, in Inglese, quel tanto
che basta per capire se qualcosa di già pronto, ad esempio open
source, fa al caso proprio.
Barone Frankenstein
-- 
Paranoia is an afterthought.

 Barone Frankenstein
be, se hai qualche suggerimento
da darmi in proposito è ben 
accetto: libri, dispense, siti, etc.
che parlano dell'argomento con
magari esempi di codice da provare
grazie
saluti
           frank


 problema, tutti gli altri sono più complicati.
Ci son grammatiche e grammatiche. Se Frank pensa grammatiche ==
grammatiche de C++, allora, e normale che trova la soluzione un
po' complicata:-).
Per me, la miglore presentazione che connosco di come
programmare una grammatica semplice è nel "The UNIX Programming
Environment", di Kernighan e Pike. Il libro è proprio vecchio
(di 1984); parla solo di C, e molto che si trova sul Unix non
vale più neanche. Mà le spiagazioni sull'utilisazione di yacc ci
sono chiarissime, ed ancora oggi, per questo tipo di lavoro, uso
yacc o bison, se bisogno con un post-processore in sed per
convertarlo in C++. (Se lavoro su Windows, c'è sempre bison. Se
installa CygWin, c'è anche sed:-). Ma seguendo le versioni di
lex et yacc e il compilatore, non è certo che sed sià
necessario.)
Non ne parlono nel libro, ma lex/flex e anche utile (ed
abbastanza facile).
--
James Kanze                                           GABI Software
Conseils en informatique orientée objet/
                   Beratung in objektorientierter Datenverarbeitung
9 place Sémard, 78210 St.-Cyr-l'École, France, 
+33 (0)1 30 23 00 34