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 26 articles , 1 standard article )

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

1 2 next

  1. Alves, Sandra; Fernández, Maribel: A framework for the analysis of access control policies with emergency management (2015)
  2. 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)
  3. Garrigue, Jacques (ed.): Programming languages and systems. 12th Asian symposium, APLAS 2014, Singapore, Singapore, November 17--19, 2014, Proceedings (2014)
  4. Rowe, Reuben N.S.; van Bakel, S.J.: Semantic types and approximation for featherweight Java (2014)
  5. Ueno, Katsuhiro; Fukasawa, Yutaka; Morihata, Akimasa; Ohori, Atsushi: The essence of Ruby (2014)
  6. Lisitsyn, Sergey; Widmer, Christian; Garcia, Fernando J.Iglesias: Tapkee: an efficient dimension reduction library (2013)
  7. Günther, Sebastian; Sunkle, Sagar: RbFeatures: feature-oriented programming with Ruby (2012)
  8. 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)
  9. Ustalov, D.A.; Goldstein, M.L.: A distributed dictionary -- based morphological analysis framework for Russian language processing (2012)
  10. An, Jong-hoon (David); Chaudhuri, Avik; Foster, Jeffrey S.; Hicks, Michael: Dynamic inference of static types for Ruby (2011)
  11. Bergel, Alexandre: Reconciling method overloading and dynamically typed scripting languages (2011)
  12. Ducournau, Roland; Privat, Jean: Metamodeling semantics of multiple inheritance (2011)
  13. Hemel, Zef; Groenewegen, Danny M.; Kats, Lennart C.L.; Visser, Eelco: Static consistency checking of web applications with WebDSL (2011)
  14. Ortin, Francisco; García, Miguel: Union and intersection types to support both dynamic and static typing (2011)
  15. Yamazaki, Tadashi; Ikeno, Hidetoshi; Okumura, Yoshihiro; Satoh, Shunji; Kamiyama, Yoshimi; Hirata, Yutaka; Inagaki, Keiichiro; Ishihara, Akito; Kannon, Takayuki; Usui, Shiro: Simulation platform: a cloud-based online simulation environment (2011)
  16. Yamazaki, Tadashi; Ikeno, Hidetoshi; Okumura, Yoshihiro; Satoh, Shunji; Kamiyama, Yoshimi; Hirata, Yutaka; Inagaki, Keiichiro; Ishihara, Akito; Kannon, Takayuki; Usui, Shiro: Reprint of: Simulation platform: a cloud-based online simulation environment (2011)
  17. Boers, Nicholas M.; Gburzyński, Paweł; Nikolaidis, Ioanis; Olesiński, Włodek: Developing wireless sensor network applications in a virtual environment (2010)
  18. Goyvaerts, Jan; Levithan, Steven: Regular expressions cookbook. German translation by Thomas Demmig. (2010)
  19. Mossakowski, Till; Schröder, Lutz; Goncharov, Sergey: A generic complete dynamic logic for reasoning about purity and effects (2010)
  20. Bartsch, Steffen; Sohr, Karsten; Bormann, Carsten: Supporting agile development of authorization rules for SME applications (2009)

1 2 next