Aspectos Avanzados de Haskell

Slides:



Advertisements
Presentaciones similares
ANALIZADOR SEMANTICO DIANA CAROLINA CASTAÑO YANCI VIVIANA CASTRO PEDRO LUIS FLÓREZ SANTIAGO GUTIÉRREZ A.
Advertisements

Curso de java básico (scjp)
Métodos y parámetros.
PROGRAMACIÓN EN C.
ING SEC 3 - UCSC Agosto 2009 Laboratorio Lenguaje de Programación ING – Universidad Católica SSMA Concepción Semestre II Tema:
UNIDAD II: ALGORITMOS Y LENGUAJES
INSTITUTO TECNOLOGICO DE MINATITLAN
Elementos básicos del Lenguaje
Funciones. Programación, Algoritmos y Estructuras de Datos.
FUNCIONES EN C.
Informática II Prof. Dr. Gustavo Patiño MJ
UNIVERSIDAD NACIONAL AUTÓNOMA DE MÉXICO
ALGORÍTMICA Dpto. Ingeniería de Sistemas y Automática
Teoría de lenguajes y compiladores
Introducción al lenguaje C++
Objetivos Específicos de la Unidad
Ingeniero Anyelo Quintero
Vectores en java.
2 Acciones y funciones 2.1 Concepto
Funciones en lenguaje C

Tema 6: Clases Antonio J. Sierra.
En Java las estructuras de repetición son las mismas que en C/C++.
PROGRAMACIÓN LÓGICA.
UNIVERSIDAD DE MANAGUA I CUATRIMESTRE INTRODUCCION A LA PROGRAMACION
TIPOS DE INSTRUCCIONES Y ESTRUCTURAS DE CONTROL
Fundamentos de Programación
Lenguaje C.
LENGUAJE “C” Programación.
Matrices Es una estructura homogénea, compuesta por varios elementos, todos del mismo tipo y almacenados consecutivamente en memoria A cada elemento se.
M.C. Juan Carlos Olivares Rojas
Programación III Clase 06 Funciones.
TIPOS Y ESTRUCTURAS BÁSICAS DE DATOS
Introducción a la Programación. Lenguaje de Máquina.
INGENIERIA EN SISTEMAS COMPUTACIONALES
Resumen de Compilación Preparado por Manuel E. Bermúdez, Ph.D. Associate Professor University of Florida Traducido por Christian Torres Universidad Ricardo.
Descomposición Modular. Funciones
Cátedra de COMPUTACIÓN FACULTAD DE INGENIERÍA - UNA La mejor manera de aprender Programación es PROGRAMANDO !!!!!! CLASE Nro. 2.
Programa Vespertino de Automatización Equipos y Sistemas de Control Digital Lenguaje C Profesor: Felipe Páez Mejías D e p a r t a m e n t o d e I n g e.
COMPUTACIÓN I TEMA 6. Pasaje de parámetros por Referencia. Uso de apuntadores Prof. Mireya Morales.
Historia. Historia Historia Su nombre rinde homenaje a: Haskell Brooks Curry ( ) Lógico y matemático norteamericano Pionero de la lógica.
Administración de Proyectos de desarrollo de Software Ciclo de vida de un proyecto Enfoque moderno Temas Componentes Directivas Declaraciones globales.
Introducción al lenguaje de programación SLE 2
Semantica.
Lenguajes de Programación1 Elementos de un lenguaje de programación.
Elementos básicos del lenguaje
CLASE 8 Ruben Martinez c Tipo Inferencia Es un mecanismo donde por el tipo las especificaciones se pueda omitir a menudo totalmente, si es.
Ada 2º Parte (variables, ámbitos , subrutinas , tipos abstractos de datos y excepciones)
El Concepto de Tipo Los tipos permiten indicar la característica de los valores (datos) manipulados en un programa. Toda variable tiene asociado un tipo.

Programación Básica con “NQC” Pedro F. Toledo – Patricio Castillo 13/05/2006.
Informática Ingeniería en Electrónica y Automática Industrial
Programación orientada a objetos. El método main es el comportamiento por el cual comienzan todos los programas en Java, de la misma forma en la que C,
Elementos básicos del lenguaje
INFORMATICA VII (Programación e implementación de sistemas)
Objetivo Mostrar los fundamentos de la programación a través de ejemplos y prácticas utilizadas cotidianamente en el desarrollo de aplicaciones.
Programación Básica con “NQC” Pedro F. Toledo – Patricio Castillo 15/08/2006.
 Un lenguaje se puede definir como un conjunto de palabras y formas de expresión por medio de las cuales se comunican y relacionan miembros de una comunidad.
Arreglos: Vectores Departamento de Computación
PRINCIPIOS DE PROGRAMACIÓN
Sistemas Basados en Reglas
Fundamentos de Programación
UNIDAD 4: Introducción a la Lógica Computacional Objetivo : Interpretar y aplicar adecuadamente los fundamentos básicos de la estructura y funcionamiento.
Introducción a los TADs
Lic. Carla Aguirre Montalvo
Arreglos: Vectores Prof. Flor Narciso Departamento de Computación Escuela de Ingeniería de Sistemas Facultad de Ingeniería Universidad de Los Andes.
Programación Java y Desarrollo de Aplicaciones Modulo 1 Arquitectura de ordenadores Tema 3 Programas.
EL TIPO DE DATO LOGICO y constantes.
Métodos en Java. Estructura de un programa en Java ► La relación con la vida misma la podemos ver en el siguiente comentario: Imaginemos que dos clases.
Prof. Jonathan Silva Ingeniería Civil – Informática I Ingeniería Civil Informática I Clase 4 – Tipos de Datos.
Transcripción de la presentación:

Aspectos Avanzados de Haskell

El concepto de variable No existen variables ni asignaciones Las variables han sido reemplazadas por los parámetros Los parámetros son los valores de entrada que recibe una función Ejemplo: suma x = x + 5 x sería el parámetro. Ejemplo: suma x = x + 5 x sería el parámetro.

Tipos primitivos En haskell existen dos tipos: Tipos básicos: cuyos valores se toman como primitivos, por ejemplo: Enteros, Flotantes, Caracteres y Booleanos. Tipos compuestos: cuyos valores se construyen utilizando otros tipos, por ejemplo: listas, funciones y tuplas.

Ambito Como en haskell no existen variables no se puede hablar de ámbito de variables, solo hablamos de parámetros. En el ámbito, los parámetros de una función son locales a la misma. Inclusive para funciones recursivas. Ejemplo: Ejemplo: f1 :: Int -> Int f1 a = a + 5 En este ejemplo el ámbito del parámetro “a” es local a la función f1.

Tiempo de vida En haskell no existen variables, como se menciono anteriormente, solo existen parámetros. Los espacios de memoria son desasignados cuando termina la función. Por ejemplo: Por ejemplo: suma :: Integer -> Integer -> Integer suma x y = x + y En este caso los parámetros “x” e “y” una vez evaluados en la función, el tiempo de vida de los parámetros termina.

Otros aspectos: Inferencia de tipos El programador no está obligado a declarar el tipo de las expresiones. El compilador contiene un algoritmo que infiere el tipo de las expresiones. Si el programador declara el tipo de alguna expresión, el sistema chequea que el tipo declarado coincide con el tipo inferido.

Inferencia de tipos Los sistemas de inferencia de tipos permiten una mayor seguridad evitando errores de tipo en tiempo de ejecución y una mayor eficiencia, evitando realizar comprobaciones de tipos en tiempo de ejecución.   Por ejemplo, si el programador declara la siguiente función: eligeSaludo x = if x then "adios" else "hola" El sistema infiere automáticamente que el tipo es eligeSaludo::Bool -> String y, si el programador hubiese declarado que tiene un tipo diferente, el sistema daría un error de tipos.