Sei sulla pagina 1di 29

Programacin con

Rhonald Lpez
Caracas, Agosto 2015

Introduccin

Programar
Formar programas, previa declaracin de lo que se piensa
hacer y anuncio de las partes de que se ha de componer un
acto o espectculo o una serie de ellos (RAE, 2015).
Idear y ordenar las acciones necesarias para realizar un
proyecto (RAE, 2015).
Preparar ciertas mquinas por anticipado para que empiecen
a funcionar en el momento previsto (RAE, 2015).
Preparar los datos previos indispensables para obtener la
solucin de un problema mediante una calculadora
electrnica (RAE, 2015).
Elaborar programas para la resolucin
mediante ordenadores (RAE, 2015).

de

problemas

Paradigma
Ejemplo o ejemplar (RAE, 2015).
Cada uno de los esquemas formales en que se
organizan las palabras nominales y verbales
para sus respectivas flexiones (RAE, 2015).
Conjunto cuyos elementos pueden aparecer
alternativamente
en
algn
contexto
especificado;p.
ej.,nio,
hombre,
perro,pueden figurar enEl -- se queja (RAE,
2015).

Paradigmas de
Programacin
Un paradigma de programacin provee (y determina) la
visin y mtodos de un programador en la construccin
de un programa o subprograma.
Diferentes paradigmas resultan en diferentes estilos de
programacin y en diferentes formas de pensar la
solucin de problemas (con la solucin de mltiples
problemas se construye una aplicacin).
Los lenguajes de programacin son basados en uno o
ms paradigmas Por ejemplo: Smalltalk y Java son
lenguajes basados en el paradigma orientado a objetos.
El lenguaje de programacin Scheme, en cambio, soporta
slo programacin funcional. En cambio Python, soporta
mltiples paradigmas.

Paradigmas de
Programacin
Paradigma Imperativo
Describe la programacin como una
secuencia instrucciones o comandos que
cambian el estado de un programa. El
cdigo mquina en general est basado en
el paradigma imperativo. Su contrario es el
paradigma declarativo. En este paradigma
se incluye el paradigma procedimental
(procedural) entre otros.

Paradigmas de
Programacin
Paradigma Declarativo
No se basa en el cmo se hace algo (cmo se
logra un objetivo paso a paso), sino que
describe (declara) cmo es algo. En otras
palabras, se enfoca en describir las propiedades
de la solucin buscada, dejando indeterminado
el algoritmo (conjunto de instrucciones) usado
para encontrar esa solucin. Es ms complicado
de implementar que el paradigma imperativo,
tiene desventajas en la eficiencia, pero ventajas
en la solucin de determinados problemas.

Paradigmas de
Programacin
Paradigma Estructurado
La programacin se divide en bloques
(procedimientos y funciones) que pueden o no
comunicarse entre s. Adems la programacin
se controla con secuencia, seleccin e iteracin.
Permite reutilizar cdigo programado y otorga
una mejor compresin de la programacin. Es
contrario al paradigma inestructurado, de poco
uso, que no tiene ninguna estructura, es
simplemente un bloque, como por ejemplo,
los archivos batch (.bat)

Paradigmas de
Programacin
Paradigma Orientado a Objetos
Basado en la idea de encapsular estado y
operaciones en objetos. En general, la
programacin se resuelve comunicando
dichos objetos a travs de mensajes
(programacin orientada a mensajes). Se
puede incluir -aunque no formalmentedentro de este paradigma, el paradigma
basado en objetos, que adems posee
herencia y subtipos entre objetos. Ej.: Simula,
Smalltalk, C++, Java, Visual Basic .NET, etc.

Paradigmas de
Programacin
Paradigma Orientado a Objetos
Basado en la idea de encapsular estado y operaciones
en objetos. En general, la programacin se resuelve
comunicando dichos objetos a travs de mensajes
(programacin orientada a mensajes). Se puede incluir
-aunque no formalmente- dentro de este paradigma,
el paradigma basado en objetos, que adems posee
herencia y subtipos entre objetos. Ej.: Simula,
Smalltalk, C++, Java, Visual Basic .NET, etc.
Su principal ventaja es la reutilizacin de cdigos y su
facilidad para pensar soluciones a determinados
problemas.

Paradigmas de
Programacin
Paradigma Funcional

Concibe a la computacin como la evaluacin de


funciones matemticas y evita declarar y cambiar
datos. En otras palabras, hace hincapi en la aplicacin
de las funciones y composicin entre ellas, ms que en
los cambios de estados y la ejecucin secuencial de
comandos (como lo hace el paradigma procedimental).
Permite resolver ciertos problemas de forma elegante y
los lenguajes puramente funcionales evitan los efectos
secundarios comunes en otro tipo de programaciones.

Paradigmas de
Programacin
Paradigma Lgico

Basado en la definicin de reglas lgicas para luego, a travs


de un motor de inferencias lgicas, responder preguntas
planteadas al sistema y as resolver los problemas. Ej.: prolog.

Lenguajes de
Programacin

Lenguajes de
Programacin

Lenguajes de
Programacin

Lenguajes de
Programacin

Lenguajes de
Programacin

Lenguajes de
Programacin

Lenguajes de
Programacin

Lenguajes de
Programacin

Lenguajes de
Programacin

Lenguajes de
Programacin

Lenguajes de
Programacin

Lenguajes de
Programacin

Caractersticas de Python

Sintaxis
Parte de la gramtica que ensea a
coordinar y unir las palabras para formar
las oraciones y expresar conceptos (RAE,
2015).
Conjunto de reglas que definen las
secuencias correctas de los elementos de
un lenguaje de programacin (RAE, 2015).

Sintaxis
Python usa tabulacin (o espaciado) para mostrar
estructura de bloques
Tabula una vez para indicar comienzo de bloque
Des-tabula para indicar el final del bloque

Cdigo en C/Java
if (x) {
if (y) {
f1();
}
f2();
}

Cdigo en Python
if x:
if y:
f1()
f2()

Python/Java
Java es un lenguaje de programacin muy
completo que ofrece:

Amplio abanico de tipos de datos


Soporte para threads
Strong typing
Y mucho ms ...

Python es un lenguaje de scripting:


No ofrece strong typing
Bueno para prototipos pero malo para grandes sistemas
Puede cascar en tiempo de ejecucin

Todo lo que puedes hacer con Java tambin lo puedes


hacer con Python
Incluso puedes acceder a travs de Python a las API de Java
si usas Jython (http://www.jython.org)

Utilidad/deficiencia
Python no es el lenguaje perfecto, no es bueno
para:
Programacin de bajo nivel (system-programming), como
programacin de drivers y kernels
Python es de demasiado alto nivel, no hay control directo sobre
memoria y otras tareas de bajo nivel

Aplicaciones que requieren alta capacidad de computo


No hay nada mejor para este tipo de aplicaciones que el viejo
C

Python es ideal:
Como lenguaje "pegamento" para combinar varios
componentes juntos
Para llevar a cabo prototipos de sistema
Para la elaboracin de aplicaciones cliente
Para desarrollo web y de sistemas distribuidos
Para el desarrollo de tareas cientficas, en los que hay que
simular y prototipar rpidamente.

Potrebbero piacerti anche