yeezygraph nancy xu system architect wanlin xie project
play

+ yeezyGraph Nancy Xu: System Architect Wanlin Xie: Project - PowerPoint PPT Presentation

+ yeezyGraph Nancy Xu: System Architect Wanlin Xie: Project Manager Yiming Sun: Language Guru + introduction + motivation n Simple, concise domain-specific language for graph data analysis n Syntactic simplicity n Structural


  1. + yeezyGraph Nancy Xu: System Architect Wanlin Xie: Project Manager Yiming Sun: Language Guru

  2. + introduction

  3. + motivation n Simple, concise domain-specific language for graph data analysis n Syntactic simplicity n Structural simplicity n Out-of-the-box framework n Intuitive n Standardized management of graph data under the hood

  4. + language features n Node and Graph data types n Useful standard library n Generic list, queue, pqueue data types n User-defined data types n Useful error messages n Compilation to LLVM IR code

  5. + nodes and graphs

  6. + node

  7. + node name isVisited data inNodes outNodes

  8. + graph graph<string> g1; g1 = new graph<string>();

  9. + graph name: a isVisited data outNodes inNodes g1~+"a";

  10. + graph name: a isVisited : false data: 0 outNodes inNodes a.setData(0); a.modifyVisited() = false; print(a@data); /*prints 0*/ prints(a@name); /*prints a*/

  11. + graph name: b name: a in out out in name: d name: c in out in out g1~+"b"; g1~+"c"; g1~+"d"; ...

  12. + graph name: b name: a 1 in out out in name: d name: c in out in out g1[1]->(a, b);

  13. + graph name: b name: a 1 in out out in 1 name: d name: c in out in out g1[1]->(b, a);

  14. + standard library

  15. + generic collections Lists list<int> a; a = new list<int>(1,2,3); a.l_add(4); a.l_delete(0); int x; x = a.l_get(0); Queues print(x); Queue<float> a; � a = new Queue<float>(); � � a.qadd(3.1); � x = a.qfront(); � printfloat(x); �

  16. + user-defined data types

  17. + structs struct S1 { int x; string y; } int main() { struct S1 s1; s1~x = 32; s1~y = "hello world"; return 0; }

  18. � � + structs struct S1 { int x; string y; } int main() { struct S1 s1; � s1~x = 32; � s1~y = "hello world”; � name: a graph<string> g1; � g1 = new graph<string>(); � isVisited g1~+"a"; � data: s1 a = g1~_a; � a.setData(s1); � outNodes inNodes return 0; � } �

  19. + compiler architecture

  20. + Tokens Source Code AST Parser Scanner AST Semantic Checker C Semantically- checked AST Code Clang Generation LLVM bitcode LLVM bitcode LLVM- Link LLVM IR Executable

  21. + demo: dijkstra’s

  22. + dijkstra’s 10 d a 1 0 2 2 Vertex Shortest Distance d 5 from Source a a 0 c b 1 5 c 2 d 3

Recommend


More recommend