Labs

2018/2019

Regulament laborator

Fiecare student va veni la ora semigrupei in care a fost repartizat. Daca doreste sa vina la o alta ora, poate sa faca schimb permanent cu cineva din alta semigrupa, dar doar la inceputul semestrului, pana cel tarziu in saptamana a doua.

La majoritatea laboratoarelor, la inceput, se da un test din materia parcursa in cadrul laboratorului anterior (inclusiv teme). Acesta poate fi scris sau pe calculator. La sfarsitul fiecarui laborator studentii primesc o tema din materia laboratorului curent. Aceste teme nu sunt obligatorii, dar daca nerealizarea lor la un nivel satisfacator duce la scaderea a 2 puncte din nota corespunzatoare testului de laborator din saptamana respectiva.

Nota la activitatea pe parcurs va fi media tuturor notelor de la laborator. Nota minima pentru promovarea fiecarei lucrari de laborator este 5.00. Orice nota sub 5 inseamna nepromovarea lucrarii de laborator respective si, daca nu este recuperata, nepromovarea activitatii pe parcurs. Media de la laborator ramane cu 2 zecimale, nu se rotunjeste.

Prezenta la laborator este obligatorie, exceptie facand prima saptamana de scoala. Absentele si lucrările picate se recupereaza ori pe parcursul semestrului, ori in saptamana a 14-a (cand se pot recupera maxim 3 laboratoare). Pe parcurs se pot recupera maxim doua laboratoare cu alta semigrupa.

Pentru a instala mediul de dezvoltare consultati acest ghid Attach:InstallVSCodeOCaml.pdf

Notele de la laborator sunt/vor fi disponibile pe Campus Virtual

Link-uri utile:

Pagina oficiala a distributiei OCaml

Manualul OCaml, mai ales functiile predefiniti si modulele standard

Try OCaml -- interpretor online de OCaml

Think OCaml de Allen Downey și Nicholas Monje -- introducere in programarea functionala

Real World OCaml de Anil Madhavapeddy, Jason Hickey, Yaron Minsky -- OCaml: concepte, structuri de date, tool-uri, si multe altele

6. Relatii si Dictionare -- continuare

Vezi si parcurgerea in adancime si/sau prin cuprindere a unui graf reprezentat cu ajutorul unui dictionar

(avand drept cheie un nod si drept valoare ori lista nodurilor adiacente, ori multimea acestora) aici.

Parcurgerile pot fi adaptate pentru a determina anumite proprietati ale grafului:

  • are graful cicluri? (prin adaptarea parcurgerii in adancime)
  • distanta minima intre 2 noduri (prin adaptarea parcurgerii prin cuprindere)

Notite Laborator Grupa 6.1

8. Arbori -- continuare

9. Logica propozitionala

Reprezentarea formulelor cu ajutorul BDD (constructie de BDD-uri aplicand recursiv descompunerea Shannon)

Aducerea formulelor in forma CNF

Determinarea realizabilitatii unei formule

10. Logica predicatelor

Laborator 10

Observatii formalizare

Exemplu rezolutie

Exercitii rezolutie

Demonstratoare de teoreme: Prover9 Z3 (exemplul de la curs, formalizat in formatul specific Z3, aici )

11. Logica predicatelor -- continuare

12. Automate. Expresii regulate

Conversie din NFA in DFA. Conversie expresie regulata in/din automat. Minimizare DFA.

Laborator 12

Exercitii rezolvate

Simulator de DFA, NFA si convertor din expresii regulate (regex) aici.

Expresii regulate online aici. Verificare echivalenta pentru expresii regulate aici

13. Gramatici

Derivare. Arbore de derivare.

Gramatici ambigue. Dezambiguizarea unei gramatici ambigue.

Gramatici recursive. Eliminarea recursivitatii la stanga.

Citire expresie aritmetica format prefix in ML C

Exercitii gramatici programare

14. Recuperari