Published
Edited
May 6, 2020
2 stars
Insert cell
md`# datasys2`
Insert cell
adot`digraph my_graph {

if_start;
statements_true; statements_true;
if_done;

if_start -> statements_true -> if_done;
if_start -> statements_false -> if_done;

}`
Insert cell
md`---`
Insert cell
adot`digraph my_graph {
rankdir=LR;

item0 [shape="record", label="{<data>data: 3 | <next>next}"];
item1 [shape="record", label="{<data>data: 6 | <next>next}"];
item2 [shape="record", label="{<data>data: 7 | <next>next}"];

item0:next -> item1;
item1:next -> item2;
item2:next -> null;

this -> item0;

ins [label="ins: 5"];


}`
Insert cell
adot`digraph my_graph {
rankdir=LR;

item0 [shape="record", label="item0 | {<data>data: 7 | <next>next}"];
item1 [shape="record", label="item1 | {<data>data: 6 | <next>next}"];
item2 [shape="record", label="item2 | {<data>data: 3 | <next>next}"];

itemnew [shape="record", label="itemnew | {<data>data: null | <next>next}"];

item0:next -> item1;
item1:next -> item2;
item2:next -> null;

this -> item0;

ins [label="ins: 2"];


}`
Insert cell
adot`digraph my_graph {
rankdir=LR;

item0 [shape="record", label="item0 | {<data>data: 8 | <next>next}"];
item1 [shape="record", label="item1 | {<data>data: 6 | <next>next}"];
item2 [shape="record", label="item2 | {<data>data: 3 | <next>next}"];

itemnew [shape="record", label="itemnew | {<data>data: 7 | <next>next}"];

item0:next -> itemnew;
itemnew:next -> item1;
item1:next -> item2;
item2:next -> null;

this -> item0;

ins [label="ins: 8"];


}`
Insert cell
adot`digraph my_graph {
rankdir=LR;

item0 [shape="record", label="{<data>data | <next>next}"];
item1 [shape="record", label="{<data>data | <next>next}"];
item2 [shape="record", label="{<data>data | <next>next}"];

item0:next -> item1;
item1:next -> item2;

this -> item0;
curObj -> item0;
nextObj -> item1;


}`
Insert cell
adot`digraph my_graph {
rankdir=LR;

item0 [shape="record", label="{<data>data | <next>next}"];
item1 [shape="record", label="{<data>data | <next>next}"];
item2 [shape="record", label="{<data>data | <next>next}"];

item0:next -> item1;
item1:next -> item2;

this -> item0;
curObj -> item1;
nextObj -> item1;


}`
Insert cell
md`---`
Insert cell
adot`digraph my_graph {

rankdir=LR;
input -> blackbox -> output;


}`
Insert cell
adot`digraph my_graph {

rankdir=LR;
input -> blackbox -> output -> simulator -> test -> answer;
a[label="a:
push constant 10"];
a -> input;
b -> input;
d -> input;
c -> input;


}`
Insert cell
adot`digraph my_graph {

rankdir=LR;

subgraph cluster_simulator {
asm_simulator
}

blackbox [label="blackbox: hvm.py"];
input [label="input: vm"];
output [label="output: asm"];
input -> blackbox -> output -> cpu_simulator -> ram -> out_file;
test -> answer;

input -> ram [label="tanke"];
input -> ram [label="vm_simulator"];

cmp_file -> test;
out_file -> test;

a[label="a:
push constant 10"];
a -> input;
// b -> input;
// d -> input;
// c -> input;


}`
Insert cell
adot`digraph {

rankdir=LR;

t [label="push constant 10"];
a [shape=record, label="stack | {0| 256 (SP)} | {...|...} | {256| 0}"];
b [shape=record, label="stack | {0| 257 (SP)} | {...|...} | {256| 10}"];
a -> b;

}`
Insert cell
age = 4+60
Insert cell
age *10
Insert cell
rnddag = {
const randomDAG = (x, n) => {
const length = n * (n - 1) / 2;

const dag = new Array(length).fill(1);

for (let i = 0; i < length; i++) {
if (Math.random() < x) continue;
dag[i] = 0;
if (!isConnected(n, dag)) dag[i] = 1;
}

return dag;
};

const dagIndex = (n, i, j) => n * i + j - (i + 1) * (i + 2) / 2;

const isConnected = (n, dag) => {
const reached = new Array(n).fill(false);

reached[0] = true;

const queue = [0];

while (queue.length > 0) {
const x = queue.shift();

for (let i = 0; i < n; i++) {
if (i === n || reached[i]) continue;
const j = i < x ? dagIndex(n, i, x) : dagIndex(n, x, i);
if (dag[j] === 0) continue;
reached[i] = true;
queue.push(i);
}
}

return
}
}
Insert cell
adot`${randomConnectedDot(0.3, 10)}`
Insert cell
Insert cell
md`---`
Insert cell
d3 = require("d3-graphviz", "d3-selection", "d3-transition", "d3-ease")
Insert cell
import {adot, logoDots, logoDot} from "@magjac/d3-graphviz"
Insert cell

Purpose-built for displays of data

Observable is your go-to platform for exploring data and creating expressive data visualizations. Use reactive JavaScript notebooks for prototyping and a collaborative canvas for visual data exploration and dashboard creation.
Learn more