This shows you the differences between two versions of the page.
| Both sides previous revision Previous revision Next revision | Previous revision | ||
|
laboratoare:06-aplicatii-cu-tda-uri [2015/04/01 10:12] matei.popovici |
laboratoare:06-aplicatii-cu-tda-uri [2015/05/07 13:48] (current) radu.stoenescu |
||
|---|---|---|---|
| Line 5: | Line 5: | ||
| <valoare> ::= orice | <valoare> ::= orice | ||
| - | <program> ::= <variabila> = <expr> | if <expr> then <prog> else <prog> | <prog> ; <prog> | return <variabila> | + | <prog> ::= <variabila> = <expr> | if <expr> then <prog> else <prog> | <prog> ; <prog> | return <variabila> |
| </code> | </code> | ||
| - Definiti un tip de date care codifica expresii ''<expr>'' generate de gramatica BNF de mai sus | - Definiti un tip de date care codifica expresii ''<expr>'' generate de gramatica BNF de mai sus | ||
| Line 15: | Line 15: | ||
| * scrieti signatura pentru ''eval'' | * scrieti signatura pentru ''eval'' | ||
| * realizati implementarea efectiva | * realizati implementarea efectiva | ||
| - | - Definiti un tip de date care codifica expresii ''<program>'' generate de gramatica BNF de mai sus. | + | - Definiti un tip de date care codifica expresii ''<prog>'' generate de gramatica BNF de mai sus. |
| * Tipul definit de voi va fi monomorfic sau polimorfic? | * Tipul definit de voi va fi monomorfic sau polimorfic? | ||
| - Inrolati tipul definit de voi in clasa ''Show''. | - Inrolati tipul definit de voi in clasa ''Show''. | ||
| Line 24: | Line 24: | ||
| * In implementare, observati ca interpretarea se modifica pe masura ce programul este evaluat. | * In implementare, observati ca interpretarea se modifica pe masura ce programul este evaluat. | ||
| * Asadar, aveti nevoie de o functie auxiliara, care construieste o interpretare, pe baza unui program | * Asadar, aveti nevoie de o functie auxiliara, care construieste o interpretare, pe baza unui program | ||
| + | |||
| + | [[https://github.com/Programming-Paradigms/Labs/archive/master.zip|Solutii]] | ||