Tipos de Programacion
Tipos de Programacion
Tipos de Programacion
Tabla de contenido
Programación Imperativa...............................................................................................2
¿Qué es?......................................................................................................................2
Lenguajes imperativos................................................................................................2
Características.............................................................................................................2
Programación Declarativa..............................................................................................3
¿Qué es?......................................................................................................................3
Lenguajes Declarativos...............................................................................................4
Características.............................................................................................................4
¿Qué es?......................................................................................................................5
Lenguajes Declarativos...............................................................................................5
Características.............................................................................................................6
Referencias.........................................................................................................................8
1
Programación Imperativa
estados de un programa y las sentencias que cambian este estado. Un programa imperativo es un
conjunto de instrucciones que explican o indican a la máquina como debe realizar una tarea.
debido a que el hardware de los computadores está diseñado para ejecutar código de máquina y
este está escrito en un lenguaje imperativo (paradigma Máquinas de Turing). En pocas palabras
un programa imperativo, es una fórmula que tiene pasos escritos por el programador, pasos que
cambian el estado del programa con el fin de llegar a obtener un resultado. [1]
En el lenguaje imperativo podemos ver también el tipo de programación funcional, que trata
llamar la misma función sin tener que escribir de nuevo el mismo código. De esta forma en un
programa imperativo se puede escribir el código y los pasos seguir llamando funciones o
procedimientos para que cambien el estado del programa y así llegar el objetivo del programa.
Lenguajes imperativos
ASP
BASIC
C
C#
C++
FORTRAN
PASCAL
Características
Nociones Básicas
Procedimientos.
Procedimiento
- Secuencia de actuaciones sobre el estado de ciertas variables para alcanzar unos valores que
cumplan unas determinadas condiciones. Tienen nombre y parámetros (de entrada y de salida).
- Los procedimientos colaboran pasando valores de los parámetros de salida de unos a los
Estructuras de Datos
Programa
Se desarrolla mediante la declaración de procedimientos más una rutina principal, que es una
Modelo de cálculo
de estados.
Programación Declarativa
¿Qué es?
problema dado en lugar de proveer una solución para dicho problema, dejando la interpretación
imperativa tradicional, la que requiere que el programador especifique una lista completa de
En otras palabras, la programación declarativa provee el “que”, pero deja el “como” liberado a
la implementación particular del intérprete. Por lo tanto se puede ver que la programación
programación funcional.
Lenguajes Declarativos
Prolog
SQL
HTML
Características
Los lenguajes declarativos están orientados a buscar la solución del problema, sin preocuparse
por la forma de llegar a ello; es decir, el programador debe concentrarse en la lógica del
Los programas están formados por un conjunto de definiciones o ecuaciones, las cuales
Las variables sólo pueden tener asignado un solo valor a lo largo de la ejecución del
programa, lo cual implica que no puede existir asignación destructiva. Debido a esto, cobra
decir, que al calcular un valor, resulta imposible afectar el cálculo de otros y con esto se puede
Las expresiones o definiciones pueden ser usadas como valores y por lo tanto se pueden tratar
¿Qué es?
objetos que son entidades que combinan estado, comportamiento e identidad (propiedad del
objeto que lo diferencia del resto). La programación orientada a objetos expresa un programa
como un conjunto de estos objetos, que colaboran entre ellos para realizar tareas. Esto permite
Este tipo de programación difiere de los lenguajes imperativos tradicionales, en los que los
datos y los procedimientos están separados y sin relación, ya que lo único que se busca es el
procesamiento de unos datos y los procedimientos están separados y sin relación, ya que lo único
que se busca es el procesamiento de unos datos de entrada para obtener otros de salida. La
después les pasan los datos. Los programadores que emplean lenguajes orientados a objetos
definen objetos con datos y métodos y después envían mensajes a los objetos diciendo que
define al conjunto de datos como "estado", y "métodos" como el conjunto de procedimientos que
6
el que los programas están organizados como colecciones de objetos, donde cada uno es una
instancia de alguna clase, y donde todas las clases son miembros de una jerarquía de clases
Lenguajes Declarativos
Ada
C++
C#
VB.NET
Clarion
Delphi
Eiffel
Jave
Objective-C
Ocaml
Oz
PHP
PowerBuilder
Pitón
Ruby
Smalltalk
Características
7
ABSTRACCIÓN: Cada objeto en el sistema sirve como modelo de un agente abstracto que
puede realizar trabajo, informar y cambiar su estado, y comunicarse con otros objetos en el
sistema sin revelar cómo se implementan estas características. Los procesos, las funciones o los
métodos pueden también ser abstraídos y cuando lo están, una variedad de técnicas son
aislado del exterior, es un módulo natural, y cada tipo de objeto expone una interfaz a otros
objetos que específica cómo pueden interactuar con los objetos de la clase. El aislamiento
protege a las propiedades de un objeto contra su modificación por quien no tenga derecho a
acceder a ellas, solamente los propios métodos internos del objeto pueden acceder a su estado.
Esto asegura que otros objetos no pueden cambiar el estado interno de un objeto de maneras
relajan esto, permitiendo un acceso directo a los datos internos del objeto de una manera
correspondiente al objeto que se esté usando. O dicho de otro modo, las referencias y las
comportamiento en una referencia producirá el comportamiento correcto para el tipo real del
objeto referenciado.
HERENCIA: las clases no están aisladas, sino que se relacionan entre sí, formando una
jerarquía de clasificación. Los objetos heredan las propiedades y el comportamiento de todas las
permitiendo a los objetos ser definidos y creados como tipos especializados de objetos
clases y estas en árboles o enrejados que reflejan un comportamiento común. Cuando un objeto
pertenece a más de una clase se dice que hay herencia múltiple; esta característica no está
soportada por algunos lenguajes (como Java). Con esta propiedad, los objetos heredan
Programacion funcional
¿Qué es?
computadora para evaluar expresiones. El papel principal del programador es construir una
función para resolver un problema determinado. Esta función,que puede implicar una serie de
trabajo es evaluar expresionese imprime los resultados. En este sentido, la computadora actúa de
9
manera muy similar a una computadora calculadora de bolsillo. Lo que distingue una calculadora
funcional del la variedad más humilde es la capacidad del programador de hacer definiciones
para aumentar su poderes de cálculo. Expresiones que contienen ocurrencias de los nombres de
funciones definidas por el programador se evalúan mediante el uso de las definiciones dadas
Características
posee un valor bien definido, luego el orden en que una computadora puede llevar
Tipos de datos
Listas
Las listas son colecciones de cero o más elementos de un mismo tipo (a diferencia de las
tuplas que pueden tenerlos de diferentes). Los operadores utilizados son el [] y (:). El primero
10
representa una lista vacía, y el segundo denominado cons o constructor, permite añadir un
misma
estructura como la ejecución de los programas van determinados por los sucesos que ocurran en
el sistema, definidos por el usuario o que ellos mismos provoquen. Para entender la
del programa, en la programación dirigida por eventos será el propio usuario —o lo que sea que
esté accionando el programa— el que dirija el flujo del programa. Aunque en la programación
Caracteristicas
El creador de un programa dirigido por eventos debe defi- nir los eventos que manejarán su
programa y las acciones que se realizarán al producirse cada uno de ellos, lo que se conoce como
programación utilizado, por el sistema operativo e incluso por eventos creados por el mismo
llevarán a cabo las inicializaciones y demás código inicial y a continuación el programa quedará
bloqueado hasta que se produzca algún evento. Cuando alguno de los eventos esperados por el
programa tenga lugar, el programa pasará a ejecutar el código del correspondiente administrador
11
de evento. Por ejemplo, si el evento consiste en que el usuario ha hecho clic en el botón de play
Detección de eventos
con el usuario en cualquier momento de la ejecución. Esto se consigue debido a que los
programas creados bajo esta arquitectura se componen por un bucle exterior permanente
Habitualmente, este bucle externo permanece oculto al programador que simplemente se encarga
de tratar los eventos, aunque en algunos entornos de desarrollo (IDE) será necesaria su
{ Switch (event){ case mousse_button_down: case mouse_click: case keypressed: case Else: } }
Programacion procedural
Son los lenguajes orientados a “sentencias”. La unidad de trabajo es la sentencia. Los efectos
de las sentencias individuales se combinan en un programa para obtener los resultados deseados.
computadora.
Caracteristicas
Un programa completo está compuesto por una serie de sentencias, que pueden ser de
distintos tipos: — declarativas, que son las que empleamos para definir los tipos de datos,
12
declarar las variables o las funciones, etc., es decir, son aquellas que se emplean para definir de
— compuestas, que son aquellas formadas de la unión de sentencias de los tipos anteriores.
para resolver un problema, sólo necesitamos saber cuáles son sus parámetros y cuál es el
resultado que devuelve. De esta manera podemos mejorar o cambiar un procedimiento sin afectar
a nuestro programa, siempre y cuando no cambie sus parámetros, haciendo mucho más fácil la
Referencias
[1] Pratt, Terrence W. and Marvin V. Zelkowitz. Programming Languages: Design and
[2] Schach, Stephen (2006). Object-Oriented and Classical Software Engineering, Seventh
Edition. McGraw-Hill.