8 INTRODUCCIÓN AL OBJECTIVE CAML
|
|
- Felipe Camacho Peña
- hace 6 años
- Vistas:
Transcripción
1 8 INTRODUCCIÓN AL OBJECTIVE CAML Objective Caml (Ocaml) es un lenguaje de programación funcional tipificado estáticamente, aunque los tipos pueden inferirse en tiempo de ejecución; y con un mecanismos de recolección de basura Esto significa que no es necesario especificar los tipos de todas las expresiones en nuestros programas, aunque al ser un lenguaje estrictamente tipificado, Ocaml contribuye a estar más alertas de los tipos de datos que usamos Si bien estamos ante un lenguaje de propósito general, Ocaml resulta especialmente adecuado para dominios que requiere seguridad y verificación En este capítulo introduciremos los conceptos básicos de este lenguaje de programación El primer contacto de un usuario con OCaml es interactivo Cuando se ejecuta OCaml en una computadora, se entra en un bucle llamado topevel, donde la computadora espera a que el usuario le de una expresión a evaluar Cuando esto sucede el sistema evalúa la expresión e imprime el resultado para el usuario Este tipo de bucle se conoce también como ciclo read-eval-print y aparece también en lenguajes como Lisp y Prolog Para iniciar Ocaml en mi Mac con OS X, hago lo siguiente: 1 justine:~ aguerra$ ocaml 2 Objective Caml version # donde justine$ es el prompt de mi sistema y # es el prompt de OCaml, indicándome que el sistema está en espera De aquí en adelante, las frases que inicien con # son entradas de OCaml Es de esperar que ustedes puedan reproducir las sesiones de cada sesión, puesto que han sido verificadas en OCaml Las líneas que empiezan con > representan mensajes de error de OCaml Cualquier otro inicio de liínea, es probable que represente las respuestas de OCaml o una entrada no válida Usemos OCaml para procesar una expresión aritmética: 1 # 1+2 ;; 2 - : int = 3 103
2 104 La expresión 1+2 fue teclada, seguida de ;; y la tecla enter o return Cuando se encuentra con la cadena ;; OCaml entra en modo de verificación de tipos (o, siendo precisos, síntesis de tipos) e imprime el tipo inferido para la expresión (int en el ejemplo, para indicar que se tata de entero) Luego, el sistema compila el código para la expresión, ejecuta este código e imprime el resultado (3) El proceso de evaluación de una expresión OCaml puede verse como una serie de transformaciones sobre la expresión, que termina cuando no es posible aplicar más transformaciones Estas transformaciones deben mantener la semántica de la expresión Por ejemplo, la expresión tiene como semántica al objeto matemático 3, por lo que el resultado 3 debe tener la misma semántica Como se puede observar, la evaluación de las expresiones en OCaml es más complicado que en Lisp Las fases del proceso de evaluación en OCaml incluyen: 1 Parsing (verificación sintáctica); 2 Sintésis de tipo; 3 Compilación; 4 Carga; 5 Ejecución; 6 Impresión de resultados Consideremos otro ejemplo: la aplicación de la función sucesor a la expresión La expresion (function x ->x+1) debe leerse como la función que, dada x, regresa x + 1 La yuxtaposición de esta expresión a forma la aplicación de la función Ejemplo 10 Aplicación de una función sucesor a la expresión (3 + 1): 1 # (function x -> x+1)(3+1) ;; 2 - : int = 5 Existen diversas manera de reducir esta expresión hasta obtener 5 Aquí mostramos dos: 1 (function x -> x+1) (3+1) 2 (function x -> x+1) y: 1 (function x -> x+1) (3+1) 2 (3+1) Lo relevante es que todas las reducciones posibles conducen al mismo valor
3 105 El concepto de tipo, así como su verificación y sintésis, son centrales para la programación funcional Ellos proveen indicadores sobre lo correcto de un programa El universo de OCaml está particionado en tipos Un tipo representa una colección de valores Por ejemplo int es el tipo de los números enteros y float es el tipo de los números de punto flotante Los valores de verdad pertecen al tipo bool Las cadenas de caracteres pertenecen al tipo string Los tipos se dividen en dos clases: 1 Tipos básicos (int, float, bool, string, ) 2 Tipos compuestos, como los tipos funcionales Por ejemplo, el tipo de la función sucesor, (function x ->x+1), que tiene como parámetro forman un entero y regresa un entero es int ->int El caso de la función mayor que que recibe un par de enteros y regresa un entero, tiene el tipo int * int ->int Una vez que el usuario envia una expresión a OCaml, éste lleva a cabo un análisis sintáctico de la expresión, que consiste en verificar si la expresión pertenece al lenguaje o no Ejemplo 11 Error sintáctico (paréntesis mal balanceados): 1 # (function x -> x+1 (2+3) ;; 2 Syntax error: ) expected, the highlighted ( might be unmatched El segundo análisis que OCaml lleva a cabo es de tipos El sistema trata de asignar un tipo a cada subexpresión y de analizar el tipo de la expresión completa Si el análisis de tipos falla, por ejemplo, si el sistema no es capaz de asignar un tipo coherente a la expresión, se produce un mensaje de error de tipo y OCaml entra en modo de espera por una nueva expresión a evaluar Ejemplo 12 Error de tipo (con + no se puede sumar un booleano, sólo enteros): 1 # (function x -> x+1)(2+true) ;; 2 Characters 22-26: 3 (function x -> x+1)(2+true) ;; 4 ^^^^ 5 This expression has type bool but is here used with type int El rechazo de expresiones mal tipificadas se conoce como tipificación fuerte El compilador de un lenguaje débilmente tipificado, como C, nos daría solo un mensaje de advertencia (warning) y continuaría su trabajo con el riesgo de llegar a un mensaje de bus error o de illegal instruction en tiempo de ejecución Una vez que el tipo de la expresión ha sido determinado con éxito, el proceso de evaluación inicia Este proceso incluye las fases de compilación, carga y ejecución La tipificación fuerte obliga a escribir programas claros y bien estructurados Más aún, aumenta la seguridad e incrementa la velocidad en el desarrollo de un programa, puesto que muchos typos y errores conceptuales son detectados y señalados por el
4 106 análisis de tipos Finalmente, los programas bien tipificados no necesitan de test dinámicos de tipo (la función suma no necesita verificar todo el tiempo si sus argumentos son números), por lo que la verificación estática de tipos contribuye a obtener código más eficiente El tipo de valores más importantes en la programación funcional son los valores funcionales En matemáticas, una función f de tipo A! B es una regla de correspondencia que asocia a cada elemento de tipo A un único elemento de tipo B Si x denota un elemento de A, entonces escribiremos f(x) para la aplicación de f a x Los paréntesis son sólo para agrupar subexpresiones por lo que también podemos escribir (f(x)) o ((f(x))) o incluso fx El valor de fx es el único elemento de B asociado a x por la regla de correspondencia para f La notación f(x) es la usada normalmente en matemáticas para denotar la aplicación funcional Es importante no confunidr la función con su aplicación Decimos la función f con parámetro formal x, para expresar que f ha sido definida como f : x! e, o en OCaml, que el cuerpo de f es una expresión de la forma (function x -> Dado que OCaml es un lenguaje funcional, las funciones son valores que se comportan como los demás valores del lenguaje En partícular las funciones pueden pasarse como argumento a otras funciones y/o ser regresadas como valores por una función Ejemplo 13 Una función que toma como parámetro una función de los enteros a los enteros (f) y un entero; regresando un entero que resulta de la aplicación de f al segundo argumento incrementado en uno menos uno: 1 # function f -> (function x -> (f(x+1) - 1)) ;; 2 - : (int -> int) -> int -> int = <fun> Observen que en los ejemplos anteriores, como es común en la programación funciona, no es necesario nombrar a las funciones No confundan a f con el nombre la función que estamos definiendo, f es su primer argumento (lo mismo para x) Aunque nombrar valores no sea necesario, a veces (y sobre todo en los paradigmas no funcionales) es importante dar nombre a los valores Hemos visto ya algunos nombres de valores, los llamamos parámetros formales En la expresión (function x ->x+1), el nombre x es un parámetro formal Su nombre en cierta forma irrelevante, cambiarlo no cambia el significado de la expresión Podríamos haber escrito la función como (function y ->y+1) Si ahora aplicamos esta función a la expresión 1 + 2, evaluaremos la expresión y + 1 cuando y tiene el valor Ejemplo 14 Nombrar y al valor de en y + 1 se escribe:
5 107 1 # let y=1+2 in y+1 ;; 2 - : int = 4 Esta expresión forma parte del lenguaje OCaml y el constructor let es ampliamente utilizado Este constructor introduce ligaduras locales (local bindings) de valores a identificadores Son locales porque el alcance de y se restringe a la expresión y + 1 El identificador y no conserva su ligadora (la que sea) tras la evaluación de let in, así que en este caso: 1 # y ;; 2 Characters 0-1: 3 y ;; 4 ^ 5 Unbound value y Las ligaduras locales usando let permiten compartir evaluaciones (que posiblemente utilizan muchos recursos computacionales) Cuando evaluamos let x = e 1 in e 2, e 1 es evaluado sólo una vez Todas las ocurrencias de x en e 2 accesan el valor de x que ha sido computado sólo una vez Ejemplo 15 Compartiendo evaluaciones con let: 1 let big = suma_factores_primos in big+(2+big)-(4*(big+1)) ;; será menos costoso que: 1 (suma_factores_primos ) + 2 (2 + (suma_factores_primos )) - 3 (4 * ((suma_factores_primos ) - 1)) ;; El constructor let tiene también una forma global para declaraciones en el toplevel Ejemplo 16 Declaraciones en el toplevel usando let: 1 # let sucesor = function y -> y+1 ;; 2 val sucesor : int -> int = <fun> 3 # let cuadrado = function x -> x*x ;; 4 val cuadrado : int -> int = <fun> Cuando un valor es declarado en el toplevel, lo podemos seguir usando en el resto de la sesión: Ejemplo 17 Aplicaciones usando sucesor y cuadrado: 1 # (cuadrado (sucesor 3)) ;; 2 - : int = 16 3 # cuadrado ;; 4 - : int -> int = <fun>
6 108 Al declarar valores funcionales existen varias alternativas sintácticas Las siguientes declaraciones de cuadrado son equivalentes a la anterior: 1 # let cuadrado x = x*x ;; 2 val cuadrado : int -> int = <fun> 3 # let cuadrado (x) = x*x ;; 4 val cuadrado : int -> int = <fun> Ejemplo 18 Declaraciones alternativas de suma Observen que el tipo de ambas definiciones es el mismo, y que ambas permite aplicaciones parciales de la suma de dos números 1 # let suma1 = function x -> function y -> x+y ;; 2 val suma1 : int -> int -> int = <fun> 3 # let suma2 x y = x+y ;; 4 val suma2 : int -> int -> int = <fun> 5 # suma2 3;; 6 - : int -> int = <fun> 7 # suma1 3;; 8 - : int -> int = <fun> Una aplicación parcial de una función es la aplicación de una función a algunos pero no todos sus argumentos Consideren la siguiente función: 1 # let f x = function y -> 2*x*y ;; 2 val f : int -> int -> int = <fun> La expresión f(3) denota la función que cuando se le da un argumento y regresa el valor 2 3 y La aplicación f(x) se conoce como aplicación parcial, porque f espera dos argumentos sucesivos y es sólo aplicada a uno El valor de f(x) sigue siendo una función Ejemplo 19 Aplicación parcial de f a 3: 1 # f 3 ;; 2 - : int -> int = <fun> Ejemplo 20 Definición de sucesor usando aplicaciones parciales: 1 # let suma x y = x + y ;; 2 val suma : int -> int -> int = <fun> 3 # let sucesor = suma 1 ;; 4 val sucesor : int -> int = <fun> 5 # sucesor(sucesor 3);; 6 - : int = 5
7 109 Enteros Caml provee un tipo para los enteros (int) que están comprendidos en el rango En una arquitectura de 32 bits, la precisión de los enteros es de 31 bits En una arquitectura de 64 bits, su precisión es de 63 bits Las operaciones (funciones) predefinidas para los enteros son incluyen: + Suma - Resta * Multiplicación / División mod Modulo Ejemplo 21 Algunos ejemplos de expresiones aritméticas con enteros: # 3 * ;; - : int = 14 # 3 * (4 + 2) ;; - : int = 18 # ;; - : int = -6 Como se puede observar, existen reglas de precedencia que hacen que * ligue más fuerte que + En caso de duda sobre la precedencia de un operador, es mejor usar paréntesis Reales Los números de punto flotante proveen reales en Caml La sintáxis de los reales incluye ya sea un punto décimal, o un exponente (base 10) denotado por e Se requiere que al menos un dígito preceda al punto décimal Existen funciones de coerción para ir de los enteros a los reales y viceversa: int_of_float y float_of_int Los operadores para números enteros no funcionan con números reales Para ellos tenemos +, -, * y / entre otros Ejemplo 22 Algunos ejemplos de expresiones con reales: # 2e7 ;; - : float = # 2e-3 ;; - : float = 0002 # float_of_int 10 ;; - : float = 10 # * 172 ;; - : float = # int_of_float( * 172) ;; - : int = 54
8 110 Caracteres Los caracteres toman su valor del conjunto de símbolos ASCII Se delimitan por apóstrofes La especificación numérica es en dćimal (el código 120 corresponde a x y no a P) Los operadores incluyen conversión a código décimal y viceversa, conversión a mayúsculas y minúsculas, etc Ejemplo 23 Ejemplos de expresiones con caracteres: # a ;; - : char = a # \120 ;; - : char = x # Charcode a ;; - : int = 97 # Charchr 97 ;; - : char = a # Charchr 97 ;; - : char = a # Charuppercase a ;; - : char = A # Charlowercase A ;; - : char = a # Charlowercase(Charuppercase(Charchr 97)) ;; - : char = a Cadenas Las cadenas de caracteres en Caml son un tipo predefinido, a diferencia de otros lenguajes (C) donde son arreglos de caracteres La sintáxis para las cadenas usa como delimitadores El operador ˆ realiza la concatenación La función Stringlength computa el tamaño de una cadena El operador posfijo [i] accesa al elemento i- esimo de la cadena # "Hola" ;; - : string = "Hola" # "Hola" ^ "Mundo" ;; - : string = "HolaMundo" # Stringlength "Hola" ;; - : int = 4 # Stringlength "Hola" ^ "Mundo" ;; Characters 0-20: Stringlength "Hola" ^ "Mundo" ;; ^^^^^^^^^^^^^^^^^^^^ This expression has type int but is here used with type string # Stringlength("Hola" ^ "Mundo") ;; - : int = 9 # "hola"[2] ;; - : char = l
9 111 Valores de verdad El tipo bool provee dos valores de verdad: true y false La negación lógica se computa con la función not Las relaciones binarias toman argumentos del mismo tipo Estas incluyen =, >, <, <>, >=, <= Los operadores booleanos también están predefinidos como && y en sus versiones short circuit Esto es, solo evaluan los operandos necesarios para obtener su valor de verdad Ejemplo 24 # not true ;; - : bool = false # not false ;; - : bool = true # 2 < 3 3 > 2 ;; - : bool = true En el caso general, es imposible verificar la igualdad entre dos valores funcionales de ahí que la igualdad se detenga con un error en tiempo de ejecución cuando encuentra este tipo de valores: # (fun x -> x) = (fun x -> x ) ;; Exception: Invalid_argument "equal: functional value" Cual es el tipo entonces del operador =? Este toma dos expresiones del mismo tipo y regresa un valor booleano Su tipo es: -: a -> a -> bool = <fun> Es decir, el tipo de = es polimórfico, es decir, puede tomar diversas formas Por ejemplo, si compara dos enteros, su forma es int ->int ->bool, pero si se comparan dos cadentas, su forma es str ->str ->bool El tipo de la igualdad se expresa entonces usando variables de tipo, escritas como a, b, etc Cualquier tipo puede substituir a una variable de tipo para producir tipos instanciados Por ejemplo substituit int por a en el ejemplo anterior, nos da int ->int ->bool Además de los operadores lógicos y las comparaciones, los valores de verdad nos permiten trabajar con condicionales Estas son expresiones de la forma if e test then e 1 else e 2, donde e test es una expresión de tipo bool; e 1 y e 2 comparten el mismo tipo Ejemplo 25 La negación usando condicionales: # let neg a = if a then false else true ;; val neg : bool -> bool = <fun> # neg true ;; - : bool = false # neg false ;; - : bool = true # neg (1=2) ;; - : bool = true
10 112 Tuplas Es posible combinar valores en tuplas (pares, tripletes, etc) El constructor de valores para las tuplas es la coma (,) Generalmente usamos paréntesis alrededor de la tupla por legibilidad, aunque esto no es estrictamente necesario Ejemplo 26 Ejemplos de tuplas # 1,2 ;; - : int * int = (1, 2) # 1,2,3,4 ;; - : int * int * int * int = (1, 2, 3, 4) # let p = (1+2, 2<3) ;; val p : int * bool = (3, true) El identificador infijo * es el constructor de tipos tupla Por ejemplo, t 1 * t 2 corresponde al concepto matemático de producto cartesiano t 1 t 2 Para extraer componentes de una tupla se utilizan las llamadas funciones de proyección Para los pares tenemos: # fst (1,2) ;; - : int = 1 # snd (1,2) ;; - : int = 2 Estas proyecciones tienen tipo polimórfico: # fst (1,2) ;; - : int = 1 # snd (1,2) ;; - : int = 2 Estas proyecciones predefinidas en Ocaml, tienen tipo polimórfico: # fst ;; - : a * b -> a = <fun> # snd ;; - : a * b -> b = <fun> Por supuesto, uno puede escribir sus propias definiciones de tales funciones: # let primero (x,y) = x ;; val primero : a * b -> a = <fun> # let segundo (x,y) = y ;; val segundo : a * b -> b = <fun> # primero (1,2) ;; - : int = 1 # segundo (1,2) ;; - : int = 2 Decimos que estas funciones son genéricas porque pueden trabajar de manera uniforme con muchos tipos de argumentos (siempre y cuando estos sean pares) A veces se confunden los término genérico y polimórfico, por ejemplo, se dice comunmente que tal valor es polimórfico, cuando en realidad se quiere decir genérico
11 113 Patrones y concordancia entre ellos Los patrones y la concordancia entre patrones (pattern matching) juegan un papel importante en la programación funcional Estos conceptos se utilizan en todo programa real y están fuertemente relacionados con el concepto de tipo un patrón representa la forma de un valor Los patrones pueden verse como moldes con cavidades de distintas formas Un parámetro formal es un patrón Cuando un valor es comparado contra un patrón, el patrón actúa como un filtro Consideren la siguiente definición: # let f = function true -> false ;; Characters 8-30: Warning: this pattern-matching is not exhaustive Here is an example of a value that is not matched: false let f = function true -> false ;; ^^^^^^^^^^^^^^^^^^^^^^ val f : bool -> bool = <fun> El compilador nos advierte que la conocordancia de patrones puede fallar, pues no hemos considerado el caso false # f (3>2) ;; - : bool = false # f (2>3) ;; Exception: Match_failure ("", 1, 8) He aquí la definición correcta de esta función f, usando concordancia de patrones: # let negar = function true -> false false -> true ;; val negar : bool -> bool = <fun> La definición de negar tiene ahora dos casos separados por el carácter Los casos son considerados por Caml en orden descendente Una definición alternativa: # let negar = function true -> false x -> true ;; val negar : bool -> bool = <fun> Ahora la función considera cualquier valor booleano x en su segundo caso En realidad, solo false es aplicable en ese segundo caso, pués true es filtrado en el primer caso Debido a que en nuestro ejemplo no utilizamos el argumento x, podemos definir la función negar como sigue: # let negar = function true -> false _ -> true ;; val negar : bool -> bool = <fun> donde _ actua como un parámetro formal que no introduce ligadura alguna Esto puede leerse como en cualquier otro caso
12 114 Ejemplo 27 Implicación binaria usando concordancia de patrones # let implicacion = function (true,true) -> true (true,false) -> false (false,true) -> true (false,false) -> true ;; val implicacion : bool * bool -> bool = <fun> Puede proponerse una definición alternativa de implicacion? # let implicacion = function (true,false) -> false _ -> true ;; val implicacion : bool * bool -> bool = <fun> La concordancia de patrones puede aplicarse a cualquier tipo: Ejemplo 28 Concordancia de patrones usando diversos tipos: # let cerop = function 0 -> true _ -> false ;; val cerop : int -> bool = <fun> # let sip = function "yes" -> true "oui" -> true "ja" -> true "si" -> true _ -> false ;; val sip : string -> bool = <fun> El constructor de tipos -> está predefinido en Caml Exploremos algunos aspectos de las funciones y los tipos funcionales Composición funcional La composición funcional es fácil de definir en Caml y es una función polimórfica: # let componer f g = function x -> f(g(x)) ;; val componer : ( a -> b) -> ( c -> a) -> c -> b = <fun> Las restricciones para usar componer provienen de su tipo: El codominio de g y el dominio de f debe ser el mismo ( a) x debe pertenecer al domino de g ( c) compose f g x pertenecera la codominio de f ( b) Veamos como funciona componer:
13 115 # let succ x = x+1 ;; val succ : int -> int = <fun> # componer succ Stringlength ;; - : string -> int = <fun> # (componer succ Stringlength) "cinco" ;; - : int = 6 Currying Podemos definir suma de dos maneras posibles: # let suma = function (x,y) -> x + y ;; val suma : int * int -> int = <fun> # let suma = function x -> function y -> x + y ;; val suma : int -> int -> int = <fun> Estas dos expresiones difieren sólo en la forma en que toman sus argumentos La primer definición de suma toma un argumento que pertenece al producto cartesiano int int La segunda definición toma como argumento un entero y regresa una función Esta última definición se dice ser la versión curry (curryfied, en honor de Haskell Curry) Las transformaciones curry pueden escribirse en Caml usando funciones de orden superior: # let curry f = function x -> (function y -> f(x,y)) ;; val curry : ( a * b -> c) -> a -> b -> c = <fun> # let uncurry f = function (x,y) -> f x y ;; val uncurry : ( a -> b -> c) -> a * b -> c = <fun> Podemos asi verificar los tipos de funciones en formato curry y no curry: # suma ;; - : int -> int -> int = <fun> # uncurry suma ;; - : int * int -> int = <fun> # curry (uncurry suma) ;; - : int -> int -> int = <fun>
Algoritmos y programas. Algoritmos y Estructuras de Datos I
Algoritmos y programas Algoritmos y Estructuras de Datos I Primer cuatrimestre de 2012 Departamento de Computación - FCEyN - UBA Programación funcional - clase 1 Funciones Simples - Recursión - Tipos de
Más detallesPrincipios de Computadoras II
Departamento de Ingeniería Electrónica y Computadoras Operadores y Expresiones rcoppo@uns.edu.ar Primer programa en Java 2 Comentarios en Java Comentario tradicional (multi-línea) Comentario de línea Comentario
Más detallesEl lenguaje C. 1. Identificadores, constantes y variables
Principios de Programación El lenguaje C 1. Identificadores, constantes y variables 1.1. Conceptos de memoria Los nombres de variable como x, y, suma corresponden a localizaciones o posiciones en la memoria
Más detallesApunte Laboratorio ALPI - El lenguaje de programación Pascal
Apunte Laboratorio ALPI - El lenguaje de programación Pascal 1 2 ÍNDICE GENERAL Índice 1. Estructura de un Programa en Pascal 3 2. Sintaxis de Pascal 4 2.1. Uso de mayúsculas.....................................
Más detallesComponentes Básicos. InCo. InCo Componentes Básicos 1 / 28
Componentes Básicos InCo InCo Componentes Básicos 1 / 28 Modelo de Computación Vemos al computador como un procesador de datos. +------------+ Entrada ===> Computador ===> Salida +------------+ InCo Componentes
Más detallesTipos algebraicos y abstractos. Algoritmos y Estructuras de Datos I. Tipos algebraicos
Algoritmos y Estructuras de Datos I 1 cuatrimestre de 009 Departamento de Computación - FCEyN - UBA Programación funcional - clase Tipos algebraicos Tipos algebraicos y abstractos ya vimos los tipos básicos
Más detallesFicha de Aprendizaje N 13
Ficha de Aprendizaje N 13 Curso: Lógica y lenguaje de programación Tema: Fundamentos de programación Duración: 2 horas pedagógicas Logros de aprendizaje Identifica los diferentes tipos de operadores que
Más detallesDatos y tipos de datos
Datos y tipos de datos Dato Representación formal de hechos, conceptos o instrucciones adecuada para su comunicación, interpretación y procesamiento por seres humanos o medios automáticos. Tipo de dato
Más detallesJavaScript Básico. Elementos Básicos: Comentarios: Literales: Valores que puede tomar una variable o una constante.
Javascript (II) 1 Elementos Básicos: Comentarios: Para una línea // Esto es un Comentario Para un bloque /*......... */ Literales: Valores que puede tomar una variable o una constante. Ejemplos: "Soy una
Más detallesUnidad Didáctica 2. Elementos básicos del lenguaje Java Tipos, declaraciones, expresiones y asignaciones
Unidad Didáctica 2 Elementos básicos del lenguaje Java Tipos, declaraciones, expresiones y asignaciones Fundamentos de Programación Departamento de Lenguajes y Sistemas Informáticos Versión 1.0.3 Índice
Más detallesTodo programa en 'C' consta de una o más funciones, una de las cuales se llama main.
LENGUAJE C CARACTERISTICAS DEL LENGUAJE 'C' El lenguaje 'C' se conoce como un lenguaje compilado. Existen dos tipos de lenguaje: interpretados y compilados. Los interpretados son aquellos que necesitan
Más detallesInformática General 2016 Cátedra: Valeria Drelichman, Pedro Paleo, Leonardo Nadel, Norma Morales
UNA / AREA TRANSDEPARTAMENTAL DE ARTES MULTIMEDIALES Licenciatura en Artes Multimediales Informática General 2016 Cátedra: Valeria Drelichman, Pedro Paleo, Leonardo Nadel, Norma Morales JavaScript Algoritmo
Más detallesIntroducción rápida a la programación (estructurada ) con C++
Introducción rápida a la programación (estructurada ) con C++ A B No A? Si B A Los Bloques pueden ser una línea de código o un modulo (función o subrutina) que pueden estar contenido en otro archivo de
Más detallesGLOSARIO 1. Qué es bit y byte? Bit: Es la unidad mínima de información. Puede ser 0 o 1. Byte: Es el conjunto de 8 bits. Ejemplo:
Cuestionario Modulo 1.1 GLOSARIO 1. Qué es bit y byte? Bit: Es la unidad mínima de información. Puede ser 0 o 1. Byte: Es el conjunto de 8 bits. Ejemplo: 1001 0110. 2. qué es Dato? Definición: Es toda
Más detallesTema 2: Desarrollo de Algoritmos. E.E. de Algorítmica
Tema 2: Desarrollo de Algoritmos E.E. de Algorítmica Temas a tratar Identificadores Variables Constantes Tipos de Datos Separadores Operadores Aritméticos Unarios Relacionales y Condicionales Nivel de
Más detallesIntroducción a Haskell. El lenguaje Haskell
Capítulo 2. Introducción a Haskell 9 Introducción a Haskell Un ejemplo de fichero Haskell El lenguaje Haskell Haskell es un lenguaje funcional puro, no estricto y fuertemente tipificado. Puro = transparencia
Más detallesNúmeros enteros (cortos, largos y sin signo) Números reales (precisión simple y doble) Carácter y cadenas de caracteres. Lógicos.
Universidad Rafael Urdaneta Escuela de Ingeniería de Computación Números enteros (cortos, largos y sin signo) Números reales (precisión simple y doble) Carácter y cadenas de caracteres. Lógicos. Asignación
Más detallesMetodologías de Programación II Introducción
Metodologías de Programación II Introducción Dr. Alejandro Guerra-Hernández Departamento de Inteligencia Artificial Facultad de Física e Inteligencia Artificial aguerra@uv.mx http://www.uv.mx/aguerra Maestría
Más detalles4. Operadores Operador asignación
Programación orientada a objetos con Java 43 4. Operadores Objetivos: a) Describir los operadores (aritméticos, incrementales, de relación, lógicos y de asignación) y los tipos de dato primitivos sobre
Más detallesPHP: Lenguaje de programación
Francisco J. Martín Mateos Carmen Graciani Diaz Dpto. Ciencias de la Computación e Inteligencia Artificial Universidad de Sevilla Tipos de datos Enteros Con base decimal: 45, -43 Con base octal: 043, -054
Más detallesInformática. JavaScript: Lenguaje de programación. Fco J. Martín Mateos Carmen Graciani
Informática JavaScript: Lenguaje de programación Fco J. Martín Mateos Carmen Graciani Dpto. Ciencias de la Computación e Inteligencia Artificial Universidad de Sevilla Literales Enteros Con base decimal:
Más detallesLección 2 Introducción al lenguaje C
Lección Introducción al lenguaje C Decimal Binario Hexadecimal A B C D E F Octal Equivalencia entre decimal, binario, hexadecimal y octal. Código ASCII (American Standard Code for Information Interchange)
Más detallesTema 3: Tipos y clases
Tema 3: Tipos y clases Informática (2016 17) José A. Alonso Jiménez Grupo de Lógica Computacional Departamento de Ciencias de la Computación e I.A. Universidad de Sevilla 2 / 32 IM Tema 3: Tipos y clases
Más detallesINTRODUCCIÓN A LA PROGRAMACIÓN EN FORTRAN. Métodos Numéricos Carlos Zotelo
INTRODUCCIÓN A LA PROGRAMACIÓN EN FORTRAN Métodos Numéricos 2008 - Carlos Zotelo Introducción a Fortran 77 / 90 1. El lenguaje Fortran 77 / 90 2. Tipos de datos básicos 3. Constantes y variables 4. Entrada
Más detallesTema 3: Tipos y clases
Tema 3: Tipos y clases Programación declarativa (2009 10) José A. Alonso Jiménez Grupo de Lógica Computacional Departamento de Ciencias de la Computación e I.A. Universidad de Sevilla Tema 3: Tipos y clases
Más detallesProgramación en C. Algoritmo y Estructura de Datos. Ing. M. Laura López. Programación en C
Algoritmo y Estructura de Datos Ing. M. Laura López 1 Estructura de un programa en C 2 Estructura de un programa en C #include Archivos de cabecera # define Definición de constantes Declaraciones Globales
Más detallesTema 3: Tipos y clases
Tema 3: Tipos y clases Programación declarativa (2010 11) José A. Alonso Jiménez Grupo de Lógica Computacional Departamento de Ciencias de la Computación e I.A. Universidad de Sevilla Tema 3: Tipos y clases
Más detallesObjetivos de la sesión. Aplicación de consola 7/30/11. Código con que se inicia un programa en Visual C# (aplicación de consola)
Objetivos de la sesión Entender el tipo de programas que se pueden realizar con aplicaciones de consola. Conocer el concepto de variable, la forma en que se declaran y su utilización. Conocer la forma
Más detallesTipos de datos algebraicos
Tipos de datos algebraicos Taller de Álgebra I Segundo cuatrimestre de 2013 Programación funcional Recordemos que un tipo de datos es un conjunto dotado con una serie de operaciones sobre los elementos
Más detallesProgramación en Lenguaje C
Lenguaje de programación C Programación en Lenguaje C Introducción El Lenguaje de programación C fue implantado por primera vez en los años 70 por Dennis Ritchie para una computadora DEC PDP-11 corriendo
Más detallesCurso de Programación Avanzada en C
Curso de Programación Avanzada en C Copyright, 1996 Universidad Sim on Bol ivar 1 Prof. Mariela J. Curiel Contenido del Curso Conceptos BásicosB Estructuras de Control Arreglos Otros tipos de datos derivados
Más detallesAlgoritmos. Medios de expresión de un algoritmo. Diagrama de flujo
Algoritmos En general, no hay una definición formal de algoritmo. Muchos autores los señalan como listas de instrucciones para resolver un problema abstracto, es decir, que un número finito de pasos convierten
Más detallesExpresiones y sentencias
Expresiones y sentencias Expresión Construcción (combinación de tokens) que se evalúa para devolver un valor. Sentencia Representación de una acción o una secuencia de acciones. En Java, todas las sentencias
Más detallesEs toda la información que utiliza el computador. Según sea la información que guardemos en los datos, se clasifican en los siguientes tipos:
Tipos de datos. Dato: Es toda la información que utiliza el computador. Según sea la información que guardemos en los datos, se clasifican en los siguientes tipos: I Numéricos: Almacenan números y con
Más detallesJavaScript: Lenguaje de programación
Francisco J. Martín Mateos Carmen Graciani Diaz Dpto. Ciencias de la Computación e Inteligencia Artificial Universidad de Sevilla Literales Enteros Con base decimal: 45, -43 Con base octal: 043, -054 Con
Más detallesRepresentación de la información
Laboratorio de Introducción a las Ciencias de la Computación Página 1 UNIERSIDAD CATÓLICA DE SANTA MARÍA PROGRAMA PROESIONAL DE INGENIERÍA DE SISTEMAS SESIÓN 2: Representación de la información OBJETIOS
Más detallesProcesadores de lenguaje Tema 5 Comprobación de tipos
Procesadores de lenguaje Tema 5 Comprobación de tipos Departamento de Ciencias de la Computación Universidad de Alcalá Resumen Sistemas de tipos. Expresiones de tipo. Equivalencia de tipos. Sobrecarga,
Más detallesJava Avanzado. Guía 1. Java Avanzado Facultad de Ingeniería. Escuela de computación.
Java Avanzado. Guía 1 Java Avanzado Facultad de Ingeniería. Escuela de computación. Java Avanzado. Guía 2 Introducción Este manual ha sido elaborado para orientar al estudiante de Java Avanzado en el desarrollo
Más detallesTEMA 02 TIPOS, OPERADORES Y EXPRESIONES
TEMA 02 TIPOS, OPERADORES Y EXPRESIONES 2.1.- Introducción. 2.2.- Datos. 2.3.- Entrada y salida básica. 2.4.- Modificadores. 2.5.- Cadenas de caracteres. 2.6.- Operadores. 2.7.- Precedencia de operadores.
Más detallesTema#2. Tipos de Datos 10
2.1 DEFINICIÓN DE DATOS. Los datos son los objetos sobre los que opera una computadora. El tipo de un dato es el conjunto de valores que puede tomar durante el programa. Si se le intenta dar un valor fuera
Más detallesTema 3. Patrones y Definiciones de Funciones
Informática Haskell Matemáticas Curso 2004-2005 Pepe Gallardo Universidad de Málaga Tema 3. Patrones y Definiciones de Funciones 3.1 Comparación de Patrones Patrones constantes Patrones para listas Patrones
Más detallesEstatutos de Control C# Estatutos de Decisión (Selección)
SELECCIÓN Estatutos de Control C# Estatutos de Decisión (Selección) IF Condición THEN Estatuto1 ELSE Estatuto2 Estatuto1 Statement Condición... Antes de ver esta presentación: Lee el Capítulo correspondiente
Más detallesExpresiones Lógicas y Operadores sobre Bits
Expresiones Lógicas y Operadores sobre Bits Andrés Arcia Departamento de Computación Escuela de Ingeniería de Sistemas Facultad de Ingeniería Universidad de Los Andes Programación Digital I 1 Expresión
Más detallesIntroducción a Java. Introducción a Java. Programación I
Introducción a Java Introducción a Java Programación I Como Funciona Tipos de Datos TIPO TAMAÑO RANGO byte 8 bits Valores numéricos de 128 a 127 short 16 bits Valores numéricos de 32.768 a 32.767 int 32
Más detallesElementos de un programa en C
Elementos de un programa en C Un programa en C consta de uno o más archivos. Un archivo es traducido en diferentes fases. La primera fase es el preprocesado, que realiza la inclusión de archivos y la sustitución
Más detallesUnidad V Análisis Semántico. M.C. Juan Carlos Olivares Rojas
Unidad V Análisis Semántico M.C. Juan Carlos Olivares Rojas Agenda 5.1 Analizador semántico 5.2 Verificación de tipos en expresiones. 5.3 Conversión de tipos. 5.4 Acciones agregadas en un analizador sintáctico
Más detallesExpresiones y sentencias
Expresiones y sentencias Expresión Construcción (combinación de tokens) que se evalúa para devolver un valor. Sentencia Representación de una acción o una secuencia de acciones. En C, todas las sentencias
Más detallesProgramación n Orientada a Objetos Sentencias Java Parte I. Ing. Julio Ernesto Carreño o Vargas MsC.
Programación n Orientada a Objetos Sentencias Java Parte I Ing. Julio Ernesto Carreño o Vargas MsC. Variables y expresiones aritméticas Variables Conceptos de Memoria Una variable es un espacio en la memoria
Más detallesDesde los programas más simples escritos en un lenguaje de programación suelen realizar tres tareas en forma secuencial.
Tipos de Datos Desde los programas más simples escritos en un lenguaje de programación suelen realizar tres tareas en forma secuencial. Entrada de datos Procesamientos de datos Salida de resultados Los
Más detallesExpresiones Aritméticas. Programación digital I Escuela de Sistemas Facultad de Ingeniería Gilberto Diaz
Expresiones Aritméticas Programación digital I Escuela de Sistemas Facultad de Ingeniería Gilberto Diaz Expresiones Aritméticas El computador puede realizar cálculos además de mostrar datos por pantalla.
Más detallesIII. Generación de Código orientado a objetos
III. Generación de Código orientado a objetos UNIDAD III Aspectos fundamentales Del código orientado a objetos. MÓDULOS DE CÓDIGO 1 DE FORMULARIO Almacenan el código en VB 2 ESTÁNDAR 3 DE CLASE Contiene
Más detallesFundamentos PHP. El término puntuación nos referimos a la sintaxis usada en PHP para la terminación de una línea de código (;)
Tags Fundamentos PHP La Sintaxis de PHP se deriva de muchos lenguajes de programación principalmente de C pero Perl también ha tenido mucha influencia en esta sintaxis Con las últimas incorporaciones agregadas,
Más detallesLos tipos de datos primitivos
Los tipos de datos primitivos El lenguaje de programación Java es de tipo estático, lo que significa que todas las variables debe ser declarado antes de que puedan ser utilizados visto. Se trata de la
Más detallesDesarrollo de Programas. Prof. Lisbeth C. Pérez Rivas
Desarrollo de Programas Prof. Lisbeth C. Pérez Rivas lisbethpe@ula.ve Desarrollo de Programas Ejercicio: Calcular el sueldo neto de un trabajador conociendo el número de horas trabajadas, la tarifa horaria
Más detallesProgramación. Test Autoevaluación Tema 3
Programación Test Autoevaluación Tema 3 Autores: M. Paz Sesmero Lorente Paula de Toledo Heras Fco. Javier Ordoñez Morales Juan Gómez Romero José A. Iglesias Martínez José Luis Mira Peidro SOLUCIONES 1.
Más detallesTema 4. Operadores y Expresiones
Tema 4 Operadores y Expresiones Contenidos 1. Conceptos Básicos. 2. Operadores Aritméticos. 3. Operadores de Relación, de Igualdad y Lógicos. 4. Operadores de Incremento y Decremento. 5. Operadores y Expresiones
Más detallesUnidad II: Análisis semántico
Unidad II: Análisis semántico Se compone de un conjunto de rutinas independientes, llamadas por los analizadores morfológico y sintáctico. El análisis semántico utiliza como entrada el árbol sintáctico
Más detallesProgramación Orientada a Objetos Sentencias Java Parte I Ing. Julio Ernesto Carreño Vargas MsC.
Sentencias Java Parte I Ing. Julio Ernesto Carreño Vargas MsC. Variables Conceptos de Memoria Una variable es un espacio en la memoria del PC Cada variable tiene un nombre, un tipo, un tamaño y un valor
Más detallesLenguaje C. República Bolivariana de Venezuela Fundación Misión Sucre Aldea Fray Pedro de Agreda Introducción a la Programación III
República Bolivariana de Venezuela Fundación Misión Sucre Aldea Fray Pedro de Agreda Introducción a la Programación III Lenguaje C 1 Puntos previos Los códigos fuentes generados en C requieren ser compilados
Más detallesTema 9: Declaraciones de tipos y clases
Tema 9: Declaraciones de tipos y clases Informática (2016 17) José A. Alonso Jiménez Grupo de Lógica Computacional Departamento de Ciencias de la Computación e I.A. Universidad de Sevilla 2 / 41 Tema 9:
Más detallesTema 2. Concepto de Algoritmo
Tema 2. Concepto de Algoritmo Objetivos Definir el concepto de algoritmo Resolver problemas sencillos mediante el diseño de un algoritmo Conocer los tipos de datos elementales y las operaciones sobre ellos
Más detallesTema 3. Tipos de datos simples
Tema 3. Tipos de datos simples Contenido del tema: Concepto de tipo. Tipos simples. Operadores. Expresiones. Semántica. Tipos y expresiones en lenguaje C++ Francisco J. Veredas Dpto. Lenguajes y Ciencias
Más detallesFUNDAMENTOS DE INFORMÁTICA
FUNDAMENTOS DE INFORMÁTICA Tema 2 Expresiones, operadores y estructuras de control Departamento de Ingeniería de Sistemas y Automática Universidad de Vigo Fundamentos de Informática. Departamento de Ingeniería
Más detallesGUÍA BÁSICA DE SCHEME v.4
Esta guía básica pretende ser una introducción elemental al lenguaje de programación Scheme. Se presenta como una guía de comienzo rápido de tal forma que permita conocer de una forma muy esquemática los
Más detallesTema 9: Declaraciones de tipos y clases
Tema 9: Declaraciones de tipos y clases Programación declarativa (2009 10) José A. Alonso Jiménez Grupo de Lógica Computacional Departamento de Ciencias de la Computación e I.A. Universidad de Sevilla
Más detallesTema 4: Definición de funciones
Programación declarativa (2009 10) José A. Alonso Jiménez Grupo de Lógica Computacional Departamento de Ciencias de la Computación e I.A. Universidad de Sevilla Constantes como patrones Variables como
Más detallesLENGUAJE. Tema 2 Elementos de un programa
LENGUAJE Tema 2 Elementos de un programa ELEMENTOS DE UN PROGRAMA Comentarios. Identificadores. Constantes. Variables. Operadores. Sentencias o instrucciones. COMENTARIOS Los comentarios en C pueden ocupar
Más detallesConstantes. Las constantes no cambian durante la ejecucion de un programa en C++, en C++ existen 4 tipos de constantes:
Constantes Las constantes se pueden declarar con la palabra reservada const y se le asigna un valor en el momento de la declaracion, este valor no se puede modificar durante el programa y cualquier intento
Más detallesIntroducción a Java (II) Dr. (c) Noé Alejandro Castro Sánchez
Introducción a Java (II) Dr. (c) Noé Alejandro Castro Sánchez Sintaxis de Java Sintaxis Define las reglas que determinar el uso de palabras clave, operadores y variables para construir y evaluar expresiones.
Más detallesProgramación estructurada (Tipos, operadores y expresiones)
Programación estructurada (Tipos, operadores y expresiones) M. en C. Sergio Luis Pérez Pérez UAM CUAJIMALPA, MÉXICO, D. F. Trimestre 15-I Sergio Luis Pérez (UAM CUAJIMALPA) Curso de programación estructurada
Más detallesCarlos Montenegro. Programación Orientada a Objetos Proyecto Curricular de Ingeniería de Sistemas
2 - Introducción al lenguaje Java, identificadores y comentarios. Carlos Montenegro Programación Orientada a Objetos Proyecto Curricular de Ingeniería de Sistemas 1. Introducción: Java tiene como todos
Más detallesManual de turbo pascal
Universidad Nacional Experimental De Los Llanos Occidentales Ezequiel Zamora UNELLEZ-Barinas Manual de turbo pascal Bachilleres: Martinez Ninibeth C.I:20.867.002 Mora Yaco C.I:17.205.073 Estructura de
Más detallesTipos de datos y operadores en C++
Tipos de datos y operadores en C++ El tipo de dato determina la naturaleza del valor que puede tomar una variable. Un tipo de dato define un dominio de valores y las operaciones que se pueden realizar
Más detalles1.1 Tipos de Datos Primitivos. 1.2 Tipos de datos estructurados. 1.3 Definición de estructura de datos
1.1 Tipos de Datos Primitivos 1.2 Tipos de datos estructurados 1.2.1 Arreglos unidimensionales, bidimensionales y cadenas de caracteres 1.2.2 Registros o Estructuras (unión y estructura) 1.3 Definición
Más detallesProgramación Básica. Martin Méndez Facultad de Ciencias Universidad Autónoma de San Luis Potosí
Programación Básica Martin Méndez Facultad de Ciencias Universidad Autónoma de San Luis Potosí Objetivo del Curso Estudiar y aplicar los conceptos básicos de programación estructurada en un lenguaje de
Más detallesTema 3. Patrones y Definiciones de Funciones
Programación Declarativa Haskell Informática Sistemas Curso 2003-2004 Pepe Gallardo Universidad de Málaga Tema 3. Patrones y Definiciones de Funciones 3.1 Comparación de Patrones Patrones constantes Patrones
Más detallesIsabelle como un lenguaje funcional
Capítulo 1 Isabelle como un lenguaje funcional 1.1 Introducción Nota 1.1.1. Esta notas son una introducción a la demostración asistida utilizando el sistema Isabelle/HOL/Isar. La versión de Isabelle utilizada
Más detallesTipos de Datos. Tipos de Datos Simples Estándar
Departamento de Informática Universidad Técnica Federico Santa María Tipos de Datos Programación de Computadores Profesor: Teddy Alfaro Tipos de Datos Simples Estándar char es un carácter (alfanumérico),
Más detallesUn identificador le da nombre único a un elemento en un programa (Variables, procedimientos, etc.). No puede contener operadores como + - * /
undamentos de sintaxis en algunas instrucciones de C#.Net Dr. Ramón Roque Hernández Identificadores Un identificador le da nombre único a un elemento en un programa (ariables, procedimientos, etc.). No
Más detallesIntroducción a PL/SQL
Introducción a PL/SQL Grupo de Ingeniería del Software y Bases de Datos Departamento de Lenguajes y Sistemas Informáticos Universidad de Sevilla noviembre 2011 Objetivos de este tema Conocer PL/SQL. PL/SQL
Más detalles1 ELEMENTOS BASICOS DEL LENGUAJE
1 ELEMENTOS SICOS DEL LENGUJE Contenido: Variables su declaracion y asignacion Caracteres en java Secuencias de escape y comentarios Tipos de datos Operadores aritméticos, relacionales y lógicos Entrada
Más detallesINTRODUCCIóN A LA PROGRAMACIóN APUNTES DE JAVA APUNTES DE JAVA
APUNTES DE JAVA FUNCIONAMIENTO DE UN PROGRAMA Assembler Ensamblador Ejecuta Programador Programa fuente BASIC Interprete Ejecuta C, C++, Pascal Compilador Compila Ejecuta Programa fuente Programa Objeto
Más detallesJava para programadores
Java para programadores Java y Servicios Web I Master en Ingeniería Matemática Manuel Montenegro Dpto. Sistemas Informáticos y Computación Desp. 467 (Mat) montenegro@fdi.ucm.es Contenidos Variables. Tipos
Más detallesIntroducción a Python. Cecilia Manzino
Características del lenguaje Es un lenguaje de programación multiparadigma, soporta la programación orientada a objetos, imperativa y, en menor medida, funcional. Es un lenguaje multiplataforma, puede
Más detallesMetodologías de Programación II Dominios y Excepciones
Metodologías de Programación II Dominios y Excepciones Dr. Alejandro Guerra-Hernández Departamento de Inteligencia Artificial Facultad de Física e Inteligencia Artificial aguerra@uv.mx http://www.uv.mx/aguerra
Más detallesProgramación en java. Estructuras algorítmicas
Programación en java Estructuras algorítmicas Estructuras algoritmicas 1. Conceptos basicos 1. Dato 2. Tipos de datos 3. Operadores 2. dsd Conceptos Basicos DATO: se considera una representación simbólica
Más detallesINICIACIÓN A LA PROGRAMACIÓN II
INICIACIÓN A LA PROGRAMACIÓN II 1. Caracteres... 2 2. Identificadores... 4 3. Palabras clave o reservadas... 5 4 Variables y constantes. Datos... 6 5 Arrays... 8 6. Comentarios... 9 7. Expresiones... 11
Más detallesOperadores. Javier Fernández Rivera -
Programación en C Operadores Javier Fernández Rivera - www.aurea.es Los operadores Son los elementos o caracteres gráficos encargados de manipular los datos, que pueden ser dados por números, caracteres,
Más detallesTipos De Datos. Numéricos. Alfanuméricos (string) Arreglos (Vectores, Matrices) Estructurados Registros (Def. Por el Archivos Usuario) Apuntadores
Tipos De Datos Todos los datos tienen un tipo asociado con ellos. Un dato puede ser un simple carácter, tal como b, un valor entero tal como 35. El tipo de dato determina la naturaleza del conjunto de
Más detallesCentro Asociado Palma de Mallorca. Antonio Rivero Cuesta
Centro Asociado Palma de Mallorca Antonio Rivero Cuesta La Sintaxis de Java I... 5 Tipos de datos... 6 Tipos de datos simples... 7 Operadores... 11 Operadores Aritméticos... 12 Operadores relacionales...
Más detallesVARIABLES TIPOS FUNDAMENTALES
VARIABLES Una variable es un espacio reservado en el ordenador para contener valores que pueden cambiar durante la ejecución de un programa. Los tipos determinan cómo se manipulará la información contenida
Más detallesTema 3: Características de la programación funcional. Sesión 5: El paradigma funcional (1)
Tema 3: Características de la programación funcional Sesión 5: El paradigma funcional (1) Referencias Capítulo 1.1.5 SICP: [[http://mitpress.mit.edu/sicp/full-text/book/book-z- H-10.html#%_sec_1.1.5][The
Más detallesREPRESENTACIÓN DE DATOS
REPRESENTACIÓN DE DATOS Tipos de datos primitivos Tipos de Datos Estructurados TIPOS DE DATOS SIMPLES O PRIMITIVOS Dato Longitud Rango 2 TIPOS DE DATOS SIMPLES O PRIMITIVOS Surgen de la necesidad de tener
Más detallesTema 8: Tipos de datos. Sesión 24: Tipos de datos (1)
Tema 8: Tipos de datos Sesión 24: Tipos de datos (1) Referencias Programming Languages Pragmatics: Capítulo 7, apartados 7.1 (Type Systems) y 7.2 (Type Checking) Programming in Scala: Capítulo 5 (Basic
Más detalles$0 Representa al parámetro cero o nombre del programa $1 Representa al parámetro uno $2 Representa al parámetro dos
PROGRAMACIÓN DE SHELL SCRIPTS EN LINUX El shell es un intérprete de órdenes, pero el shell no es solamente eso; los intérpretes de órdenes de Linux son auténticos lenguajes de programación. Como tales,
Más detallesGeneración de Código Intermedio
Generación de Código Intermedio Programación II Margarita Álvarez Generación de código intermedio Con la generación de código intermedio se inicia la tarea de síntesis. Aunque un programa fuente se puede
Más detallescomo les va con las practicas?
como les va con las practicas? Problemas NP-completos y Estructuras de datos básicas (representación de datos) mat-151 1 Una maquina de Turing Aceptation state Una maquina de Turing Maquina de Turing Determinística,
Más detallesEl sistema de clases de Haskell. Introducción
Capítulo 5. El sistema de clases de Haskell 56 El sistema de clases de Haskell Introducción Función monomórfica: sólo se puede usar para valores de un tipo concreto not :: Bool Bool not True = False not
Más detallesOperadores y Expresiones
Operadores y Expresiones Los programas Java constan de datos, sentencias de programas y expresiones. Una expresión es normalmente, una ecuación matemática, tal como 3 * x + 5 * z. En esta expresión, los
Más detallesÁrea: INFORMÁTICA. Saber- Saber: Identificar DFD como herramienta para escribir los algoritmos de forma lógica.
Guía No: 2 Subdirección de Educación Departamento de Educación Contratada Colegio CAFAM Bellavista CED GUIA DE APRENDIZAJE Docente: Luz del Carmen Barrera Área: INFORMÁTICA Fecha: II BIMESTRE 2014 Grado:
Más detalles