HomeForumChatDownloadUploadStaffRegolamentoLoginRegistrati

Menu Utente

Benvenuto, Visitatore. Per favore, effettua il login o registrati.
Hai perso la tua email di attivazione?
08 Febbraio 2012 - 11:49

Login con username, password e lunghezza della sessione

Chat

chat
Entra in Chat !
Oppure accedi con un client IRC:
irc.freenode.net #studenti.fi
Home  |  Forum  |  Corsi di Laurea  |  Ingegneria  |  Ing. Informatica  |  Primo Anno - Ing. Informatica - Nuovissimo Ordinamento  |  Fondamenti di Informatica - Prof. Vicario (Moderatore: Ing.Dante)  |  Topic: aiuto albero 0 Utenti e 1 Visitatore stanno guardando questo topic. « precedente successivo »
Pagine: [1] 2 Vai Giù Stampa
aiuto albero  
(Letto 1199 volte)
Dennis
Utente Senior
***
Offline Offline

Sesso: Maschile
Facoltà: Informatica (SMFN)
Posts: 678


« il: 30 Gennaio 2010 - 15:00 »

quale è l'albero sintattico di questa espressione?

L.buffer[count].next=count+1
Loggato

Al mondo esistano solamente 10 tipi di persone: chi comprende il sistema binario e chi non lo capisce.
samtam90
Utentino
*
Offline Offline

Sesso: Maschile
Facoltà: Ing. Informatica
Posts: 201


« Risposta #1 il: 30 Gennaio 2010 - 16:56 »

quale è l'albero sintattico di questa espressione?

L.buffer[count].next=count+1

  L  .  buffer  [  count  ]  .  next  =  count   +       1
  |        |             |                             |        |         |
  id       |             id                           id      |     const: int
 var .    id           var: int                   var    op2   expr: int
      |                expr: int                       \      |       /
 var: record*                                         expr: int
expr: address     [expr: int]      
                   |                                             |
                   |                  (next)                    
                var: int     .     identifier              |
                             |
                             |                                   |
                          var: int           =        expr: int
                               \                              /
                                    expr: int (simbolo iniziale)

Dovrebbe essere così, o almeno lo spero perchè sennò significa che l'ho sbagliato nel compito  ;d
Mi rendo conto che non è proprio comprensibilissimo...

Per quanto riguarda la riduzione di L.buffer, inizialmente non mi tornava che sintatticamente buffere fosse un var (pensavo al fatto che il nome collettivo dell'array è una costante), poi ho ripensato al fatto che ciò è vero solamente quando buffer è direttamente dichiarato come array (e quindi il suo indirizzo è fisso), mentre in questo caso si tratta di un puntatore (e di conseguenza la dichiarazione buffer[count] colpisce la count-esima variabile del tipo di buffer a partire dall'indirizzo - variabile - contenuto in buffer).

Vi prego ditemi che ho ragione  ;d
« Ultima modifica: 30 Gennaio 2010 - 16:59 da samtam90 » Loggato
Dennis
Utente Senior
***
Offline Offline

Sesso: Maschile
Facoltà: Informatica (SMFN)
Posts: 678


« Risposta #2 il: 30 Gennaio 2010 - 20:28 »

se lo puoi postare disegnato meglio, mi faresti un grande favorone ;d ;d
Loggato

Al mondo esistano solamente 10 tipi di persone: chi comprende il sistema binario e chi non lo capisce.
Camper
Niubbo

Offline Offline

Sesso: Maschile
Facoltà: Ing. Informatica
Posts: 7


« Risposta #3 il: 10 Febbraio 2010 - 11:56 »

se a qualcuno può interessare saperlo anche a me torna in quel modo  ;d
Loggato
markoz
Niubbo

Online Online

Sesso: Maschile
Facoltà: Ing. Informatica
Posts: 35

« Risposta #4 il: 10 Febbraio 2010 - 16:44 »

Io non capirò mai come si fanno esercizi di questo tipo, qualcuno sarebbe così gentile da spiegarmeli ?
Loggato
Axel90
Utentino
*
Offline Offline

Sesso: Maschile
Facoltà: Ing. Informatica
Posts: 199


Comfortably Numb

« Risposta #5 il: 21 Giugno 2010 - 23:40 »

ragazzi quale è la semantica di questo riferimento?

*(A[count].num_ptr)

assumendo che essa compaia nel contesto delle seguenti definizioni
struct scheda
{   . . .
int    *num_ptr;
. . .
};

l'albero e il bnf mi sono riusciti (alla fine viene <var.:struct>), la natura generale di un riferimento ho scritto:
consiste nell'identificare una variabile ossia una coppia <locazione di memoria> <tipo>, ad esempio <var>::=<identifier> identifica la variabile dichiarata con nome <identifier> (non sapevo cosa altro scrivere).

Grazie
Loggato
samtam90
Utentino
*
Offline Offline

Sesso: Maschile
Facoltà: Ing. Informatica
Posts: 201


« Risposta #6 il: 22 Giugno 2010 - 00:04 »

ragazzi quale è la semantica di questo riferimento?

*(A[count].num_ptr)

assumendo che essa compaia nel contesto delle seguenti definizioni
struct scheda
{   . . .
int    *num_ptr;
. . .
};

l'albero e il bnf mi sono riusciti (alla fine viene <var.:struct>), la natura generale di un riferimento ho scritto:
consiste nell'identificare una variabile ossia una coppia <locazione di memoria> <tipo>, ad esempio <var>::=<identifier> identifica la variabile dichiarata con nome <identifier> (non sapevo cosa altro scrivere).

Grazie

Ti consiglio di consultare il libro, perchè ce ne sono di questo tipo (svolti) con la semantica. Comunque sia, è necessario partire dall'interno:

-A[count] è un rif. che individua la variabile strutturata count+1-esima nell'array di variabili memorizzato a partire dall'indirizzo A

-A[count].num_ptr è un rif. che individua il campo ptr (variabile di tipo puntatore ad intero) nella variabile strutturata precedente

-*(A[count].num_ptr), infine, è un ulteriore rif. che individua la variabile il cui indirizzo è restituito dalla variabile puntatore precedentemente individuata (che essendo un <var : int *> è anche un <expr : addr (int)>.

Ad essere proprio pignoli bisognerebbe fare un ulteriore passo intermedio dicendo che (A[count].num_ptr) non modifica la semantica del rif. precedente essendo le parentesi solo modificatori sintattici - ma qui si tratta davvero di cercare il proverbiale pelo nell'uovo

Quindi essenzialmente si tratta di descrivere in dettaglio cosa individuano i vari riferimenti, fino a giungere a quello richiesto dall'esercizio - è più o meno come procede anche il Vicario nel libro.

EDIT: occhio però - la riduzione con il BNF deve terminare con <expr> e non con <var> essendo <expr> il simbolo iniziale.
« Ultima modifica: 22 Giugno 2010 - 00:07 da samtam90 » Loggato
Axel90
Utentino
*
Offline Offline

Sesso: Maschile
Facoltà: Ing. Informatica
Posts: 199


Comfortably Numb

« Risposta #7 il: 22 Giugno 2010 - 00:10 »

L'esempio è uno degli esami proposti sul sito; la riduzionone finale *<expr>--><var> ho dimenticato di ridurla a <expr> hai ragione  ^_^
La definizione generale di riferimento secondo te è corretta?
Loggato
samtam90
Utentino
*
Offline Offline

Sesso: Maschile
Facoltà: Ing. Informatica
Posts: 201


« Risposta #8 il: 22 Giugno 2010 - 00:11 »

La definizione generale di riferimento secondo te è corretta?

Sì, mi pare che sia corretta.
Loggato
Axel90
Utentino
*
Offline Offline

Sesso: Maschile
Facoltà: Ing. Informatica
Posts: 199


Comfortably Numb

« Risposta #9 il: 22 Giugno 2010 - 00:19 »

Grazie dell'aiuto  ^_^
Loggato
Pagine: [1] 2 Vai Su Stampa 
Home  |  Forum  |  Corsi di Laurea  |  Ingegneria  |  Ing. Informatica  |  Primo Anno - Ing. Informatica - Nuovissimo Ordinamento  |  Fondamenti di Informatica - Prof. Vicario (Moderatore: Ing.Dante)  |  Topic: aiuto albero « precedente successivo »
Salta a:  

Powered by SMF 1.1.16 | Traduzione di SMItalia | SMF © 2006-2008, Simple Machines
Con il contributo dell'Università degli Studi di Firenze

TinyPortal © 2005-2011