Forum by laureateci.it
[ Home | REGOLE FORUM | Tutti i blog | Profilo | Registrati | CHAT | Discussioni Attive | Discussioni Recenti | Segnalibro | Msg privati | Sondaggi Attivi | Utenti | Download Informatica | Download ICD | Download TPS | Download Magistrale | Download Specialistica | Giochi | Cerca nel web | cerca | faq | RSS ]
Nome Utente:
Password:
Salva Password
Password Dimenticata?

 Tutti i Forum
 INFORMATICA - Primo Anno
 Linguaggi di programmazione
 ?????!!!!??
 Nuova Discussione  Nuovo Sondaggio Nuovo Sondaggio
 Rispondi
 Versione Stampabile Bookmark this Topic Aggiungi Segnalibro
I seguenti utenti stanno leggendo questo Forum Qui c'è:
Autore Discussione Precedente Discussione Discussione Successiva  

ioboss
Utente medio

tux_


Regione: Puglia
Prov.: Bari


Inserito il - 18/02/2004 : 03:30:17  Mostra Profilo Invia a ioboss un Messaggio Privato  Rispondi Quotando
devo usare per forza gli insiemi FIRST e FOLLOW nell'analizzatore sintattico?
Specifica sintattica

<OP> ::= <ID> | “[” <ESPR> “]”
<REG_NUM> ::= <REG> | <NUM>
<FATTORE> ::= {<REG_NUM> * <FATTORE>} | {<REG_NUM> / <FATTORE>} | <REG_NUM>
<ESPR> ::= {<FATTORE> + <ESPR>} | {<FATTORE> - <ESPR> }| <FATTORE>
<REG> ::= AX | BX | CX | DX
<VAR> ::= <ID> {DB | DW} {<STR> | <NUM>}
<PROCEDURE> ::= <ID> PROC {FAR | NEAR} <ISTRUZIONE> RET <ID> ENDP
<SEG-DATA> ::= DATA SEGMENT PARA PUBLIC <VAR> DATA ENDS
<SEG-CODE> ::= CODE SEGMENT PARA PUBLIC <PROCEDURE> CODE ENDS

<PROGRAMMA> ::= <SEG-DATA> <SEG-CODE> END
<AND> ::= AND <OP>, <OP>
<OR> ::= OR <OP>
<NOT> ::= NOT <OP>
<ADDIZIONE> ::= ADD <OP>,<OP>
<SOTTRAZIONE> ::= SUB <OP>,<OP>
<SPOSTA> ::= MOV <OP>,<OP>
<METTI> ::= PUSH <OP>
<TOGLI> ::= POP <OP>
<SCAMBIA> ::= XCHG <OP>, <OP>
<CONFRONTA> ::= CMP <OP>,<OP>
<MOLTIPLICA> ::= MUL <OP>
<DIVIDI> ::= DIV <OP>
<INCREMENTA> ::= INC <OP>
<DECREMENTA> ::= DEC <OP>
<SALTA> ::= JMP <LABEL>
<CICLA> ::= LOOP <LABEL>
<CHIAMA> ::= CALL <IDPROC>
<ISTRUZIONE> ::= [<ID>: ] {<ASSUME> | <PROCEDURE> | <AND> | <XOR> | <OR> | <NOT> | <ADDIZONE> | <SOTTRAZIONE> | <SPOSTA> | <METTI> | <TOGLI> | <SCAMBIA> | <CONFRONTA> | <MOLTIPLICA> | <DIVIDI> | <INCREMENTA> | <DECREMENTA> | <SALTA> | <CICLA> | <CHIAMA>} [<COMMENTO>]


queste regole sintattiche del linguaggi asm sono giuste?
mi potete fare un esempio di una delle funzioni ke devono riconoscere i non terminali sopraelencati? grzie gentilissimi...
ps:sono nella bippp.... domani è lo scritto.. (meno male ke lo scritto l'ho passato già..)

Qualcuno era comunista perché chi era contro, era comunista! (G. Gaber)

ioboss
Utente medio

tux_


Regione: Puglia
Prov.: Bari


Inserito il - 18/02/2004 : 03:31:26  Mostra Profilo Invia a ioboss un Messaggio Privato  Rispondi Quotando
riusciro' a finire il progetto in tempo per l'orale??

Qualcuno era comunista perché chi era contro, era comunista! (G. Gaber)
Torna all'inizio della Pagina

nicux
Sottonicux

nicux


Regione: Estero
Prov.: Zara
Città: Citta'


Inserito il - 18/02/2004 : 14:59:21  Mostra Profilo  Visita l'Homepage di nicux Invia a nicux un Messaggio Privato  Rispondi Quotando
gli insiemi first e follow ti servono solo se decidi di gestire gli errori nel parser,
la loro utilità sta nel determinare i token di sincronizzazione e i token attesi da passare alla skip_to().
La skip_to() (puoi chiamarla diversamante, è il concetto che conta) è una funzione che permette al parser di continuare la compilazione anche dopo aver riscontrato un errore, cioè di rientrare correttamente nell'albero della grammatica, tanto per capirci.
Senza di essa (e senza la guida degli insiemi first e follow) un errore dirotta il parser fuori dal corretto cammino nell'albero della grammatica innescando un numero imprevedibile di "falsi errori").

Per avere un'idea di come funziona puoi scaricare documentazione e sorgente del mio compilatore nella sezione download del forum.

Fammi sapere se qualcosa non è chiara...

gia' e non ancora...

Modificato da - nicux in data
Torna all'inizio della Pagina

ioboss
Utente medio

tux_


Regione: Puglia
Prov.: Bari


Inserito il - 18/02/2004 : 15:43:22  Mostra Profilo Invia a ioboss un Messaggio Privato  Rispondi Quotando
nicux..
ho un po' di cose nn chiare..
nel parser io definisco tante funzioni quanti sono i nn terminali e i terminali della mia specifica sintattica.. giusto?
ma queste funzini controllano solo la categoria in cui l'automa si sposta per verificare la correttezza del programma?? O_O
mi puoi scrivere anke in linguaggio lineare una funzione di uno dei miei nn terminali? giusto x capire bene.. sono nel primo messaggio della discussione....

Qualcuno era comunista perché chi era contro, era comunista! (G. Gaber)
Torna all'inizio della Pagina
  Discussione Precedente Discussione Discussione Successiva  
 Nuova Discussione  Nuovo Sondaggio Nuovo Sondaggio
 Rispondi
 Versione Stampabile Bookmark this Topic Aggiungi Segnalibro
Vai a:
Forum by laureateci.it © 2002 - 2012 Laureateci Communications Torna all'inizio della Pagina
Il DB ha risposto in 0,17 secondi.

TargatoNA.it | SuperDeejay.Net | Antidoto.org | Brutto.it | Equiweb.it | Snitz Forum 2000