User Tools

Site Tools


laboratoare:06-aplicatii-cu-tda-uri

This is an old revision of the document!


A PCRE internal error occured. This might be caused by a faulty plugin

===== Laborator 6 - Aplicatii cu TDA-uri ===== <code> <expr> ::= <valoare> | <variabila> | <expr> + <expr> | <expr> * <expr> | (<expr>) <variabila> ::= string <valoare> :: orice <program> ::= <variabila> = <expr> | if <expr> then <prog> else <prog> | <prog> ; <prog> | return <variabila> </code> - Definiti un tip de date care codifica expresii ''<expr>'' generate de gramatica BNF de mai sus * Tipul definit de voi va fi monomorfic sau polimorfic? - Inrolati tipul vostru in clasa ''Show''. Definiti explicit o reprezentare (usor de urmarit) - Definiti o expresie formata cu intregi (care va fi folosita ulterior pentru testare) - Definiti un tip care reprezinta o multime de asocieri ale unor variabile la valori. Obiecte avand un astfel de tip sunt //interpretari// pentru o multime de variable. Interpretarea pentru o variabila consta intr-o valoare. - Definiti o functie ''eval'' care determina rezultatul unei expresii, pe baza unei interpretari: * scrieti signatura pentru ''eval'' * realizati implementarea efectiva - Definiti un tip de date care codifica expresii ''<program>'' generate de gramatica BNF de mai sus. * Tipul definit de voi va fi monomorfic sau polimorfic? - Inrolati tipul definit de voi in clasa ''Show''. - Definiti o clasa (type-class) care modeleaza **o relatie** intre un **tip container** si un **tip continut** de containerul respectiv. Relatia specifica faptul ca tipul container poate fi evaluat, in raport cu o interpretare pentru elemente de tipul continut de container.

laboratoare/06-aplicatii-cu-tda-uri.1427724317.txt.gz · Last modified: 2015/03/30 17:05 by matei.popovici