Graph Application Language (GAL) The Team Anton: GAL language Guru - - PowerPoint PPT Presentation

graph application language
SMART_READER_LITE
LIVE PREVIEW

Graph Application Language (GAL) The Team Anton: GAL language Guru - - PowerPoint PPT Presentation

Graph Application Language (GAL) The Team Anton: GAL language Guru Andrew: Test Master Donovan: Manager Macrina: Standard Library Creator The Aim Creating a programming language that makes graph programming a piece of cake. Compiler


slide-1
SLIDE 1

Graph Application Language

(GAL)

slide-2
SLIDE 2

The Team

Anton: GAL language Guru Andrew: Test Master Donovan: Manager Macrina: Standard Library Creator

slide-3
SLIDE 3

The Aim

Creating a programming language that makes graph programming a piece of cake.

slide-4
SLIDE 4

Compiler Architecture

slide-5
SLIDE 5

Language Features

/*Types*/ int string node edge ilist slist nlist elist /*Declaring a Function*/ int foo(int bar){ bar = bar+1; Return bar; } /*Operators*/ +

  • * / = > < >= <= ==

!= ! |node/edge| /*Control Flow*/ while(x==x){ print_str(“HELLO”); }

slide-6
SLIDE 6

Language Features

List of Built-Ins for I/O and others: + print_int + print_str + print_endline + streq List of Built-Ins for Graph: + length() + next() + pop() + peek() + add() List of Built-Ins for Edges: + source() + dest() + weight()

slide-7
SLIDE 7

The First Program- Hello World

/*Things written in here are comments and they are multi line compatible*/ int main(){ string x = “HELLO WORLD!”; print_str(x); /*Defining a Graph using node*/ node n1 = |”A”:2,”B”,3,”C”,4,”D”|; /*Adds an edge to the existing graph and updates it*/ n1 = eadd(|”B”,5,”E”|,n1); /*standard library function to print the list of edges*/ print_elist(n1); } }

slide-8
SLIDE 8

Test Suite

  • n

fail_assignment_edge1... OK

  • n

fail_assignment_edge2... OK

  • n

fail_assignment_int_to_s tring... OK

  • n

fail_assignment_string_t

  • _int...

OK $ ./testall.sh

  • n

test_assignment_list1... OK

  • n test_boolean_false...

OK

  • n test_boolean_true...

OK

  • n test_create_edge...

OK

  • n

test_get_heaviest_graph_ edge... OK

slide-9
SLIDE 9

DEMO

slide-10
SLIDE 10

Lessons Learned

+ Programming in pairs helps to weed out bugs in more than half the time. + Git commit, Git add and Git push all day + Use Ubuntu + OCaml’s pattern matching is a god send.