User Tools

Site Tools


Problem constructing authldap
arhiva:teme:2016:tema3
Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
arhiva:teme:2016:tema3 [2016/11/29 21:39]
acaciulescu [Date de intrare. Date de ieșire.]
arhiva:teme:2016:tema3 [2018/10/20 13:26] (current)
Adriana Draghici
Line 15: Line 15:
 == Introducere == == Introducere ==
  
-Fiind mari fani a filmelor cu Arnold Schwarzenegger,​ studentii de la Calculatoare s-au gandit ca ar fi amuzant sa programeze intr-un limbaj bazat integral pe replicile lui Arnold din diferite filme, astfel ca s-au apucat de ArnoldC (**[[https://​github.com/​lhartikk/​ArnoldC/​wiki/​ArnoldC|ArnoldC]]**). Aceștia și-au dat însă seamă că nu au un mod de a rula noile lor programe deoarece nu există un tool care să le compileze sau să le interpreteze codul. Deoarece ​sunt harnici ​și le//** __place__**// POO, studenții au decis să își scrie propriul interpretor de ArnoldC în Java. \m/+Fiind mari fani a filmelor cu Arnold Schwarzenegger,​ studentii de la Calculatoare s-au gandit ca ar fi amuzant sa programeze intr-un limbaj bazat integral pe replicile lui Arnold din diferite filme, astfel ca s-au apucat de ArnoldC (**[[https://​github.com/​lhartikk/​ArnoldC/​wiki/​ArnoldC|ArnoldC]]**). Aceștia și-au dat însă seamă că nu au un mod de a rula noile lor programe deoarece nu există un tool care să le compileze sau să le interpreteze codul. Deoarece ​le plac provocarile ​și mai ales//** __POO__**//, studenții au decis să își scrie propriul interpretor de ArnoldC în Java. **\m/**
  
 == Cerințe == == Cerințe ==
Line 26: Line 26:
  
 **Punctaj (100p)** **Punctaj (100p)**
-* **80p** teste publice +* **90p** teste publice 
-* **20p** README, comentarii, ​JavaDocs, coding style+* **10p** README, comentarii, ​JavaDoc, coding style
  
  
Line 223: Line 223:
  
  Se va genera un AST de forma:  Se va genera un AST de forma:
-{{ :​teme:​tema3:​poo-tema3-diagram2.png?​700 |}}+{{ :arhiva:teme:2016:​tema3:​poo-tema3-diagram2.png?​700 |}}
  
  
Line 243: Line 243:
   ​   ​
 ==== Intrare ==== ==== Intrare ====
-Programele ArnoldC vor fi citite din folderul ''​tests''​. ​ In folderul ''​tests''​ se vor afla fisierele de test (''​test1.ac'​,'test2.ac''​ , etc). Parser-ul va primicalea către fișierul de intrare și îl citește. ​+Programele ArnoldC vor fi citite din folderul ''​tests''​. ​ In folderul ''​tests''​ se vor afla fisierele de test (''​test1.ac'​',''test2.ac''​ , etc). Parser-ul va primicalea către fișierul de intrare și îl citește. ​
  
  
Line 281: Line 281:
  ConstantNode <​integer_value>​  ConstantNode <​integer_value>​
  SAU VariableNode <​variable>​  SAU VariableNode <​variable>​
 + SAU StringNode <​string>​
 </​code>​ </​code>​
  
Line 296: Line 297:
  
  
-Fisierele de iesire pentru exemplul de mai sus ([[http://​elf.cs.pub.ro/​poo/​playground/​tema3#​arborele-sintactic|example.ac]]) sunt urmatoarele:​+Avand urmatorul exemplu: 
 + 
 +<code arnold ​example.ac
 +IT'S SHOWTIME 
 +HEY CHRISTMAS TREE a 
 +YOU SET US UP @NO PROBLEMO 
 +HEY CHRISTMAS TREE b 
 +YOU SET US UP @I LIED 
 +HEY CHRISTMAS TREE c 
 +YOU SET US UP @I LIED 
 + 
 +HEY CHRISTMAS TREE d 
 +YOU SET US UP @I LIED 
 + 
 +GET TO THE CHOPPER d 
 +HERE IS MY INVITATION a 
 +CONSIDER THAT A DIVORCE b 
 +CONSIDER THAT A DIVORCE c 
 +ENOUGH TALK 
 + 
 +BECAUSE I'M GOING TO SAY PLEASE d 
 +TALK TO THE HAND "(a || b || cis true"​ 
 +BULLSHIT 
 +TALK TO THE HAND "(a || b || c) is not true"​ 
 +YOU HAVE NO RESPECT FOR LOGIC 
 + 
 +YOU HAVE BEEN TERMINATED 
 +</​code>​ 
 + 
 +Fisierele de iesire pentru exemplul anterior ​sunt urmatoarele:​
 <code java example.out>​ <code java example.out>​
 (a || b || c) is true (a || b || c) is true
Line 342: Line 372:
   * alte detalii relevante pentru implementare   * alte detalii relevante pentru implementare
   * directorul ''​src''​ cu fişiere sursă   * directorul ''​src''​ cu fişiere sursă
-  * directorul ​''​doc''​, generat de javadoc +  * ''​Makefile''​ care va contine cel putin regulile:
-  * “Makefile” ​care va contine cel putin regulile:+
     * build     * build
 +    * run
 +    * doc
     * clean     * clean
- 
  
  
Line 353: Line 383:
  
  
-*TODO+{{:​arhiva:​teme:​2016:​tema3:​arnoldc-tests.zip|}} 
 +{{:​arhiva:​teme:​2016:​tema3:​arnoldc-simple-tests.zip|}} 
 == Referințe == == Referințe ==
-TODO 
- 
  
 +* [[https://​github.com/​lhartikk/​ArnoldC/​wiki/​ArnoldC | ArnoldC]]
 * [[https://​en.wikipedia.org/​wiki/​Abstract_syntax_tree|Abstract Syntax Tree]] * [[https://​en.wikipedia.org/​wiki/​Abstract_syntax_tree|Abstract Syntax Tree]]
 * [[https://​en.wikipedia.org/​wiki/​Visitor_pattern|Visitor Pattern]] * [[https://​en.wikipedia.org/​wiki/​Visitor_pattern|Visitor Pattern]]
arhiva/teme/2016/tema3.1480448399.txt.gz · Last modified: 2016/11/29 21:39 by acaciulescu