You are on page 1of 5

PROGRAMACION LOGICA Y FUNCIONAL

UNIDAD 1: CONCEPTOS FUNDAMENTALES

1.1 ESTILOS DE PROGRAMACIÓN

Estilo de programación (también llamado estándar de código o convención de


código) es un término que describe convenciones para escribir código fuente en
ciertos lenguajes de programación.
El estilo de programación es frecuentemente dependiente del lenguaje de
programación que se haya elegido para escribir.

 Estilo K&R es el más utilizado en el lenguaje C y PHP, el estilo fue llamado


de esta forma porque fue usado por Kernighan y Ritchies en su libro The C
Programming Lenguage.

 Estilo Allman fue definido por Eric Allman, se trata de crear una nueva línea
para las llaves, e identificar el código debajo de ellas.

 Estilo BSD KNF también conocido como estilo Kernel Normal From, es la
manera más usada para el código de la distribución del software del sistema
operativo de Berkeley.

 Estilo Whitesmiths también llamado estilo wishart, se coloca las llaves


asociadas con la instrucciones de control.

1.2 EVALUACIÓN DE EXPRESIONES

Una expresión es una combinación de operandos y operadores. La


evaluación de una expresión consiste en reducirla, esto es, realizar todas
las operaciones contenidas en ella para obtener un valor final.

1.3 DEFINICIÓN DE FUNCIONES

Las funciones se crearon para evitar tener que repetir constantemente


fragmentos de código. Una función podría considerarse como una
variable que encierra código dentro de sí. Por lo tanto cuando
accedemos a dicha variable (la función) en realidad lo que estamos es
diciendo al programa que ejecute un determinado código predefinido
anteriormente.
Todos los lenguajes de programación tienen algunos elementos de
formación primitivos para la descripción de los datos y de los procesos
o transformaciones aplicadas a estos datos (tal como la suma de dos
números o la selección de un elemento que forma parte de una
colección). Estos elementos primitivos son definidos por reglas
sintácticas y semánticas que describen su estructura y significado
respectivamente.

1.4 DISCIPLINA DE DATOS

DISCIPLINA: Es la coordinación de actitudes con las cuales se instruye


para desarrollar habilidades, o para seguir un determinado código de
conducta u "orden". Un ejemplo es la enseñanza de una materia, ciencia
o técnica, especialmente la que se enseña en un centro (Docente –
asignatura).
En los lenguajes de programación con disciplina de tipos, cada tipo
representa una colección de valores (datos) similares. Una función cuyo
tipo sea A1 -> ... An -> espera n parámetros con tipos A1, ... An y
devuelve un resultado de tipo R. El conocer los tipos de las funciones
ayuda a documentar los programas y a evitar errores en tiempo de
ejecución.
Disciplina estática de tipos: Los programas bien tipados se pueden
reconocer en tiempo de compilación, un programa bien tipado se puede
utilizar sin efectuar comprobaciones de tipo en tiempo de ejecución.
Estando garantizado que no se producirán errores de tipo durante el
cómputo.
1.5.- Tipos de Datos
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, asi 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.

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 subparadigmas 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 raices 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.

You might also like