# Understanding Programs Using Graphs

DevFeed: [Understanding Programs Using Graphs](<https://devfeed.tech/articles/understanding-programs-using-graphs-1658.md>)

Original publisher: [Read original article](<https://shopify.engineering/understanding-programs-using-graphs>)

Author: Chris Seaton

Published: 2020-06-02T17:07:00Z

Content type: tutorial

Language: en

Sources: [Shopify Engineering](<https://devfeed.tech/sources/shopify-engineering.md>), [Shopify Engineering - Shopify Engineering](<https://devfeed.tech/sources/shopify-engineering-shopify-engineering.md>)

Topics: [toolchain](<https://devfeed.tech/topics/toolchain.md>)

Tags: [algorithms](<https://devfeed.tech/tags/algorithms.md>), [graphs](<https://devfeed.tech/tags/graphs.md>), [java](<https://devfeed.tech/tags/java.md>), [ruby](<https://devfeed.tech/tags/ruby.md>)

## AI overview

A recording explains how TruffleRuby's just-in-time compiler uses sea-of-nodes graphs as an intermediate representation after parsing. It contrasts these graphs with abstract syntax trees and uses simple Java examples to illustrate compiler behavior.

## Source excerpt

I want to show you a little of what this sea-of-nodes graph data structure looks like and how it works, and I think it's worth doing this for this for a couple of reasons.