Está en la página 1de 9

Universidad Nacional de Costa Rica

Sede Interuniversitaria de Alajuela

Paradigmas de programación

“Trabajo investigativo sobre el lenguaje de programación R”

Profesor:
Allam Chaves Zamora
Estudiantes:
José Felipe Gómez Quesada
Eduard Alberto Arauz Rivera
Marco Teórico

En el presente documento se lleva a cabo un estudio del lenguaje de


programación “R”, desde sus inicios hasta la actualidad, analizando información
general sobres este, como el paradigma de programación al que pertenece, desarrollo
e historia, además, se profundizará en temas como su gramática, tipos de datos,
mecanismos de abstracción y encapsulamiento, así como su arquitectura, el entorno
y aplicación donde se puede usar comercialmente.

Para empezar, se abordará un poco de la historia de R para conocer de donde


proviene el lenguaje. Según Revilla A (2013), R fue desarrollado en el año 1996 por
los neozelandeses Ross Ihaka y Robert Gentleman en el departamento de estadística
de la universidad de Auckland en Nueva Zelanda, nace como un subdialecto de S, su
nombre R se debe a la inicial del nombre de sus creadores.

Según Estadística con R (2015), R fue anunciado en 1993 al público y en 1995


Martin Machler convence a sus creadores de utilizar una licencia GNU haciendo a R
un software libre. En 1996 sale la versión 0.16 es la última versión alfa desarrollada
por sus creadores, en 1997 sale la versión 0.49, siendo la versión más antigua de
este lenguaje y actualmente compila en algunas plataformas de Unix, en el 2000 sale
la versión 1.0.0, que llega ser la primera versión suficientemente estable para su uso
en producción, en el 2001 aparece la versión 1.4.0 que fue la primera versión para la
Mac OS X y a partir de ahí en las versiones sucesoras se han venido implementando
cambios que mejoran este lenguaje.
Paradigma al que pertenece

Según Gibbs M (s.f), el lenguaje R se puede implementar con distintos


paradigmas, pero se ajusta mejor al paradigma de programación funcional, ya que
depende en gran medida de las funciones. Puede crear funciones, enviarlas como
parámetros a otras funciones, asignarle valores a una variable, guardar una función
en una lista o crear funciones dentro de otras funciones. Las funciones que se pueden
llamar incluyen todo, desde imprimir, hasta encontrar coeficientes de correlación,
incluso puede generar gráficos y diagramas.

Motor de ejecución

Según Adler J (s.f), R es un lenguaje interpretado. Cuando se ingresa


expresiones en la consola R, un programa dentro del sistema R, llamado intérprete,
ejecuta el código real que se escribió. A diferencia de C, C ++ y Java, no es necesario
compilar sus programas en un lenguaje de objetos.

Todos los programas R están compuestos de una serie de expresiones. Estas


expresiones a menudo toman la forma de llamadas a funciones. El intérprete R
comienza analizando cada expresión, traduciendo la sintaxis en forma funcional.
Seguidamente, R sustituye objetos por símbolos. Finalmente, R evalúa cada
expresión, devolviendo un objeto. Para expresiones complejas, este proceso puede
ser recursivo.

Lim A, Tjhi W (2015) afirman que, al ser R un lenguaje interpretado se puede


escribir sentencias R en la consola R y obtener resultados inmediatamente porque el
intérprete R analiza y evalúa el código de inmediato. La desventaja de este enfoque
es que el código R funciona relativamente lento porque se reinterpreta cada vez que
lo ejecuta, incluso cuando no haya cambiado.
Gramática y definición formal

En cuanto a la gramática de R, a continuación, se indican algunos ejemplos tomados


de la página Tutorialspoint (s.f), sobre la sintaxis a la hora de la declaración de algunos
tipos de datos básicos.

Datos básicos:

Data Type Example Verify

Logical TRUE, FALSE v <- TRUE


print(class(v))

it produces the following result −


[1] "logical"

Numeric 12.3, 5, 999


v <- 23.5
print(class(v))

it produces the following result −


[1] "numeric"

Integer 2L, 34L, 0L v <- 2L


print(class(v))

it produces the following result −


[1] "integer"

Complex 3 + 2i v <- 2+5i


print(class(v))

it produces the following result −


[1] "complex"

Character 'a' , '"good", "TRUE", '23.4' v <- "TRUE"


print(class(v))

it produces the following result −


[1] "character"

Raw "Hello" is stored as 48 65 6c 6c 6f v <- charToRaw("Hello")


print(class(v))

it produces the following result −


[1] "raw"
Vectores:

# Create a vector.
apple <- c('red','green',"yellow")
print(apple)

# Get the class of the vector.


print(class(apple))

Resultado del código anterior:

[1] "red" "green" "yellow"


[1] "character"

Listas:

# Create a list.
list1 <- list(c(2,5,3),21.3,sin)

# Print the list.


print(list1)

Resultado del código anterior:

[[1]]
[1] 2 5 3

[[2]]
[1] 21.3

[[3]]
function (x) .Primitive("sin")

Matrices:

# Create a matrix.
M = matrix( c('a','a','b','c','b','a'), nrow = 2, ncol = 3, byrow
= TRUE)
print(M)

Resultado del código anterior:

[,1] [,2] [,3]


[1,] "a" "a" "b"
[2,] "c" "b" "a"

Factores:
Los factores son los objetos r que se crean usando un vector. Almacena el vector
junto con los distintos valores de los elementos en el vector como etiquetas. Las
etiquetas son siempre caracteres independientemente de si son numéricos o de
caracteres o booleanos, etc. en el vector de entrada. Son útiles en el modelado
estadístico.

# Create a vector.
apple_colors <-
c('green','green','yellow','red','red','red','green')

# Create a factor object.


factor_apple <- factor(apple_colors)

# Print the factor.


print(factor_apple)
print(nlevels(factor_apple))

Resultado del código anterior:

[1] green green yellow red red red green


Levels: green red yellow
[1] 3

Marcos de datos (Data Frames):

Los marcos de datos son objetos de datos tabulares. A diferencia de una matriz en
el marco de datos, cada columna puede contener diferentes modos de datos. La
primera columna puede ser numérica, mientras que la segunda columna puede ser
de carácter y la tercera columna puede ser lógica. Es una lista de vectores de igual
longitud.

# Create the data frame.


BMI <- data.frame(
gender = c("Male", "Male","Female"),
height = c(152, 171.5, 165),
weight = c(81,93, 78),
Age = c(42,38,26)
)
print(BMI)
Resultado del código anterior:
gender height weight Age
1 Male 152.0 81 42
2 Male 171.5 93 38
3 Female 165.0 78 26

Tipos de datos, mecanismos de abstracción y encapsulamiento

R tiene 6 tipos básico de datos.

• character: "a", "swc"


• numeric: 2, 15.5
• integer: 2L (the L tells R to store this as an integer)
• logical: TRUE, FALSE
• complex: 1+4i (complex numbers with real and imaginary parts)

Aparte de estos fatos, R cuenta con tipos de datos más complejos, como arrays,
data frames, listas, factors

R proporciona muchas funciones para examinar características de vectores y


otros objetos, algunas de ellas son:

• class() - ¿Qué tipo de objeto es (de alto nivel)?


• typeof() - ¿Cuál es el tipo de datos del objeto (bajo nivel)?
• length()- ¿Cuá es el tamaño de un dato?
• attributes() -¿Tiene algún metadato?
• str(object) -structura de un objeto
• names(object) -nombre de un objeto
• c(object,object,...) -combina objetos dentro de un vector
• cbind(object, object, ...) -combina objetos como columnas
• rbind(object, object, ...) -combina objetos como filas
• object -imprime el objeto
• ls() -enumera onjetos actuales
• rm(object) -remueve un objeto
• newobject <- edit(object) -edita, copia y guarda como nuevo objeto
Arquitectura

Entorno y aplicación comercial

Según Arlés G (2018), R es un entorno y lenguaje de programación con un


enfoque hacia el análisis estadístico. Un software libre y uno de los lenguajes más
utilizados en investigación por los estadísticos. Tiene gran relevancia en áreas de Big
Data, minería de datos, Inteligencia Artificial, la bioinformática, logística, predicciones
en mantenimiento de maquinaria industrial, matemáticas financieras… Existe la
posibilidad de utilizar diferentes bibliotecas con funcionalidades de cálculo y diferentes
gráficas, ya que R es una potente herramienta para la visualización de datos.

Ámbito de uso

Uno de sus ámbitos de uso es el ámbito de la Información Geográfica, existen


un sin número de librerías que pueden ser usadas en las diferentes aplicaciones de
las geociencias.

Chicaiza E, Buenaño X (2016) afirma que inicialmente R fue restringido al


ámbito científico, por ejemplo, el interés que ha despertado R por grandes compañías
como es el caso de IBM.
Referencias bibliográficas

Adler, J. (s.f.). The R Interpreter. Recuperado 16 octubre, 2019, de


https://www.oreilly.com/library/view/r-in-a/9781449358204/ch05s09.html

Arlés, G. (2018, 3 julio). Ventajas y desventajas del lenguaje de programación R frente


a Excel. Recuperado 16 octubre, 2019, de https://www.socialnautas.es/r-
frente-a-excel/

Chicaiza, E., & Buenaño, X. (2016, 7 noviembre). Talleres de Introducción a la calidad


de la Información Geográfica con R. Recuperado 16 octubre, 2019, de
http://www.nosolosig.com/articulos/815-talleres-de-introduccion-a-la-calidad-
de-la-informacion-geografica-con-r

DataCamp. (s.f.). Quick-R: Data Types. Recuperado 16 octubre, 2019, de


https://www.statmethods.net/input/datatypes.html

Gibbs, M. (s.f.). Programming Paradigm of R: Definition & Type. Recuperado 15


octubre, 2019, de https://study.com/academy/lesson/programming-paradigm-
of-r-definition-type.html

Lim, A., & Tjhi, W. (2015, enero). R High Performance Programming. Recuperado 16
octubre, 2019, de
https://subscription.packtpub.com/book/application_development/9781783989
263/1/ch01lvl1sec09/r-is-interpreted-on-the-fly

Programming with R: Data Types and Structures. (s.f.). Recuperado 16 octubre, 2019,
de https://swcarpentry.github.io/r-novice-inflammation/13-supp-data-
structures/

Tutorialspoint. (s.f.). R - Data Types. Recuperado 18 octubre, 2019, de


https://www.tutorialspoint.com/r/r_data_types.htm

También podría gustarte