Differences
This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision | ||
lfa2021:proiect [2021/10/07 13:32] pdmatei |
lfa2021:proiect [2021/11/24 14:21] (current) stefan.stancu [Structura punctajului] |
||
---|---|---|---|
Line 1: | Line 1: | ||
===== Proiect LFA - Lexer in Python sau Haskell ===== | ===== Proiect LFA - Lexer in Python sau Haskell ===== | ||
- | * **[[lfa:proiect:etapa1 | Etapa 1 - Lexer cu AFD-uri]]** | + | ==== Structura punctajului ==== |
- | * **[[lfa:proiect:etapa2 | Etapa 2 - Transformare Regex - AFD]]** | + | |
- | * **[[lfa:proiect:etapa3 | Etapa 3 - Lexer cu Regexuri si parser]]** | + | |
+ | * 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. | ||
- | ====== Etapa 4 - Parsare Regex si limbaj ====== | ||
- | Serializare lexer (ca sa ne legam direct cu etapa 1). | ||
- | |||
- | Apoi parsare. Doua programe. | ||
- | |||
- | ==== Limbajul 1: Imperative ==== | ||
- | |||
- | <code> | ||
- | <prog> ::= <variable> '=' <expr>; | | ||
- | begin <instruction_list> end | | ||
- | while (<expr>) do <prog> od | | ||
- | if (<expr>) then <prog> else <prog> fi | ||
- | |||
- | <instruction_list> ::= [<prog>] | ||
- | |||
- | <expr> ::= <expr> + <expr> | <expr> > <expr> | <expr> == <expr> | <variable> | <integer> | ||
- | |||
- | </code> | ||
- | |||
- | ==== Limbajul 2: Lisp ==== | ||
- | |||
- | ==== Limbajul 3: Html ??? ==== | ||
- | |||
- | |||
- | ===== Metodologia de testare: ===== | ||
- | Combinam expresii din fisierul de referinta in specificatii. Mai sunt necesare detalii de clarificat. | ||
+ | * **[[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]]** | ||