@inproceedings{b68e90103dcc4f02ac0239e78f568a91,
title = "The essence of ruby",
abstract = "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.",
keywords = "Dynamic language, Iterator, Operational semantics, Ruby",
author = "Katsuhiro Ueno and Yutaka Fukasawa and Akimasa Morihata and Atsushi Ohori",
note = "Funding Information: The first author has been partially supported by JSPS KAKENHI Grant Number 24700021. The first and fourth author has been partially supported by JSPS KAKENHI Grant Number 25280019. Publisher Copyright: {\textcopyright} Springer International Publishing Switzerland 2014.; 12th Asian Symposium on Programming Languages and Systems, APLAS 2014 ; Conference date: 17-11-2014 Through 19-11-2014",
year = "2014",
doi = "10.1007/978-3-319-12736-1_5",
language = "English",
series = "Lecture Notes in Computer Science (including subseries Lecture Notes in Artificial Intelligence and Lecture Notes in Bioinformatics)",
publisher = "Springer Verlag",
pages = "78--98",
editor = "Jacques Garrigue",
booktitle = "Programming Languages and Systems - 12th Asian Symposium, APLAS 2014, Proceedings",
}