← Extractions

One machine please, make it Turing — David Halasz at wroclove.rb 2024

David Halasz delivers a theoretical-computer-science crash course for Ruby programmers at wroclove.rb 2024 — covering formal languages, the Chomsky hierarchy, finite/pushdown/Turing automata, the Church-Turing thesis, algorithmic complexity, and the compiler/interpreter pipeline (lex/parse/semantic analysis, optimizations, virtual machines). Concludes by pointing Rubyists to existing lexer/parser generators and alternative VMs (YARV, JRuby, TruffleRuby, Parrot) and urging developers to recognize the theoretical patterns under the hood.

Model
claude-opus-4-7
Ingestion
0effc2ba
Input tokens
270,580
fresh
218,160
cached
46,025
cache write
6,395
Output tokens
11,681
Duration
160.3s
Roundtrips
5
Tool calls
14
Cost
$0.00
Nodes/edges extracted
24 / 48
Read set (nodes/edges)
286 / 5

Nodes (24)

create Parrot VM tool
kind (empty) → tool
name (empty) → Parrot VM
slug (empty) → parrot-vm
attrs (empty) → {"category" => "platform"}
description (empty) → Multi-language virtual machine cited by Halasz as one of the alternative VMs onto which Ruby code can be targeted (al...
short_description (empty) → Multi-language virtual machine originally created for Perl 6.
create LLVM tool
kind (empty) → tool
name (empty) → LLVM
slug (empty) → llvm
attrs (empty) → {"category" => "platform"}
description (empty) → Compiler infrastructure / low-level virtual machine cited by Halasz as another alternative VM target for Ruby impleme...
short_description (empty) → Compiler infrastructure project and low-level virtual machine.
create Constant Propagation concept
kind (empty) → concept
name (empty) → Constant Propagation
slug (empty) → constant-propagation
attrs (empty) → {"category" => "practice"}
description (empty) → Optimization replacing a variable's use with its known constant value (e.g. substituting `3` for `a` where `a = 3`) s...
short_description (empty) → Substituting known constant values into later expressions at compile time.
create Virtual Machine concept
kind (empty) → concept
name (empty) → Virtual Machine
slug (empty) → virtual-machine
attrs (empty) → {"category" => "architecture"}
description (empty) → Software component that executes an intermediate representation (bytecode, three-address code, etc.) rather than runn...
short_description (empty) → Runtime that executes intermediate code instead of running directly on hardware.
update David Halasz person
attrs {"location" => "Brno, Czech Republic", "nationality" => "Hungarian", "twitter_handle" => "(mentioned on slide)"} → {"location" => "Brno, Czech Republic", "teaches_at" => "university", "nationality" => "Hungarian", "twitter_handle" =...
description Hungarian-born Ruby developer living in Brno, Czech Republic. Works at Red Hat on the ManageIQ project, mostly on in-... → Hungarian-born Ruby developer living in Brno, Czech Republic. Works at Red Hat on a small Ruby project (ManageIQ, mos...
update One machine please, make it Turing talk
description Talk at wroclove.rb 2024. → David Halasz's wroclove.rb 2024 talk (invited, in his words, by Andrzej 'Andre' Krzywda). A theoretical-computer-scie...
short_description Talk at wroclove.rb 2024. → Theoretical-CS primer for Ruby programmers: formal languages, Turing machines, compilers, VMs.
create Formal Languages concept
kind (empty) → concept
name (empty) → Formal Languages
slug (empty) → formal-languages
attrs (empty) → {"category" => "methodology"}
description (empty) → Languages defined mathematically by an alphabet (symbols/letters) and a grammar consisting of terminal and non-termin...
short_description (empty) → Mathematical languages defined by an alphabet and a grammar of production rules.
create Chomsky Hierarchy concept
kind (empty) → concept
name (empty) → Chomsky Hierarchy
slug (empty) → chomsky-hierarchy
attrs (empty) → {"category" => "architecture"}
description (empty) → Hierarchy classifying formal languages by the restrictions on their grammars and the automata required to parse them....
short_description (empty) → Classification of formal languages into regular, context-free, context-sensitive, and recursively enumerable.
create Finite State Machine concept
kind (empty) → concept
name (empty) → Finite State Machine
slug (empty) → finite-state-machine
attrs (empty) → {"category" => "pattern"}
description (empty) → Automaton consisting of a finite number of states and transitions that accepts exactly the regular languages. Every r...
short_description (empty) → Automaton with finite states used to recognize regular languages.
create Pushdown Automaton concept
kind (empty) → concept
name (empty) → Pushdown Automaton
slug (empty) → pushdown-automaton
attrs (empty) → {"category" => "pattern"}
description (empty) → A finite-state machine extended with a stack as memory. Recognizes context-free languages. Deterministic and non-dete...
short_description (empty) → Finite-state machine with a stack; recognizes context-free languages.
create YARV tool
kind (empty) → tool
name (empty) → YARV
slug (empty) → yarv
attrs (empty) → {"category" => "platform", "language" => "Ruby"}
description (empty) → MRI Ruby's stack-based virtual machine, written by Koichi Sasada ('Koji' in the transcript). Executes Ruby bytecode p...
short_description (empty) → Yet Another Ruby Virtual Machine; MRI Ruby's stack-based bytecode VM.
create Turing Machine concept
kind (empty) → concept
name (empty) → Turing Machine
slug (empty) → turing-machine
attrs (empty) → {"category" => "architecture"}
description (empty) → Mathematical model of computation: an infinite tape over an alphabet, a read/write head that can move left/right, a f...
short_description (empty) → Mathematical model of computation with an infinite tape, head, and state transitions.
create Church-Turing Thesis concept
kind (empty) → concept
name (empty) → Church-Turing Thesis
slug (empty) → church-turing-thesis
attrs (empty) → {"category" => "methodology"}
description (empty) → Thesis that whatever can be expressed by a Turing machine — or by its equivalents, lambda calculus and partially recu...
short_description (empty) → Anything computable can be computed by a Turing machine or equivalent formalism.
create Lambda Calculus concept
kind (empty) → concept
name (empty) → Lambda Calculus
slug (empty) → lambda-calculus
attrs (empty) → {"category" => "methodology"}
description (empty) → Mathematical formalism for expressing computation via function abstraction and application. Equivalent in expressive ...
short_description (empty) → Formal system for expressing computation; equivalent in power to Turing machines.
create Algorithmic Complexity concept
kind (empty) → concept
name (empty) → Algorithmic Complexity
slug (empty) → algorithmic-complexity
attrs (empty) → {"category" => "methodology"}
description (empty) → Two-dimensional analysis of algorithm cost. In Turing-machine terms: spatial complexity is how many cells of the tape...
short_description (empty) → Measure of algorithm cost in space (memory) and time (steps).
create Abstract Syntax Tree concept
kind (empty) → concept
name (empty) → Abstract Syntax Tree
slug (empty) → abstract-syntax-tree
attrs (empty) → {"category" => "architecture"}
description (empty) → Internal tree-shaped representation of source code generated by a parser: usually an operation at the top with operan...
short_description (empty) → Tree representation of source code produced by syntactical analysis.
create Bytecode concept
kind (empty) → concept
name (empty) → Bytecode
slug (empty) → bytecode
attrs (empty) → {"category" => "architecture"}
description (empty) → Intermediate representation of code, more compact than an AST and typically executed by a virtual machine. Some langu...
short_description (empty) → Compact instruction-set intermediate representation executed by a virtual machine.
create Compiler Pipeline concept
kind (empty) → concept
name (empty) → Compiler Pipeline
slug (empty) → compiler-pipeline
attrs (empty) → {"category" => "architecture"}
description (empty) → Canonical stages of a compiler or interpreter: (1) lexical analysis — character-by-character scanning into tokens, na...
short_description (empty) → Stages a compiler/interpreter uses: lex, parse, semantic analysis, optimization, execution/codegen.
create Loop Unrolling concept
kind (empty) → concept
name (empty) → Loop Unrolling
slug (empty) → loop-unrolling
attrs (empty) → {"category" => "practice"}
description (empty) → Compiler/interpreter optimization that detects a SIMD-capable CPU (MMX/SSE on x86) and unrolls a loop so that, for ex...
short_description (empty) → Compiler optimization expanding loops to exploit SIMD instructions.
create Constant Folding concept
kind (empty) → concept
name (empty) → Constant Folding
slug (empty) → constant-folding
attrs (empty) → {"category" => "practice"}
description (empty) → Optimization in which a compiler or interpreter evaluates a constant expression (e.g. a multiplication of literals) a...
short_description (empty) → Compile-time evaluation of constant expressions.
create Lexer and Parser Generators tool
kind (empty) → tool
name (empty) → Lexer and Parser Generators
slug (empty) → lexer-and-parser-generators
attrs (empty) → {"category" => "tool"}
description (empty) → Category of tooling (e.g. Yacc-style generators) that, given a grammar for a language, produces a lexer and parser em...
short_description (empty) → Tools that generate lexers and parsers from a grammar description.
create Recognize theoretical CS patterns under the hood takeaway
kind (empty) → takeaway
name (empty) → Recognize theoretical CS patterns under the hood
slug (empty) → recognize-theoretical-cs-patterns-under-the-hood
attrs (empty) → {"type" => "insight"}
description (empty) → Halasz's closing lesson: creating a programming language is not fun to do from scratch, but the patterns are already ...
short_description (empty) → Compiler and runtime design reuse classical formal-language and automata patterns.
create Use existing parser generators and VMs instead of rolling your own takeaway
kind (empty) → takeaway
name (empty) → Use existing parser generators and VMs instead of rolling your own
slug (empty) → use-existing-parser-generators-and-vms-instead-of-rolling-your-own
attrs (empty) → {"type" => "recommendation"}
description (empty) → Halasz's pragmatic advice: you will almost never build a language toolchain by hand. Tools exist to generate lexers a...
short_description (empty) → In practice, leverage lexer/parser generators and existing VMs (YARV, JRuby, TruffleRuby, Parrot, LLVM, .NET).
create Ruby Regex compiles to a finite-state automaton takeaway
kind (empty) → takeaway
name (empty) → Ruby Regex compiles to a finite-state automaton
slug (empty) → ruby-regex-compiles-to-a-finite-state-automaton
attrs (empty) → {"type" => "insight"}
description (empty) → Whenever you write a regular expression in Ruby, it generates an automaton of the kind described by type-3 regular gr...
short_description (empty) → Every Ruby Regexp is implemented as a finite-state machine under the hood.

Edges (48)

update David Halasz → authored → One machine please, make it Turing
context (empty) → Halasz delivered the talk at wroclove.rb 2024.
update One machine please, make it Turing → presented_at → wroclove.rb 2024
context (empty) → Talk was given at the March 22, 2024 edition of wroclove.rb.
update David Halasz → works_at → Red Hat
context Speaker states he works for Red Hat → States he works for Red Hat on a small Ruby project.
update David Halasz → works_on → ManageIQ
context Works on in-browser remote consoles in ManageIQ → Halasz's 'small Ruby project' at Red Hat — confirmed by his previous wroclove.rb 2019 talk.
create One machine please, make it Turing → about → Formal Languages
context (empty) → Chapter two of the talk introduces alphabets, grammars, words and languages.
relation (empty) → about
source_node_id (empty) → 5f6c6de7-3590-4026-92bb-6ef9cea6b7f4
target_node_id (empty) → 63cefbce-8aa7-4659-a6a7-1c58cb4a6e85
create One machine please, make it Turing → about → Chomsky Hierarchy
context (empty) → Walks through regular, context-free, context-sensitive, and recursively enumerable languages.
relation (empty) → about
source_node_id (empty) → 5f6c6de7-3590-4026-92bb-6ef9cea6b7f4
target_node_id (empty) → 2189e54f-7652-4a77-aa18-42ba11543d6f
create One machine please, make it Turing → about → Finite State Machine
context (empty) → Introduces FSMs as the parser for regular languages and lexical analysis.
relation (empty) → about
source_node_id (empty) → 5f6c6de7-3590-4026-92bb-6ef9cea6b7f4
target_node_id (empty) → 5ae037dc-737f-48da-8b81-73e91c8755c3
create One machine please, make it Turing → about → Pushdown Automaton
context (empty) → Explains pushdown automata as FSM + stack for context-free languages, with the parenthesis-matching example.
relation (empty) → about
source_node_id (empty) → 5f6c6de7-3590-4026-92bb-6ef9cea6b7f4
target_node_id (empty) → 900a4378-e88f-4d13-b263-50c695076159
create One machine please, make it Turing → about → Turing Machine
context (empty) → Core chapter describes tape, head, states, determinism, and multitape reductions.
relation (empty) → about
source_node_id (empty) → 5f6c6de7-3590-4026-92bb-6ef9cea6b7f4
target_node_id (empty) → dc884ab8-5a02-4b35-a39a-f0bd7cc1202d
create One machine please, make it Turing → about → Church-Turing Thesis
context (empty) → Presented as the bridge between Turing machines, lambda calculus and partially recursive functions.
relation (empty) → about
source_node_id (empty) → 5f6c6de7-3590-4026-92bb-6ef9cea6b7f4
target_node_id (empty) → f50032b0-72a3-4ea9-b446-050be0ce3b7f
create One machine please, make it Turing → about → Lambda Calculus
context (empty) → Cited as equivalent in power to Turing machines and general recursive functions.
relation (empty) → about
source_node_id (empty) → 5f6c6de7-3590-4026-92bb-6ef9cea6b7f4
target_node_id (empty) → 301d354e-b6e3-4418-a0c8-46bb92923ea5
create One machine please, make it Turing → about → Algorithmic Complexity
context (empty) → Defines spatial and time complexity in Turing-machine terms (cells used, head moves).
relation (empty) → about
source_node_id (empty) → 5f6c6de7-3590-4026-92bb-6ef9cea6b7f4
target_node_id (empty) → c13f6c8a-b258-4b4c-a0db-72782c35d6ea
create One machine please, make it Turing → about → Compiler Pipeline
context (empty) → Chapter four walks through lex, parse, semantic, optimize, execute/codegen.
relation (empty) → about
source_node_id (empty) → 5f6c6de7-3590-4026-92bb-6ef9cea6b7f4
target_node_id (empty) → 7db08c02-5cfb-4922-beaa-d1fec7e52760
create One machine please, make it Turing → about → Abstract Syntax Tree
context (empty) → AST is described as Ruby's internal tree representation after parsing.
relation (empty) → about
source_node_id (empty) → 5f6c6de7-3590-4026-92bb-6ef9cea6b7f4
target_node_id (empty) → 10cec82f-02fe-4082-971c-9a201646d6bd
create One machine please, make it Turing → about → Bytecode
context (empty) → Described as an alternative/additional intermediate representation (e.g. Java, and YARV's execution format).
relation (empty) → about
source_node_id (empty) → 5f6c6de7-3590-4026-92bb-6ef9cea6b7f4
target_node_id (empty) → c3914813-68ef-4f6a-97b5-7bdd2b5f0e12
create One machine please, make it Turing → about → Constant Folding
context (empty) → Given as an optimization example — precomputed multiplications of literal constants.
relation (empty) → about
source_node_id (empty) → 5f6c6de7-3590-4026-92bb-6ef9cea6b7f4
target_node_id (empty) → 40b3c3f4-5170-4e45-8be6-29f77957b577
create One machine please, make it Turing → about → Constant Propagation
context (empty) → Given as an optimization example — substituting known constant values.
relation (empty) → about
source_node_id (empty) → 5f6c6de7-3590-4026-92bb-6ef9cea6b7f4
target_node_id (empty) → 0f17e8a5-59a7-4bde-86e5-3b877a20ae50
create One machine please, make it Turing → about → Loop Unrolling
context (empty) → Halasz's favorite optimization, exploiting MMX/SSE SIMD for four multiplications at once.
relation (empty) → about
source_node_id (empty) → 5f6c6de7-3590-4026-92bb-6ef9cea6b7f4
target_node_id (empty) → 2ead5b13-4735-4559-a576-2155c4f48e1b
create One machine please, make it Turing → about → Virtual Machine
context (empty) → Explains what a (non-VirtualBox) VM is and how it hosts intermediate representations.
relation (empty) → about
source_node_id (empty) → 5f6c6de7-3590-4026-92bb-6ef9cea6b7f4
target_node_id (empty) → e7c2b1a6-a5b6-4b40-9d99-e808abfdceae
create One machine please, make it Turing → about → YARV
context (empty) → Cited as Ruby's stack-based virtual machine written by Koichi Sasada.
relation (empty) → about
source_node_id (empty) → 5f6c6de7-3590-4026-92bb-6ef9cea6b7f4
target_node_id (empty) → 07e736f8-8121-4c31-9aba-e784ece2d4a2
create One machine please, make it Turing → about → JRuby
context (empty) → Cited as the Ruby implementation running on the Java VM.
relation (empty) → about
source_node_id (empty) → 5f6c6de7-3590-4026-92bb-6ef9cea6b7f4
target_node_id (empty) → b76f329b-b6ac-4301-9a48-0d31d22a3d72
create One machine please, make it Turing → about → TruffleRuby
context (empty) → Cited as an alternative Ruby implementation on GraalVM.
relation (empty) → about
source_node_id (empty) → 5f6c6de7-3590-4026-92bb-6ef9cea6b7f4
target_node_id (empty) → f23def46-56c9-45bd-a05d-f663832df558
create One machine please, make it Turing → about → LLVM
context (empty) → Mentioned as an alternative VM/compilation target for Ruby.
relation (empty) → about
source_node_id (empty) → 5f6c6de7-3590-4026-92bb-6ef9cea6b7f4
target_node_id (empty) → 56daefd8-48ee-440d-86ad-39c418e993b6
create One machine please, make it Turing → about → Parrot VM
context (empty) → Mentioned as an alternative VM compatible with Ruby-family languages.
relation (empty) → about
source_node_id (empty) → 5f6c6de7-3590-4026-92bb-6ef9cea6b7f4
target_node_id (empty) → 30d9faa8-7c93-4a2e-9ff6-46901d870b0d
create One machine please, make it Turing → about → Lexer and Parser Generators
context (empty) → Practical closing advice to use existing generators rather than writing parsers by hand.
relation (empty) → about
source_node_id (empty) → 5f6c6de7-3590-4026-92bb-6ef9cea6b7f4
target_node_id (empty) → dde48808-9033-4269-a9a7-984033d96169
create One machine please, make it Turing → about → Global Interpreter Lock
context (empty) → Halasz notes the GVL that 'kills parallelism in Ruby' lives inside the virtual machine layer.
relation (empty) → about
source_node_id (empty) → 5f6c6de7-3590-4026-92bb-6ef9cea6b7f4
target_node_id (empty) → b2da1bdf-0293-4d62-8478-327f08bd9f7f
create Koichi Sasada → authored → YARV
context (empty) → Halasz attributes YARV to 'Koji' — Koichi Sasada.
relation (empty) → authored
source_node_id (empty) → 45fa5513-c41c-4176-9838-6014c8d29fb6
target_node_id (empty) → 07e736f8-8121-4c31-9aba-e784ece2d4a2
create Recognize theoretical CS patterns under the hood → from_talk → One machine please, make it Turing
context (empty) → Closing takeaway urging pattern recognition in real codebases.
relation (empty) → from_talk
source_node_id (empty) → 75da41a1-13f3-4032-9e28-74d8f54667cc
target_node_id (empty) → 5f6c6de7-3590-4026-92bb-6ef9cea6b7f4
create Use existing parser generators and VMs instead of rolling your own → from_talk → One machine please, make it Turing
context (empty) → Halasz's 'really bad news': you will never do this manually — tools exist.
relation (empty) → from_talk
source_node_id (empty) → f9273dc6-20f9-4e0b-ba71-87ed55097ea4
target_node_id (empty) → 5f6c6de7-3590-4026-92bb-6ef9cea6b7f4
create Ruby Regex compiles to a finite-state automaton → from_talk → One machine please, make it Turing
context (empty) → Pattern-recognition point: every Ruby regex generates an FSM under the hood.
relation (empty) → from_talk
source_node_id (empty) → 036bc3f0-3356-4a0f-b876-733d4a6a466a
target_node_id (empty) → 5f6c6de7-3590-4026-92bb-6ef9cea6b7f4
create Use existing parser generators and VMs instead of rolling your own → about → Lexer and Parser Generators
context (empty) → Takeaway recommends using generators instead of hand-writing parsers.
relation (empty) → about
source_node_id (empty) → f9273dc6-20f9-4e0b-ba71-87ed55097ea4
target_node_id (empty) → dde48808-9033-4269-a9a7-984033d96169
create Use existing parser generators and VMs instead of rolling your own → about → Virtual Machine
context (empty) → Takeaway recommends reusing existing VMs (YARV, JRuby, TruffleRuby, Parrot, LLVM, .NET).
relation (empty) → about
source_node_id (empty) → f9273dc6-20f9-4e0b-ba71-87ed55097ea4
target_node_id (empty) → e7c2b1a6-a5b6-4b40-9d99-e808abfdceae
create Ruby Regex compiles to a finite-state automaton → about → Finite State Machine
context (empty) → Takeaway is specifically about Ruby regex lowering to FSMs.
relation (empty) → about
source_node_id (empty) → 036bc3f0-3356-4a0f-b876-733d4a6a466a
target_node_id (empty) → 5ae037dc-737f-48da-8b81-73e91c8755c3
create Recognize theoretical CS patterns under the hood → about → Compiler Pipeline
context (empty) → Takeaway highlights patterns from automata theory showing up in every compiler stage.
relation (empty) → about
source_node_id (empty) → 75da41a1-13f3-4032-9e28-74d8f54667cc
target_node_id (empty) → 7db08c02-5cfb-4922-beaa-d1fec7e52760
create Andrzej Krzywda → related_to → One machine please, make it Turing
attrs (empty) → {"relationship" => "invited the speaker"}
context (empty) → Halasz jokes repeatedly that 'Andre made me do it' — Krzywda invited him as an organizer.
relation (empty) → related_to
source_node_id (empty) → 337ffd2c-5847-4b23-9ef7-e8f70aa4c66a
target_node_id (empty) → 5f6c6de7-3590-4026-92bb-6ef9cea6b7f4
create Finite State Machine → related_to → Formal Languages
context (empty) → FSMs parse the regular-language class within the Chomsky hierarchy.
relation (empty) → related_to
source_node_id (empty) → 5ae037dc-737f-48da-8b81-73e91c8755c3
target_node_id (empty) → 63cefbce-8aa7-4659-a6a7-1c58cb4a6e85
create Pushdown Automaton → related_to → Formal Languages
context (empty) → Pushdown automata parse context-free languages.
relation (empty) → related_to
source_node_id (empty) → 900a4378-e88f-4d13-b263-50c695076159
target_node_id (empty) → 63cefbce-8aa7-4659-a6a7-1c58cb4a6e85
create Turing Machine → related_to → Formal Languages
context (empty) → Turing machines parse recursively enumerable languages — the top of the Chomsky hierarchy.
relation (empty) → related_to
source_node_id (empty) → dc884ab8-5a02-4b35-a39a-f0bd7cc1202d
target_node_id (empty) → 63cefbce-8aa7-4659-a6a7-1c58cb4a6e85
create Chomsky Hierarchy → related_to → Formal Languages
context (empty) → The Chomsky hierarchy classifies formal languages by grammar and automaton power.
relation (empty) → related_to
source_node_id (empty) → 2189e54f-7652-4a77-aa18-42ba11543d6f
target_node_id (empty) → 63cefbce-8aa7-4659-a6a7-1c58cb4a6e85
create Lambda Calculus → related_to → Turing Machine
context (empty) → Equivalent in computational power (Church-Turing thesis).
relation (empty) → related_to
source_node_id (empty) → 301d354e-b6e3-4418-a0c8-46bb92923ea5
target_node_id (empty) → dc884ab8-5a02-4b35-a39a-f0bd7cc1202d
create Church-Turing Thesis → related_to → Turing Machine
context (empty) → The thesis states Turing machines capture the notion of effective computation.
relation (empty) → related_to
source_node_id (empty) → f50032b0-72a3-4ea9-b446-050be0ce3b7f
target_node_id (empty) → dc884ab8-5a02-4b35-a39a-f0bd7cc1202d
create Compiler Pipeline → related_to → Abstract Syntax Tree
context (empty) → The AST is the classical output of the syntactical-analysis stage.
relation (empty) → related_to
source_node_id (empty) → 7db08c02-5cfb-4922-beaa-d1fec7e52760
target_node_id (empty) → 10cec82f-02fe-4082-971c-9a201646d6bd
create Compiler Pipeline → related_to → Bytecode
context (empty) → Bytecode is an alternative intermediate representation emitted during/after parsing.
relation (empty) → related_to
source_node_id (empty) → 7db08c02-5cfb-4922-beaa-d1fec7e52760
target_node_id (empty) → c3914813-68ef-4f6a-97b5-7bdd2b5f0e12
create Virtual Machine → related_to → Bytecode
context (empty) → VMs typically execute bytecode intermediate representations.
relation (empty) → related_to
source_node_id (empty) → e7c2b1a6-a5b6-4b40-9d99-e808abfdceae
target_node_id (empty) → c3914813-68ef-4f6a-97b5-7bdd2b5f0e12
create YARV → related_to → Virtual Machine
context (empty) → YARV is the canonical MRI Ruby virtual machine.
relation (empty) → related_to
source_node_id (empty) → 07e736f8-8121-4c31-9aba-e784ece2d4a2
target_node_id (empty) → e7c2b1a6-a5b6-4b40-9d99-e808abfdceae
create Loop Unrolling → related_to → Compiler Pipeline
context (empty) → One of the optimizations performed in the optimization stage.
relation (empty) → related_to
source_node_id (empty) → 2ead5b13-4735-4559-a576-2155c4f48e1b
target_node_id (empty) → 7db08c02-5cfb-4922-beaa-d1fec7e52760
create Constant Folding → related_to → Compiler Pipeline
context (empty) → Optimization-stage transformation.
relation (empty) → related_to
source_node_id (empty) → 40b3c3f4-5170-4e45-8be6-29f77957b577
target_node_id (empty) → 7db08c02-5cfb-4922-beaa-d1fec7e52760
create Constant Propagation → related_to → Compiler Pipeline
context (empty) → Optimization-stage transformation.
relation (empty) → related_to
source_node_id (empty) → 0f17e8a5-59a7-4bde-86e5-3b877a20ae50
target_node_id (empty) → 7db08c02-5cfb-4922-beaa-d1fec7e52760

Read set

286 nodes

company SpaceX list_nodes_by_kind company Statesert list_nodes_by_kind person Aaron Patterson list_nodes_by_kind person Greg Young list_nodes_by_kind person Isaac Newton list_nodes_by_kind person Ismael Celis list_nodes_by_kind person Ivan Nemytchenko list_nodes_by_kind person Jakub Rodzik list_nodes_by_kind person Jan list_nodes_by_kind person Janko Marohnic list_nodes_by_kind person Jared list_nodes_by_kind person Joel Drapper list_nodes_by_kind person John Gallagher list_nodes_by_kind person John Hawthorne list_nodes_by_kind person Josef Strzibny list_nodes_by_kind person José Valim list_nodes_by_kind person Julik Tarkhanov list_nodes_by_kind person Karol Szuster list_nodes_by_kind person Koichi Sasada list_nodes_by_kind person Krzysztof Hasiński list_nodes_by_kind person Kuba Suder list_nodes_by_kind person Louis Antonopoulos list_nodes_by_kind person Lucian Ghinda list_nodes_by_kind person Łukasz Reszke list_nodes_by_kind person Łukasz Szydło list_nodes_by_kind person Maciej Rząsa list_nodes_by_kind person Maciek list_nodes_by_kind person Magnus Carlsen list_nodes_by_kind person Marco Heimeshoff list_nodes_by_kind person Mariusz Gil list_nodes_by_kind person Markus Schirp list_nodes_by_kind person Mark Zuckerberg list_nodes_by_kind person Soutaro Matsumoto list_nodes_by_kind person Stefan Wintermeyer list_nodes_by_kind person Stephan Schmidt list_nodes_by_kind person Stephen Margheim list_nodes_by_kind person Stephen Wolfram list_nodes_by_kind person Steve Ballmer list_nodes_by_kind person Szymon Fiedler list_nodes_by_kind person Szymon Kulec list_nodes_by_kind person Toby Lütke list_nodes_by_kind person Tomasz Donarski list_nodes_by_kind person Victor Shepelev list_nodes_by_kind person Vladimir Dementyev list_nodes_by_kind person Wojtek Wrona list_nodes_by_kind person Xavier Noria list_nodes_by_kind person Yaroslav Shmarov list_nodes_by_kind person Yatish Mehta list_nodes_by_kind person Yehuda Katz list_nodes_by_kind event 2NIT Nerds on Lakes Sailing Trip list_nodes_by_kind event Advent of Code list_nodes_by_kind event Brighton Ruby list_nodes_by_kind event EmberConf list_nodes_by_kind event Eventide Summit 2023 list_nodes_by_kind event Hacktoberfest list_nodes_by_kind event KanDDDinsky list_nodes_by_kind event Rails World list_nodes_by_kind event wroclove.rb 2018 list_nodes_by_kind+search_nodes event wroclove.rb 2019 list_nodes_by_kind+search_nodes event wroclove.rb 2022 list_nodes_by_kind+search_nodes event wroclove.rb 2023 list_nodes_by_kind+search_nodes event wroclove.rb 2024 list_nodes_by_kind+search_nodes event wroclove.rb 2025 list_nodes_by_kind+search_nodes event wroclove.rb 2026 list_nodes_by_kind+search_nodes company 2NIT list_nodes_by_kind company 37signals list_nodes_by_kind company adesh consulting list_nodes_by_kind person Adam Okoń list_nodes_by_kind person Adam Piotrowski list_nodes_by_kind person Adrian Marin list_nodes_by_kind person Agnieszka Małaszkiewicz list_nodes_by_kind person Akira Matsuda list_nodes_by_kind person Albert Einstein list_nodes_by_kind person Alberto Brandolini list_nodes_by_kind person Alina Lova list_nodes_by_kind person Amanda list_nodes_by_kind person Amelia Walter-Dzikowska list_nodes_by_kind person Andrei Bondarev list_nodes_by_kind person Andrei Kaleshka list_nodes_by_kind person Andrew Kane list_nodes_by_kind person Andrey Sitnik list_nodes_by_kind person Andrzej Krzywda list_nodes_by_kind+search_nodes person Andrzej Śliwa list_nodes_by_kind person Andy Hunt list_nodes_by_kind person Andy Kroll list_nodes_by_kind person Andy Maleh list_nodes_by_kind person Anita Jaszewska list_nodes_by_kind person Anton Davydov list_nodes_by_kind person Armin Pašalić list_nodes_by_kind person Arturo Herrero list_nodes_by_kind person Ayush Newatia list_nodes_by_kind person Bartosz Blimke list_nodes_by_kind person Ben Johnson list_nodes_by_kind person Bertrand Meyer list_nodes_by_kind person Caio Almeida list_nodes_by_kind person Charles Nutter list_nodes_by_kind person Chikahiro Tokoro list_nodes_by_kind person Chris Oliver list_nodes_by_kind person Claude Lévi-Strauss list_nodes_by_kind person Damir Zekić list_nodes_by_kind person Dan Kubb list_nodes_by_kind person Dave Thomas list_nodes_by_kind person David Halasz list_nodes_by_kind+get_node_edges person DHH list_nodes_by_kind person Dimitry Salahutdinov list_nodes_by_kind person Elisabeth Kübler-Ross list_nodes_by_kind person Emiliano Della Casa list_nodes_by_kind person Eric Evans list_nodes_by_kind person Eric Normand list_nodes_by_kind person Erin Meyer list_nodes_by_kind person Erwin Kroon list_nodes_by_kind person Ethan Garofolo list_nodes_by_kind person Galileo Galilei list_nodes_by_kind person Garry Kasparov list_nodes_by_kind person G.K. Chesterton list_nodes_by_kind person Gottfried Wilhelm Leibniz list_nodes_by_kind person Greg Molnar list_nodes_by_kind person Greg Navis list_nodes_by_kind person Martin Fowler list_nodes_by_kind person Martin Gamsjaeger list_nodes_by_kind person Masahiro Nakagawa list_nodes_by_kind person Mateusz Nowak list_nodes_by_kind person Matthias Verraes list_nodes_by_kind person Matz list_nodes_by_kind person Max Howell list_nodes_by_kind person Michael (liik) list_nodes_by_kind person Michał Bronikowski list_nodes_by_kind+search_nodes person Michał (Helpling) list_nodes_by_kind person Michal Matyas list_nodes_by_kind person Michał Młoźniak list_nodes_by_kind person Michał Zajączkowski de Mezer list_nodes_by_kind person Mike Dalessio list_nodes_by_kind person Mike Perham list_nodes_by_kind person Miron Marczuk list_nodes_by_kind person Nate Berkopec list_nodes_by_kind person Nathan Ladd list_nodes_by_kind person Nick Schwaderer list_nodes_by_kind person Nick Sutterer list_nodes_by_kind person Nicolò Rebughini list_nodes_by_kind person Norbert Wójtowicz list_nodes_by_kind person Pavo list_nodes_by_kind person Paweł Dąbrowski list_nodes_by_kind person Paweł Pacana list_nodes_by_kind person Paweł Pokrywka list_nodes_by_kind person Paweł Strzałkowski list_nodes_by_kind person Peter Solnica list_nodes_by_kind person Piotr Solnica list_nodes_by_kind person Radoslav Stankov list_nodes_by_kind person Rafael Zamaris list_nodes_by_kind person Rafał Cymerys list_nodes_by_kind person Rafał Rothenberger list_nodes_by_kind person René Descartes list_nodes_by_kind person Rich Hickey list_nodes_by_kind person Robert C. Martin list_nodes_by_kind person Romeu Moura list_nodes_by_kind person Ryan Townsend list_nodes_by_kind person Sam Newman list_nodes_by_kind person Sandi Metz list_nodes_by_kind person Scott Bell list_nodes_by_kind person Scott Bellware list_nodes_by_kind person Scott Wlaschin list_nodes_by_kind person Sean Schofield list_nodes_by_kind person Sebastian Wilgosz list_nodes_by_kind person Sergey Ivanov list_nodes_by_kind person Sergey Sergyenko list_nodes_by_kind person Seth Horsley list_nodes_by_kind person Sharon Rosner list_nodes_by_kind person Shona list_nodes_by_kind person Shugo Maeda list_nodes_by_kind company Air Canada list_nodes_by_kind company Amazon list_nodes_by_kind company Amplifr list_nodes_by_kind company Andreessen Horowitz list_nodes_by_kind company Anthropic list_nodes_by_kind company Apply4 list_nodes_by_kind company Arkency list_nodes_by_kind company Auth0 list_nodes_by_kind company Bearer list_nodes_by_kind company Brightworks list_nodes_by_kind company Chattermill list_nodes_by_kind company Clear Scope list_nodes_by_kind company Cloudflare list_nodes_by_kind company Cybergeizer list_nodes_by_kind company Dollar Shave Club list_nodes_by_kind company Evil Martians list_nodes_by_kind company Facebook list_nodes_by_kind company Fly.io list_nodes_by_kind company General Motors list_nodes_by_kind company German Police list_nodes_by_kind company GitHub list_nodes_by_kind company GitLab list_nodes_by_kind company Google list_nodes_by_kind company Helpling list_nodes_by_kind company Hetzner list_nodes_by_kind company Hippo list_nodes_by_kind company Institute of Computer Science, Wrocław list_nodes_by_kind company Ironin list_nodes_by_kind company Jobandtalent list_nodes_by_kind company liik list_nodes_by_kind company LinkedIn list_nodes_by_kind company Meedan list_nodes_by_kind company Microsoft list_nodes_by_kind company Mistral AI list_nodes_by_kind company Monterail list_nodes_by_kind company Nagarro list_nodes_by_kind company Netflix list_nodes_by_kind company New Bamboo list_nodes_by_kind company OpenAI list_nodes_by_kind company OVH list_nodes_by_kind company Phusion Passenger list_nodes_by_kind company Planuj Wesele list_nodes_by_kind+search_nodes company Pragmatic Bookshelf list_nodes_by_kind company Product Hunt list_nodes_by_kind company Rails Foundation list_nodes_by_kind company Red Hat list_nodes_by_kind company Salesforce list_nodes_by_kind company Secret Source list_nodes_by_kind company Shopify list_nodes_by_kind company SoftSwiss list_nodes_by_kind company Solaris Bank list_nodes_by_kind company test.io list_nodes_by_kind company ThoughtWorks list_nodes_by_kind company Transloadit list_nodes_by_kind company Turso list_nodes_by_kind company Twitter list_nodes_by_kind company Upside list_nodes_by_kind company USA Today list_nodes_by_kind company US Department of Health and Human Services list_nodes_by_kind company Visuality list_nodes_by_kind company YouTube list_nodes_by_kind company Zencargo list_nodes_by_kind company Zendesk list_nodes_by_kind+search_nodes project ManageIQ search_nodes concept Manager Layer search_nodes tool PagerDuty search_nodes concept Process Manager search_nodes tool langchainrb search_nodes tool Render search_nodes tool Redmine search_nodes tool Honeycomb search_nodes tool New Relic search_nodes tool YJIT search_nodes tool TruffleRuby search_nodes tool Distributed Ruby search_nodes takeaway Read Ruby source to understand Ruby search_nodes tool mruby search_nodes concept Global Interpreter Lock search_nodes talk Rubyana Gems and the Ractorous Rubetta Stones! search_nodes tool Ruby Packer search_nodes resource Ruby parse.y search_nodes tool Ruby search_nodes talk One machine please, make it Turing search_nodes concept State Machine search_nodes concept AI Agent search_nodes concept Petri Nets search_nodes project AlphaZero search_nodes concept Rubber Duck Debugging search_nodes tool ChatGPT search_nodes project Petri Nets Performance Prediction Gem search_nodes concept Vector Embeddings search_nodes concept Backus-Naur Form search_nodes takeaway Business logic is mostly about state machines search_nodes takeaway Use state machines instead of boolean flags search_nodes tool Yacc search_nodes tool Babel search_nodes concept Transpilers search_nodes tool PureScript search_nodes concept WebAssembly search_nodes tool Crystal search_nodes takeaway Watch WebAssembly for real performance wins search_nodes tool Elm search_nodes tool Flow search_nodes tool Opal search_nodes talk When REST is Not Enough: Implementing Alternative Protocols in Ruby on Rails search_nodes talk JRuby: Professional-Grade Ruby search_nodes tool JRuby search_nodes tool IronRuby search_nodes takeaway Upgrade Ruby version for free speed search_nodes tool AWS Lambda search_nodes takeaway Identify Data Calculations Actions In Your System search_nodes tool Clojure search_nodes takeaway Purity Is The Wrong Lens; Dependency On Time Is The Right One search_nodes concept Function as a Service search_nodes talk Functional Programming as Naming Lightning Talk search_nodes takeaway Sign serverlessforruby.org petition search_nodes tool Elixir search_nodes

5 edges