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

yeezygraph nancy xu system architect wanlin xie project
SMART_READER_LITE
LIVE PREVIEW

+ 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


slide-1
SLIDE 1

+

yeezyGraph

Nancy Xu: System Architect Wanlin Xie: Project Manager Yiming Sun: Language Guru

slide-2
SLIDE 2

+

introduction

slide-3
SLIDE 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

slide-4
SLIDE 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

slide-5
SLIDE 5

+

nodes and graphs

slide-6
SLIDE 6

+node

slide-7
SLIDE 7

+node

name isVisited data inNodes

  • utNodes
slide-8
SLIDE 8

+graph

graph<string> g1; g1 = new graph<string>();

slide-9
SLIDE 9

+graph

g1~+"a"; name: a isVisited data inNodes

  • utNodes
slide-10
SLIDE 10

+graph

name: a isVisited : false data: 0 inNodes

  • utNodes

a.setData(0); a.modifyVisited() = false; print(a@data); /*prints 0*/ prints(a@name); /*prints a*/

slide-11
SLIDE 11

+graph

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

  • ut
  • ut
  • ut
  • ut
slide-12
SLIDE 12

+graph

g1[1]->(a, b); name: a name: b name: c name: d in in in in

  • ut
  • ut
  • ut
  • ut

1

slide-13
SLIDE 13

+graph

g1[1]->(b, a); name: a name: b name: c name: d in in in in

  • ut
  • ut
  • ut
  • ut

1 1

slide-14
SLIDE 14

+

standard library

slide-15
SLIDE 15

+generic collections

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); print(x);

Lists

Queue<float> a; a = new Queue<float>();

  • a.qadd(3.1);

x = a.qfront(); printfloat(x);

Queues

slide-16
SLIDE 16

+

user-defined data types

slide-17
SLIDE 17

+structs

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

slide-18
SLIDE 18

+structs

struct S1 { int x; string y; } int main() { struct S1 s1; s1~x = 32; s1~y = "hello world”;

  • graph<string> g1;

g1 = new graph<string>(); g1~+"a"; a = g1~_a; a.setData(s1);

  • return 0;

} name: a isVisited data: s1 inNodes

  • utNodes
slide-19
SLIDE 19

+

compiler architecture

slide-20
SLIDE 20

+

Scanner Parser

Source Code

AST Semantic Checker Code Generation

Tokens AST

Clang

C LLVM bitcode

LLVM- Link

LLVM bitcode Semantically- checked AST LLVM IR Executable

slide-21
SLIDE 21

+

demo: dijkstra’s

slide-22
SLIDE 22

+dijkstra’s

a d c d 10 1 2 2 5 5 Vertex Shortest Distance from Source a a b 1 c 2 d 3