GOBLAN A Graphical Object Language

Slides:



Advertisements
Similar presentations
Semantics Static semantics Dynamic semantics attribute grammars
Advertisements

Intermediate Code Generation
Control Flow Analysis (Chapter 7) Mooly Sagiv (with Contributions by Hanne Riis Nielson)
ISBN Chapter 10 Implementing Subprograms.
Code Generation Mooly Sagiv html:// Chapter 4.
Representing programs Goals. Representing programs Primary goals –analysis is easy and effective just a few cases to handle directly link related things.
Introduction to Code Generation Mooly Sagiv html:// Chapter 4.
1 Semantic Processing. 2 Contents Introduction Introduction A Simple Compiler A Simple Compiler Scanning – Theory and Practice Scanning – Theory and Practice.
Tentative Schedule 20/12 Interpreter+ Code Generation 27/12 Code Generation for Control Flow 3/1 Activation Records 10/1 Program Analysis 17/1 Register.
Introduction to Code Generation Mooly Sagiv html:// Chapter 4.
EMDL Extended Motion Description Language. EMDL vs. MDL.
Conceptual Architecture of PostgreSQL PopSQL Andrew Heard, Daniel Basilio, Eril Berkok, Julia Canella, Mark Fischer, Misiu Godfrey.
Abstract Syntax Trees Lecture 14 Wed, Mar 3, 2004.
C++ Programming. Table of Contents History What is C++? Development of C++ Standardized C++ What are the features of C++? What is Object Orientation?
BUILD ON THE POLYGLOT COMPILER FRAMEWORK MIHAL BRUMBULLI 7th Workshop “SEERE” Montenegro-Risan 9-14 September 2007 SimJ Programming Language.
1 Broadcast. 2 3 Use a spanning tree Root 4 synchronous It takes the same time at link to send a message It takes the same time at each node to process.
A Technique for Constructing Aspect Weavers using a Program Transformation Engine Jeff Gray Suman Roychoudhury Department of Computer and Information Sciences.
COP 4620 / 5625 Programming Language Translation / Compiler Writing Fall 2003 Lecture 1, 08/28/03 Prof. Roy Levow.
Model 3: Message-Passing Text We saw –Diagrams –Shared-variables text Now –Message-passing text (like CSP)
Theory of Programming Languages Introduction. What is a Programming Language? John von Neumann (1940’s) –Stored program concept –CPU actions determined.
C H A P T E R T W O Linking Syntax And Semantics Programming Languages – Principles and Paradigms by Allen Tucker, Robert Noonan.
Text TCS INTERNAL Oracle PL/SQL – Introduction. TCS INTERNAL PL SQL Introduction PLSQL means Procedural Language extension of SQL. PLSQL is a database.
Computer Science: A Structured Programming Approach Using C1 Objectives ❏ To introduce the basic concepts of linked lists ❏ To introduce the basic concepts.
Graphs Definition: a graph is an abstract representation of a set of objects where some pairs of the objects are connected by links. The interconnected.
Channels. Models for Communications Synchronous communications – E.g. Telephone call Asynchronous communications – E.g. .
UNIVERSITY OF SOUTH CAROLINA Department of Computer Science and Engineering CSCE 330 Programming Language Structures Operational Semantics (Slides mainly.
CS 404Ahmed Ezzat 1 CS 404 Introduction to Compiler Design Lecture Ahmed Ezzat.
SPACE COMPLEXITY & TIME COMPLEXITY 1. ALGORITHMS COMPLEXITY 2.
Aryeh Tasher Brian Ramos Qijun Zhong Michael Li Tian Zhang.
Introduction to Distributed Systems Slides for CSCI 3171 Lectures E. W. Grundke.
Andy Wang Object Oriented Programming in C++ COP 3330
Names and Attributes Names are a key programming language feature
DDC 2423 DATA STRUCTURE Main text:
CS 3304 Comparative Languages
Chapter 15 Lists Objectives
Review: Chapter 5: Syntax directed translation
Prepared by : Ankit Patel (226)
UNIT - V STORED PROCEDURE.
Abstract Syntax Trees Lecture 14 Mon, Feb 28, 2005.
Application with Cross-Platform GUI
PHP Training at GoLogica in Bangalore
CS416 Compiler Design lec00-outline September 19, 2018
ECET 370 HELPS Education Your Life-- ecet370helps.com.
ECET 370 Education for Service-- tutorialrank.com
Concurrency Specification
Automated Parser Generation for High-Speed NIDS
Chapter 15 Lists Objectives
Jim Fawcett CSE776 – Design Patterns Summer 2003
Intermediate Representations
CMPE 152: Compiler Design September 13 Class Meeting
CS 440 Database Management Systems
Andy Wang Object Oriented Programming in C++ COP 3330
Intermediate Representations
Conceptual Architecture of PostgreSQL
Data Model.
Conceptual Architecture of PostgreSQL
Channels.
Review CSE116 2/21/2019 B.Ramamurthy.
CS416 Compiler Design lec00-outline February 23, 2019
A programming language
SYNTAX DIRECTED DEFINITION
Answering Cross-Source Keyword Queries Over Biological Data Sources
Channels.
Channels.
Compiler Construction
Lec00-outline May 18, 2019 Compiler Design CS416 Compiler Design.
An Orchestration Language for Parallel Objects
COP4020 Programming Languages
COP4020 Programming Languages
CMPE 152: Compiler Design September 17 Class Meeting
Presentation transcript:

GOBLAN A Graphical Object Language Yunsung Kim, Sean Garvey, Sameer Lal, Jee Hyun Wang

Table of Contents Graph Programming in Conventional Languages Graph Programming in GOBLAN What is “Message Passing?” Strength of GOBLAN Structure of GOBLAN Demo

Graph Programming in Conventional Languages Conventional Languages implementation of graph programming Can be tedious, time consuming Usually try to manipulate the graph as a whole, by using lists and arrays, and many loops.

Graph Programming in GOBLAN Domain specific language for constructing and manipulating complex structured graphs Introduces a new paradigm of graph programming Message Passing Enables the communication between individual nodes

Message Passing Algorithms consists of two parts 1) Communicating data between nodes through messages 2) Processing messages to update current node data Many graph algorithms fall into the paradigm of message passing node_1 node_2 msg

Message Passing Tree search 1 Q: Where is ? 2 3 4 5 6 8 7 9

Message Passing Tree search 1 Query Q: Where is ? Query Query 2 3 1. Receive message 4 5 6 8 7 9

Message Passing Tree search 1 Q: Where is ? 2 “Do I have ?” Query 3 2. Process message 4 5 6 8 7 9

Message Passing Tree search 1 Q: Where is ? “I'm 3 and I have !” 2 Query 3 3. Pass message 4 5 6 8 7 9

Message Passing Tree search 1. 1→3 1 Q: Where is ? 2 3 3. Pass message Query Query Query Query Query 4 5 6 8 Query 7 9

Message Passing Tree search 1. 1→3 1 Q: Where is ? 2 3 1. Receive message “I'm 3 and I have !” 4 5 6 8 Query 7 9

Message Passing Tree search 1. 1→3 1 Q: Where is ? 2 1. 3→7 3 2. Process message 4 5 6 8 Query 7 9

Message Passing Tree search 1. 1→3 2. 1→3→7 1 Q: Where is ? “3→7” 2 1. 3→7 3 3. Pass message 4 5 6 8 Query 7 9

Strength of GOBLAN Intuitive node declaration Object function: run { node } ( arg1, arg2, …. ) Message passing: pass pkt -> chld Graph construction: new graph(node:A)[|…|]

Strength of GOBLAN Intuitive node declaration node:NodeType { data { /* data specification */ } edge { /* edge attribute specification */ pack { /* message attribute specification */ type do (type arg1, type arg2, ...) { /* asynchronous function definition (Can be called anywhere in the program) */ catch { /* synchronous function definition (Invoked upon receiving a message) */

Strength of GOBLAN Object function: run { node } ( arg1, arg2, …. ) Asynchronous object function Allows simple invocation of graph algorithms Invoked anywhere in the program

Strength of GOBLAN Message passing: pass pkt -> chld Simple keyword : chld | prnt |prnt_chld | chld_prnt High level encapsulation of intricate recursion

Strength of GOBLAN Graph construction: new graph(node:A)[|…|] Interconnecting nodes through statements that are easy to understand

Structure of GOBLAN How graphs are represented N1 … chld prnt … ID edge … N2 N1 edge chld prnt edge ID N2 … …

Structure of GOBLAN (compiling) AST Lexer Parser Semantics List.bc List.c SAST executable LLVM-LINK Code Generation clang

DEMO Dijkstra's algorithm Tree Search

DEMO Dijkstra's algorithm

DEMO Tree Search 1 2 3 10 4 5 6 7 8 9 Id: 0 Data: 0 Id: 2 Data: 2 Id: 2 Data: 2 1 Id: 1 Data: 1 2 3 Id: 3 Data: 3 10 4 5 6 7 8 9 Id: 4 Data: 0 Id: 5 Data: 1 Id: 6 Data: 2 Id: 7 Data: 3 Id: 8 Data: 0 Id: 9 Data: 1 Id: 10 Data: 1