SlideShare a Scribd company logo
XRuby Enjoy Ruby on JVM Ye Zheng http://dreamhead.blogbus.com
Agenda What is XRuby XRuby Architecture XRuby Jump Start More on XRuby
Agenda What is XRuby XRuby Architecture XRuby Jump Start More on XRuby
What is XRuby XRuby is the first Ruby to Java compiler which compiles Ruby source code (.rb) to Java bytecode (.class).  XRuby .rb .class
XRuby current status The latest version is 0.3.0. test::unit works. XRuby debugger provided Java to Ruby binding annotation. Runs most benchmark faster than ruby 1.8.6.
Two Ways to JVM(I) Interpretation current C Ruby way easy to port needs interpretation engine slow Ruby Script Parser AST
Two Ways to JVM(II) Compilation needs more explorations  uses JVM as execution engine protects source code fast Ruby Script Compiler .class
Why Compilation is Faster Compilation is faster than interpretation JVM JVM Interpretation Engine Ruby Script Ruby Script Interpretation Compilation
Misunderstandings It erases dynamic language features. Dynamic structure written in Java is developed to support dynamic language features It maps Ruby class to Java class directly. Ruby class is a dynamic language structure, and it is different from Java class which is a static structure
Agenda What is XRuby XRuby Architecture XRuby Jump Start More on XRuby
XRuby Architecture (overview) XRuby Compiler Runtime Parser Codegen Codedom Lang Builtin Java Support
XRuby Architecture (compiler) Parser .rb .class Tree Parser Code Gen AST Code Dom Antlr ASM XRuby Compiler
XRuby Architecture (runtime) Dynamic Language Support Builtin Java Support XRuby Runtime
Agenda What is XRuby XRuby Architecture XRuby Jump Start More on XRuby
XRuby Jump Start (Ruby code) class MyClass  def say_hello_three_times 3.times { puts "hello"} end end MyClass.new.say_hello_three_times
XRuby Jump Start (compile and run) Compile java -jar xruby-0.3.0.jar -c demo.rb  Run java -jar demo.jar  Output hello hello hello
XRuby Jump Start (builtin) @RubyLevelClass(name="Array") public class RubyArray … { … @RubyLevelMethod(name="length") public RubyFixnum length() { return ObjectFactory.createFixnum(this.array_.size()); } … }
XRuby Jump Start (reference) XRuby Hacking Guide is a good start to understand XRuby. Ruby Hacking Guide is a good reference to Ruby implementation. Builtin is a good start and reference to XRuby code.
Agenda What is XRuby XRuby Architecture XRuby Start-up More on XRuby
XRuby’s Future XRuby 0.4.0 Pass all C Ruby tests (Milestone)  Compile multiple ruby scripts into one jar Implement more builtin libraries  Improve performance  Long Term Make Ruby on Rails work  Upgrade Antlr to 3.0
Contribution to XRuby Principles Every contribution is welcome. Every attempt is encouraged. Approaches Use XRuby Report bugs Commit patches. Join mailing list to share ideas. Become a XRuby project member. …
Enjoy XRuby Enjoy development of a compiler. Ruby is a elegant language. Work with JVM. Understand dynamic language internals. Contribute to open source. We can grow with XRuby since it’s new.
For More Information Homepage http://www.xruby.com Project Homepage http://code.google.com/p/xruby/ Project Blog http://xruby.blogspot.com Project Group http://groups.google.com/group/xruby-devel
Welcome to XRuby
Ad

More Related Content

What's hot (20)

roofimon@njug5
roofimon@njug5roofimon@njug5
roofimon@njug5
ทวิร พานิชสมบัติ
 
Introduction to Ruby
Introduction to RubyIntroduction to Ruby
Introduction to Ruby
kim.mens
 
MacRuby: What is it? and why should you care?
MacRuby: What is it? and why should you care?MacRuby: What is it? and why should you care?
MacRuby: What is it? and why should you care?
Joshua Ballanco
 
Ruby Presentation - Beamer
Ruby Presentation - BeamerRuby Presentation - Beamer
Ruby Presentation - Beamer
Christopher Giroir
 
Ruby 2.4 Internals
Ruby 2.4 InternalsRuby 2.4 Internals
Ruby 2.4 Internals
Koichi Sasada
 
Connecting the Worlds of Java and Ruby with JRuby
Connecting the Worlds of Java and Ruby with JRubyConnecting the Worlds of Java and Ruby with JRuby
Connecting the Worlds of Java and Ruby with JRuby
Nick Sieger
 
Python while loops (menard maranan)
Python while loops (menard maranan)Python while loops (menard maranan)
Python while loops (menard maranan)
Menard Maranan
 
Python for loops
Python for loopsPython for loops
Python for loops
Menard Maranan
 
Metaprogramming in Ruby
Metaprogramming in RubyMetaprogramming in Ruby
Metaprogramming in Ruby
John Vlachoyiannis
 
JRuby 9000 - Taipei Ruby User's Group 2015
JRuby 9000 - Taipei Ruby User's Group 2015JRuby 9000 - Taipei Ruby User's Group 2015
JRuby 9000 - Taipei Ruby User's Group 2015
Charles Nutter
 
How to develop the Standard Libraries of Ruby?
How to develop the Standard Libraries of Ruby?How to develop the Standard Libraries of Ruby?
How to develop the Standard Libraries of Ruby?
Hiroshi SHIBATA
 
2009 07 21: Nested Attributes
2009 07 21: Nested Attributes2009 07 21: Nested Attributes
2009 07 21: Nested Attributes
Wolfram Arnold
 
Introduction to JRuby
Introduction to JRubyIntroduction to JRuby
Introduction to JRuby
elliando dias
 
The Ruby Racer: under the hood
The Ruby Racer: under the hoodThe Ruby Racer: under the hood
The Ruby Racer: under the hood
cowboyd
 
Js bad_
 Js bad_ Js bad_
Js bad_
Rob Robbins
 
tDiary annual report 2009 - Sapporo Ruby Kaigi02
tDiary annual report 2009 - Sapporo Ruby Kaigi02tDiary annual report 2009 - Sapporo Ruby Kaigi02
tDiary annual report 2009 - Sapporo Ruby Kaigi02
Hiroshi SHIBATA
 
Ruby programming
Ruby programmingRuby programming
Ruby programming
Kartik Kalpande Patil
 
From 'Legacy' to 'Edge'
From 'Legacy' to 'Edge'From 'Legacy' to 'Edge'
From 'Legacy' to 'Edge'
Hiroshi SHIBATA
 
Introduction to clojure
Introduction to clojureIntroduction to clojure
Introduction to clojure
Abbas Raza
 
How to distribute Ruby to the world
How to distribute Ruby to the worldHow to distribute Ruby to the world
How to distribute Ruby to the world
Hiroshi SHIBATA
 
Introduction to Ruby
Introduction to RubyIntroduction to Ruby
Introduction to Ruby
kim.mens
 
MacRuby: What is it? and why should you care?
MacRuby: What is it? and why should you care?MacRuby: What is it? and why should you care?
MacRuby: What is it? and why should you care?
Joshua Ballanco
 
Connecting the Worlds of Java and Ruby with JRuby
Connecting the Worlds of Java and Ruby with JRubyConnecting the Worlds of Java and Ruby with JRuby
Connecting the Worlds of Java and Ruby with JRuby
Nick Sieger
 
Python while loops (menard maranan)
Python while loops (menard maranan)Python while loops (menard maranan)
Python while loops (menard maranan)
Menard Maranan
 
JRuby 9000 - Taipei Ruby User's Group 2015
JRuby 9000 - Taipei Ruby User's Group 2015JRuby 9000 - Taipei Ruby User's Group 2015
JRuby 9000 - Taipei Ruby User's Group 2015
Charles Nutter
 
How to develop the Standard Libraries of Ruby?
How to develop the Standard Libraries of Ruby?How to develop the Standard Libraries of Ruby?
How to develop the Standard Libraries of Ruby?
Hiroshi SHIBATA
 
2009 07 21: Nested Attributes
2009 07 21: Nested Attributes2009 07 21: Nested Attributes
2009 07 21: Nested Attributes
Wolfram Arnold
 
Introduction to JRuby
Introduction to JRubyIntroduction to JRuby
Introduction to JRuby
elliando dias
 
The Ruby Racer: under the hood
The Ruby Racer: under the hoodThe Ruby Racer: under the hood
The Ruby Racer: under the hood
cowboyd
 
tDiary annual report 2009 - Sapporo Ruby Kaigi02
tDiary annual report 2009 - Sapporo Ruby Kaigi02tDiary annual report 2009 - Sapporo Ruby Kaigi02
tDiary annual report 2009 - Sapporo Ruby Kaigi02
Hiroshi SHIBATA
 
Introduction to clojure
Introduction to clojureIntroduction to clojure
Introduction to clojure
Abbas Raza
 
How to distribute Ruby to the world
How to distribute Ruby to the worldHow to distribute Ruby to the world
How to distribute Ruby to the world
Hiroshi SHIBATA
 

Viewers also liked (14)

Сельскохозяйственный и экономический кризис XVI в. в России: влияние институт...
Сельскохозяйственный и экономический кризис XVI в. в России: влияние институт...Сельскохозяйственный и экономический кризис XVI в. в России: влияние институт...
Сельскохозяйственный и экономический кризис XVI в. в России: влияние институт...
Mike Vdovin
 
Best Practice, Agenzia FVG_Sabrina Pesarini, Web 2.0 quale strategia per le d...
Best Practice, Agenzia FVG_Sabrina Pesarini, Web 2.0 quale strategia per le d...Best Practice, Agenzia FVG_Sabrina Pesarini, Web 2.0 quale strategia per le d...
Best Practice, Agenzia FVG_Sabrina Pesarini, Web 2.0 quale strategia per le d...
Manuela Moroncini
 
Xplor CET CD ( Ver 08)
Xplor CET  CD ( Ver 08)Xplor CET  CD ( Ver 08)
Xplor CET CD ( Ver 08)
xplor
 
xyzmo@Ono Academic
xyzmo@Ono Academicxyzmo@Ono Academic
xyzmo@Ono Academic
Namirial GmbH
 
Capture Accurate Solution Requirements with Exploratory Modeling at SAP
Capture Accurate Solution Requirements with Exploratory Modeling at SAPCapture Accurate Solution Requirements with Exploratory Modeling at SAP
Capture Accurate Solution Requirements with Exploratory Modeling at SAP
ESUG
 
xRM4Legal for the Call Center Web2CRM
xRM4Legal for the Call Center Web2CRMxRM4Legal for the Call Center Web2CRM
xRM4Legal for the Call Center Web2CRM
David Blumentals
 
Planning Agile Projects
Planning Agile ProjectsPlanning Agile Projects
Planning Agile Projects
briley1
 
Xtreme Revolution Flyer 2015
Xtreme Revolution Flyer 2015Xtreme Revolution Flyer 2015
Xtreme Revolution Flyer 2015
Kelsey Arganbright
 
XXIII HR Weekend - Социалната ангажираност – дълг или потребност?
XXIII HR Weekend - Социалната ангажираност – дълг или потребност?XXIII HR Weekend - Социалната ангажираност – дълг или потребност?
XXIII HR Weekend - Социалната ангажираност – дълг или потребност?
Polina Dekova
 
Xtian
XtianXtian
Xtian
471845566
 
X-Zelit Farm trials nonproblem herds GERMAN
X-Zelit Farm trials nonproblem herds GERMANX-Zelit Farm trials nonproblem herds GERMAN
X-Zelit Farm trials nonproblem herds GERMAN
Vilofoss
 
Exportações do Rio Grande do Sul: Janeiro-Novembro de 2012
Exportações do Rio Grande do Sul:  Janeiro-Novembro de 2012Exportações do Rio Grande do Sul:  Janeiro-Novembro de 2012
Exportações do Rio Grande do Sul: Janeiro-Novembro de 2012
Fundação de Economia e Estatística
 
ÁPICE - XXV Congreso Internacional de Crédito Educativo - Panel 2 - UNIMINUTO
ÁPICE - XXV Congreso Internacional de Crédito Educativo - Panel 2 - UNIMINUTOÁPICE - XXV Congreso Internacional de Crédito Educativo - Panel 2 - UNIMINUTO
ÁPICE - XXV Congreso Internacional de Crédito Educativo - Panel 2 - UNIMINUTO
APICE Instituciones De Crédito Educativo
 
Xogos olímpicos londres
Xogos olímpicos londresXogos olímpicos londres
Xogos olímpicos londres
xiaoaller
 
Сельскохозяйственный и экономический кризис XVI в. в России: влияние институт...
Сельскохозяйственный и экономический кризис XVI в. в России: влияние институт...Сельскохозяйственный и экономический кризис XVI в. в России: влияние институт...
Сельскохозяйственный и экономический кризис XVI в. в России: влияние институт...
Mike Vdovin
 
Best Practice, Agenzia FVG_Sabrina Pesarini, Web 2.0 quale strategia per le d...
Best Practice, Agenzia FVG_Sabrina Pesarini, Web 2.0 quale strategia per le d...Best Practice, Agenzia FVG_Sabrina Pesarini, Web 2.0 quale strategia per le d...
Best Practice, Agenzia FVG_Sabrina Pesarini, Web 2.0 quale strategia per le d...
Manuela Moroncini
 
Xplor CET CD ( Ver 08)
Xplor CET  CD ( Ver 08)Xplor CET  CD ( Ver 08)
Xplor CET CD ( Ver 08)
xplor
 
Capture Accurate Solution Requirements with Exploratory Modeling at SAP
Capture Accurate Solution Requirements with Exploratory Modeling at SAPCapture Accurate Solution Requirements with Exploratory Modeling at SAP
Capture Accurate Solution Requirements with Exploratory Modeling at SAP
ESUG
 
xRM4Legal for the Call Center Web2CRM
xRM4Legal for the Call Center Web2CRMxRM4Legal for the Call Center Web2CRM
xRM4Legal for the Call Center Web2CRM
David Blumentals
 
Planning Agile Projects
Planning Agile ProjectsPlanning Agile Projects
Planning Agile Projects
briley1
 
XXIII HR Weekend - Социалната ангажираност – дълг или потребност?
XXIII HR Weekend - Социалната ангажираност – дълг или потребност?XXIII HR Weekend - Социалната ангажираност – дълг или потребност?
XXIII HR Weekend - Социалната ангажираност – дълг или потребност?
Polina Dekova
 
X-Zelit Farm trials nonproblem herds GERMAN
X-Zelit Farm trials nonproblem herds GERMANX-Zelit Farm trials nonproblem herds GERMAN
X-Zelit Farm trials nonproblem herds GERMAN
Vilofoss
 
ÁPICE - XXV Congreso Internacional de Crédito Educativo - Panel 2 - UNIMINUTO
ÁPICE - XXV Congreso Internacional de Crédito Educativo - Panel 2 - UNIMINUTOÁPICE - XXV Congreso Internacional de Crédito Educativo - Panel 2 - UNIMINUTO
ÁPICE - XXV Congreso Internacional de Crédito Educativo - Panel 2 - UNIMINUTO
APICE Instituciones De Crédito Educativo
 
Xogos olímpicos londres
Xogos olímpicos londresXogos olímpicos londres
Xogos olímpicos londres
xiaoaller
 
Ad

Similar to XRuby_Overview_20070831 (20)

Practical JRuby
Practical JRubyPractical JRuby
Practical JRuby
David Keener
 
Rjb
RjbRjb
Rjb
Wes Gamble
 
Jruby synergy-of-ruby-and-java
Jruby synergy-of-ruby-and-javaJruby synergy-of-ruby-and-java
Jruby synergy-of-ruby-and-java
Keith Bennett
 
Ruby on Rails survival guide of an aged Java developer
Ruby on Rails survival guide of an aged Java developerRuby on Rails survival guide of an aged Java developer
Ruby on Rails survival guide of an aged Java developer
gicappa
 
First Day With J Ruby
First Day With J RubyFirst Day With J Ruby
First Day With J Ruby
Praveen Kumar Sinha
 
The Enterprise Strikes Back
The Enterprise Strikes BackThe Enterprise Strikes Back
The Enterprise Strikes Back
Burke Libbey
 
Bitter Java, Sweeten with JRuby
Bitter Java, Sweeten with JRubyBitter Java, Sweeten with JRuby
Bitter Java, Sweeten with JRuby
Brian Sam-Bodden
 
Java, Ruby & Rails
Java, Ruby & RailsJava, Ruby & Rails
Java, Ruby & Rails
Peter Lind
 
JRuby @ Boulder Ruby
JRuby @ Boulder RubyJRuby @ Boulder Ruby
JRuby @ Boulder Ruby
Nick Sieger
 
JRuby + Rails = Awesome Java Web Framework at Jfokus 2011
JRuby + Rails = Awesome Java Web Framework at Jfokus 2011JRuby + Rails = Awesome Java Web Framework at Jfokus 2011
JRuby + Rails = Awesome Java Web Framework at Jfokus 2011
Nick Sieger
 
Практики применения JRuby
Практики применения JRubyПрактики применения JRuby
Практики применения JRuby
.toster
 
Ruby On Google App Engine 2nd Athens Ruby Me
Ruby On Google App Engine 2nd Athens Ruby MeRuby On Google App Engine 2nd Athens Ruby Me
Ruby On Google App Engine 2nd Athens Ruby Me
Panagiotis Papadopoulos
 
Concurrency in ruby
Concurrency in rubyConcurrency in ruby
Concurrency in ruby
Marco Borromeo
 
Ugo Cei Presentation
Ugo Cei PresentationUgo Cei Presentation
Ugo Cei Presentation
RubyOnRails_dude
 
Get Going With RVM and Rails 3
Get Going With RVM and Rails 3Get Going With RVM and Rails 3
Get Going With RVM and Rails 3
Karmen Blake
 
How DSL works on Ruby
How DSL works on RubyHow DSL works on Ruby
How DSL works on Ruby
Hiroshi SHIBATA
 
Ruby
RubyRuby
Ruby
Aizat Faiz
 
The Dark Side Of Lambda Expressions in Java 8
The Dark Side Of Lambda Expressions in Java 8The Dark Side Of Lambda Expressions in Java 8
The Dark Side Of Lambda Expressions in Java 8
Takipi
 
JRuby - Java version of Ruby
JRuby - Java version of RubyJRuby - Java version of Ruby
JRuby - Java version of Ruby
Uday Bhaskar
 
Remote Method Invocation
Remote Method InvocationRemote Method Invocation
Remote Method Invocation
Sonali Parab
 
Jruby synergy-of-ruby-and-java
Jruby synergy-of-ruby-and-javaJruby synergy-of-ruby-and-java
Jruby synergy-of-ruby-and-java
Keith Bennett
 
Ruby on Rails survival guide of an aged Java developer
Ruby on Rails survival guide of an aged Java developerRuby on Rails survival guide of an aged Java developer
Ruby on Rails survival guide of an aged Java developer
gicappa
 
The Enterprise Strikes Back
The Enterprise Strikes BackThe Enterprise Strikes Back
The Enterprise Strikes Back
Burke Libbey
 
Bitter Java, Sweeten with JRuby
Bitter Java, Sweeten with JRubyBitter Java, Sweeten with JRuby
Bitter Java, Sweeten with JRuby
Brian Sam-Bodden
 
Java, Ruby & Rails
Java, Ruby & RailsJava, Ruby & Rails
Java, Ruby & Rails
Peter Lind
 
JRuby @ Boulder Ruby
JRuby @ Boulder RubyJRuby @ Boulder Ruby
JRuby @ Boulder Ruby
Nick Sieger
 
JRuby + Rails = Awesome Java Web Framework at Jfokus 2011
JRuby + Rails = Awesome Java Web Framework at Jfokus 2011JRuby + Rails = Awesome Java Web Framework at Jfokus 2011
JRuby + Rails = Awesome Java Web Framework at Jfokus 2011
Nick Sieger
 
Практики применения JRuby
Практики применения JRubyПрактики применения JRuby
Практики применения JRuby
.toster
 
Ruby On Google App Engine 2nd Athens Ruby Me
Ruby On Google App Engine 2nd Athens Ruby MeRuby On Google App Engine 2nd Athens Ruby Me
Ruby On Google App Engine 2nd Athens Ruby Me
Panagiotis Papadopoulos
 
Get Going With RVM and Rails 3
Get Going With RVM and Rails 3Get Going With RVM and Rails 3
Get Going With RVM and Rails 3
Karmen Blake
 
The Dark Side Of Lambda Expressions in Java 8
The Dark Side Of Lambda Expressions in Java 8The Dark Side Of Lambda Expressions in Java 8
The Dark Side Of Lambda Expressions in Java 8
Takipi
 
JRuby - Java version of Ruby
JRuby - Java version of RubyJRuby - Java version of Ruby
JRuby - Java version of Ruby
Uday Bhaskar
 
Remote Method Invocation
Remote Method InvocationRemote Method Invocation
Remote Method Invocation
Sonali Parab
 
Ad

Recently uploaded (20)

Cybersecurity Identity and Access Solutions using Azure AD
Cybersecurity Identity and Access Solutions using Azure ADCybersecurity Identity and Access Solutions using Azure AD
Cybersecurity Identity and Access Solutions using Azure AD
VICTOR MAESTRE RAMIREZ
 
IEDM 2024 Tutorial2_Advances in CMOS Technologies and Future Directions for C...
IEDM 2024 Tutorial2_Advances in CMOS Technologies and Future Directions for C...IEDM 2024 Tutorial2_Advances in CMOS Technologies and Future Directions for C...
IEDM 2024 Tutorial2_Advances in CMOS Technologies and Future Directions for C...
organizerofv
 
HCL Nomad Web – Best Practices und Verwaltung von Multiuser-Umgebungen
HCL Nomad Web – Best Practices und Verwaltung von Multiuser-UmgebungenHCL Nomad Web – Best Practices und Verwaltung von Multiuser-Umgebungen
HCL Nomad Web – Best Practices und Verwaltung von Multiuser-Umgebungen
panagenda
 
Generative Artificial Intelligence (GenAI) in Business
Generative Artificial Intelligence (GenAI) in BusinessGenerative Artificial Intelligence (GenAI) in Business
Generative Artificial Intelligence (GenAI) in Business
Dr. Tathagat Varma
 
Greenhouse_Monitoring_Presentation.pptx.
Greenhouse_Monitoring_Presentation.pptx.Greenhouse_Monitoring_Presentation.pptx.
Greenhouse_Monitoring_Presentation.pptx.
hpbmnnxrvb
 
Andrew Marnell: Transforming Business Strategy Through Data-Driven Insights
Andrew Marnell: Transforming Business Strategy Through Data-Driven InsightsAndrew Marnell: Transforming Business Strategy Through Data-Driven Insights
Andrew Marnell: Transforming Business Strategy Through Data-Driven Insights
Andrew Marnell
 
Complete Guide to Advanced Logistics Management Software in Riyadh.pdf
Complete Guide to Advanced Logistics Management Software in Riyadh.pdfComplete Guide to Advanced Logistics Management Software in Riyadh.pdf
Complete Guide to Advanced Logistics Management Software in Riyadh.pdf
Software Company
 
Into The Box Conference Keynote Day 1 (ITB2025)
Into The Box Conference Keynote Day 1 (ITB2025)Into The Box Conference Keynote Day 1 (ITB2025)
Into The Box Conference Keynote Day 1 (ITB2025)
Ortus Solutions, Corp
 
Role of Data Annotation Services in AI-Powered Manufacturing
Role of Data Annotation Services in AI-Powered ManufacturingRole of Data Annotation Services in AI-Powered Manufacturing
Role of Data Annotation Services in AI-Powered Manufacturing
Andrew Leo
 
How Can I use the AI Hype in my Business Context?
How Can I use the AI Hype in my Business Context?How Can I use the AI Hype in my Business Context?
How Can I use the AI Hype in my Business Context?
Daniel Lehner
 
Semantic Cultivators : The Critical Future Role to Enable AI
Semantic Cultivators : The Critical Future Role to Enable AISemantic Cultivators : The Critical Future Role to Enable AI
Semantic Cultivators : The Critical Future Role to Enable AI
artmondano
 
DevOpsDays Atlanta 2025 - Building 10x Development Organizations.pptx
DevOpsDays Atlanta 2025 - Building 10x Development Organizations.pptxDevOpsDays Atlanta 2025 - Building 10x Development Organizations.pptx
DevOpsDays Atlanta 2025 - Building 10x Development Organizations.pptx
Justin Reock
 
AI and Data Privacy in 2025: Global Trends
AI and Data Privacy in 2025: Global TrendsAI and Data Privacy in 2025: Global Trends
AI and Data Privacy in 2025: Global Trends
InData Labs
 
Special Meetup Edition - TDX Bengaluru Meetup #52.pptx
Special Meetup Edition - TDX Bengaluru Meetup #52.pptxSpecial Meetup Edition - TDX Bengaluru Meetup #52.pptx
Special Meetup Edition - TDX Bengaluru Meetup #52.pptx
shyamraj55
 
Increasing Retail Store Efficiency How can Planograms Save Time and Money.pptx
Increasing Retail Store Efficiency How can Planograms Save Time and Money.pptxIncreasing Retail Store Efficiency How can Planograms Save Time and Money.pptx
Increasing Retail Store Efficiency How can Planograms Save Time and Money.pptx
Anoop Ashok
 
Cyber Awareness overview for 2025 month of security
Cyber Awareness overview for 2025 month of securityCyber Awareness overview for 2025 month of security
Cyber Awareness overview for 2025 month of security
riccardosl1
 
#StandardsGoals for 2025: Standards & certification roundup - Tech Forum 2025
#StandardsGoals for 2025: Standards & certification roundup - Tech Forum 2025#StandardsGoals for 2025: Standards & certification roundup - Tech Forum 2025
#StandardsGoals for 2025: Standards & certification roundup - Tech Forum 2025
BookNet Canada
 
Designing Low-Latency Systems with Rust and ScyllaDB: An Architectural Deep Dive
Designing Low-Latency Systems with Rust and ScyllaDB: An Architectural Deep DiveDesigning Low-Latency Systems with Rust and ScyllaDB: An Architectural Deep Dive
Designing Low-Latency Systems with Rust and ScyllaDB: An Architectural Deep Dive
ScyllaDB
 
Rusty Waters: Elevating Lakehouses Beyond Spark
Rusty Waters: Elevating Lakehouses Beyond SparkRusty Waters: Elevating Lakehouses Beyond Spark
Rusty Waters: Elevating Lakehouses Beyond Spark
carlyakerly1
 
AI Changes Everything – Talk at Cardiff Metropolitan University, 29th April 2...
AI Changes Everything – Talk at Cardiff Metropolitan University, 29th April 2...AI Changes Everything – Talk at Cardiff Metropolitan University, 29th April 2...
AI Changes Everything – Talk at Cardiff Metropolitan University, 29th April 2...
Alan Dix
 
Cybersecurity Identity and Access Solutions using Azure AD
Cybersecurity Identity and Access Solutions using Azure ADCybersecurity Identity and Access Solutions using Azure AD
Cybersecurity Identity and Access Solutions using Azure AD
VICTOR MAESTRE RAMIREZ
 
IEDM 2024 Tutorial2_Advances in CMOS Technologies and Future Directions for C...
IEDM 2024 Tutorial2_Advances in CMOS Technologies and Future Directions for C...IEDM 2024 Tutorial2_Advances in CMOS Technologies and Future Directions for C...
IEDM 2024 Tutorial2_Advances in CMOS Technologies and Future Directions for C...
organizerofv
 
HCL Nomad Web – Best Practices und Verwaltung von Multiuser-Umgebungen
HCL Nomad Web – Best Practices und Verwaltung von Multiuser-UmgebungenHCL Nomad Web – Best Practices und Verwaltung von Multiuser-Umgebungen
HCL Nomad Web – Best Practices und Verwaltung von Multiuser-Umgebungen
panagenda
 
Generative Artificial Intelligence (GenAI) in Business
Generative Artificial Intelligence (GenAI) in BusinessGenerative Artificial Intelligence (GenAI) in Business
Generative Artificial Intelligence (GenAI) in Business
Dr. Tathagat Varma
 
Greenhouse_Monitoring_Presentation.pptx.
Greenhouse_Monitoring_Presentation.pptx.Greenhouse_Monitoring_Presentation.pptx.
Greenhouse_Monitoring_Presentation.pptx.
hpbmnnxrvb
 
Andrew Marnell: Transforming Business Strategy Through Data-Driven Insights
Andrew Marnell: Transforming Business Strategy Through Data-Driven InsightsAndrew Marnell: Transforming Business Strategy Through Data-Driven Insights
Andrew Marnell: Transforming Business Strategy Through Data-Driven Insights
Andrew Marnell
 
Complete Guide to Advanced Logistics Management Software in Riyadh.pdf
Complete Guide to Advanced Logistics Management Software in Riyadh.pdfComplete Guide to Advanced Logistics Management Software in Riyadh.pdf
Complete Guide to Advanced Logistics Management Software in Riyadh.pdf
Software Company
 
Into The Box Conference Keynote Day 1 (ITB2025)
Into The Box Conference Keynote Day 1 (ITB2025)Into The Box Conference Keynote Day 1 (ITB2025)
Into The Box Conference Keynote Day 1 (ITB2025)
Ortus Solutions, Corp
 
Role of Data Annotation Services in AI-Powered Manufacturing
Role of Data Annotation Services in AI-Powered ManufacturingRole of Data Annotation Services in AI-Powered Manufacturing
Role of Data Annotation Services in AI-Powered Manufacturing
Andrew Leo
 
How Can I use the AI Hype in my Business Context?
How Can I use the AI Hype in my Business Context?How Can I use the AI Hype in my Business Context?
How Can I use the AI Hype in my Business Context?
Daniel Lehner
 
Semantic Cultivators : The Critical Future Role to Enable AI
Semantic Cultivators : The Critical Future Role to Enable AISemantic Cultivators : The Critical Future Role to Enable AI
Semantic Cultivators : The Critical Future Role to Enable AI
artmondano
 
DevOpsDays Atlanta 2025 - Building 10x Development Organizations.pptx
DevOpsDays Atlanta 2025 - Building 10x Development Organizations.pptxDevOpsDays Atlanta 2025 - Building 10x Development Organizations.pptx
DevOpsDays Atlanta 2025 - Building 10x Development Organizations.pptx
Justin Reock
 
AI and Data Privacy in 2025: Global Trends
AI and Data Privacy in 2025: Global TrendsAI and Data Privacy in 2025: Global Trends
AI and Data Privacy in 2025: Global Trends
InData Labs
 
Special Meetup Edition - TDX Bengaluru Meetup #52.pptx
Special Meetup Edition - TDX Bengaluru Meetup #52.pptxSpecial Meetup Edition - TDX Bengaluru Meetup #52.pptx
Special Meetup Edition - TDX Bengaluru Meetup #52.pptx
shyamraj55
 
Increasing Retail Store Efficiency How can Planograms Save Time and Money.pptx
Increasing Retail Store Efficiency How can Planograms Save Time and Money.pptxIncreasing Retail Store Efficiency How can Planograms Save Time and Money.pptx
Increasing Retail Store Efficiency How can Planograms Save Time and Money.pptx
Anoop Ashok
 
Cyber Awareness overview for 2025 month of security
Cyber Awareness overview for 2025 month of securityCyber Awareness overview for 2025 month of security
Cyber Awareness overview for 2025 month of security
riccardosl1
 
#StandardsGoals for 2025: Standards & certification roundup - Tech Forum 2025
#StandardsGoals for 2025: Standards & certification roundup - Tech Forum 2025#StandardsGoals for 2025: Standards & certification roundup - Tech Forum 2025
#StandardsGoals for 2025: Standards & certification roundup - Tech Forum 2025
BookNet Canada
 
Designing Low-Latency Systems with Rust and ScyllaDB: An Architectural Deep Dive
Designing Low-Latency Systems with Rust and ScyllaDB: An Architectural Deep DiveDesigning Low-Latency Systems with Rust and ScyllaDB: An Architectural Deep Dive
Designing Low-Latency Systems with Rust and ScyllaDB: An Architectural Deep Dive
ScyllaDB
 
Rusty Waters: Elevating Lakehouses Beyond Spark
Rusty Waters: Elevating Lakehouses Beyond SparkRusty Waters: Elevating Lakehouses Beyond Spark
Rusty Waters: Elevating Lakehouses Beyond Spark
carlyakerly1
 
AI Changes Everything – Talk at Cardiff Metropolitan University, 29th April 2...
AI Changes Everything – Talk at Cardiff Metropolitan University, 29th April 2...AI Changes Everything – Talk at Cardiff Metropolitan University, 29th April 2...
AI Changes Everything – Talk at Cardiff Metropolitan University, 29th April 2...
Alan Dix
 

XRuby_Overview_20070831

  • 1. XRuby Enjoy Ruby on JVM Ye Zheng http://dreamhead.blogbus.com
  • 2. Agenda What is XRuby XRuby Architecture XRuby Jump Start More on XRuby
  • 3. Agenda What is XRuby XRuby Architecture XRuby Jump Start More on XRuby
  • 4. What is XRuby XRuby is the first Ruby to Java compiler which compiles Ruby source code (.rb) to Java bytecode (.class). XRuby .rb .class
  • 5. XRuby current status The latest version is 0.3.0. test::unit works. XRuby debugger provided Java to Ruby binding annotation. Runs most benchmark faster than ruby 1.8.6.
  • 6. Two Ways to JVM(I) Interpretation current C Ruby way easy to port needs interpretation engine slow Ruby Script Parser AST
  • 7. Two Ways to JVM(II) Compilation needs more explorations uses JVM as execution engine protects source code fast Ruby Script Compiler .class
  • 8. Why Compilation is Faster Compilation is faster than interpretation JVM JVM Interpretation Engine Ruby Script Ruby Script Interpretation Compilation
  • 9. Misunderstandings It erases dynamic language features. Dynamic structure written in Java is developed to support dynamic language features It maps Ruby class to Java class directly. Ruby class is a dynamic language structure, and it is different from Java class which is a static structure
  • 10. Agenda What is XRuby XRuby Architecture XRuby Jump Start More on XRuby
  • 11. XRuby Architecture (overview) XRuby Compiler Runtime Parser Codegen Codedom Lang Builtin Java Support
  • 12. XRuby Architecture (compiler) Parser .rb .class Tree Parser Code Gen AST Code Dom Antlr ASM XRuby Compiler
  • 13. XRuby Architecture (runtime) Dynamic Language Support Builtin Java Support XRuby Runtime
  • 14. Agenda What is XRuby XRuby Architecture XRuby Jump Start More on XRuby
  • 15. XRuby Jump Start (Ruby code) class MyClass def say_hello_three_times 3.times { puts "hello"} end end MyClass.new.say_hello_three_times
  • 16. XRuby Jump Start (compile and run) Compile java -jar xruby-0.3.0.jar -c demo.rb Run java -jar demo.jar Output hello hello hello
  • 17. XRuby Jump Start (builtin) @RubyLevelClass(name="Array") public class RubyArray … { … @RubyLevelMethod(name="length") public RubyFixnum length() { return ObjectFactory.createFixnum(this.array_.size()); } … }
  • 18. XRuby Jump Start (reference) XRuby Hacking Guide is a good start to understand XRuby. Ruby Hacking Guide is a good reference to Ruby implementation. Builtin is a good start and reference to XRuby code.
  • 19. Agenda What is XRuby XRuby Architecture XRuby Start-up More on XRuby
  • 20. XRuby’s Future XRuby 0.4.0 Pass all C Ruby tests (Milestone) Compile multiple ruby scripts into one jar Implement more builtin libraries Improve performance Long Term Make Ruby on Rails work Upgrade Antlr to 3.0
  • 21. Contribution to XRuby Principles Every contribution is welcome. Every attempt is encouraged. Approaches Use XRuby Report bugs Commit patches. Join mailing list to share ideas. Become a XRuby project member. …
  • 22. Enjoy XRuby Enjoy development of a compiler. Ruby is a elegant language. Work with JVM. Understand dynamic language internals. Contribute to open source. We can grow with XRuby since it’s new.
  • 23. For More Information Homepage http://www.xruby.com Project Homepage http://code.google.com/p/xruby/ Project Blog http://xruby.blogspot.com Project Group http://groups.google.com/group/xruby-devel