Programmazione orientata agli oggetti in ANSI-C. Tabella dei simboli – esercizi

Le nuove keywords sono necessarie per implementare concetti come i cicli while e repeat, così come per implementare le istruzioni if. Il riconoscimento delle espressioni è affidato nella pratica a stmt() ma nella maggior parte dei casi non è un problema di ereditarietà quanto piuttosto riguarda proprio la costruzione stessa del compilatore.

Una volta che si è deciso sul tipo di istruzione da implementare, costruiremo i tipi di nodo quali While, Repeat o IFElse e le keywords nella tabella dei simboli non necessitano di conoscere la loro esistenza.

Le funzioni che prevendono l'uso di due argomenti come ad esempio atan2() sono un po' più interessanti. Dal punto di vista della tabella dei simboli, le funzioni sono gestite proprio come funzioni semplici ma per l'albero delle espressioni dobbiamo inventare un nuovo tipo di nodo con 3 discendenti.

Le funzioni definite dall'utente pongono inoltre un problema molto interessante. Non è così difficile rappresentare il singolo parametro con un $ e con l'uso di un nodo di tipo Parm per puntare all'indietro all'entry della funzione nella tabella dei simboli dove possiamo temporaneamente memorizzare il valore dell'argomento se non permettiamo che vi sia ricorsione. Le funzioni con più parametri o funzioni che accettano un numero variabile di parametri sono molto più complesse da gestire. E' un ottimo esercizio investigare i benefici dell'ereditarietà e del dynamic linkage.

Scarica subito una copia gratis

Scrivi un commento

Seguici anche sul tuo Social Network preferito!

Send this to a friend