Sobre lenguajes de Programacion

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

description

Pequeña descripcion de algunos lengujaes de programacion

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.