Diferencia entre revisiones de «Usuario:ManuelRomero/opp»
(7 revisiones intermedias por el mismo usuario no mostrado) | |||
Línea 7: | Línea 7: | ||
}} | }} | ||
===Concepto=== | ===Concepto=== | ||
− | *Paradigma de programa es un conjunto de técnicas o filosofías bien definidas que usamos para realizar programación. | + | {{Pregunta|#Paradigma}} |
+ | <br> | ||
+ | *'''Paradigma''' de programa es un conjunto de técnicas o filosofías bien definidas que usamos para realizar programación. | ||
*No quiere decir que un programa siempre siga un paradigma concreto, puede seguir varios. | *No quiere decir que un programa siempre siga un paradigma concreto, puede seguir varios. | ||
− | *Las implementaciones de | + | *Las implementaciones de programas en alto nivel se realizan usando un lenguaje de programación (o varios) concretos. |
*Un mismo lenguaje se puede usar para diferentes paradigmas | *Un mismo lenguaje se puede usar para diferentes paradigmas | ||
− | + | *Cuando hablamos de '''paradigmas de la programación''' intentamos descubrir las diferentes formas de ''enfocar y desarrollar'' la programación atendiendo a determinadas reglas | |
===Algunas conceptos previas=== | ===Algunas conceptos previas=== | ||
+ | <br> | ||
+ | {{Definiciones|algoritmo,Lenguaje de programación, niveles de lenguajes, compiladores, interpretados}} | ||
+ | <br> | ||
;Algoritmo | ;Algoritmo | ||
Conjunto de acciones especificadas en un orden concreto cuya realización dan solución a un problema previamente planteado | Conjunto de acciones especificadas en un orden concreto cuya realización dan solución a un problema previamente planteado | ||
Línea 28: | Línea 33: | ||
Conjunto de 0'1 y 1's que corresponden a códigos binarios que el procesador es capaz de entender y ejecutar | Conjunto de 0'1 y 1's que corresponden a códigos binarios que el procesador es capaz de entender y ejecutar | ||
;Proceso de transformación: Pasar de código de alto nivel a código máquina. Este proceso puede ser una mera traducción como es el caso de pasar de ensamblador a código máquina | ;Proceso de transformación: Pasar de código de alto nivel a código máquina. Este proceso puede ser una mera traducción como es el caso de pasar de ensamblador a código máquina | ||
− | |||
;Lenguajes compilados | ;Lenguajes compilados | ||
− | |||
;Lenguajes interpretados | ;Lenguajes interpretados | ||
− | |||
;Java un caso especial: lenguaje semicompilado | ;Java un caso especial: lenguaje semicompilado | ||
+ | ;Para que programar | ||
− | |||
===Ejemplos=== | ===Ejemplos=== | ||
Existen diferentes modos de expresar un algoritmo | Existen diferentes modos de expresar un algoritmo | ||
Línea 42: | Línea 44: | ||
===Paradigma imperativo== | ===Paradigma imperativo== | ||
− | El siguiente ejemplo no completo en su solución (dado que hay dos soluciones y que puede ser que no sean reales sino complejas conjugadas), ilustra como procedemos de forma imperativa usando datos e instrucciones para realizar un programa | + | Este paradigma presenta dos partes diferenciadas: |
+ | *una estática | ||
+ | *una dinámica: | ||
+ | #Parte estática: | ||
+ | :'''Valores'''Tipos de datos, variables y constantes. Independientemente de que el lenguaje sea no tipado (C, Modula, Pascal Vs PHP, Python,) o más fuertemente tipado (c), o más débilmente tipado (Basic), | ||
+ | :En memoria almacenamos los valores de los datos con los que estamos trabajando dentro del programa. Estos valores los utilizan y modifica la parte dinámica del programa. | ||
+ | #Parte dinámica: Procedimientos y funciones | ||
+ | : Conjuntos de instrucciones que operan sobre valores y realizan acciones | ||
+ | |||
+ | ===Paradigma imperativo== | ||
+ | El siguiente ejemplo no completo en su solución (dado que hay dos soluciones y que puede ser que no sean reales sino complejas conjugadas), ilustra como procedemos de forma imperativa usando datos e instrucciones para realizar un programa. | ||
[[Archivo:PROGRAMA1.png]] | [[Archivo:PROGRAMA1.png]] | ||
===Paradigma imperativo=== | ===Paradigma imperativo=== |
Última revisión de 10:51 24 mar 2012
Paradigmas de programación
|
Concepto
- Paradigma de programa es un conjunto de técnicas o filosofías bien definidas que usamos para realizar programación.
- No quiere decir que un programa siempre siga un paradigma concreto, puede seguir varios.
- Las implementaciones de programas en alto nivel se realizan usando un lenguaje de programación (o varios) concretos.
- Un mismo lenguaje se puede usar para diferentes paradigmas
- Cuando hablamos de paradigmas de la programación intentamos descubrir las diferentes formas de enfocar y desarrollar la programación atendiendo a determinadas reglas
Algunas conceptos previas
- Tipo de dato conjunto de valores para los cuales hay definidos una serie de operaciones
- Variable posición de menoria o registro identificado con un nombre (identificador)cuyo contenido va a almacenar un valor de un determinado tipo que puede ser modificado durante la ejecución de un programa
- Constante poscición de memoria o registro identificado con un nombre cuyo valor no puede ser modificado durante la ejecución de un programa
- Instruccion operacción que indica al procesador la acción que tiene que realizar, siendo ésta una de las características del procesador su set de instrucciones
- Estructura de control Establecen el flujo de ejecución de un programa. Es decir las instrucciones se va a establecer dentro del programa. Un programa visto como un conjunto de instrucciones deberá tener unas determinadas estructuras de control que me permitan establecer el flujo de ejecución del mismo. En mayo de 1.966, dos matemáticos 'Bôhm y Jacopini' demostraron que un programa que algorítmicamente tuviera solución puede ser escrito utilizando solamente tres tipos de estructuras de control
- Sentencias o estructuras de control:
- Sentencias secuenciales
- Sentencias iterativas o repetitivas
- Sentencias selectivas
- Algoritmo
Conjunto de acciones especificadas en un orden concreto cuya realización dan solución a un problema previamente planteado
- Lenguaje de programación
Conjunto de lexemas que se combinan siguiente unas reglas de construcción o sintaxis y que tienen un significado definido o semántica que se emplea para expresar un algoritmo codificándolo en dicho lenguaje, constituyendo un programa escrito en un leguaje de alto nivel. dicho programa una máquina computacional no puede ser capaz de ejecutar
El lenguaje va acompañado de uno o varios programas (compilador o interprete )que es capaz de generar código máquina a partir del programa expresado en este lenguaje
- Niveles de lenguajes
En función de la proximidad de compresión del lenguaje al lenguaje humano se puede hablar de tres niveles de lenguajes de programación.
- Alto nivel
El lenguaje utiliza lexemas y estructuras sintácticas similares al utilizado en el lenguaje humano
- Bajo nivel
El lenguaje es más próximo a la máquina. Aunque se pueden utilizar lexemas como es el caso de ensamblador, éstos tienen una traducción directa al código máquina 0's y 1's
- Nivel de lenguaje máquina
Conjunto de 0'1 y 1's que corresponden a códigos binarios que el procesador es capaz de entender y ejecutar
- Proceso de transformación
- Pasar de código de alto nivel a código máquina. Este proceso puede ser una mera traducción como es el caso de pasar de ensamblador a código máquina
- Lenguajes compilados
- Lenguajes interpretados
- Java un caso especial
- lenguaje semicompilado
- Para que programar
Ejemplos
Existen diferentes modos de expresar un algoritmo
=Paradigma imperativo
Este paradigma presenta dos partes diferenciadas:
- una estática
- una dinámica:
- Parte estática:
- ValoresTipos de datos, variables y constantes. Independientemente de que el lenguaje sea no tipado (C, Modula, Pascal Vs PHP, Python,) o más fuertemente tipado (c), o más débilmente tipado (Basic),
- En memoria almacenamos los valores de los datos con los que estamos trabajando dentro del programa. Estos valores los utilizan y modifica la parte dinámica del programa.
- Parte dinámica: Procedimientos y funciones
- Conjuntos de instrucciones que operan sobre valores y realizan acciones
=Paradigma imperativo
El siguiente ejemplo no completo en su solución (dado que hay dos soluciones y que puede ser que no sean reales sino complejas conjugadas), ilustra como procedemos de forma imperativa usando datos e instrucciones para realizar un programa.
Paradigma imperativo
- Modulacion
'DIVIDE Y VENCERAS'
- Dividir el problema a resolver en partes mas pequeñas o subproblemas.
- Dar solución a cada una de las partes
- Unir las soluciones para solucionar el problema inicial
- Es una filosibía de 'Divides y vencerás
- Es más fácil resolver un problema sencillo que uno complejo
- Es efectivo y práctic
Elementos en un lenguaje de programación
- Tipo de dato conjunto de valores para los cuales hay definidos una serie de operaciones
- Variable posición de menoria o registro identificado con un nombre (identificador)cuyo contenido va a almacenar un valor de un determinado tipo que puede ser modificado durante la ejecución de un programa
- Constante poscición de memoria o registro identificado con un nombre cuyo valor no puede ser modificado durante la ejecución de un programa
- Instruccion operacción que indica al procesador la acción que tiene que realizar, siendo ésta una de las características del procesador su set de instrucciones
- Estructura de control Establecen el flujo de ejecución de un programa. Es decir las instrucciones se va a establecer dentro del programa. Un programa visto como un conjunto de instrucciones deberá tener unas determinadas estructuras de control que me permitan establecer el flujo de ejecución del mismo. En mayo de 1.966, dos matemáticos 'Bôhm y Jacopini' demostraron que un programa que algorítmicamente tuviera solución puede ser escrito utilizando solamente tres tipos de estructuras de control
- Sentencias o estructuras de control:
- Sentencias secuenciales
- Sentencias iterativas o repetitivas
- Sentencias selectivas