Ruby (programming language)
Ruby has been described as a multi-paradigm programming language: it allows procedural programming (defining functions/variables outside classes makes them part of the root, 'self' Object), with object orientation (everything is an object) or functional programming (it has anonymous functions, closures, and continuations; statements all have values, and functions return the last evaluation). It has support for introspection, reflection and metaprogramming, as well as support for interpreter-based threads. Ruby features dynamic typing, and supports parametric polymorphism.
Sigil (computer programming)
In Ruby, ordinary variables lack sigils, but "codice_2" is prefixed to global variables, "codice_6" is prefixed to instance variables, and "codice_42" is prefixed to class variables. Ruby also uses (strictly conventional) suffix sigils: "codice_11" indicates a predicate method returning (usually) a boolean value; and "codice_44" indicates that the method modifies the object it acts on as a side effect.