Subido por Hesiquio Zarate

U1 INFORME DE INVESTIGACION

Anuncio
Docente: MC. Fuentes Chab Iván Humberto
Alumno: Br. Juan Adiel Ceballos Narváez
Carrera. Ing. Sistemas computacionales
Investigación de la unidad 1
Grupo: ISVB-7
Introducción
En la presente actividad o investigación veremos los conceptos
fundamentales de la programación funcional y lógica, así como sus
estilos evaluaciones de expresiones las definiciones de sus funciones
la disciplina de tipos los tipos de datos entre otras cosas esperando se
útil para nuestro desarrollo en la materia y pueda ayudarnos a
comprender y saber un poco más sobre la programación
1.1.- Diferentes estilos de programación.
Se refiere a la forma en que se da formato al código fuente. 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.
Resultado de imagen para estilos de programación
La programación funcional es un estilo de programación que modela computaciones como
la evaluación de las expresiones.
Introducción a la Programación Funcional: Haskell
En el proceso se lleva a cabo la compilación en el cual se transforma el código en algo
que la maquina entiende.
ESTILO O MODELO
1.2.- Analizando diferentes de estilos de
programación
1.2.1.- Evaluación de Expresiones
En general, salvo que se relacionen con las mencionadas sentencias modificadoras del
flujo, las palabras-clave señalan al compilador aspectos complementarios que no alteran
el orden de ejecución dentro de la propia sentencia.
Este orden viene determinado por cuatro condicionantes:
1. Presencia de paréntesis que obligan a un orden de evaluación específico.
2. Naturaleza de los operadores involucrados en la expresión (asociatividad).
3. Orden en que están colocados (precedencia).
4. Providencias (impredecibles) del compilador relativas a la optimización del código.
En cuanto al primero, aunque el paréntesis es un signo de puntuación, podría
considerarse como el operador de precedencia más alta. Si existen paréntesis, el
compilador los evalúa en primer lugar. El segundo es especialmente importante, porque
como veremos a continuación, es precisamente su naturaleza la que establece dos
propiedades importantes de los operadores: la asociatividad y la precedencia. El punto
tercero es influyente porque a igualdad de precedencia, unos operadores se ejecutan en
el orden en que aparecen escritos en el código (de izquierda a derecha), y en otros casos
es al contrario (dependiendo de su asociatividad). A su vez el punto cuarto encierra
decisiones que son dependientes de la plataforma. Se refieren a medidas del compilador
tendentes a la optimización del código de la sentencia, que resultan incontrolables para el
programador a no ser que adopte medidas específicas. Estas medidas suelen consistir en
no simplificar demasiado las expresiones, y obtener resultados intermedios, que solo son
necesarios para obligar a una forma determinada de obtener el resultado.
1.2.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.
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. 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.
Un tipo de dato entero en computación es un tipo de dato que puede representar un
subconjunto finito de los números enteros. El número mayor que puede representar
depende del tamaño del espacio usado por el dato y la posibilidad (o no) de representar
números negativos. Los tipos de dato entero disponibles y su tamaño dependen del
lenguaje de programación usado, así como la arquitectura en cuestión. Por ejemplo, si
para almacenar un número entero disponemos de 4 bytes de memoria tememos que:4
Bytes = 4x8 = 32 bits Con 32 bits se pueden representar 232=4294967296 valores: Sólo
positivos: del 0 al 4294967295 Positivos y negativos: del -2147483648 al 2147483647
Tipos de datos en coma flotante Se usan para representar números con partes
fraccionarias. Hay dos tipos de coma flotante: float y double. El primero reserva
almacenamiento para un número de precisión simple de 4 bytes y el segundo lo hace para
un numero de precisión doble de 8 bytes. Tipo: float4 Bytes (32 bits) double8 Bytes (64
bits)
Tipo de dato carácter (Char)Es cualquier signo tipográfico, puede ser una letra, un
número, un signo de puntuación o un espacio. Este término se usa mucho en
computación. Un valor de tipo carácter es cualquier carácter que se encuentre dentro del
conjunto ASCII ampliado, el cual está formado por los 128 caracteres del ASCII más los
128 caracteres especiales que presenta, en este caso, IBM.
Los valores ordinales del código ASCII ampliado se encuentran en el rango de 0 a 255.
Dichos valores pueden representarse escribiendo el carácter correspondiente encerrado
entre comillas simples (apóstrofos). Así, podemos escribir: ‘A' < 'a ‘Que significa: "El valor
ordinal de A es menor que el de a" o "A está antes que a “Un valor de tipo carácter (Char
en inglés) se guarda en un byte de memoria. La única operación (además de las
relacionales) que podemos hacer con caracteres es la concatenación concatenando dos
caracteres, por ejemplo 'a' y 'X' obtendríamos la cadena "aX".
Tipo de dato lógico El tipo de dato lógico o booleano es en computación aquel que puede
representar valores de lógica binaria, esto es, valores que representen falso o verdadero.
Se utiliza normalmente en programación, estadística, electrónica, matemáticas (Álgebra
booleana), etc.…Para generar un dato o valor lógico a partir de otros tipos de datos,
típicamente, se emplean los operadores relacionales (u operadores de relación), por
ejemplo: 0 es igual a falso y 1 es igual a verdadero (3>2) = 1 = verdadero (7>9) = 0 = falso
Palabra reservada una palabra reservada es una palabra que tiene un significado
Gramatical especial para ese lenguaje y no puede ser utilizada como un identificador en
ese lenguaje.
Por ejemplo, en SQL, un usuario no puede ser llamado "group", porque la palabra group
es usada para indicar que un identificador se refiere a un grupo, no a un usuario. Al
tratarse de una palabra clave su uso queda restringido. Ocasionalmente la especificación
de un lenguaje de programación puede tener palabras reservadas que están previstas
para un posible uso en futuras versiones. En Java const y goto son palabras reservadas
— no tienen significado en Java, pero tampoco pueden ser usadas como identificadores.
Al reservar los términos pueden ser implementados en futuras versiones de Java, si se
desea, sin que el código fuente más antiguo escrito en Java deje de funcionar.
1.2.3.- Disciplina tipos.
Los tipos se infieren, es decir se comprueban, de forma estática, en tiempo de
compilación.
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 -> R 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.
Haskell y otros lenguajes funcionales utilizan el sistema de tipos de Milner, que tiene dos
características fundamentales:
Disciplina estática de tipos:
Los programas bien tipados se pueden conocer 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.
Polimorfismo:
Permite que una misma función se pueda aplicar a parámetros de diferentes tipos,
dependiendo del contexto en el que la función se utilice.
Un lenguaje tiene disciplina de tipos si los errores de tipos se detectan siempre es
necesario determinar los tipos de todos los operandos, ya sea en tiempo de compilación o
de ejecución.
1.2.4.- Funciones.
En programación, una función es una sección de un programa que calcula un valor de
manera independiente al resto del programa.
Una función tiene tres componentes importantes:


Los parámetros, que son los valores que recibe la función como entrada;
El código de la función, que son las operaciones que hace la función; y el
resultado (o valor de retorno), que es el valor final que entrega la función.
En esencia, una función es un mini-programa. Sus tres componentes son análogos a la
entrada, el proceso y la salida de un programa.
Las declaraciones de funciones generalmente son especificadas por:
Un nombre único en el ámbito: Nombre de la función con el que se identifica y se
distingue de otras. No podrá haber otra función ni procedimiento con ese nombre (salvo
sobrecarga o polimorfismo en programación orientada a objetos).
Un tipo de dato de retorno: tipo de dato del valor que la función devolverá al terminar su
ejecución.
Una lista de parámetros: Especificación del conjunto de argumentos (pueden ser cero,
uno o más) que la función debe recibir para realizar su tarea.
El código u órdenes de procesamiento: conjunto de órdenes y sentencias que debe
ejecutar la función.
Las declaraciones de funciones generalmente son especificadas por:
·
Un nombre único en el ámbito: Nombre de la función con el que se identifica
y se distingue de otras. No podrá haber otra función ni procedimiento con ese nombre
(salvo sobrecarga o polimorfismo en programación orientada a objetos).
·
Un tipo de dato de retorno: tipo de dato del valor que la función devolverá al
terminar su ejecución.
·
Una lista de parámetros: especificación del conjunto de argumentos que la
función debe recibir para realizar su tarea.
·
El código u órdenes de procesamiento: conjunto de órdenes y sentencias
que debe ejecutar la función.
Conclusión
E aprendido que la programación lógica y funcional sirve para Descripciones
independientes de la implementación (unificación semántica).
Puede mejorarse la eficiencia modificando el componente de control sin
tener que modificar la lógica del algoritmo. Base de conocimiento fácilmente
escalable. Relaciones multipropósito. Expresión simple y precisa de los
problemas. Generación rápida de prototipos e ideas complejas. Sencillez en
la implementación de estructuras complejas. Potencia.
Descargar