Download Conceptos Fundamentales
Document related concepts
Transcript
Conceptos Fundamentales Programación Lógica y Funcional MTI. Eduardo Cruz Romero www.tics-tlapa.com Estilos de Programación (1/3) Estilo de programación (también llamado estándares 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. Por ejemplo el estilo del lenguaje de programación C variará con respecto al del lenguaje BASIC. Estilos de Programación (2/3) El buen estilo, al tratarse de algo subjetivo, es difícil de categorizar concretamente; con todo, existen un número de características generales. Con el advenimiento de software que da formato al código fuente de forma automática, el foco en cómo éste debe de ser escrito debe evolucionar de forma más amplia a la elección de nombres, lógica y otras técnicas. Desde un punto de vista práctico, el uso de un computador para dar formato al código fuente ahorra tiempo, y es posible forzar el uso de estándares a nivel de una compañía completa sin debates religiosos. Estilos de Programación (3/3) 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. Evaluación de Expresiones (1/6) 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. Para evaluar una expresión es necesario conocer la prioridad de los operadores, con lo cual se puede determinar cuál operación se va a realizar antes que las demás. Una expresión entre paréntesis se evalúa primero que las demás. Si hay paréntesis se evalúa primero la expresión contenida en los paréntesis más internos. Evaluación de Expresiones (2/6) Programación Funcional: es un estilo de programación que enfatiza la evaluación de expresiones, en lugar de la ejecución de comandos. Las expresiones en estos lenguajes se forman utilizando funciones para combinar valores básicos. Lenguaje Funcional: es un lenguaje que soporta e incentiva la programación en un estilo funcional. Evaluación de Expresiones (3/6) ¿Que son las expresiones? Son el método fundamental que tiene el programador de expresar computaciones. Las expresiones están compuestas de operadores, operandos, paréntesis y llamadas a funciones. Los operadores pueden ser: Unarios: Cuando tan solo tienen un operando. Son operadores prefijos. Binarios: 2 Operandos. Son operadores infijos. Ternarios: 3 operandos. Evaluación de Expresiones (4/6) Orden de la evaluación de los operadores. El orden en que se evalúan los operandos viene dado por unas reglas: Reglas de procedencia Reglas de asociatividad Uso de paréntesis Evaluación de Expresiones (5/6) Evaluación de expresiones Toda expresión regresa un valor. Si hay más de un operador, se evalúan primero operadores mayor precedencia, en caso de empate, se aplica regla asociatividad. Para evaluar una expresión no hay que hacer nada del otro mundo, pues es bien sencillo. Sólo hay que saber sumar, restar, si un número es mayor que otro. Evaluación de Expresiones (6/6) Hay tres reglas de prioridad a seguir para evaluar una expresión: Primero, los paréntesis (si tiene) Después, seguir el orden de prioridad de operadores Por último, si aparecen dos o más operadores iguales, se evalúan de izquierda a derecha. Las expresiones son secuencias de constantes y/o variables separadas por operadores válidos. Definición de Funciones (1/5) 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. Definición de Funciones (2/5) 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. Definición de Funciones (3/5) Cuando escribas un nuevo programa o biblioteca, sigue un estilo consistente de ubicación de llaves y de indentación. Si no tienes ninguna preferencia personal de estilo, recomendamos el estilo de programación del núcleo de Linux o el estilo de programación de GNU. Lee el nodo de info (Standards)Writing C en la documentación de GNU. Luego, obtén el código fuente de Linux y lee el archivo linux/Documentation/CodingStyle, e ignora los chistes de Linus. Estos dos documentos te darán una buena idea de nuestras recomendaciones para el código de GNOME. Definición de Funciones (4/5) Para el código del núcleo de GNOME preferimos el estilo de indentación del núcleo de Linux. Usa tabuladores de 8 espacios para la indentación. Usar tabuladores de 8 espacios para indentación proporciona un número de beneficios. Permite que el código sea más fácil de leer, ya que la indentación se marca claramente. También ayuda a mantener el código ordenado forzando a dividir funciones en trozos más modulares y bien definidos — si la indentación va más allá del margen derecho, significa que la función está mal diseñada y que debiera dividirse para hacerla más modular o bien, repensarla. Definición de Funciones (5/5) Los tabuladores de 8 espacios para indentación también ayudan al diseño de funciones que encajen bien en la pantalla, lo cual significa que las personas puedan entender el código sin tener que desplazarse atrás y adelante para entenderlo. Disciplina de Tipos (1/5) 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). Disciplina de Tipos (2/5) 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 de Tipos (3/5) 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. Disciplina de Tipos (4/5) En los lenguajes de programación de la familia C se recomienda también evitar el uso de caracteres tabulador en medio de una línea, ya que diferentes editores de textos muestran su anchura de forma diferente. El lenguaje de programación Python usa indentación para indicar estructuras de control, por tanto se requiere obligatoriamente una buena indentación. Disciplina de Tipos (5/5) Haciendo esto, la necesidad de marcar con llaves ({ y }) es eliminada, y la legibilidad es mejorada sin interferir con los estilos de codificación comunes. Con todo, esto lleva frecuentemente a problemas donde el código es copiado y pegado dentro de un programa Python, requiriendo un tedioso reformateado. Adicionalmente, el código Python se vuelve inusable cuando es publicado en un foro o página web que elimine el espacio en blanco. Tipos de Datos (1/2) Tipos de Datos En lenguajes de programación un tipo de dato es un atributo de una parte de los datos que indica al ordenador (y/o al programador) algo sobre la clase de datos sobre los que se va a procesar. Los Tipos de Datos En un sentido amplio, un tipo de datos define un conjunto de valores y las operaciones sobre estos valores. Casi todos los lenguajes de programación explícitamente incluyen la notación del tipo de datos, aunque lenguajes diferentes pueden usar terminología diferente. Tipos de Datos (2/2) La mayor parte de los lenguajes de programación permiten al programador definir tipos de datos adicionales, normalmente combinando múltiples elementos de otros tipos y definiendo las operaciones del nuevo tipo de dato. Por ejemplo, un programador puede crear un nuevo tipo de dato llamado "Persona" que especifica que el dato interpretado como Persona incluirá un nombre y una fecha de nacimiento. Referencias Bibliográficas http://www.itpn.mx/recursosisc/8semestre/programacionlogicayfuncional/Unidad%20I.pdf http://karlaprogramacionfuncional.blogspot.mx/2014/02/unidad-1-conceptos-fundamentales.html https://programacionlogicayfuncional.wordpress.com/2014/02/12/evaluacion-de-expresiones/ http://tics-tlapa.com/wp/2016/01/paradigmas-de-programacion/