Los datos más básicos para cualquier problema de programación
son los valores numéricos y booleanos, como criterio general hay que tener en
cuenta todos los tipos numéricos existentes en Haskell, así como el tipo de los
booleanos, son ejemplares de la clase de tipos Eq, Ord, Read y Show, en
particular, las operaciones de comparación (==), (/=), (<), (>=) y (>)
y se pueden utilizar para comparar valores de cualquier tipo numérico, así como
valores booleanos. las funciones Max y min también se pueden aplicar a valores
de todos estos tipos.
Números enteros.
En Haskell existen dos tipos de números enteros: el tipo Int
de los enteros de precisión limitada, y el tipo Interger de los enteros de precisión
arbitraria.
Paradigma de programación
Un paradigma de programación es una propuesta tecnológica
que es adoptada por una comunidad de programadores cuyo núcleo central es
incuestionable en cuanto a que unívocamente trata de resolver uno o varios
problemas claramente delimitados. La resolución de estos problemas debe suponer
consecuentemente un avance significativo en al menos un parámetro que afecte a
la ingeniería de software. Tiene una estrecha relación con la formalización de
determinados lenguajes en su momento de definición. Un paradigma de
programación está delimitado en el tiempo en cuanto a aceptación y uso ya que
nuevos paradigmas aportan nuevas o mejores soluciones que la sustituyen parcial
o totalmente.
Ejemplo:
Probablemente el paradigma de programación que actualmente es el más usado a
todos los niveles es la orientación a objeto. El núcleo central de este
paradigma es la unión de datos y procesamiento en una entidad llamada
"objeto", relacionable a su vez con otras entidades
"objeto".
Tipos de paradigmas de programación
Programación imperativa
La programación imperativa, en contraposición a la
programación declarativa es un paradigma de programación que describe la
programación en términos del estado del programa y sentencias que cambian dicho
estado. Los programas imperativos son un conjunto de instrucciones que le
indican al computador cómo realizar una tarea.
Los lenguajes imperativos de alto nivel usan variables y
sentencias más complejas, pero aún siguen el mismo paradigma. Las recetas y las
listas de revisión de procesos, a pesar de no ser programas de computadora, son
también conceptos familiares similares en estilo a la programación imperativa;
cada paso es una instrucción, y el mundo físico guarda el estado (Zoom). Los
primeros lenguajes imperativos fueron los lenguajes de máquina de los
computadores originales. En estos lenguajes, las instrucciones fueron muy
simples, lo cual hizo la implementación de hardware fácil, pero obstruyendo la
creación de programas complejos. Fortran, cuyo desarrollo fue iniciado en 1954
por John Backus en IBM, fue el primer gran lenguaje de programación en superar
los obstáculos presentados por el código de máquina en la creación de programas
complejos.
Programación lógica
La programación lógica consiste en la aplicación del corpus
de conocimiento sobre lógica para el diseño de lenguajes de programación; no
debe confundirse con la disciplina de la lógica computacional, es un tipo de
paradigmas de programación dentro del paradigma de programación declarativa. El
resto de los sus paradigmas de programación dentro de la programación
declarativa son: programación funcional, programación basada en restricciones,
programas DSL (de dominio específico) e híbridos. La programación lógica gira
en torno al concepto de predicado, o relación entre elementos.
Programación funcional
Es un paradigma de programación declarativa basado en la
utilización de funciones aritméticas que no maneja datos mutables o de estado.
Enfatiza la aplicación de funciones, en contraste con el estilo de programación
imperativa, que enfatiza los cambios de estado. La programación funcional tiene
sus raíces en el cálculo lambda, un sistema formal desarrollado en los 1930s
para investigar la definición de función, la aplicación de las funciones y la
recursión. Muchos lenguajes de programación funcionales pueden ser vistos como
elaboraciones del cálculo lambda, La programación dirigida por eventos es
la base de lo que llamamos interfaz de usuario, aunque puede emplearse para
desarrollar interfaces entre componentes de Software como módulos del núcleo
también.
Programación orientada a objetos
La programación orientada a objetos o POO (OOP según sus
siglas en inglés) es un paradigma de programación que usa objetos y sus
interacciones, para diseñar aplicaciones y programas informáticos. Está basado
en varias técnicas, incluyendo herencia, abstracción, polimorfismo y
encapsulamiento. Su uso se popularizó a principios de la década de los años
1990. En la actualidad, existe variedad de lenguajes de programación que
soportan la orientación a objetos.
Programación con restricciones
Es un paradigma de la programación en informática, donde las
relaciones entre las variables son expresadas en términos de restricciones
(ecuaciones). Actualmente es usada como una tecnología de software para la
descripción y resolución de problemas combinatorios particularmente difíciles,
especialmente en las áreas de planificación y programación de tareas
(calendarización). La programación con restricciones se relaciona mucho
con la programación lógica y con la investigación operativa. De hecho,
cualquier programa lógico puede ser traducido en un programa con restricciones
y viceversa. Muchas veces los programas lógicos son traducidos a programas con
restricciones debido a que la solución es más eficiente que su
contraparte. La diferencia entre ambos radica principalmente en sus
estilos y enfoques en el modelado del mundo. Para ciertos problemas es más
natural (y por ende más simple) escribirlos como programas lógicos, mientras
que en otros es más natural escribirlos como programas con restricciones.
Programación orientada a componentes
La programación orientada a componentes (que también es
llamada basada en componentes) es una rama de la ingeniería del software, con
énfasis en la descomposición de sistemas ya conformados en componentes funcionales
o lógicos con interfaces bien definidas usadas para la comunicación entre
componentes. Se considera que el nivel de abstracción de los componentes
es más alto que el de los objetos y por lo tanto no comparten un estado y se
comunican intercambiando mensajes que contienen datos.
Fokker, J. (1996). Programaci´on Funcional. Madrid:
Universidad Carlos III de Madrid.
maldonado, m. (12 de febrero de 2014). programación logica y
funcional.
No hay comentarios:
Publicar un comentario