|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Junior Member
Iscritto dal: Mar 2004
Messaggi: 12
|
Aiuto x Linguaggi e Ambienti di Programmazione
Salve a tutti!
Sto affrontando un corso di Linguaggi e Ambienti di programmazione, e trovo alcune difficoltà Ad esempio, davanti ad un esercizio del genere: Scrivere il codice a quadruple (usando controllo di flusso per i booleani e metodo delle etichette per la generazione del codice) per il seguente frammento: while (a > b) do while (c < d) do begin a := a/b; c := c+1; end la soluzione potrebbe essere: L1: if a > b goto L2 goto LNext L2: if c < d goto L3 goto L1 L3: t1 := a/b a := t1 t2 := c+1 c := t2 goto L2 LNext: ... o bisogna aggiungere qualcos'altro per completare l'esercizio stesso? Inoltre, volendo scrivere delle produzioni di un frammento di grammatica che possa aver generato il codice precedente (produzioni + regole semantiche), mi chidedevo se si dovesse continuare così: S --> while E do S1 { "codice while metodo etichette" } S1 --> begin A end { S1.code := A.code} S1 --> S { S1.code := S.code } A --> id := B; A { NON SAPREI, MI POTETE AIUTARE? } A --> id := B; { A.code := B.code || gen(id.place = B.place)} B --> id1/id2 { B.place := newtemp; B.code := gen(B.place := id1.place/id2.place)} B --> id+1 { B.place := newtemp; B.code := gen(B.place := id.place+1)} E --> id1 relop id2 { E.code := gen(if id1.place relop.op id2.place goto E.true) || gen(goto E.false) } Ringrazio qualunque pio uomo x l'aiuto , anche se capisco che la cosa può sembrare di non tanta rilevanza! Ciauz |
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 23:05.










, anche se capisco che la cosa può sembrare di non tanta rilevanza!









