Sobre lenguajes de Programacion
description
Transcript of Sobre lenguajes de Programacion
7/18/2019 Sobre lenguajes de Programacion
http://slidepdf.com/reader/full/sobre-lenguajes-de-programacion 1/13
Universidad de Valparaíso
Escuela de Ingeniería civil en Informática
Investigación sobre Lenguajes de Programación
Versión 1.0
07/201
Índice
7/18/2019 Sobre lenguajes de Programacion
http://slidepdf.com/reader/full/sobre-lenguajes-de-programacion 2/13
1. Lua............................................................................................................................................. 3
a) Penetración estimada en el mercado.........................................................................................3
b) Estructura...............................................................................................................................3
c) Ámbitos de comodidad............................................................................................................ 3
d) Ejemplos................................................................................................................................. 4
e) Apreciación personal............................................................................................................... 4
2. G..............................................................................................................................................5
a) Penetración estimada en el mercado.........................................................................................5
b) Estructura...............................................................................................................................5
c) Ámbitos de comodidad............................................................................................................ 5
d) Ejemplos................................................................................................................................. 5
e) Apreciación personal............................................................................................................... 6
!. " ................................................................................................................................................. 6
a) Penetración estimada en el mercado.........................................................................................6
b) Estructura...............................................................................................................................6
c) Ámbitos de comodidad............................................................................................................ 7
d) Ejemplos................................................................................................................................. 7
e) Apreciación personal............................................................................................................... 7
#. "$%&......................................................................................................................................... 8
a) Penetración estimada en el mercado.........................................................................................8
b) Estructura...............................................................................................................................8
c) Ámbitos de comodidad............................................................................................................ 8
d) Ejemplos................................................................................................................................. 8
e) Apreciación personal............................................................................................................... 9'. P(P............................................................................................................................................ 9
a) Penetración estimada en el mercado.......................................................................................10
b) Estructura.............................................................................................................................10
c) Ámbitos de comodidad....................................................................................................... ...10
d) Ejemplos............................................................................................................................... 10
e) Apreciación personal............................................................................................................. 11
. *............................................................................................................................................... 11
a) Penetración estimada en el mercado.......................................................................................11
b) Estructura............................................................................................................................. 11c) Ámbitos de comodidad...........................................................................................................11
d) Ejemplos............................................................................................................................... 11
e) Apreciación personal.............................................................................................................12
+. %ibliogra,-a............................................................................................................................... 13
1. Lua
7/18/2019 Sobre lenguajes de Programacion
http://slidepdf.com/reader/full/sobre-lenguajes-de-programacion 3/13
!ua se utili"a como lengua#e de script em$e$ido ligero rápido% esta dise&ado para una
programación procedimental general% tam$i'n es (til para la descripción de datos.
!ua tiene un sinfín de características )ue *acen )ue sea un lengua#e )ue poco a poco se va
posicionando de me#or forma en el mercado% llegando a o$tener el +remio ,ront !ine de la
-evista esarrolladores de uegos en el a&o 2011% estas características son
-ápido !ua es rápido no sólo en los programas de referencia afinados% tam$i'n en
la vida real. +artes importantes de grandes aplicaciones se *an escrito en estelengua#e.
+orta$le u distri$ución es un pa)uete pe)ue&o% ese#ecuta$le en todas las versiones
de Uni 3 4indo5s% am$ien en dispositivos móviles6 con ndroid % i8 % 9-E4 %
3m$ian % 4indo5s +*one :% además de ser utili"a$le en microprocesadores
incorporados 6como -;% aplicaciones como !ego ;indstorms :
<ratuito Es un soft5are de código li$re% distri$uido $a#o licencia ;I=% 3 puede
usarse para cual)uier propósito sin ning(n costos adicional
a) Penetración estimada en el mercado!ua es actualmente el lengua#e scripting líder en #uegos. !ua tiene un manual de
referencia sólido.
Figura 1: Penetración de los lenguajes según IDC
En $ase a la ,igura 1 se puede apreciar )ue !ua se encuentra entre los lengua#esmenos utili"ados.
b) EstructuraEste lengua#e se escri$e de forma dinámica% se e#ecuta mediante la interpretación de
código% cuenta con gestión de memoria automática% esto (ltimo es de alta utilidad
para la configuración% scripts 3 rápido prototipado.
demás !ua esta implementado como una $i$lioteca escrita en >.
=am$i'n ofrece un $uen soporte para la programación orientada a o$#etos% programación funcional 3 programación orientada a datos.
En resumen los programas *ec*os en !ua no son interpretados directamente% sino
compilados a $3tecode% 3 este es e#ecutado en la má)uina virtual de !ua.
c) Ámbitos de comodidad!ua se *a utili"ado en muc*as aplicaciones industriales 6+*otos*op !ig*troom dedo$e:% con 'nfasis en los sistemas integrados 3 #uegos 64orld of 4arcraft 3 ngr3
9irds:.ctualmente se sigue utili"ando en la industria de los video#uegos 3a )ue es
mu3 pe)ue&o al momento de compilarlo% 3 la gráfica es compati$le con el ?ernel
de las empresas <amer@s.
7/18/2019 Sobre lenguajes de Programacion
http://slidepdf.com/reader/full/sobre-lenguajes-de-programacion 4/13
d) Ejemplos!a sintais recuerda a una me"cla de +ascal con otros lengua#es
>omo se puede apreciar en el e#emplo anterior% no es necesario declarar el tipo de
varia$le% puesto )ue estas no tienen tipo% de$ido a lo dinámico del lengua#e.!ua soporta asignación m(ltiple directa% sin necesidad de utili"ar otros
mecanismos 6listas% etc:% de modo )ue es perfectamente posi$le intercam$iar dos
valores en una (nica instrucción sin efectos secundarios. =am$i'n las funciones
pueden% devolver varios valores. +or e#emplo
En !ua las ta$las son la $ase de cual)uier estructura de datos. A no se )uedan sólo
a*í% sino )ue proporcionan todos los mecanismos para la organi"ación 3ar)uitectura del código. !a ta$la% es como un arra3 pero presenta algunas
particularidades
e) Apreciación personalEs un lengua#e )ue por el momento nos *a sorprendido% 3a )ue tiene lo )ue todoslos lengua#es de scripting de *o3 en día tienen% lo me#or de cada uno% 3 se *a
for#ado en un entorno tan competitivo 3 fuerte como es el sector de los video#uegos
function diHola(persona)
-- Un bucle:
for i=1,3 do
print("Hola " .. persona .. "!")
end
end
print("¿Co te llaas")
nobre = io.read()
-- #laada a una funcin:diHola(nobre)
function nueros()
return 1,$,3,%
end
--&sta funcin retorna 1,$,3,%.
a = 1b = $
a,b = b,a
print("a: " .. a .. ", b: " .. b)
-- ipriir': a: $, b: 1
print(tabla3)
tabla$ = *
tabla"+ola" = 1
-- &s lo iso ue tabla.+ola = 1
print(tabla%%)
-- o da un error, sipleente de/uel/e null
7/18/2019 Sobre lenguajes de Programacion
http://slidepdf.com/reader/full/sobre-lenguajes-de-programacion 5/13
2. G<o es un lengua#e de programación concurrente 3 compilado inspirado en la sintais de >.
us características principales radican en
-ápido
oporte de concurrencia
8pen ource
+ara este lengua#e eisten dos compiladores <>>go Es un compilador $asado en >.
uite epende de la ar)uitectura se usa sus BversionesC6uite Dg% uite g% etc:
a) Penetración estimada en el mercado<o se usa para descargas en <oogle o para escalar las $ases de datos de ;3F! en
3outu$e.
8tras compa&ías )ue están usando <o para sus pro3ectos son 99> 4orld5ide%>anonical% >loud,lare% GeroHu% Iron.io% ovartis% ound>loud% mug;ug%
tatGat% =inHercad.
<o ganó el Blengua#e de programación =I89E del a&o 200JC por o$tener más cuota
de mercado. demás *a o$tenido un aumento del 1%2K desde el anuncio de su
lan"amiento.
En $ase a la ,igura 1 se puede apreciar )ue este lengua#e de$ido a lo nuevo )ue
es% aun no ocupa ning(n lugar dentro del ranHing% sin em$argo las nuevas
actuali"aciones 3 la confian"a de grandes empresas pueden *acer )ue el uso de este
aumente en todos los sectores.
b) Estructura<o admite el paradigma de programación orientada a o$#etos% pero a diferencia de
los lengua#es de programación más populares no dispone de *erencia de tipos 3
tampoco de pala$ras )ue denoten el uso de este paradigma. <o permite el uso de
delegación 6a trav's de em$edded values: 3 polimorfismo 6por medio deinterfaces:.
e$ido a )ue es similar a >% utili"a $lo)ues )ue se encierran entre llaves% con
estructuras de control como for% s5itc* e if.
c) Ámbitos de comodidad
d) EjemplosEl clásico programa Gola mundo en <o es similiar a como se *aría en >LL. >on
este mítico e#emplo podemos apreciar )ue en cuanto a sintais son mu3 similares
pac0ae ain
iport "ft"
func ain() 2
ft.rintf("Hola, undo.4n")
5
7/18/2019 Sobre lenguajes de Programacion
http://slidepdf.com/reader/full/sobre-lenguajes-de-programacion 6/13
,i$onnacci >losure
e) Apreciación personal<o es lengua#e mu3 sencillo de usar% además cuenta B=our de <oC% en el )ue semuestra los primeros pasos con 'l. En sí este lengua#e tiene todas las de triunfar 3
posicionarse en un futuro en uno de los lengua#es compilados más potentes% 3a )ue
cuenta con un gran dinamismo 3 co$ertura de los medios de comunicación al
provenir de una empresa como B<oogleC.
!. " - es un lengua#e de programación para el análisis de datos mediante la creación de
script 3 funciones. Es un lengua#e completo% interactivo% orientado o$#etos% dise&ado
por estadísticos% para estadísticos. +rovee o$#etos% operadores 3 funciones )ue *acenel proceso de eplorar% modelar 3 visuali"ar los datos% todo un completo análisis de
datos en unas pocas líneas de código.
Ventajas: Es un am$iente para el análisis estadístico contiene funciones para cual)uier
tipo de manipulación de datos 3 modelos estadísticos% no solo los m'todos
estándar% tam$i'n los más innovadores en vanguardia de estadística% los
cuales suelen salir primero en este lengua#e. Es un pro3ecto de código a$ierto con una comunidad de estadísticos e
informáticos )ue la respaldan. Visuali"ación de datos Una parte esencial es la visuali"ación de datos a
trav's de ta$las 3 gráficos para el proceso de análisis de datos% por lo cual
contiene ecelentes *erramientas para esto. Es un lengua#e de programación $ien desarrollado% simple 3 efica" )ue
inclu3e condicionales% loops% funciones recursivas 6definidas por el usuario:
3 facilidades de entrada 3 salida.
a) Penetración estimada en el mercado!a comunidad de - cuenta con más de 2 millones de usuarios alrededor del
mundo en la posición 17 de este mes de los lengua#es más usados
b) EstructuraEs un lengua#e $asado en >% se utili"a mediante la creación de script a trav'scódigo por línea de comando principalmente.
package mainimport "fmt"// fib returns a function that returns// successie !ibonacci numbers.func fib# func# int $
a% b &' 0% 1return func# int $
a% b ' b% a(breturn a
))func main# $
f &' fib#// !unction ca**s are ea*uate+ *eft,to,right.fmt.-rint*nf#% f#% f#% f#% f##
)
7/18/2019 Sobre lenguajes de Programacion
http://slidepdf.com/reader/full/sobre-lenguajes-de-programacion 7/13
c) Ámbitos de comodidadnálisis de datos 3 minería de datos para el desarrollo de soft5are
estadístico.
d) Ejemplos
>ódigo para calcular el con#unto de ;andel$rot con 20 iteraciones de laecuación M NO MP2L>% del cual luego crea un arc*ivo gif.librar6(ca7ools) 8 e9ternal pac0ae pro/idin rite.if function
;et.colors <- colorapalette(c("8>>>>*?", "blue", "8>>*???", "c6an",
"8*???*?",
"6ello", "8??*?>>", "red", "8*?>>>>"))
<- 1>>> 8 define si@e
C <- cople9( real=rep(se(-1.A,>., lent+.out=), eac+= ),
ia=rep(se(-1.$,1.$, lent+.out=), ) )
C <- atri9(C,,) 8 res+ape as suare atri9 of cople9 nubers
B <- > 8 initiali@e B to @ero
<- arra6(>, c(,,$>)) 8 initiali@e output 3D arra6
for (0 in 1:$>) 2 8 loop it+ $> iterations
B <- BE$FC 8 t+e central difference euation
,,0 <- e9p(-abs(B)) 8 capture results
5
rite.if(, "Gandelbrot.if", col=;et.colors, dela6=A>>)
e) Apreciación personalEs un lengua#e con muc*o uso en el ám$ito científico con gran utilidad parala matemática estadística% )ue gracias a su comunidad% va incrementando las
capacidades del lengua#e mediante el uso de complementos llamados
pa)uetes% lo )ue le permite crecer 3 mantenerse es su ám$ito.
7/18/2019 Sobre lenguajes de Programacion
http://slidepdf.com/reader/full/sobre-lenguajes-de-programacion 8/13
#. "$%&-u$3 es un lengua#e de scripts para una programación orientada a o$#etos rápida 3 sencilla%
es un lengua#e de programación interpretado% de mu3 alto nivel 3 orientado a o$#etos. Este
lengua#e se caracteri"a por tener una programación dinámica 3 ser de código a$ierto% está
enfocado en la simplicidad 3 productividad. u elegante sintais se siente natural al leerla 3
fácil al escri$irla.
a) Penetración estimada en el mercadoe acuerdo al índice =I89E% )ue mide el crecimiento de los lengua#es de
programación% -u$3 se u$ica en la posición Q1R del ranHing mundial. -efiri'ndose
a su crecimiento% predicen% B=odo indica )ue -u$3 llegará a estar entre los 10
primeros en menos de D mesesC. <ran parte de su crecimiento se atri$u3e a la
popularidad alcan"ada por aplicaciones desarrolladas con -u$3% en particular elframe5orH de desarrollo 5e$ -u$3 on -ails.1
b) Estructura-u$3 es una me"cla de lengua#es 6+erl% malltalH% Eiffel% da 3 !isp: por lo tanto
incorporara tanto la programación funcional como la imperativa.En -u$3% todo es un o$#eto. e le puede asignar propiedades 3 acciones a toda
información 3 código. !a programación orientada a o$#etos llama a las propiedades
varia$les de instancia 3 las acciones son conocidas como m'todos.-u$3 tiene un con#unto de otras funcionalidades entre las )ue se encuentran las
siguientes
;ane#o de ecepciones% como ava 3 +3t*on% para facilitar el mane#o de
errores.
=iene mane#o de *ilos 6t*reading: independiente del sistema operativo.
e esta forma% tienes soporte multiO*ilo en todas las plataformas en las
)ue corre -u$3.
+orta$le se desarrolla ma3oritariamente en <U/!inu% pero corre en
varios tipos de UIS% ;ac 8 S% 4indo5s.
c) Ámbitos de comodidad-u$3 se utili"a esencialmente para el desarrollo de aplicaciones 5e$% por lo )ue es
ampliamente utili"ado% de$ido a )ue el crecimiento de estas aumentaeponencialmente día a día.
d) Ejemplos!as funciones se definen por la pala$ra clave def
efinición de clases
1 https&//.rub,*ang.org/es/about/
def +ola(proraador)
puts "Hola 82proraador5"
end
+ola e e Hola e e
class ersona
def initiali@e(nobre)
Inobre = nobre
end
def saludar
"Hola, i nobre es
82Inobre5."
end
end
pepe = erson.ne(epe)
puts pepe.saludar 8 Hola, i
nobre es e e
7/18/2019 Sobre lenguajes de Programacion
http://slidepdf.com/reader/full/sobre-lenguajes-de-programacion 9/13
Ecepcionesa captura se hace me+iante rescue preio uso +e begin&
e) Apreciación personal-u$3 *a evolucionado mu3 $ien. Un gran n(mero de m'todos se *an a&adido *e
incorporado en las clases 3 módulos eistentes% 3 el tama&o de las li$rerías estándar
6las $i$liotecas incluidas en la distri$ución de -u$3: *a crecido enormemente% es
por ello )ue pensamos )ue ru$3 3 su frame5orHs on rails son una potente
*erramienta para la creación 3 desarrollo de aplicaciones 5e$ potentes tanto en elfront como en el $acHOend.
'. P(PEs un lengua#e de script de código a$ierto ampliamente utili"ado para el desarrollo5e$ 3 )ue puede ser em$e$ido en G=;! +G+ se conoce como un lengua#e del lado
del servidor% eso es por)ue +G+ no se e#ecuta en el e)uipo de uno% pero sí en ele)uipo del )ue solicita la página% los resultados son entregados a uno% 3 se muestran
en el navegador.Ventajas:
<ratuito es de código a$ierto 3 desarrollado 3 actuali"ado por una
comunidad de desarrolladores de todo el mundo. =odos sus componentes sonde li$re distri$ución 3 uso.
+oderoso +uede ser usado para dise&ar cual)uier tipo de sitio 5e$ 3
mane#ar altas cantidades de tráfico. ,ace$ooH% =5itter% 4iHipedia 3 muc*osotros sitios conocidos lo utili"an.
Es independiente de la plataforma% corre en la ma3oria de los sistemas
operativos como !inu% UIS% ;ac 8 3 4indo5s.a) Penetración estimada en el mercado
+G+ es usado un 1.JK de todos los sitios 5e$ )ue usan programación por
el lado del servidor% 3a )ue soporta la ma3oría de las $ases de datos 3
servidores 5e$b) Estructura
bein
8 Cdio ue puede dar probleas
rescue Clase&9cepcion1 =J
e9ception1
8 Ke e;ecuta si se lan@a una
Clase&9cepcion1
rescue Clase&9cepcion$ =J
e9ception$
8 Ke e;ecuta si se lan@a una
Clase&9cepcion$
rescue
8 Captura cualuier e9cepcin
ensure
8 Cdio ue siepre se e;ecuta
end
7/18/2019 Sobre lenguajes de Programacion
http://slidepdf.com/reader/full/sobre-lenguajes-de-programacion 10/13
Entre las características de +G+% están la inclusión de la visi$ilidad% clases 3
m'todos a$stractos 3 finales% m'todos mágicos% interfaces% clonación 3determinación de tipos.
+G+ trata los o$#etos de la misma manera )ue las referencias o mane#adores%
lo )ue significa )ue cada varia$le contiene una referencia a un o$#eto en
lugar de una copia de todo el o$#eto.c) Ámbitos de comodidadcript utili"ado para programación 5e$ por el lado del servidor con acceso a
información almacenada en $ases de datos tanto F! como oF! talescomo ;3F!% +ostgreF!% 8racle% 89>% 92% ;icrosoft F! erver%
,ire$ird% F!ite o ;ongo9.
d) EjemplosE#emplo de código p*p incrustado dentro de un *tml% )ue muestra TGola%
so3 un script de +G+:. El código de +G+ está encerrado entre las eti)uetas
especiales de comien"o 3 final NWp*p 3 WX )ue permiten entrar 3 salir del
Tmodo +G+T.<+tlJ
<+eadJ <titleJ&;eplo<LtitleJ
<L+eadJ
<bod6J
<p+p
ec+o "MHola, so6 un script de H!"N
J
<Lbod6J
<L+tlJ
El cliente solo reci$irá el resultado de e#ecutar el script% aun)ue no se sa$rá
el código su$3acente )ue era. +or lo tanto solo será un *tml con la respuesta<+tlJ
<+eadJ
<titleJ&;eplo<LtitleJ
<L+eadJ
<bod6J
Hola, so6 un script de H!
<Lbod6J
<L+tlJ
e) Apreciación personal+G+ es un potente lengua#e 3a )ue permite interactuar con muc*os tipos de $ases de datos% *a3 gran variedad de frame5orHs para tra$a#ar lo )ue facilita
muc*o su implementación 3 posee una etensa documentación.
7/18/2019 Sobre lenguajes de Programacion
http://slidepdf.com/reader/full/sobre-lenguajes-de-programacion 11/13
. *> es un lengua#e potente 3 flei$le )ue proporciona una rápida e#ecución del
programa e impone pocas restricciones al programador. Esto *ace )ue sea (til para
cual)uier tipo de programa
El potencial de > 3 su rápida e#ecución de programas proviene de su capacidad paraacceder a comandos de $a#o nivel% similar al lengua#e ensam$lador% pero con una
sintais de alto nivel. Esta flei$ilidad proviene de las muc*as maneras en )ue el
programador tiene )ue reali"ar las mismas tareas. > inclu3e operadores de $its #untocon potentes capacidades para la manipulación de punteros. !a principal muestra de
esto% está la falta de compro$ación de la sintais. Esto puede ser una gran venta#a
para un programador eperimentado% pero una desventa#a peligrosa para un novato.Venta#as
;odularidad. !as secciones de código pueden ser almacenados en las $i$liotecas
para su reutili"ación en futuros programas.
Es un lengua#e mu3 flei$le )ue permite programar con m(ltiples estilos. Uno delos más empleados es el estructurado Tno llevado al etremoT
+unteros a funciones 3 varia$les estáticas% )ue permiten una forma rudimentaria de
encapsulado 3 polimorfismo.a) Penetración estimada en el mercado
> es utili"ado para el desarrollo de sistemas operativos% programación a
nivel de sistema% istemas Em$e$idos 6inclu3endo varios tipos demicrocontroladores como +I>% -;% 3 microOprocesadores:% -=8%
compiladores% programación 5e$ usando ><I 3 aplicaciones de
administración de memoria.b) Estructura
> usa el paradigma de la programación imperativa% )ue descri$e la
programación en t'rminos del estado del programa 3 sentencias )ue cam$ian
dic*o estado.c) Ámbitos de comodidad
+rogramación de sistemas operativos
d) EjemplosEste programa imprime un Gola ;undo% la li$rería printf es usada para
mostrar el teto en pantalla% YZnY posiciona el cursor al inicio de la línea de
teto% la ca$ecera stdio.* contiene las declaraciones de la función printf.//C hello world example
8include <stdio.+J
int ain()
2
printf("Hola Gundo\n")N return >N
5
E#emplo de un programa )ue suma 2 n(meros ingresados por el usuario.+ara esto% se de$e crear una función especificando el tipo de dato de retorno%
3 de igual manera a cada varia$le declarada.8include<stdio.+J
7/18/2019 Sobre lenguajes de Programacion
http://slidepdf.com/reader/full/sobre-lenguajes-de-programacion 12/13
int ain()
2
int a, b, cN
printf("&nter to nubers to add\n")N scanf("OdOd",Pa,Pb)N
c = a F bN
printf("Ku of entered nubers = Od\n",c)N
return >N
5
e) Apreciación personal> es un lengua#e simple 3 epresivo% su sintais 3 semántica es potente 3dinámica% *ace )ue sea fácil ra"onar acerca de los algoritmos de alto nivel 3
del *ard5are de $a#o nivel a la ve"% se puede usar en lengua#es de script%
código para el Hernel% código em$e$ido% etc.. !a optimi"ación en > esdirecta 3 simple.
7/18/2019 Sobre lenguajes de Programacion
http://slidepdf.com/reader/full/sobre-lenguajes-de-programacion 13/13
+. %ibliogra,-aa: B$out !UC% *ttp//555.lua.org/a$out.*tml% last revie5 martes 1[
#ulio%201.
$: B!ua UsesC% *ttp//luaOusers.org/5iHi/!uaUses% last revie5 martes1[ #ulio
201.
c: Bocumentatio <8C% *ttps//golang.org/doc/% last revie5 Viernes 17 #ulio201.
d: B=*e > +rogramming !anguageC%
*ttp//groups.engin.umd.umic*.edu/>I/course.des/cis[00/c/c.*tml% lastrevie5 viernes 17 #ulio 201.
e: BVersions of +G+C% *ttp//5Rtec*s.com/tec*nologies/details/plOp*p/all/all%
last revie5 viernes 17 #ulio 201.f: B4*3 use -WC % *ttp//555.insideOr.org/5*3OuseOr % viernes 17 #ulio 201.
g: B$out -C% *ttp//555.rOpro#ect.org/a$out.*tml% last revie5 viernes 17 #ulio
201.