The essence of Ruby. Ruby is a dynamic, object-oriented language with advanced features such as yield operator and dynamic class manipulation. They make Ruby a popular, highly productive scripting language, but they also make the semantics of Ruby complicated and difficult to understand. Even the JIS/ISO standard of Ruby seems to contain some ambiguities. For Ruby to be established as a reliable scripting language, it should have a rigorous semantics. To meet this challenge, we present a formal operational semantics that can serve as a high-level specification for both the users and implementers. The key insight underlying the semantics is that various elaborate features of Ruby can be cleanly represented as a composition of two orthogonal calculi: one for objects and classes and the other for representing control. The presented semantics leads straightforwardly to a reference implementation. Initial evaluation of our implementation confirms that the presented semantics conforms to commonly accepted Ruby behavior.

References in zbMATH (referenced in 33 articles , 1 standard article )

Showing results 1 to 20 of 33.
Sorted by year (citations)

1 2 next

  1. Richard Beare; Bradley Lowekamp; Ziv Yaniv: Image Segmentation, Registration and Characterization in R with SimpleITK (2018) not zbMATH
  2. Yukinobu Hamuro; Masakazu Nakamoto; Stephane Cheung; Edward Ip: mbonsai: Application Package for Sequence Classification by Tree Methodology (2018) not zbMATH
  3. Alves, Sandra; Fernández, Maribel: A graph-based framework for the analysis of access control policies (2017)
  4. Matteo Ragni: Mr.CAS - A minimalistic (pure) Ruby CAS for fast prototyping and code generation (2017) not zbMATH
  5. Alves, Sandra; Fernández, Maribel: A framework for the analysis of access control policies with emergency management (2015)
  6. Kolegov, D. N.; Broslavskiĭ, O. V.; Oleksov, N. E.: Covert timing channels over HTTP cache-control headers (2015)
  7. Chen, Tianran; Lee, Tsung-Lin; Li, Tien-Yien: Hom4PS-3: a parallel numerical solver for systems of polynomial equations based on polyhedral homotopy continuation methods (2014)
  8. Garrigue, Jacques (ed.): Programming languages and systems. 12th Asian symposium, APLAS 2014, Singapore, Singapore, November 17--19, 2014, Proceedings (2014)
  9. Rowe, Reuben N. S.; van Bakel, S. J.: Semantic types and approximation for Featherweight Java (2014)
  10. Schoepe, Daniel; Hedin, Daniel; Sabelfeld, Andrei: SeLINQ: tracking information across application-database boundaries (2014)
  11. Ueno, Katsuhiro; Fukasawa, Yutaka; Morihata, Akimasa; Ohori, Atsushi: The essence of Ruby (2014)
  12. Lisitsyn, Sergey; Widmer, Christian; Garcia, Fernando J. Iglesias: Tapkee: an efficient dimension reduction library (2013)
  13. Günther, Sebastian; Sunkle, Sagar: RbFeatures: feature-oriented programming with Ruby (2012) ioport
  14. Klöckner, Andreas; Pinto, Nicolas; Lee, Yunsup; Catanzaro, Bryan; Ivanov, Paul; Fasih, Ahmed: PyCUDA and PyOpenCL: a scripting-based approach to GPU run-time code generation (2012) ioport
  15. Ustalov, D. A.; Goldstein, M. L.: A distributed dictionary -- based morphological analysis framework for Russian language processing (2012) ioport
  16. An, Jong-hoon (David); Chaudhuri, Avik; Foster, Jeffrey S.; Hicks, Michael: Dynamic inference of static types for Ruby (2011)
  17. Bergel, Alexandre: Reconciling method overloading and dynamically typed scripting languages (2011)
  18. Ducournau, Roland; Privat, Jean: Metamodeling semantics of multiple inheritance (2011)
  19. Hemel, Zef; Groenewegen, Danny M.; Kats, Lennart C. L.; Visser, Eelco: Static consistency checking of web applications with WebDSL (2011)
  20. Ortin, Francisco; García, Miguel: Union and intersection types to support both dynamic and static typing (2011)

1 2 next