Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Augmented Ruby: The Rubinius Language Platform

brixen
March 04, 2014

Augmented Ruby: The Rubinius Language Platform

Talk presented at the March 4th, 2014 ChicagoRuby meetup.

brixen

March 04, 2014
Tweet

More Decks by brixen

Other Decks in Programming

Transcript

  1. def divide(a, b) a / b # 1 / 3

    => 0 end ! function divide(a, b) { a / b; /* 1 / 3 => 0.333 */ }
  2. ->0000: meta_push_1 0001: meta_push_2 0002: send_stack :+, 1 0005: push_int

    3 0007: send_stack :+, 1 0010: ret Stack Instructions 1 Interpretation
  3. Stack Instructions 1 Interpretation 2 0000: meta_push_1 ->0001: meta_push_2 0002:

    send_stack :+, 1 0005: push_int 3 0007: send_stack :+, 1 0010: ret
  4. Stack Instructions 3 Interpretation 3 0000: meta_push_1 0001: meta_push_2 0002:

    send_stack :+, 1 ->0005: push_int 3 0007: send_stack :+, 1 0010: ret
  5. Stack Instructions 6 Interpretation 0000: meta_push_1 0001: meta_push_2 0002: send_stack

    :+, 1 0005: push_int 3 ->0007: send_stack :+, 1 0010: ret
  6. Stack Instructions 6 Interpretation 0000: meta_push_1 0001: meta_push_2 0002: send_stack

    :+, 1 0005: push_int 3 0007: send_stack :+, 1 ->0010: ret