===== Proiect LFA - Lexer in Python sau Haskell ===== ==== Structura punctajului ==== * Proiectul valoreaza **3p**, care se impart egal intre etape. * O etapa se considera **trecuta**, daca, concomitent: (i) **a fost trimisa la deadline** si (ii) $math[pr=]70% din teste au trecut. * Daca o etapa **nu** a fost **trecuta**, ea poate fi trimisa sau retrimisa oricand, pentru $math[pmin=]60% din punctaj (adica 60% din valoarea testelor care trec). * Orice etapa **trecuta** poate fi retrimisa oricand, fara depunctare, pentru a obtine puncte in plus pentru teste aditionale care trec. * Exemple: * Studentul MP nu a **trecut** etapele 1 si 2 (nu a trimis etapa 1 la timp, si doar jumatate din teste au trecut la etapa 2), insa la etapa 3 a trimis tot proiectul 100% functional (toate testele trec). Punctajul lui este: 0.6p (Etapa 1) + 0.6p (Etapa 2) + 1p (Etapa 3) = 2.2p. * Studentul DM a **trecut** etapa 1 (cu 70% din teste), la fel si etapa 2 (tot cu 70% din teste). In loc sa trimita etapa 3, a lucrat la etapa 1 si a reusit sa faca toate testele sa treaca la aceasta. Punctajul lui este 1p (Etapa 1) + 0.7p (Etapa 2) = 1.7p. * Studentul XZ nu a **trecut** etapa 1 (a trimis la timp insa doar 50% din teste trec) si nu a trecut nici etapa 2 (din nou, a trimis la timp, insa doar 60% din teste trec). Etapa 3 nu a fost trimisa. Punctajul lui este 0.3p la etapa 1 (1p * 0.5teste * 0.6penalty) si 0.36p la etapa 2 (1p * 0.6teste * 0.6penalty)) * **Ultima etapa va avea un deadline hard final** (punctajul obtinut pe aceasta este exclusiv cel de pe teste). Nu se mai pot trimite submisii (la nici o etapa), dupa expirarea deadline-ului acesta. * **[[lfa:proiect:etapa1 | Etapa 1 - Lexer cu AFD-uri]]** * **[[lfa:proiect:etapa2 | Etapa 2 - Transformare Regex - AFD]]** * **[[lfa:proiect:etapa3 | Etapa 3 - Lexer cu Regexuri si parser]]** * **[[lfa:proiect:checker | Checker]]**