Diferencia entre revisiones de «Programación en Ruby»

Contenido eliminado Contenido añadido
m Bot: Correcciones ortográficas; cambios triviales
Línea 4:
{{mejorar formato}}
 
== Introducción ==
'''Ruby''' es un lenguaje de programación interpretado, reflexivo y orientado a objetos, creado por el programador japonés Yukihiro "Matz" Matsumoto, quien comenzó a trabajar en Ruby en 1993, y lo presentó públicamente en 1995. Combina una sintaxis inspirada en Python, Perl con características de programación orientada a objetos similares a Smalltalk. Comparte también funcionalidad con otros lenguajes de programación como Lisp, Lua, Dylan y CLU. Ruby es un lenguaje de programación interpretado en una sola pasada y su implementación oficial es distribuida bajo una licencia de software libre.
 
== Índice ==
# [[/Introducción|Capítulo 1: Introducción]]
# [[/Historia|Capítulo 2: Historia]]
# [[/Instalación|Capítulo 3: Instalación]]
## [[/Instalación#Instalando Ruby en un ordenador Windows|Instalando Ruby en un ordenador Windows]]
## [[/Instalación#Instalando Ruby en un ordenador Linux|Instalando Ruby en un ordenador Linux]]
## [[/Instalación#Primer programa|Primer programa]]
# [[/Palabras reservadas|Capítulo 4: Palabras reservadas]]
# [[/Tipos de datos|Capítulo 5: Tipos de datos]]
## [[/Tipos de datos#Números|Números]]
## [[/Tipos de datos#Strings|Strings]]
## [[/Tipos de datos#Date/Time|Date/Time]]
# [[/Operaciones de entrada y salida|Capítulo 6: Operaciones de entrada y salida]]
## [[/Operaciones de entrada y salida#Operaciones básicas de I/O|Operaciones básicas de I/O]]
# [[/Tipos de datos complejos|Capítulo 7: Tipos de datos complejos]]
# [[/Declaración e inicialización de variables|Capítulo 8: Declaración e inicialización de variables]]
# [[/Operadores con asociatividad y precedencia|Capítulo 9: Operadores con asociatividad y precedencia]]
# [[/Estructuras de decisión e iteración|Capítulo 10: Estructuras de decisión e iteración]]
# [[/Declaración, definición y uso de métodos y funciones|Capítulo 11: Declaración, definición y uso de métodos y funciones]]
# [[/Programación orientada a objetos|Capítulo 12: Programación orientada a objetos]]
# [[/Constructores literales|Capítulo 13: Constructores literales]]
# [[/Recolección de basura|Capítulo 14:Recolección de basura]]
# [[/Herencia|Capítulo 15: Herencia]]
# [[/Administración y separación de la memoria|Capítulo 16: Administración y separación de la memoria]]
# [[/Implementación de co-rutinas|Capítulo 17: Implementación de co-rutinas]]
# [[/Manejo de excepciones|Capítulo 18: Manejo de excepciones]]
# [[/Gramática en EBNF del lenguaje|Capútlo 19: Gramática en EBNF del lenguaje]]
# [[/Características especiales del lenguaje|Capítulo 20: Características especiales del lenguaje]]
# [[/Ejemplos del lenguaje|Capítulo 21: Ejemplos del lenguaje]]
# [[/Enlaces externos|Capítulo 22: Enlaces externos]]
 
== '''Historia''' ==
Línea 64:
 
''' c:/ruby/bin''' es donde los ejecutables son instalados (incluyendo ruby e irb).
 
'''c:/ruby/lib/ruby/1.8''' aquí están programas escritos en ruby. Estos ficheros son librerías de Ruby: proveen funcionalidades que puedes incorporar en tus programas.
Línea 108:
''puts'' es el comando básico para escribir algo en Ruby. Pero entonces, ¿qué es ese ''=> nil''? Ese es el resultado de la expresión ''puts'' siempre retorna ''nil'', que es el valor que significa “absolutamente nada” en Ruby.
 
== '''Diccionario de Palabras Reservadas, Operadores y Símbolos del Lenguaje''' ==
 
{| class="wikitable" border="1"
Línea 230:
Los tipos de datos son, como su nombre lo indica, los diversos datos que se pueden almacenar en la memoria usando el lenguaje de programación Ruby. Como en todo lenguaje de programación, se tiene una diferencia en cuanto a estos datos, pues la cantidad de memoria que usan no es similar, y esta diferencia hace que la distinción entre unos y otros sea importante.
 
== Números ==
En ruby, todo es tratado como un objeto, eso no excluye a los números, en forma general, ruby cuenta con diferentes clases para manejar cada tipo de números, por ejemplo:
 
Línea 243:
* Rational -> Almacena números racionales, es decir, números con un valor de numerador y un denominador.
 
== Strings ==
Para las cadenas de caracteres, su uso es bastante similar al de cualquier lenguaje orientado a objetos, con la clase String, sin embargo cabe mencionar algunas caracteristicas mas emocionantes de ruby, por ejemplo, puedes multiplicar cadenas!
 
Línea 251:
Para una vista mas completa referirse al capitulo de Strings
 
== Date/Time ==
 
Ruby ya trae librerias para manejar los tipos date y time, sin embargo para usarlos, debemos llamar a la librería correspondiente, esto con la palabra reservada '''require'''.
Línea 259:
</source>
 
Con esto ya podemos usar el tipo Date, este contiene un fecha(dia, mes, año), sin embargo, si deseas agregar la hora debemos hacer uso de otra clase: DateTime, que contiene, ademasademás de la fecha, la hora, minutos y segundos de la instancia que creemos.
 
== '''Operaciones de Entrada y Salida ''' ==
 
===== Operaciones Básicas de I/O =====
 
El método básico para imprimir algo en Ruby es usando print(), o, si queremos espaciado println(), como en c++
Línea 288:
eso te pide te nombre, lo guarda en la variable “name” y lo utiliza para imprimir un saludo.
 
== '''Tipos de datos Complejos''' ==
 
'''Representación de una clase'''
Línea 321:
</source>
 
== '''Declaración e inicialización de Variables ''' ==
 
 
Línea 338:
numeros = [ 3, 4, 12, 22.5 ]
 
== '''Tabla de Operadores con Asociatividad y Precedencia ''' ==
 
'''Tabla de operadores con precedencia de más alta a más baja'''
Línea 434:
'''Ruby soporta hacer corto circuito en los operadores de comparación.'''
 
== '''Estructuras de Decisión e Iteración ''' ==
 
'''Estructuras Simples'''
Línea 550:
11 #el resultado es: true
 
== '''Declaración, definición y uso de Métodos y Funciones ''' ==
 
'''Métodos'''
Línea 586:
end
 
== '''Implementación y uso de la Programación Orientada a Objetos ''' ==
 
 
Línea 869:
ActiveSupport '''es un ejemplo excelente de cómo podemos abrir las clases en Ruby y agregar métodos. Si quieres explorar más en este tema, analiza la librería Facets que contiene muchos ejemplos útiles, incluyendo algunos de los que se usan en Rails (en particular Facets/CORE).  '''
 
== Constructores Literales ==
 
Esto significa que puedes usar notación especial en lugar de llamar new para crear objetos de una clase determinada. Las clases con constructores literales se muestran en nla siguiente tabla. Cuando usas uno de estos constructores literales, estas creando un nuevo objeto:
Línea 881:
Regexp // /([a-z]+)/
== Recolección de basura ==
 
La expresión p = nil significa que no hace referencia a nada. Si ahora escribimos p1 = nil, entonces el objeto Perro es abandonado y es elegible para la recolección de basura. Garbage Collection (GC). En Ruby, el objeto llamado heap destina un mínimo de 8MB. El recolector de basura de Ruby es del tipo llamado mark-and-sweep. Ruby usa un mecanismo conservador del tipo mark and sweep. No hay garantía de que un objeto sea recolectado antes de que el programa termine.
Línea 903:
Cuando escribimos acerca de Ruby, el símbolo de número(#) es utilizado algunas veces para indicar en método de instancia -por ejemplo, decimos File.chmod para denotar el método de clase chmod de la clase File y File#chmod para referirnos al método de instancia que tiene el mismo nombre. Esta notación no es parte dela sintaxis de Ruby, es sólo parte del folklore.
== Herencia ==
 
En ruby, la herencia se maneja herencia, pero no soporta multiple herencia,
Línea 974:
helloy
 
== '''Esquema de administración y separación de la Memoria ''' ==
 
 
'''En Construcción...'''
 
== '''Implementación de Co-Rutinas ''' ==
 
El manejo de threads(Corrutinas) en ruby es muy sencillo, la creación de threads se basa en pasar un bloque a la creación de un objeto de la clase thread.
Línea 1036:
puts counter
 
== '''Manejo de Excepciones ''' ==
 
Una excepción es una clase de objeto especial, una instancia de la clase Exception o de una clase descendiente de esa clase que representa una condición especial; indica que algo ha salido mal. Cuando esto ocurre, se genera una excepción. Por defecto, los programas Ruby terminan cuando una excepción ocurre pero es posible escribir código que maneje estas excepciones.
Línea 1129:
19 end
 
== '''Gramática en EBNF del Lenguaje ''' ==
 
'''En Construccion'''
 
== '''Características Especiales del Lenguaje ''' ==
 
'''Caracteristicas de Ruby'''
Línea 1162:
 
'''-Ademas…'''
Ruby ademasademás posee otras funcionalidades para aclarar la vida los programadores, entre la cuales estan:
 
♦ Manejo de Excepciones
Línea 1174:
♦ Gran Portabilidad, corre en toda clase de sistemas Linux/Unix, Windows, OS/2, dos, etc…
 
== '''Ejemplos del Lenguaje ''' ==
'''Ejemplo 1'''
 
Línea 1263:
end
 
== '''Enlaces Externos''' ==
* [http://www.ruby-lang.org Ruby] Sitio principal de Ruby en Internet.
* [http://www.rubycentral.com Ruby central] Recursos sobre Ruby en Inglés.
Línea 1276:
* [http://www.ruby-lang.org/es/documentation/quickstart/ Programa Hola Mundo!]
* [http://todoruby.blogspot.com/2009/03/palabras-reservadas-en-ruby.html Palabras Reservadas]
 
 
[[Categoría:Lenguajes de programación orientada a objetos]]