Sei sulla pagina 1di 14

Universidad Nacional Facultad de Ciencias Exactas y Naturales Escuela de Informtica Ingeniera en Sistemas de Informacin

Curso: Paradigmas de Programacin

Investigacin: Python

Alumno: Juan Pa lo !u"o# Snc$e# %&%'&()* +driana Segura ,lvare# %-.%-%)'

Profesor: /eorge +lfaro

0eredia1 22 de Noviem re de %((3

ndice de contenido

Introduccin.....................................................................................................................................3 Historia breve del lenguaje .............................................................................................................4 Paradigmas de programacin que soporta ......................................................................................6 Disponibilidad actual y ambiente operativo (sistema operativo bibliotecas necesarias o so!t"are de base# ................................................................................................................................................6 $esumen de la sinta%is ....................................................................................................................& 'ecanismos de abstraccin ............................................................................................................( )omparacin con otros lenguajes que soportan el mismo paradigma de programacin o que *ayan sido desarrollados con un propsito similar....................................................................................( +n ejemplo completo que muestre la caracter,sticas m-s importantes del lenguaje y un ejemplo comparativo escrito en ) o )... ..................................................................................................// )onclusin............................................................................................................................./3 0ibliogra!,a..................................................................................................................................../4

Introduccin
1os lenguajes de programacin son lenguajes arti!iciales que desde /(42 con el nacimiento de lenguajes como el lenguaje m-quina ensamblador entre otros *asta el d,a de *oy como )3 4ava Pyt*on Perl *an permitido darle instrucciones a la computadora para ejecute ciertas acciones en un momento y tiempo determinado y as, agili5ar los procesos dentro de una empresa institucin o uso personal. +n lenguaje de programacin permite especi!icar de manera simblica un modelo para resolver un problema determinado de acuerdo con un paradigma establecido. 1os lenguajes de programacin pertenecen a uno paradigma o varios paradigmas. +n paradigma est- constituido por los supuestos tericos generales las leyes y las t6cnicas para su aplicacin que adoptan los miembros de una determinada comunidad cient,!ica. 7l paradigma de programacin provee y determina la manera en que un programador concibe la ejecucin de un programa. 7nte los paradigmas de programacin que e%isten est-n la programacin imperativa donde se basa en el modelo de 8uring. Ha este tipo de paradigma pertenece por ejemplo los lenguajes orientado a objetos como ).. )3 4ava. 9tro tipo de paradigma es el la programacin !uncional que es una secuencia que evalu!unciones no dependen de un estado determinado de los elementos del problema . Ha este tipo de lenguajes pertenece 1isp y :c*eme. Por ultimo esta la programacin declarativa donde la solucin al problema no es e%plicita el lenguaje que pertenece a este tipo de programacin se encuentra Prolog. +n lenguaje de programacin puede cumplir con muc*as o varias caracter,sticas de un paradigma por lo cual se le cataloga como multiparadigma como es el caso de el lenguaje de programacin Pyt*on Perl $uby 4ava entre otros.

Historia breve del lenguaje


Pyton !ue creado como sucesor de ;0) esto gracias a <uido van $ossum cuando en /((2 trabajaba en el :tic*ting 'at*ematisc* )entrum ()=I#. 7n /((> <uido continu su trabajo en Pyt*on en el )?$I donde cre muc*as versiones del lenguaje. 1uego en mayo del @222 <uido y el equipo de desarrollo de Pyt*on se trasladan a 0e9pen.com y se !orma el 0e9pen Pyt*on1abs. 7n octubre de este mismo aAo Pyt*on1abs se va a Digital )reations (actualmente Bope )orporation#. 7n @22/ se crea la Pyt*on :o!t"are Coundation (P:C# una organi5acin sin -nimo de lucro creada espec,!icamente para proteger la libertad de Pyt*on como lenguaje de cdigo abierto. 7l nombre del lenguaje proviene de la a!icin de su creador original <uido van $ossum por los geniales *umoristas brit-nicos 'onty Pyt*on. 7ste lenguaje est- escrito en ) sin embargo e%isten variantes del lenguaje como 4yt*on para trabajar con codigo nativo de java. Iron Pyt*on es una versin para )3 tanto para la plata!orma .net como para el proyecto 'ono.

Propsito para el que fue desarrollado


Cue desarrollado como derivado de otro lenguaje llamado ;0) sin embargo ten,a el objetivo de cubrir la necesidad de un lenguaje orientado a objetos que !uera sencillo y que a su ve5 !uera !uncional para diversas tareas dentro todo lo que era posible programar en el lenguaje ) utili5ando +?ID. 7l principal objetivo que persigue este lenguaje es la !acilidad tanto de lectura como de diseAo. 9tro objetivo del diseAo del lenguaje era la !acilidad de e%tensin. ?uevos mdulos se pueden escribir !-cilmente en ) o )... Pyt*on puede utili5arse como un lenguaje de e%tensin para mdulos y aplicaciones que necesitan de una inter!a5 programable. ;unque el diseAo de Pyt*on es de alguna manera *ostil a la programacin !uncional tradicional del 1isp e%isten bastantes analog,as entre Pyt*on y los lenguajes minimalistas de la !amilia del 1isp como puede ser :c*eme.

7ntre las caracteristicas que este lenguaje posee estanE ;# 1enguaje orientado a objetos din-micos F 1os programas elaborados con Pyt*on parecen pseudocdigo ya que es sencillo. F 7%pandible en ) ).. Cortran entre otros. F 7scrito en portable ;?:I ) (la mayor parte...# 0# 1enguaje natural y legible F :imple y poderoso G 'inimalistaE todo aquello innecesario no *ay que escribirlo (H I J KLnK# G 'uy densoE poco cdigo *ace muc*o. G :oporta objetos y estructuras de datos de alto nivelE strings listas diccionarios etc. G 'Mltiples niveles de organi5ar cdigoE !unciones clases mdulos y paquetes. G :i *ay -reas que son lentas se pueden reempla5ar por plugins en ) o ).. siguiendo la ;PI para e%tender o montar Pyt*on en una aplicacin. G )digo interoperable.

)#Pyt*on no es el lenguaje per!ecto no es bueno paraE

Programacin de bajo nivel (systemprogramming# como programacin de drivers y

Nernels.

Pyt*on es de muy alto nivel no *ay control directo sobre memoria y otras tareas de bajo nivel.

;plicaciones que requieren alta capacidad de computo.

D#Pyt*on es idealE G )omo lenguaje para combinar varios componentes juntos. G Para llevar a cabo prototipos de sistema. G Para la elaboracin de aplicaciones cliente.

G Para desarrollo =eb y de sistemas distribuidos (cliente servidor#. G Para el desarrollo de tareas cient,!icas en los que *ay que simular y prototipar r-pidamente.

Paradigmas de programacin que soporta


7l pseudoOcdigo natural de Pyt*on es una de sus grandes !ortale5as ya que permite concentrarse en la solucin del problema en lugar de la sinta%is es decir el propio lenguaje. Pyt*on tiene la capacidad para ser un lenguaje multiparadigma lo que signi!ica que permite varios estilos de programacin entre los cuales se destacanE 9rientacin a 9bjetos y Programacin 7structurada !uncional entre otros. ?ormalmente los otros paradigmas pueden ser utili5ados mediante el uso de e%tensiones al propio Pyt*on.

Disponibilidad actual y ambiente operativo (sistema operativo, bibliotecas necesarias o software de base)
Debido a su naturale5a de ser 9pen :ource Pyt*on *a sido portado es decir cambiado para *acerlo !uncionar a diversas plata!ormas. 8odos los programas desarrollados en este lenguaje trabajaran en alguna de esas plata!ormas sin requerir cambio alguno. :in embargo se debe tener cuidado de evitar las caracter,sticas con dependencia de sistema es decir librer,as o mdulos que !uncionan slo en un :istema en Particular. 7l lenguaje de programacin Pyt*on puede ser utili5ado en gran cantidad de :istemas 9perativos entre los cuales se encuentranE <?+P1inu% +ni% 'ac 9: 9:P@ ;miga y =indo"s. Pyt*on tambi6n *a sido portado a las m-quinas virtuales de 4ava y de .?78. )uando se usa un lenguaje interpretado como Pyt*on no e%isten compilaciones separadas y pasos de ejecucin. :olamente se debe ejecutar el programa desde el cdigo !uente. Internamente Pyt*on convierte el cdigo !uente en una !orma intermedia llamada bytecodes despu6s los traduce en el lenguaje nativo de la computadora y ejecuta. 8odo esto *ace el uso de Pyt*on muc*o m-s sencillo y le brinda una portabilidad envidiable al

compararlo con otros lenguajes de programacin. 7%isten varias *erramientas "eb que *an sido desarrolladas con este lenguaje de programacin entre ellas podemos destacar a Qa*oo 'aps y Qa*oo <roup quienes poseen componentes desarrollados en Pyt*on e incluso puede ser comprobado en su sus respectivas +$1s. ;s, tambi6n se puede seAalar algunos componentes del <oogle :pider y el <oogle 0ot que est-n escritos en Py*on. 7l juego 0attle!ield @ *a utili5ado Pyt*on para implementar el nMcleo de elementos utili5ados en el juego as, como otros juegos tales comoE 8*e )rystal :pace 3D :tar 8reN 0ridge )ommander )ivili5ation 4. 7n el caso de la industria gr-!ica empresas como Industrial 1ig*t R 'agic o =alt Disney Ceature ;nimation para el desarrollo de *erramientas de animacin digital. 1a investigacin cient,!ica tampoco *a escapado al uso de este lenguaje como *erramienta cotidiana tal como es el caso de E 8*e ?ational =eat*er :ervice 0ioso!t ;lp*a<ene. Inc. e incluso la ?;:; quien usa Pyt*on en su sistema Integrated Planning :ystem en el centro espacial 4o*nson y otros sistemas complementarios. 8ambi6n se debe destacar ejemplos como el de $ed Hat quien en su so!t"are de instalacin ;naconda y en sus *erramientas de con!iguracin *an sido desarrolladas bajo este peculiar lenguaje. 7l campo de las telecomunicaciones tampoco se queda atr-s y la empresa ?oNia *a elegido Pyt*on como *erramienta para el desarrollo de sus plata!ormas :62 (:ymbian# and 'aemo (1inu%#.

esumen de la sinta!is
Pyt*on se puede decir que es como pseudoOcdigo. 1as variables no tienen tipo as, que no *ay que declararlas. ;parecen cuando se les asigna algo y desaparecen al dejar de usarlas. 1a asignacin se reali5a mediante el operador S. Para comprobar la igualdad se utili5a el operador SS . :e puede asignar varias variables a la ve5.

Pyt*on tiene @T palabras reservadasE ;nd )ontinue 7lse Cor Import ?ot $aise

;ssert 0reaN )lass

De! Del 7li!

7%cept 7%ec Cinally

Crom <lobal I!

In Is 1ambda

9r Pass Print

$eturn 8ry =*ile

1os s,mbolos . O P y el uso de los par6ntesis para el agrupamiento se usan en todos de la misma !orma que en matem-ticas. 7l asterisco (U# es el signo de multiplicacin y UU es el s,mbolo para e%ponenciacin. 7l signo m-s . se utili5a tambi6n para concatenar listas. +na e%presin booleana es una e%presin que es cierta o !alsa 7n Pyt*on una e%presin que es cierta tiene valor / y una !alsa de 2 Para comentar se utili5a el V3 V el int6rprete le *ace caso omiso. 1as comillas invertidas convierten un objeto en su representacin como cadena (as, que si elemento contiene el nMmero / WelementoW es lo mismo que V/V mientras que KelementoK es una cadena literal#. 1as listas se escriben entre corc*etes y se pueden (por supuesto# anidarE nombre S XV)leeseV V4o*nVY % S XX/ @ 3Y Xy 5Y XXXYYYY Para la orientacin a objetosE /. Pyt*on utili5a class para nombrar la clase. @.8odos los m6todos (!unciones de un objeto# reciben un argumento adicional al principio de la lista de argumentos que contiene el propio objeto. 7ste argumento por convencin se suele llamar sel! (que signi!ica Kuno mismoK#. 3.; los m6todos se los llama de este modoE objeto.metodo(arg/ arg@#. 4.;lguno nombres de m6todo como ZZinitZZ est-n prede!inidos 7n el caso de ZZinitZZ es el nombre del constructor de la clase es decir es la !uncin a la que se llama cuando creas una instancia. >. ?ingMn m6todo o variable miembro es protegido

1a sinta%is de la de!inicin de una !uncin esE de! NOMBRE ( LISTA DE PARAMETROS #E SENTENCIAS

1as !unciones de Pyt*on no tienen begin o end e%pl,citos ni llaves que marquen dnde empie5a o termina su cdigo. 7l Mnico delimitador son dos puntos (E# y el sangrado del propio cdigo. 1os bloques de cdigo van de!inidos por su sangrado. 7l sangrado comien5a un bloque y su ausencia lo termina. ?o *ay llaves corc*etes ni palabras clave e%pl,citas. 7sto quiere decir que el espacio en blanco es signi!icativo y debe ser consistente.

"ecanismos de abstraccin
7n Pyt*on los m6todos de un objeto son siempre m6todos virtuales por lo que pueden ser sobrecargados por una clase *ijo. :in embargo no es !-cil distinguir entre m6todos que *an sido sobrecargados y los que no. ;dem-s es imposible crear un objeto que tenga car-cter privado y de esta manera denegar el acceso a los atributos y m6todos para que no sean accesados desde a!uera. 7sto signi!ica que los atributos de un objeto Pyt*on pueden ser escritos y le,dos por otro objeto desde a!uera. 7n 4ava o )3 esta encriptacin de m6todos y atributos se logra mediante el uso de modi!icadores de acceso (public private protected#. 7l lenguaje Pyt*on no cuenta con estos modi!icadores de acceso debido a que el acceso a una variable o m6todo viene dado por su nombre. Para lograr que un m6todo sea privado es necesario anteponerle dos guiones bajos [ZZ\ antes del nombre.

#omparacin con otros lenguajes que soportan el mismo paradigma de programacin o que $ayan sido desarrollados con un propsito similar
Pyt*on permite escribir programas muy compactos y legibles. 1os programas escritos en Pyt*on son t,picamente muc*o m-s cortos que sus equivalentes en ) y ).. por varios motivosE

1os tipos de datos de alto nivel permiten e%presar operaciones complejas en una sola sentencia. 7l agrupamiento de sentencias se reali5a mediante sangrado (indentacin# en lugar de llaves. ?o es necesario declarar los argumentos ni las variables.

;lgunos lenguajes de programacin presentan operadores de comparacin (] ^ S# que sean asociativos lo que *ace que en algunos casos e%presiones comoE @ ]/ ] 4 produ5can resultados ilgicos. Por ejemplo ) ).. evalMan primero el resultado de @ ] / lo que es Calso y se e%presa como 2 luego de esto anali5a la e%presin restante evaluando 2 ] 4 lo que lgicamente es verdadero sin embargo no toma en cuenta que el valor 2 de dic*a e%presin es el resultado negativo de la primera evaluacin por lo que nos retorna como verdadero la evaluacin de toda la e%presin. 9tros lenguajes de programacin como Pascal simplemente no permiten este tipo de evaluaciones sin embargo Pyt*on si las acepta y las evalu- de manera correcta. )omparacin con otros lenguajesE Python )uenta con gran cantidad de documentacin. Ruby Perl Java 1os programas en Pyt*on suelen ser entre @ y 4 veces m-s cortos que sus equivalentes en 4ava no slo por la simplicidad de su sinta%is sino tambi6n por lo avan5ado de ciertos tipos (listas tuplas diccionarios# que implementa. Pyt*on es casi 3 veces mas compacto que 4ava 6 veces mas que ). 9 sea en ) tenemos 6 lineas cuando en pyt*on / sola.

)uenta con muc*o soporte con lo cual tenemos bastantes ID7s muy buenos como ?o tiene todav,a Komodo de ;ctive:tate. demasiado soporte en los Mltimos d,as esta e%perimentando un :inta%is muy clara ya debido al que la organi5acin del boom !rame"orN cdigo se *ace mediante !ant-stico $uby on $ails asi que espacios. es posible que en un !uturo tenga bastante Para aplicaciones soporte por parte de la matematicas o lo que empresa sea que necesite procesamiento intensivo siempre 8rae integrado la parte e%isten en Pyt*on e%tenciones en )P).. de Testing Unitario lo

7s un lenguaje elegante Perl se caracteri5a por con un impecable diseAo su capacidad de *acer lo mismo de varias !ormas y que adem-s tiene algunas cosas *eredadas di!erentes. de Perl.

cual quiere decir que para acelerar las cosas !acilitara utili5arlo y teniendo lo mejor de los creo que se incita a ello dos mundosE velocidad lo cual es una buena de )P).. y !le%ibilidad pr-ctica. de Pyt*on

Pyt*on carga 6 veces mas r-pido que 4ava cuando inicia. Pyt*on consume 4 veces menos java memoria que

7n la sintaxis 9peradores igualdad y desigualdad { .. } C, C#, C++, Java, Perl, P P, Java!"ript foo .. end #here foo in { if, do, ..} Ruby, $iffel san%r&as Phyton i!Ot*en C, C#, C++, Java, Java!"ript, P P )da, $iffel, Ruby Python Perl, Ruby +isp, !"he,e

if '"( b if " then b end if "* b b if " " and b 'if " b(

1lamadas a !unciones sinPcon par-metros C, C#, C++, Java, Java!"ript, f'( f'a,b( Perl, P P, Python - f./ f."all Ruby f'a,b( f.a,b/ f."all'a,b( 'f( 'f a b( +isp !"he,e

%n ejemplo completo que muestre la caracter&sticas m's importantes del lenguaje, y un ejemplo comparativo escrito en # o #(()
1os siguientes ejemplos implementan el CibonacciE ) PQ8H9?

3include long int llamadasS2H int !ibonacci(int n# I llamadas..H i! (nSS2 _ nSS/# return /H else return !ibonacci(nO/# . !ibonacci(nO@#H J main(# I int iH !or (iS2H i]33Hi..#^ print!(V`d LnV llamadas#H J

3aPusrPbinPpython llamadasS2 de! !ib(n#E global llamadas llamadas.S/ i! n SS 2E return 2 eli! n SS /E return / elseE return !ib(nO/# . !ib(nO@# !or i in range(34#E print !ib(i# print llamadas

7n este ejemplo adem-s de calcular el nMmero Cibonacci calcula el numero de llamadas que se dio durante el proceso para el caso de ) se dio /T4>4T(> llamadas y en Pyt*on se dio /T4>4T(> llamadas pero en otros lenguajes como Perl el numero de llamadas !ue mayor. 7l siguiente ejemplo es Ciboracci pero se ejecuta de manera iterativa en ambos lenguajes.

) 3include int !ib (int n# I i! (nSS2 _ nSS/# return /H int a S / b S /H int iH !or (i S 3H i ]S nH ..i# I int aZprev S aH a S bH b .S aZprevH J return bH J main(# I int iH !or (iS2H i]34Hi..# print!(V`d LnV !ib(i##H J

PQ8H9? 3aPusrPbinPpython de! !ib(n#E a bS/ / !or i in range(n#E a bSb a.b return a !or i in range(33#E print !ib(i#

Conclusin

)uando decimos que lenguaje de programacin usar para implementar una aplicacin una de las buenas practicas ser,a buscar las caracter,sticas de cada lenguaje y observar si este presenta *erramienta que se ajusten a las necesidades que debe cubrir la aplicacin. 7%isten muc*os lenguajes de programacin como ) ).. )3 4ava $uby Perl Pyt*on entre otros. 7n el caso de Pyt*on este se puede ajustar muy bien a cualquier !orma de programacin ya que es un lenguaje sencillo una de sus caracter,sticas es que es casi seudoOcdigo no se tiene que preocupar el programador por el indicador que separa una sentencia de otra solo utili5a espacios para indicarlo por lo que en cierta !orma el cdigo se va ordenando. 7n pocas l,neas ejecuta una aplicacin. ;dem-s en un lenguaje multiplata!orma ya que puede ejecutarse ya sea en <?+P1inu% +ni% 'ac 9: 9:P@ ;miga y =indo"s y es compatible con otros lenguajes. 7ste lenguajes es utili5ado por empresas reconocidas como la ?;:; Qa*oo <oogle pero tambi6n es utili5ado en la creacin de juegos. )omo se puede observar este lenguaje tiene muc*as ventajas y es posible con el paso del tiempo alcance a tener m-s y mejores caracter,sticas.

*ibliograf&a
Inmersin en Pyt*on.X7n lineaY *ttpEPPes."iNibooNs.orgP"iNiPInmersi`)3`03nZenZPyt*on (consultado el 32 de 9ctubre de @22T#

Desarrollo de ;plicaciones para <nome con Pyt*on. X7n lineaY *ttpEPP""".linu%!ocus.orgP)astellanoP?ovember@22@Particle@66.s*tml ()onsultado el 32 de 9ctubre de @22T#.

7ncapsulamiento en Pyt*on X7n 1ineaY *ttpEPPbinsd."ordpress.comPtagPencapsulamientoOenOpyt*onP ()onsultado el 23 de ?oviembre de @22T#.

Pyt*onE 9rientacin a objetos X7n 1ineaY *ttpEPPmundogeeN.netParc*ivosP@22TP23P2>Ppyt*onOorientacionOaOobjetosP ()onsultado el 23 de ?oviembre de @22T#.

)omparacin Pyt*on X7n 1ineaY *ttpEPP""".dm*@222.comPcjprPcmp!rame.*tml ()onsultado el 2T de noviembre de @22T#.

Per!ormance )omparison O ).. P 4ava P Pyt*on P $ubyP 4yt*on P 4$uby P <roovy X7n 1ineaY *ttpEPPblog.d*ananjaynene.comP@22TP2&Pper!ormanceOcomparisonOcOjavaOpyt*onOrubyOjyt*onOjrubyO groovyP Y()onsultado el 2T de noviembre de @22T#.

Potrebbero piacerti anche