Metodologías de Programación II Macros en Lisp
|
|
- María José Montero Gallego
- hace 5 años
- Vistas:
Transcripción
1 Metodologías de Programación II Macros en Lisp Dr. Alejandro Guerra-Hernández Departamento de Inteligencia Artificial Facultad de Física e Inteligencia Artificial aguerra@uv.mx Maestría en Inteligencia Artificial 2012
2 Programas que escriben programas La definición de una macro es esencialmente el de una función que genera código Lisp un programa que genera programas. Diferencia importante: Una función produce un resultado, pero una macro produce una expresión que al ser evaluada produce un resultado.
3 Ejemplo: nil! Supongan que queremos escribir la macro nil! que asigna a su argumento el valor nil. Queremos que (nil! x) tenga el mismo efecto que (setq x nil) 1 CL-USER> (defmacro nil! (var) 2 (list setq var nil)) 3 NIL! 4 CL-USER> (nil! x) 5 NIL 6 CL-USER> x 7 NIL Cómo evalúa Lisp la llamada en la línea 4?
4 Evaluación de una macro Lisp identifica a nil! como una macro y: Construye la expresión especificada por la definición de la marco en la fase conocida como macro-expansión, lo que genera la expresión (setq x nil); y entonces Evalua la expresión obtenida en lugar de la llamada original a la macro, esto es, se evalúa (setq x nil), como si el programador la hubiese tecleado.
5 Deteniendo la evaluación sólo en algunas partes El backquote es una versión especial de nuestro conocido quote, que puede ser usado para definir moldes de expresiones Lisp. 1 CL-USER 3 > (list a b c) 2 (A B C) 3 CL-USER 4 > (a b c) 4 (A B C) 5 CL-USER 5 > (setf a 1 b 2 c 3) CL-USER 6 > (a (,b c)) 8 (A (2 C))
6 Ventajas de backquote Hace que las expresiones sean más fáciles de leer, debido a que la expresión con apóstrofo invertido es similar a su macro-expansión. Vean las definiciones de nil! 1 (defmacro nil! (var) 2 (list setq var nil)) 3 (defmacro nil! (var) 4 (setq,var nil))
7 Un ejemplo más complejo: nif un if numérico: 1 CL-USER 8 > (mapcar # (lambda(x) 2 (nif x p c n)) 3 ( )) 4 (C P N)
8 Nif con apóstrofo 1 (defmacro nif (expr pos zero neg) 2 (case (truncate (signum,expr)) 3 (1,pos) 4 (0,zero) 5 (-1,neg)))
9 Nif sin apóstrofo 1 (defmacro nif (expr pos zero neg) 2 (list case 3 (list truncate (list signum expr)) 4 (list 1 pos) 5 (list 0 zero) 6 (list -1 neg)))
10 Coma-arroba Funciona como la coma normal, sólo que en lugar de insertar el valor de la expresión que antecede, inserta su valor removiendo los paréntesis más externos: 1 CL-USER 10 > (setq b (1 2 3)) 2 (1 2 3) 3 CL-USER 11 > (a,b c) 4 (A (1 2 3) C) 5 CL-USER 12 > (a,@b c) 6 (A C)
11 Ejemplo de uso: mi-when 1 (defmacro mi-when (test &body body) 2 (if,test 3 (progn,@body))) el parámetro &body toma un número arbitrario de argumentos y el operador coma-arroba los inserta en un sólo progn.
12 Definiendo macros simples Se comienza con la llamada a la macro que queremos definir. Escribirla en un papel y abajo escriban la expresión que quieren producir con la macro: 1 llamada: (mem-eq obj lst) 2 expansión: (member obj lst :test # eq)
13 Parámetros de la macro La llamada nos sirve para definir los parámetros de la macro. En este caso, como necesitamos dos argumentos, el inicio de la macro será: 1 (defmacro mem-eq (obj lst)
14 Cuerpo de la macro Para cada argumento en la llamada a la macro, tracen un línea hacía donde son insertadas en la expansión. Comiencen el cuerpo de la macro con un apóstrofo invertido. Ahora lean la expansión expresión por expresión: 1. Si no hay una línea conectado la expresión en la llamada, entonces escribir la expresión tal cual en el cuerpo de la macro. 2. Si hay una conexión, escriban la expresión precedida por una coma. 1 (defmacro mem-eq (obj lst) 2 (member,obj,lst :test # eq))
15 Macros de aridad indeterminada Hay que recurrir a coma-arroba: 1 (defmacro while (test &body body) 2 (do () 3 ((not,test)) 4,@body)) y obtenemos una nueva estructura de control 1 CL-USER> (let ((i 0)) 2 (while (< i 10) 3 (princ i) 4 (setf i (1+ i)))) NIL
16 Macro expansiones Para macros más complejas, es necesario poder observar si la expansión ha sido correcta. Para ello lisp provee dos funciones predefinidas: macroexpand muestra como la macro se expandiría antes de ser evaluada. Si la macro hace uso de otras macros, esta revisión de la expansión es de poca utilidad. La función macroexpand-1 muestra la expansión de un sólo paso.
17 Ejemplos de macro expansión 1 CL-USER 2 > (pprint(macroexpand 2 (while (puedas) (rie)))) 3 (BLOCK NIL 4 (LET () 5 (DECLARE (IGNORABLE)) 6 (DECLARE) 7 (TAGBODY 8 #:G747 (WHEN (NOT (PUEDAS)) (RETURN-FROM NIL NIL)) 9 (RIE) 10 (GO #:G747)))) CL-USER 3 > (pprint (macroexpand-1 13 (while (puedas) (rie)))) 14 (DO () ((NOT (PUEDAS))) (RIE))
18 Una meta macro Si vamos a hacer esto muchas veces, nos convine definir una macro: 1 (defmacro mac (expr) 2 (pprint (macroexpand-1,expr))) de forma que podemos evaluar ahora: 1 CL-USER> (mac (while (puedas) rie)) 2 (DO () ((NOT (PUEDAS))) RIE) 3 ; Not value
19 Evaluando la expansión La expansión obtenida puede evaluarse en el TOP-LEVEL para experimentar con la macro: 1 CL-USER> (setq aux (macroexpand-1 (mem-eq a (a b c)))) 2 (MEMBER A (A B C) :TEST # EQ) 3 CL-USER> (eval aux) 4 (A B C)
20 for, in y random-choice 1 (defmacro for (var start stop &body body) 2 (let ((gstop (gensym))) 3 (do ((,var,start (1+,var)) 4 (,gstop,stop)) 5 ((>,var,gstop)) 6,@body))) 7 8 (defmacro in (obj &rest choices) 9 (let ((insym (gensym))) 10 (let ((,insym,obj)) 11 (or,@(mapcar # (lambda(c) (eql,insym,c)) 12 choices))))) (defmacro random-choice (&rest exprs) 15 (case (random,(length exprs)) 16,@(let ((key -1)) 17 (mapcar # (lambda(expr) 18 (,(incf key),expr)) 19 exprs))))
21 Corridas 1 CL-USER 3 > (for x 1 8 (princ x)) NIL 4 CL-USER 4 > (in ) 5 T 6 CL-USER 5 > (random-choice 1 2 3) CL-USER 6 > (random-choice 1 2 3) CL-USER 7 > (random-choice 1 2 3) CL-USER 8 > (random-choice 1 2 3) CL-USER 9 > (random-choice 1 2 3) CL-USER 10 > (random-choice 1 2 3) 17 2
22 macro expansiones 1 CL-USER> (mac (for x 1 9 (princ x))) 2 (DO ((X 1 (1+ X)) 3 (#:G1009 9)) 4 ((> X #:G1009)) (PRINC X)) 5 ; No value 6 CL-USER> (mac (in )) 7 (LET ((#:G1010 3)) (OR (EQL #:G1010 1) 8 (EQL #:G1010 2) 9 (EQL #:G1010 3))) 10 ; No value 11 CL-USER> (mac (random-choice 1 2 3)) 12 (CASE (RANDOM 3) (0 1) (1 2) (2 3)) 13 ; No value
23 Bibliografía P. Graham. On Lisp: Advanced Techniques for Common Lisp. Prentice Hall International, 1993.
4 MACROS EN LISP. Construye la expresión especificada por la definición de la marco, y entonces
4 MACROS EN LISP La definición de una macro es esencialmente el de una función que genera código Lisp un programa que genera programas Este mecanismo ofrece grandes posibilidades, pero también da lugar
Macros en Lisp. 4.1. Cómo funcionan las macros?
Capítulo 4 Macros en Lisp Resumen Las macros en Lisp permiten al programador definir operadores que están implementados por transformación. La definición de una macro es esencialmente una función que genera
Metodologías de Programación II Listas en Lisp
Metodologías de Programación II Listas en Lisp Dr. Alejandro Guerra-Hernández Departamento de Inteligencia Artificial Facultad de Física e Inteligencia Artificial aguerra@uv.mx http://www.uv.mx/aguerra
Resumen de LISP. Javier Gil Julio, 2011
Resumen de LISP Javier Gil Julio, 2011 ; conceptos fundamentales de Lisp ; sintaxis basica (+ 2 3) (* 2 (+ 4 6)) (+ 2/7 7/67) (/ #c(2 3) 6/4) ; operadores matematicos basicos (+ 2 3) (- 8 6) (* 2/7 6/5)
PRIMER TUTORIAL DE LipsWorks Personal Edition 6.0.1
PRIMER TUTORIAL DE LipsWorks Personal Edition 6.0.1 Interprete 1. Realizar una suma Tipos de Datos Existen 2 Tipos de datos Átomos y Listas Datos Tipo Átomos: Los átomos son las expresiones LISP más elementales.
El lenguaje LISP. LISP is an easy language to learn (Henry et.al., 1984) Introducción
El lenguaje LISP LISP is an easy language to learn (Henry et.al., 1984) 1 Introducción Origen: 1958 John McCarthy, pionero en IA, empezó a trabajar con la primera implementación de Lisp en 1958.»McCarthy,
3 LISTAS EN LISP. Figura 1: Una lista de un elemento, como cons a nil. nil. 1 CL-USER> (cons a nil) 2 (A) 3 CL-USER> (car (a)) 4 A
3 LISTAS EN LISP Las listas fueron originalmente la principal estructura de datos en Lisp De hecho, el nombre del lenguaje es un acrónimo de LISt Processing Las implementaciones modernas de Lisp incluyen
El lenguaje LISP. LISP is an easy language to learn
El lenguaje LISP LISP is an easy language to learn (Henry et.al., 1984) 1 Origen: 1958 Introducción John McCarthy, pionero en IA, empezó a trabajar con la primera implementación de Lisp en 1958.» McCarthy,
Metodología de Programación I Tutorial de Prolog (3/3)
Metodología de Programación I Tutorial de Prolog (3/3) Dr. Alejandro Guerra-Hernández Departamento de Inteligencia Artificial Facultad de Física e Inteligencia Artificial aguerra@uv.mx http://www.uv.mx/aguerra
Tema 5: Macros. Sesión 14: Macros
Tema 5: Macros Sesión 14: Macros Hoy veremos... Conceptos generales Quasiquotation Macros en Scheme Ejemplos de macros Referencias Capítulo 3.7 Programming Language Pragmatics: Macro Expansion Definición
CLIPS Definición de funciones
CLIPS Definición de funciones Por función consideramos tanto las funciones predefinidas en CLIPS como las definidas por el usuario en este lenguaje, o las definidas en un lenguaje externo (C, FORTRAN o
Breve introducción al funcionamiento de un interprete del lenguaje Lisp
Breve introducción al funcionamiento de un interprete del lenguaje Lisp Christian Chinchilla Brizuela Escuela Ciencias de la Computación e Informática Universidad de Costa Rica San José, Costa Rica christian.chinchilla@ecci.ucr.ac.cr
Tema 1: Introducción a Lisp
Inteligencia Artificial I Curso 202 203 Tema : Introducción a Lisp José L. Ruiz Reina Dpto. de Ciencias de la Computación e Inteligencia Artificial Universidad de Sevilla IA-I 202 203 CcIa Introducción
Metodologías de Programación II Introducción a OCaml
Metodologías de Programación II Introducción a OCaml Dr. Alejandro Guerra-Hernández Departamento de Inteligencia Artificial Facultad de Física e Inteligencia Artificial aguerra@uv.mx http://www.uv.mx/aguerra
Curso de programación en Lisp
Dpto. de Álgebra, Computación, Geometría y Topología Universidad de Sevilla Curso de programación en Lisp José A. Alonso Jiménez (jalonso@us.es) Sevilla, 1991 Contenido 1 El cálculo aritmético 1 1.1 Los
Curso de Lisp con Golden Common Lisp
Curso de Lisp con Golden Common Lisp Dpto. de José A. Alonso Álgebra, Computación, Geometría y Topología Universidad de Sevilla Sevilla, 1990 Contenido 1 El cálculo aritmético 1 1.1 Los números y sus operaciones..................
Metodologí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
Anexo 3: Implementaciones en Lisp
Anexo 3: Implementaciones en Lisp José A. Alonso Jiménez Carmen Graciani Díaz Francisco Jesús Martín Mateos José Luis Ruiz Reina Dpto. Ciencias de la Computación e Inteligencia Artificial UNIVERSIDAD DE
Tema 3: Técnicas básicas de
Inteligencia Artificial Curso 999 2000 Tema 3: Técnicas básicas de búsqueda José A. Alonso Jiménez Francisco J. Martín Mateos Dpto. de Ciencias de la Computación e Inteligencia Artificial Universidad de
Función SI- Microsoft Office Excel
Función SI Devuelve un valor si la condición especificada es VERDADERO y otro valor si dicho argumento es FALSO. Utilice SI para realizar pruebas condicionales en valores y fórmulas. Sintaxis SI(prueba_lógica;valor_si_verdadero;valor_si_falso)
metodologías de programación ii
dr. alejandro guerra-hernández metodologías de programación ii notas de programación funcional Universidad Veracruzana Facultad de Física e Inteligencia Artificial Departamento de Inteligencia Artificial
GUÍ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
Programación Declarativa
Programación Declarativa Tema 2: LISP (SCHEME) 2 Tema 2: LISP (SCHEME) Introducción Representación de Datos Definición de Funciones Predicados Listas 3 Introducción (I) SCHEME es un dialecto de LISP (LISt
Introducción al Lenguaje Common Lisp
UNIVERSIDAD NACIONAL DE EDUCACIÓN A DISTANCIA Introducción al Lenguaje Common Lisp JESÚS GONZÁLEZ BOTICARIO DEPARTAMENTO DE INTELIGENCIA ARTIFICIAL Dpto. de Inteligencia Artificial UNIVERSIDAD NACIONAL
CAPÍTULO IV: 4.1 Introducción a la. Programación Funcional
CAPÍTULO IV: Programación Funcional 4.1 Introducción a la Programación Funcional 1 Programación Funcional Paradigma diferente a los imperativos, que se aleja de la máquina de von Neumann Basado en funciones
Programación Funcional en LISP Lógica para Ciencias de la Computación
Programación Funcional en LISP Lógica para Ciencias de la Computación Primer Cuatrimestre de 2009 Material Adicional Introducción A lo largo de la carrera estudiaremos diversos paradigmas de programación:
JavaScript 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
Tema 7: Macros. Índice. 1 Introducción Conceptos previos Macros en Scheme Más ejemplos de macros Referencias...
Índice 1 Introducción... 2 2 Conceptos previos...2 3 Macros en Scheme... 7 4 Más ejemplos de macros...10 5 Referencias...13 1. Introducción El primer párrafo del Revised5 Report on the Algorithmic Language
Primeros pasos programando en Python
Primeros pasos programando en Python El objetivo de este taller es que aprendan las primeras herramientas de programación. Cada grupo deberá ir leyendo este material en el taller y haciendo los ejemplos,
Lenguajes de Programación Programación funcional
Lenguajes de Programación Programación funcional Roberto Bonvallet Departamento de Informática Universidad Técnica Federico Santa María Concepto de función En el paradigma imperativo: Una función es una
Práctica 2 de IA /2012. LÓGICA Fecha publicación: 26 de octubre de 2011 Duración: 3 sesiones de laboratorio Versión: 2011/10/26
Práctica 2 de IA - 2011/2012. LÓGICA Fecha publicación: 26 de octubre de 2011 Duración: 3 sesiones de laboratorio Versión: 2011/10/26 Forward y backward chaining en lógica proposicional En la práctica
Tema 2.- Expresiones y funciones
UNIVERSIDAD DE CÓRDOBA ESCUELA POLITÉCNICA SUPERIOR DE CÓRDOBA DEPARTAMENTO DE INFORMÁTICA Y ANÁLISIS NUMÉRICO PROGRAMACIÓN DECLARATIVA INGENIERÍA INFORMÁTICA ESPECIALIDAD DE COMPUTACIÓN CUARTO CURSO PRIMER
PRACTICA 1. PROGRAMACIÓN EN LISP Fecha de publicación: 29 de septiembre de Duración: 3 sesiones de laboratorio. Versión: 2011/09/29
PRACTICA 1. PROGRAMACIÓN EN LISP Fecha de publicación: 29 de septiembre de 2011. Duración: 3 sesiones de laboratorio. Versión: 2011/09/29 Forma de entrega: Según lo dispuesto en las normas de entrega generales,
Funciones Segunda parte
Expresiones condicionales Matemática Discreta usando el computador 2011 Funciones Segunda parte Una expresión condicional utiliza una expresión de tipo Bool para decidir entre dos opciones Estructura if...then...
Metodología de Programación I Tutorial Prolog 2/3
Metodología de Programación I Tutorial Prolog 2/3 Dr. Alejandro Guerra-Hernández Departamento de Inteligencia Artificial Facultad de Física e Inteligencia Artificial aguerra@uv.mx http://www.uv.mx/aguerra
Texto estructurado (ST)
17 Texto estructurado (ST) El texto estructurado se compone de una serie de instrucciones que se pueden ejecutar, como sucede con los lenguajes superiores, de forma condicionada ("IF..THEN..ELSE") o en
PROGRAMACIÓN DEL INTÉRPRETE DE COMANDOS DE UNIX/LINUX
PROGRAMACIÓN DEL INTÉRPRETE DE COMANDOS DE UNIX/LINUX Sesión 16/05/2016 Desarrollar aplicaciones sencillas Scripting original: juntar varia órdenes e invocar su ejecución secuencial bajo un sólo comando.
Programación Funcional Lisp-DrScheme Primera Parte. Dr. Oldemar Rodríguez Rojas Escuela de Informática Universidad de Nacional
Programación Funcional Lisp-DrScheme Primera Parte Dr. Oldemar Rodríguez Rojas Escuela de Informática Universidad de Nacional Programación Funcional! La programación funcional es un paradigma de programación
Introducción a la. Programación con
Introducción a la Programación con C Objetivo El alumno comprendera los conceptos sobre cuales se rige la programación estructurada mediante una base teórica y un conjunto de prácticas, enfocando dichos
Aplicación de la Inducción Matemática Programación Funcional. Julio Ariel Hurtado Alegría Departamento de Sistemas Universidad del Cauca
Aplicación de la Inducción Matemática Programación Funcional Julio Ariel Hurtado Alegría Departamento de Sistemas Universidad del Cauca Motivación Programación Imperativa Declarativa Procedimental Ejemplo:
4.5 Ligado de Variables en Scheme
4.5 Ligado de Variables en Scheme Referencia a variables, lambda, formas let y asignación a) Referencia a una Variable variable retorno: valor de la variable Cualquier identificador no citada en una expresión
Manual de Lisp para IACS (Curso 91 92)
Dpto. de Álgebra, Computación, Geometría y Topología Universidad de Sevilla Manual de Lisp para IACS (Curso 91 92) Sevilla, 1992 Contenido 1 Introducción 1 1.1 Introducción............................
2 INTRODUCCIÓN A LISP
2 INTRODUCCIÓN A LISP El objetivo de este capítulo es que puedan programar en Lisp tan pronto como sea posible Al final de la misma, conocerán lo suficiente de Lisp como para comenzar a escribir sus propios
Manual 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
PROGRAMACION PARAMETRICA LENGUAJE DE ALTO NIVEL. MILTRONICS CNC MACHINES Control Centurion 7. Ing. Roberto Spicacci
PROGRAMACION PARAMETRICA LENGUAJE DE ALTO NIVEL MILTRONICS CNC MACHINES Control Centurion 7 Ing. Roberto Spicacci GENERALIDADES En la programación paramétrica se pueden utilizar ECUACIONES para definir
Vamos a profundizar un poco sobre los distintos tipos de datos que podemos introducir en las celdas de una hoja de cálculo
Tipos de datos. Vamos a profundizar un poco sobre los distintos tipos de datos que podemos introducir en las celdas de una hoja de cálculo Valores Constantes: Es un dato que se introduce directamente en
UNIVERSIDAD NACIONAL EXPERIMENTAL POLITECNICA ANTONIO JOSE DE SUCRE VICE RECTORADO BARQUISIMETO
U N E X P O UNIVERSIDAD NACIONAL EXPERIMENTAL POLITECNICA ANTONIO JOSE DE SUCRE VICE RECTORADO BARQUISIMETO HORAS / SEMANA DEPARTAMENTO SECCION SEMESTRE ESTUDIOS GENERALES Y BÁSICOS MATEMATICA IV ASIGNATURA
En programación funcional no hay instrucciones de asignación; La evaluación de un programa funcional no tiene efectos colaterales; y
1 INTRODUCCIÓN El tema de este segundo curso de Metodologías de Programación es la Programación Funcional En este primer capítulo se presenta un panorama general de este paradigma de programación, con
$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,
Apunte 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.....................................
Bloque II: Programación orientada al sistema
Bloque II: Programación orientada al sistema Tema 9. Programación en Lenguaje C Tema 10. Programación del intérpretes de órdenes - Introducción - Repaso de las principales órdenes del intérprete - Redirección
Tema 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
Procedimientos y Recursividad
Capítulo 2 Procedimientos y Recursividad 2.1 Introducción Es muy fácil definir un procedimiento en Scheme. El lenguaje proporciona una forma elegante de hacerlo, basada en el cálculo lambda de Alonzo Church
Forma de entrega: Según lo dispuesto en las normas de entrega generales, accesibles en la página
PRÁCTICA 3 DE IA. BÚSQUEDA Fecha de publicación: 8 de noviembre de 2011. Fecha de entrega: 15 de diciembre de 2011. Duración: 2 sesiones de laboratorio. [versión: 2011/11/08] Forma de entrega: Según lo
Insertar Datos en Tablas
Insertar Datos en Tablas La instrucción básica para insertar valores a los atributos (columnas) de una tabla es la instrucción INSERT INTO Insertar una sola tupla Para insertar una tupla en la tabla, se
La resolución de problemas es una tarea únicamente humana comprobable en todos los casos con los mismos resultados.
Pseudocódigo Introducción La importancia de sistematizar procesos y crear programas de cómputo radica esencialmente en que estos se puedan utilizar como resolución de problemas similares en muchos casos,
Abstracción de procedimientos
Abstracción de procedimientos 1.- Consideremos ABN (árboles binarios numéricos) sin nodos repetidos. Denimos los siguientes conceptos: Se pide: Dados dos ABN, A y B, decimos que B es SUBARBOL PRINCIPAL
Archivo ASM. Es el documento que contiene el código fuente del programa.
ESTRUCTURA GENERAL Todo programa en ensamblador debe ser generado con extensión ASM. Al ser ensamblado se generan archivos en código objeto (OBJ) para reconocer los mnemónicos como códigos de operación.
Estructuración del programa en partes más pequeñas y sencillas
Introducción Estructuración del programa en partes más pequeñas y sencillas Modularización Propósito único Identificable Reusable Mayor claridad: programación, depuración, etc. Construcción de librerías
LENGUAJE FORTRAN. ESTRUCTURAS Y SENTENCIAS
LENGUAJE FORTRAN. ESTRUCTURAS Y SENTENCIAS BÁSICAS Programación en Fortran Valentín Moreno ÍNDICE 1. Introducción al lenguaje Fortran 2. Estructura de un programa 3. Variables y constantes 4. Tipos de
Agentes y Sistemas Multi-Agentes Jason: Guía Práctica
Agentes y Sistemas Multi-Agentes Jason: Guía Práctica Dr. Alejandro Guerra-Hernández Departamento de Inteligencia Artificial Facultad de Física e Inteligencia Artificial Universidad Veracruzana aguerra@uv.mx
PROGRAMACIÓN EN JAVA. { una línea para definir, crear o ejecutar ; }
PROGRAMACIÓN EN JAVA { una línea para definir, crear o ejecutar ; } JFC Y API SPECIFICATIONS OBJECT INTERFACE ABSTRACT IMPLEMENTS EXTENDS NEW EXTENDS (Hasta que una clase derivada deje de ser ABSTRACT)
Características de JavaScript
Características de JavaScript Qué es JavaScript? o Lenguaje de programación interpretado utilizado fundamentalmente para dotar de comportamiento dinámico a las páginas web. o Cualquier navegador web actual
Introducción a Python Qué es Python?
Introducción a Python Qué es Python? Python es un lenguaje de programación interpretado cuya filosofía hace hincapié en una sintaxis que favorezca un código legible. Se trata de un lenguaje de programación
Modelos de Desarrollo de Programas Y Programación Concurrente Clase N 3
PROGRAMACION FUNCIONAL - Un lenguaje de programación funcional tiene gran flexibilidad, es conciso en su notación y su semántica es sencilla. El inconveniente principal de estos lenguajes ha sido la ineficiencia
//Sección de manejo de excepciones. Las rutinas de manejo de errores //aparecen aqui
PL/SQL - Oracle PL/SQL (Procedural Language/SQL) es una extensión de SQL, que agrega ciertas construcciones propias de lenguajes procedimentales, obteniendose como resultado un lenguaje estructural mas
Cuales son los tipos de instrucciones que se utilizan en la programación?
EXAMEN NIVEL PREUNI/UNI Cuales son los tipos de instrucciones que se utilizan en la programación? a) Instrucciones afirmativas e instrucciones negativas b) Instrucciones entrada, instrucciones afirmativas
PROGRAMACIÓN LÓGICA. David Felipe Rico Hernandez Gabriel Esteban Bejarano Delgado
PROGRAMACIÓN LÓGICA David Felipe Rico Hernandez Gabriel Esteban Bejarano Delgado Introducción Programación Lógica Conceptos clave Lenguajes de programación Ejemplos Ventajas y desventajas Aplicaciones
División Académica de Informática y Sistemas
Área de formación Nombre de la asignatura Docencia frente a grupo según SATCA Trabajo de Campo Supervisado según SATCA HCS HPS TH C HTCS TH C TC General 1 5 6 6 0 0 0 6 Clave de la asignatura Programación
5.1 Procedimientos y Funciones Almacenados. 5.2 Disparadores (Triggers).
Unidad 5 SQL Procedural 5.1 Procedimientos y Funciones. 5.2 Disparadores (Triggers). Taller Bases de Datos ISC Ing. Felipe Alanís González -ITD- 1 MySQL 1. Se usará la Base de Datos llamada LaConsentida.
Programación MODULAR: Subalgoritmos - funciones y procedimientos
Programación MODULAR: Subalgoritmos - funciones y procedimientos Uno de los métodos fundamentales para resolver un problema es dividirlo en problemas más pequeños, llamados subproblemas. Estos problemas
4.7 Operaciones sobre Objetos en Scheme
4.7 Operaciones sobre Objetos en Scheme Equivalencias y predicados de tipos, listas, números, caracteres, strings y vectores Ejemplos de Equivalencia (eq? a a) ;=> #t (eq? 3.1 3.1) ;=> () (eq? (cons a
roducción a la programación con el lenguaje C usando el entorno de trabajo Dev-C. Nociones básicas de programación
There are no translations available. Introducción a la programación con el lenguaje C usando el entorno de trabajo Dev-C. roducción a la programación con el lenguaje C usando el entorno de trabajo Dev-C.
LECCIÓN 8. BÚSQUEDAS CON ÁRBOL
LECCIÓN 8. BÚSQUEDAS CON ÁRBOL En esta lección se presenta una implementación de algoritmos generales de búsqueda en grafos que emplean árboles de búsqueda. También se analiza la resolución de dos problemas
4.7 Operaciones sobre Objetos en Scheme. Equivalencias y predicados de tipos, listas, números, caracteres, strings y vectores
4.7 Operaciones sobre Objetos en Scheme Equivalencias y predicados de tipos, listas, números, caracteres, strings y vectores a) Equivalencias (eq? obj 1 obj 2 ) retorno: #t si son idénticos (eqv? obj 1
Es la estructura que permite ejecutar los comandos solamente si se cumple una determinada condición. La sintaxis más usual:
Más scripts de Shell Además de las herramientas para manejo de variables que se explicaron anteriormente, el shell nos permite utilizar herramientas para manejo de ciclos y para estructuras condicionales,
Departamento de Informática Universidad de Valladolid Campus de Segovia. TEMA 4: TIPOS ABSTRACTOS DE DATOS (TADs)
Departamento de Informática Universidad de Valladolid Campus de Segovia TEMA 4: TIPOS ABSTRACTOS DE DATOS (TADs) TIPOS ABSTRACTOS DE DATOS (TADs) Introducción Un contraejemplo completo Metodología de la
Alfred V. Aho, Peter J. Weinberg, Brian W. Kerningan
Desarrolladores de awk Utilidad awk Introducción I Alfred V. Aho, Peter J. Weinberg, Brian W. Kerningan Objetivo inicial Utilidad para desarrollar pequeños programas Potenciar la funcionalidad proporcionada
Modificar estructura Se pueden agregar/quitar campos a una tabla, modificar el tipo de un campo, agregar/quitar índices a una tabla, etc.
EL lenguaje SQL(Structured Query Language) El Lenguaje de Consulta Estructurado (Structured Query Language) es unlenguaje de acceso a bases de datos relacionales que permite especificar diversos tipos
Tema 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
Lenguajes de Programación. Capítulo 4. Expresiones.
Lenguajes de Programación. Capítulo 4. Expresiones. Carlos Ureña Almagro Curso 2011-12 Contents 1 Introducción 2 2 Literales 5 2.1 Literales tipos primitivos......................................... 5
Visual Basic.net. Duración: 60 horas. Modalidad: online. Contenidos
Visual Basic.net Duración: 60 horas. Modalidad: online El objetivo general del curso es conseguir que el alumno sea capaz de conocer el funcionamiento de Visual Basic.NET empezando por los conceptos más
Tema 1 Testing Estructurado
Tema 1 Testing Estructurado 2da Parte Verificación y Validación de Software UNS 1 Contenido Fundamentos de Análisis Ejecución Simbólica Uso de Ejecución Simbólica Verificación y Validación de Software
Programació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.
Examen escrito de Programación 1. Viernes 22 de enero de Problema 1 o (3.0 puntos) Problema 2 o (3.0 puntos)
Examen escrito de Programación 1. Viernes 22 de enero de 2016 Se debe disponer de un documento de identificación con fotografía sobre la mesa. Se debe comenzar a resolver cada uno de los problemas del
Programación MATLAB: Programas y Funciones.
Programación MATLAB: Programas y Funciones. Curso: Métodos Numéricos en Ingeniería Profesor: Dr. José A. Otero Hernández Correo: j.a.otero@itesm.mx web: http://metodosnumericoscem.weebly.com Universidad:
Programación MATLAB: Programas y Funciones.
Programación MATLAB: Programas y Funciones. Curso: Métodos Numéricos en Ingeniería Profesor: Dr. José A. Otero Hernández Correo: j.a.otero@itesm.mx web: http://metodosnumericoscem.weebly.com Universidad:
LISP. El manejo de símbolos. Ejemplos de expresiones simbólicas. Motivación
El manejo de símbolos LISP García Osorio Área de Lenguajes y Sistemas Informáticos Universidad de Burgos Febrero, 1999! En todo programa de Inteligencia Artificial la manipulación de símbolos es una parte
Implementación de algoritmos y cálculo simbólico
Dpto. de Álgebra, Computación, Geometría y Topología Universidad de Sevilla Implementación de algoritmos y cálculo simbólico (Curso 90 91) José A. Alonso Jiménez Sevilla, 1990 Contenido 1 Cálculo aritmético
SIMULACION CON SIMAN
SIMULACION CON SIMAN El desarrollo de modelos de simulación se ha convertido en una herramienta extremadamente importante en los últimos tiempos para analizar complejos sistemas de manufactura. PROFESOR:
Resolución de la tarea 2. Por: Luis Salvador
Resolución de la tarea 2 Por: Luis Salvador Modifique los datos de la portada Modifique el estilo de título 1 Asigne estilo título1 a todos los textos grandes 2.- Defina como estilo Título1 1.- Ubique
Introducción a los compiladores
Introducción a los compiladores William Cruz-Santos wdelacruzd@uaemex.mx Ingeniería en Computación Universidad Autónoma del Estado de México Unidad de Competencia I 2 de octubre de 2015 William Cruz-Santos
FUNCIONES BÁSICAS TIMES ADD1 SUB1
LENGUAJES DE PROGRAMACIÓN (Sesión 10) 5. PROGRAMACIÓN FUNCIONAL 5.3. Subprogramas y gestión de almacenamiento 5.4. Evaluación del lenguaje Objetivo: Manejar la estructura de un programa bajo LISP y evaluarlo
Introducció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
ARQUITECTURA DE COMPUTADORES
ARQUITECTURA DE COMPUTADORES PRÁCTICA 5 El Shell de UNIX como lenguaje de programación (II) Conteni 2.1 CONTROL DEL FLUJO (II) 1.5.1 Bucles con las sentencias while y until 1.5.2 Las órdenes true y false
Hemos necesitado información acerca de cómo construir una llamada al sistema, esto es lo que hemos encontrado:
COMANDO ADMIN Introducción El proyecto que hemos realizado es el comando ADMIN de MINIX, que tendría las salidas habituales del comando ps, al que hemos añadido salida de datos de memoria. Pretendemos