Programación Lógica y Funcional
jueves, 15 de marzo de 2018
jueves, 1 de marzo de 2018
Disciplina de Tipos y funcion
Disciplina de Tipos y Función
“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 o datos similares. El conocer los tipos de las funciones ayuda a documentar los programas y evitar errores en tiempo de ejecución.
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
- Pascal
• Cercano a tener disciplina de tipos pero no realiza comprobación de tipos en los registros variantes (incluso puede omitirse la etiqueta discriminatoria en dichos registros)
- Ada
• Resuelve el problema de los registros variantes realizando comprobación dinámica de tipos (sólo en este caso)
• Tiene una función de biblioteca que permite extraer un valor de una variable de cualquier tipo (como una cadena de bits) y usarlo como un tipo diferente (no es una conversión de tipos) ⇒ se trata de una suspensión temporal de la comprobación de tipos
- C
• No tiene disciplina de tipos por:
− No se realiza comprobación de tipos sobre las uniones
− Permite funciones con parámetros sobre los que no se realiza comprobación de tipos
- Java
• Tiene disciplina de tipos (no hay uniones)
- ML y Haskell
• Poseen disciplina de tipos
• Los tipos de los parámetros de las funciones (y de estas mismas) se conocen en tiempo de compilación (ya sea por declaración del usuario o por inferencia de tipos)
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 computo.
- 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.
Tipos de Datos
Tipos de datos
Un tipo de datos es la propiedad de un valor que determina su dominio (qué valores puede tomar), qué operaciones se le pueden aplicar y cómo es representado internamente por el computador.
Todos los valores que aparecen en un programa tienen un tipo.
A continuación revisaremos los tipos de datos elementales de Python. Además de éstos, existen muchos otros, y más adelante aprenderemos a crear nuestros propios tipos de datos.
Números enteros
El tipo int (del inglés integer, que significa «entero») permite representar números enteros.
Los valores que puede tomar un int son todos los números enteros: ... -3, -2, -1, 0, 1, 2, 3, ...
Los números enteros literales se escriben con un signo opcional seguido por una secuencia de dígitos:
1570
+4591
-12
Números reales
El tipo float permite representar números reales.
El nombre float viene del término punto flotante, que es la manera en que el computador representa internamente los números reales.
Hay que tener mucho cuidado, porque los números reales no se pueden representar de manera exacta en un computador. Por ejemplo, el número decimal 0.7 es representado internamente por el computador mediante la aproximación 0.69999999999999996. Todas las operaciones entre valores float son aproximaciones. Esto puede conducir a resultados algo sorpresivos:
>>> 1/7 + 1/7 + 1/7 + 1/7 + 1/7 + 1/7 + 1/7 0.9999999999999998
Números complejos
El tipo complex permite representar números complejos.
Los números complejos tienen una parte real y una imaginaria. La parte imaginaria es denotada agregando una j inmediatamente después de su valor:
3 + 9j
-1.4 + 2.7j
Valores lógicos
Los valores lógicos True y False (verdadero y falso) son de tipo bool, que representa valores lógicos.
El nombre bool viene del matemático George Boole, quien creó un sistema algebraico para la lógica binaria. Por lo mismo, a True y False también se les llama valores booleanos. El nombre no es muy intuitivo, pero es el que se usa en informática, así que hay que conocerlo.
Texto
A los valores que representan texto se les llama strings, y tienen el tipo str.
Los strings literales pueden ser representados con texto entre comillas simples o comillas dobles:
"ejemplo 1" 'ejemplo 2'
Nulo
Existe un valor llamado None (en inglés, «ninguno») que es utilizado para representar casos en que ningún valor es válido, o para indicar que una variable todavía no tiene un valor que tenga sentido.
El valor None tiene su propio tipo, llamado NoneType, que es diferente al de todos los demás valores.
martes, 13 de febrero de 2018
lunes, 29 de enero de 2018
Unidad 1
1.1
ESTILOS DE PROGRAMACIÓN
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.
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.
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....
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
1.5 TIPOS DE DATOS
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. 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.
DIFERENTES
TIPOS DE PARADIGMAS DE PROGRAMACIÓN
Un paradigma de programación es una propuesta
tecnológica que es adoptada por una comunidad de programadores cuyo núcleo
central es incuestionable en cuanto a que unívocamente trata de resolver uno o
varios problemas claramente delimitados. La resolución de estos problemas debe
suponer consecuentemente un avance significativo en al menos un parámetro que
afecte a la ingeniería de software. Tiene una estrecha relación con la
formalización de determinados lenguajes en su momento de definición. Un
paradigma de programación está delimitado en el tiempo en cuanto a aceptación y
uso ya que nuevos paradigmas aportan nuevas o mejores soluciones que la
sustituyen parcial o totalmente.
Suscribirse a:
Comentarios (Atom)













