viernes, 17 de febrero de 2017

PROGRAMACIÓN LÓGICA Y FUNCIONAL



Nombre: Adela Guadalupe Acosta Cruz
Selene Izumi Komukai Lucero
Samuel Arturo Villegas Palacios
No de control: 13510621
13510674
13510739
Nombre del curso:
Programador lógica y funcional
Nombre del profesor:
Manuel de Jesús Matuz Cruz
Periodo: 1
Actividad: 7 Temario
Fecha: 17 de Febrero del 2017





PROGRAMACIÓN LÓGICA Y FUNCIONAL.


1.1 ESTILOS DE PROGRAMACIÓN



El estilo de programación imperativa (es decir, la programación a través de acciones que modifican el estado del computador) ha dominado elpanorama de la programación desde sus inicios; los lenguajes de más amplio uso están basados en este paradigma: Fortran, e, C++, Pascal, Basic, etc. Una razón fundamental de este dominio reside en que los lenguajes imperativos son más cercanos a la forma como realmente funciona la máquina. Existen otros paradigmas de programación diferentes al imperativo como la programación funcional y la programación lógica, cuyo estudio, desarrollo y uso han estado principalmente restringidos al ámbito académico. La programación funcional, es casi tan antigua como la imperativa; el primer lenguaje funcional, LlSP, fue desarrollado en la misma época en la que se desarrolló FORTRAN. Sin embargo, la programación funcional ha estado tradicionalmente circunscrita a áreas de aplicación específicas como la inteligencia artificial y la computación simbólica. (R., 1958)G (F.)



Existen otros paradigmas de programación diferentes al imperativo como la programación funcional y la programación lógica, cuyo estudio, desarrollo y uso han estado principalmente restringidos al ámbito académico. La programación funcional, es casi tan antigua como la imperativa; el primer lenguaje funcional, LlSP, fue desarrollado en la misma época en la que se desarrolló FORTRAN. Sin embargo, la programación funcional ha estado tradicionalmente circunscrita a áreas de aplicación específicas como la inteligencia artificial y la computación simbólica.





1.2 EVALUACIÓN DE EXPRESIONES


Es una subrutina o subprograma( también llamada procedimiento, función o rutina), como idea general, se presenta como un sub-algoritmo que forma parte del algoritmo principal, el cual permite resolver una tarea específica.
Las expresiones se evalúan de acuerdo con la presidencia de los operadores. Ante una secuencia de operadores de igual precedencia, la evaluación se realiza según el orden de escritura, de izquierda a derecha. El orden de evaluación puede modificarse usando paréntesis.
Tipos de expresiones
Dentro de las expresiones distinguimos dos clases según el tipo de datos que devuelven que devuelven al evaluarlas :

Expresiones numéricas.
Son expresiones en las que solamente aparecen operadores aritméticos.
( +, -, *, /, %3 ) , conectando términos de tipo numérico exclusivamente.
Una expresión lógica.
 Es aquella en la cual el resultado se da en términos de verdadero o falso. Generalmente una expresión lógica se construye a partir de expresiones comparativas (dos expresiones numéricas relacionadas mediante algún operador relacional), de variables y/o literales booleanos, los cuales se conectan mediante operadores lógicos. Los operadores de comparación usados en programación son los siguientes:
mayor que (>), menor que (<), igual (=), mayor o igual que (>=), menor o igual que (<=) y diferente (<>); mientras que los operadores lógicos usados son: o (ı), y (&) y la negación (~).
Las expresiones se utilizan fundamentalmente en las asignaciones y en las partes condicionales de la sentencias If, While y Repeat.






1.3 DEFINICIÓN DE FUNCIONES


Las funciones son subrutinas que pueden tener o no argumentos pero que siempre devuelven un valor de retorno. Así pues, las invocaciones a funciones son expresiones de un tipo determinado y deben emplearse igual que cualquier expresión de su tipos; es decir, una llamada a función puede formar parte de una expresión aritmética, lógica o de cadena en función de su tipo, puede constituir la parte derecha de una sentencia de asignación, aparecer en una sentencia de salida o constituir un argumento para otro sub-programa. Por otro lado, las llamadas a funciones nunca pueden formar una sentencia aislada ni constituir la parte izquierda de una sentencia de asignación. Las invocaciones a funciones siguen, tanto en la notación algorítmica como en FORTRAN, la siguiente sintaxis:
.             
.              nombre_función ([argumento][,argumento]*)
.             
.              Como se puede ver, es posible tener funciones con 0 o más argumentos, las funciones que se utilizarán en nuestros algoritmos pueden estar definidas por el propio usuario o, en muchas ocasiones, ser funciones estándar, esto es, definidas por el propio compilador.


.              


1.4 DISCIPLINA DE TIPOS



Las principales características de los lenguajes funcionales con disciplina de tipos son las siguientes: 
1.- Toda expresión tiene un tipo. 
2.- Los tipos se infieren, es decir se comprueban, de forma estática, en tiempo de compilación. 
3.- Los tipos utilizados pueden ser básicos o construidos.

 Como puede observarse en el ejemplo, se ha definido un tipo de datos lista, mediante una declaración de datos, en la cual aparecen los símbolos”[ ]” y “:” que son denominados los constructores del tipo y aparece también el símbolo t, que se denomina variable de tipo. Esto implica que es posible construir listas de diferentes con diferentes tipos de datos. En programación funcional, las expresiones utilizadas denotan valores, y el valor de una expresión depende de un contexto. En el caso de utilizar una función, cada valor de su domino está asociado a un único valor en el codomino. Esta propiedad se denomina transparencia referencial y consiste en que el valor de una expresión es independiente del orden de evaluación y del modo de uso de esta expresión como subexpresión de otra. Una característica muy importante de las funciones consiste en la operación de composición. La composición de funciones es una de las principales técnicas utilizadas en la programación funcional, debido a que una de las formas más simples de estructurar un programa consiste en realizar cierto número de operaciones una después de otra, esto se consigue mediante la composición de funciones en la cual el resultado de una función es la entrada de otra. 






1.5 TIPOS DE DATOS


Cuando nos planteamos la resolución de problemas mediante computador lo más usual es que queramos tratar con datos que son variables y cuantificables, es decir, que toman un conjunto de valores distintos entre un conjunto de valores posibles, además de poder almacenar los valores de estos datos en alguna forma aceptable para el computador (ya sea en la memoria o en periféricos de almacenamiento externo). En un lenguaje de programación el concepto de tipo de datos se refiere al conjunto de valores que puede tomar una variable. Esta idea es similar a la que se emplea en matemáticas, donde clasificamos las variables en función de determinadas características, distinguiendo entre números enteros, reales o complejos. Sin embargo, en matemáticas, nosotros somos capaces de diferenciar el tipo de las variables en función del contexto, pero para los compiladores esto resulta mucho más difícil. Por este motivo debemos declarar explícitamente cada variable como perteneciente a un tipo. Este mecanismo es útil para que el computador almacene la variable de la forma más adecuada, además de permitir verificar que tipo de operaciones se pueden realizar con ella. Se suelen diferenciar los tipos de datos en varias categorías:

          Tipos elementales, que son aquellos cuyos valores son atómicos y, por tanto, no pueden ser descompuestos en valores más simples. Entre las variables de estos tipos siempre encontramos definidas una serie de operaciones básicas: asignación de un valor, copia de valores entre variables y operaciones relacionales de igualdad o de orden (por lo tanto, un tipo debe ser un conjunto ordenado). Los tipos más característicos son:

booleanos = {verdadero, falso}
enteros = {… -2, -1, 0, +1, +2, …}
reales = {… -1.0, …, 0.0, …, +1.0, …}
caracteres = {… ‘a’, ‘b’, …, ‘Z’, …}




CONCLUSIÓN


La programación funciona es "El estilo de programación que enfatiza la evaluación de expresiones, antes que la ejecución de comandos " . Ademas un programa funcional está constituido enteramente por funciones; el programa principal es una función que toma como argumento la entrada al programa y genera la salida del programa como su resultado. Las características que hemos ilustrado de hasta ahora evidencian el gran potencial de los lenguajes funcionales como herramientas que les facilite a los programadores enfrentar la complejidad creciente del desarrollo de software; esto nos permite afirmar que en los próximos años los lenguajes funcionales tomarán un lugar en el área de desarrollo de software a gran escala, aliado de lenguajes tan tradicionales como e, e++,ADA.

REFERENCIAS
1.1- (R., 1958)
1.2- (básicos)[1]
1.3- Rosa Echevarría Líbano. Capítulo 3 Subprogramas. pág. 31
1.4- (Castro, Junio 2005. )
1.5- (Oliag, 1995.)


No hay comentarios.:

Publicar un comentario