Inteligencia artificial. Algunos procedimientos interconstruidos en el lenguaje
|
|
- Julián Arroyo
- hace 2 años
- Vistas:
Transcripción
1 Inteligencia artificial Algunos procedimientos interconstruidos en el lenguaje
2 Keyword
3 Cómo diseñar un lenguaje? Se tiene que tomar en cuenta tres influencias principales: La computadora subyacente en donde se van a ejecutar los programas escritos en el lenguaje. El modelo de ejecución, o computadora virtual, que apoya a ese lenguaje en el equipo real. El modelo de computación que el lenguaje implementa.
4 Componentes fundamentales de una computadora Componente Datos Operaciones primitivas Control de secuencia Acceso a datos Descripción Son los elementos de información integrados a la computadora, manipulables directamente a través de operaciones primitivas de hardware. Debe contener un conjunto de operaciones primitivas interconstruidas, útiles para la manipulación de datos. Proporciona los mecanismos para controlar el orden en el que se van a ejecutar las operaciones primitivas. Incorporar algún medio para designar operandos y un mecanismo para recuperar operandos de un designador de operandos dado. Gestión de almacenamiento Proveer mecanismos para la asignación de almacenamiento para programas. Entorno de operación. El entorno de operación de una computadora consiste ordinariamente en un conjunto de dispositivos periféricos de almacenamiento de entrada / salida
5 Son las estructuras de datos y algoritmos de un lenguaje que se emplean durante el tiempo de ejecución de un programa. Máquina virtual
6 Relación entre lenguaje y máquina virtual Una máquina define un lenguaje. Un lenguaje define una máquina.
7 Una computadora con n niveles puede verse como n máquinas virtuales diferentes, cada una de las cuales tiene un lenguaje especial. Jerarquía de máquinas virtuales
8 Se debe suministrar un traductor para traducir programas de usuario al lenguaje de la máquina de la computadora virtual definida por el lenguaje. Traductor para la máquina virtual
9 Jerarquía de máquinas virtuales Cada nivel representa una abstracción con objetos y operaciones diferentes. Cada nivel está construido sobre su predecesor. Si se quiere escribir programas para la máquina virtual del nivel n, no se necesita conocer los intérpretes ni los traductores de los niveles de abajo. Las computadoras están diseñadas como una serie de niveles. Para diseñar nuevos niveles, se necesita conocer todos.
10 Enlaces y tiempo de enlace Un enlace es la asignación de atributos a una celda de memoria para un elemento de programa. El momento en que el programa hace esta elección se conoce como el tiempo de enlace.
11 Tipos de tiempos de enlace Tiempo de ejecución El enlace de parámetros formales a reales. A través de la asignación de valores a variables. Tiempo de compilación Tipos para las variables. Cómo se guardan las estructuras de datos y sus descriptores. Tiempo de carga Fusionar los subprogramas en un ejecutable único enlazando las variables a direcciones reales de memoria. Tiempo de implantación del lenguaje Representación de números y operaciones aritméticas en la computadora del hardware subyacente. Tiempo de definición del lenguaje Todas las posibles formas opcionales de enunciados, tipos de estructuras de datos, estructuras de programa. Por ejemplo, cuántos tipos de enlace tiene este sencillo enunciado de asignación escrito en un lenguaje L: X := X + 10
12 Tipos de tiempos de enlace Cuando un enlace se efectúa durante el tiempo de ejecución, se dice que es de tipo dinámico. Ejemplos: Prolog, LISP y ML. El enlace que ocurre durante el tiempo de compilación es de tipo estático. Ejemplos: C, Pascal y Fortran. Tipo Eficiencia Flexibilidad Dinámico - + Estático + -
13 Alcance de una variable Es el conjunto de enunciados en el que el identificador de la variable es válido. Alcance estático: El alcance se determina de acuerdo al lugar donde el identificador es definido. Se le llama también alcance lexicográfico. El alcance estático se determina fácilmente utilizando diagramas de contorno.
14 Paradigmas de los lenguajes de programación En ciencias de la computación un paradigma se puede definir como un conjunto de conceptos que permiten modelar el mundo. Un paradigma es usado para formular una solución de cómputo a un problema. 1. Lenguajes imperativos o de procedimientos. 2. Lenguajes aplicativos o funcionales. 3. Lenguajes con base en reglas o lógicos. 4. Lenguajes orientados a objetos. 5. Lenguajes concurrentes.
15 1. Lenguajes imperativos o de procedimientos Se caracterizan por ser claros, formales y elegantes. Son controlados por enunciados imperativos: enunciado 1; enunciado 2;... La ejecución de un enunciado hace que el intérprete cambie el valor de una o más localidades en memoria. Ejemplos: Fortran, Pascal, C, Algol, Ada, PL/1. Fortran INTEGER I REAL X(10), SUM SUM = 0.0 DO 100 I=1, SUM=SUM+ X(I)**2 IF (SUM.GT. 1E+5) STOP WRITE(6,200) I,SUM 200 FORMAT ('SUMA', I, 'VALORES E',E15.7) END
16 2. Lenguajes aplicativos o funcionales Se caracterizan por ser muy eficientes, expresivos y semánticamente elegantes. Los lenguajes aplicativos hacen uso de las funciones puras con composición funcional, recursión y expresiones condicionales. Tienen 4 componentes: Un conjunto de funciones primitivas. Un conjunto de formas funcionales. La operación de aplicación. Un conjunto de objetos de datos. Ejemplos: LISP, ML. LIPS ; Factorial (defun fact (n) (if (= n 1) ; caso de terminación -> 1! = 1 1 (* n (fact (- n 1))) ; relación recursiva: n! = n * (n-1)! ) )
17 3. Lenguajes con base en reglas o lógicos Se caracterizan por ser eficaces y veloces Se ejecutan verificando una condición, que cuando se satisface ejecutan una acción: condición 1 entonces acción 1 condición 2 entonces acción 2... Ejemplo: Prolog. Prolog
18 4. Lenguajes orientados a objetos Se caracterizan por trabajar con entes abstractos (objetos) que reflejan las propiedades y características de objetos o entes reales. Las actividades a realizarse se tornan alrededor de los objetos mediante métodos (funciones). La comunicación con el objeto se da a través de mensajes. Un aspecto fundamental es el concepto de herencia que se da cuando los objetos pertenecen a la misma clase. Ejemplos: Simula, Smalltalk, Java. Java class TestTh extends Thread { private String nombre; private int retardo; // Constructor para almacenar nuestro nombre // y el retardo public TestTh( String s,int d ) { nombre = s; retardo = d; } // El metodo run() es similar al main(), pero para // threads. Cuando run() termina el thread muere public void run() { // Retasamos la ejecución el tiempo especificado try { sleep( retardo ); } catch( InterruptedException e ) { ; } // Ahora imprimimos el nombre System.out.println( "Hola Mundo! "+nombre+" "+retardo ); } }
19 5. Lenguajes concurrentes Su principal objetivo es mejorar la velocidad de cómputo, compartir recursos y distribuir la carga de trabajo. Diferentes tipos de arquitecturas: Redes de cobertura amplia. Redes locales. Multiprocesadores (Clusters). Comunicación y cooperación entre aplicaciones a través de: Envío y recepción de mensajes. Llamado a procedimiento remoto. Comunicación de grupo. Memoria Virtual Distribuida. Ejemplos: PVM, CSP, Ada. Ada procedure DECOD_MENSAJE task GENERAR_CODIGOS; task DECODIFICAR is entry ENVIAR_CODIGO (C: in CHARACTER); entry RECIBIR_CAR (C: out CHARACTER); end; task IMPR_MENSAJES; task body GENERAR_CODIGOS is CODIGO_SIGUIENTE: CHARACTER; begin loop --setencias para recibir datos --y generar un valor para CODIGO_SIGUIENTE DECODIFICAR.ENVIAR_CODIGO (CODIGO_SIGUIENTE); end;
20 var(x) Se satisface si en ese momento X es una variable no instanciada Permite saber si una variable ya tiene o no un valor, pero sin fijárselo como efecto lateral?- var(x). yes?- var(23). no?- X = Y, Y = 23, var(x).? listing(a). Se muestran por el canal de salida activo todas las cláusulas asociadas al átomo al que esté instanciado A. El formato depende del intérprete. Útil para descubrir errores. Ejemplo:?- [recorrer_fichero].?- listing(mostrar_fichero). mostrar_fichero :- write('nombre de fichero: '), read(a), see(a), muestra_contenido, seen.manejo de cláusulas Determinación del tipo de un término nonvar(x) Comportamiento opuesto al anterior atom(x) Se cumple si X identifica en ese momento un átomo?- atom(23). no?- atom(libros). yes?- atom( esto es una cadena ).? integer(x) Se satisface si X representa en ese momento a un entero atomic(x) Se cumple si en ese momento X es un entero o un átomo atomic(x):- atom(x). atomic(x):- integer(x).
21 Una función entre categorías que mapea objetos a los objetos y morfismos a morfismos. Existen Functors en ambos tipos covariantes y contravariantes. Functor
22 Name name(a, L) Permite manejar átomos arbitrarios. Relaciona un átomo (A), con la lista de caracteres ASCII que lo compone (L). Ejemplos:?- name(prueba, X). X = [112, 114, 117, 101, 98, 97]?- name(prueba, prueba ). yes?- name(x, [112, 114, 117, 101, 98, 97]). X = prueba
23 Programa Prolog <----> Base de datos Manipulación de la base de datos Base de datos: Conjunto de cláusulas que hemos ensamblado antes de iniciar la ejecución del programa. Prolog dispone de un conjunto de predicados predefinidos para modificar la base de datos de forma dinámica.
24 Predicados para manipulación de la base de datos Predicados asserta(x) assertz(x) retract(x) retract/assert: recorda/erase: Descripción Añade la cláusula X como la primera cláusula de este predicado. Como otros predicados de E/S siempre falla en el backtracking y no deshace sus propios cambios. Como asserta/1, sólo que añade la cláusula X como la última cláusula del predicado. Borra la cláusula X de la base de datos. Como en los casos anteriores no es posible deshacer los cambios, debido a este predicado en el backtraking. Modificar la base de datos de cláusulas. Compilan el término que se les pasa como argumento. Son costosas. Permiten grabar/borrar una base de datos de términos. Mecanismo más rápido que assert/retract, pero no son cláusulas del programa.
25 Construcción y descomposición de términos Existen tres predicados predefinidos para descomponer términos o construir nuevos términos: Term =.. L functor(term, F, N)?- f(a,b) =.. L. L = [f, a, b]?- T =.. [progenitor, miguel, maría ] T = progenitor(miguel, maría)?- Z =.. [p, X, g(x,y) ]. Z = p(x, g(x,y)) arg(n, Term, A) Prolog VI 25
26 Los procedimientos Findall findall(instance, Goal, List) List se unifica con la lista de todas las instancias de Instance que hacen cierto a Goal. Si Goal no es cierto para ningún valor de Instance, entonces List se unifica con la lista vacía [].
27 map Predicados standard de orden superior Permite aplicar un predicado de "mapeo" a una lista de datos. Dicho predicado debe admitir el siguiente modo de uso: MapPred(+Dato,-DatoMapeado). Debe tratarse, por tanto, de un predicado que transforma (mapea) un dato en otro. La función de map es la siguiente: para cada dato existente en una lista dada, se pasa como primer argumento a MapPred. El resultado de MapPred, es decir, el segundo argumento, se almacena en una lista resultado. El modo de uso es el siguiente: map(+listainicial, +MapPred, -ListaResultado). Ejemplo %Predicado de mapeo: %Dado un numero le suma una unidad mapeo(dato, DatoMapeado) :- DatoMapeado is Dato + 1. %% Ejecucion en el top-level:?- map([6,9,12],mapeo,l). L = [7,10,13]? yes?-
28 Predicados estándar de orden superior "findall" Se trata de un conjunto de predicados cuya finalidad es almacenar en una lista todas las soluciones de un predicado dado, entendiendo como tales, las ligaduras que se producen en una o varias variables libres que se indican explícitamente. Los predicados que componen la familia son: Genera una lista con todas las soluciones del predicado dado según el orden en que se van sucediendo. findall nunca falla, si no hay soluciones genera una lista vacía. Naturalmente, el propio findall/3 solamente tiene una solución. El modo de uso es el siguiente: findall(+termino_o_variable, +Objetivo, -ListaResultado).
29 Uso de findall uso erróneo findall( X, predicado(y), Resultado). findall( X, predicado(y,z), Resultado). findall( solucion(x,y), predicado(y,z), Resultado). usos correctos findall( X, predicado(x), Resultado). findall( X, predicado(x,y), Resultado). findall( solucion(x,y), predicado(x,y), Resultado).
30 Uso de findall uso erróneo findall( X, predicado(y), Resultado). findall( X, predicado(y,z), Resultado). findall( solucion(x,y), predicado(y,z), Resultado). usos correctos findall( X, predicado(x), Resultado). findall( X, predicado(x,y), Resultado). findall( solucion(x,y), predicado(x,y), Resultado).
31 Los procedimientos Bagof bagof(instance, Goal, List) Similar a Findall, excepto en cómo trata las variables que aparecen en Goal y no en Instance (conocidas como variables libres). Bagof hace backtracking y produce una lista List para cada posible ligadura de las variables libres. Se puede convertir una variable libre a no-libre usando ^. Si Goal no es cierto para ningún valor de Instance, entonces List se unifica con la lista vacía [].
32 Los procedimientos Setof setof(instance, Goal, List) Similar a Bagof, salvo en que List está ordenada (según el orden estándar) y sin repetidos.
33 La primera regla de cualquier tecnología utilizada en los negocios es que la automatización aplicada a una operación eficiente magnificará la eficiencia. La segunda es que si la automatización se aplica a una operación ineficiente, magnificará la ineficiencia Bill Gates
6. Operadores en PROLOG
6. Operadores en PROLOG 1. Definición de operadores propios 2. Operadores predefinidos Igualdad Entrada y Salida básicos Manejo de ficheros Evaluación de expresiones aritméticas Comparación de números
Más detallesPrefacio 25 Organización de la Unidad Didáctica Cómo utilizar el libro Objetivos docentes... 27
ÍNDICE Prefacio 25 Organización de la Unidad Didáctica.................... 25 Cómo utilizar el libro............................. 26 Objetivos docentes.............................. 27 1 Fundamentos de
Más detallesPrincipios de diseño de lenguajes
Capítulo 1 Principios de diseño de lenguajes Objetivo El alumno describirá los procedimientos y gramáticas empleadas en el diseño de los lenguajes de programación. Figura 1.1: Preguntas incómodas 1.1.
Más detallesLenguajes 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
Más detallesModelos de Desarrollo de Programas Y Programación Concurrente Clase N 3: 3 - Paradigmas de Programación
3 - Paradigmas de Programación En los inicios los lenguajes de programación imitaron y abstrajeron las operaciones de una computadora, lo cual trajo aparejado que el tipo de computadora para el cual fueron
Más detalles2.2 Nombres, Ligado y Ámbito
2.2 Nombres, Ligado y Ámbito Ligado estático y dinámico, reglas de ámbito y prueba de tipos. Conceptos Nombres e Identificadores Variables Tipos Ámbito Constantes Nombres Identificador que designa en el
Más detallesLenguajes de programación. Algoritmos y Estructuras de Datos I. Lenguajes compilados. Lenguajes compilados
Lenguajes de programación Algoritmos y Estructuras de Datos I Primer cuatrimestre de 2014 Departamento de Computación - FCEyN - UBA Teórica - clase 3 Introducción a la programación imperativa Las computadoras
Más detallesLenguajes de Programación
Lenguajes de ción Bloque 1. Complemento a Tema 1 1. Historia 2. Paradigmas de programación 3. Fases creación de un programa 4. Traducción: compilación e interpretación 1ª Generación Ordenadores sólo entienden
Más detallesTipo de Datos Abstractos y Programación Orientada a Objetos
Tipo de Datos Abstractos y Programación Orientada a Objetos DISEÑO Y PARADIGMAS DE LENGUAJES ING. EN INFORMÁTICA/ING. EN COMPUTACIÓN DEPARTAMENTO DE INFORMÁTICA UNIVERSIDAD NACIONAL DE SAN LUIS ARGENTINA
Más detallesPROGRAMACIÓN EN JAVA
1. INTRODUCCIÓN A LA PROGRAMACIÓN 1.1. Datos, algoritmos y programas 1.1.1. Definición de algoritmo 1.1.2. Datos 1.1.3. Características de un programa 1.2. Paradigmas de programación 1.2.1. Programación
Más detallesCAPÍ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
Más detallesUNIDAD IV Programación Funcional. Lic. Jesús Germán Andrés PAUTSCH - FCEQyN - UNaM
UNIDAD IV Programación Funcional Porqué? 2 Introducción Porque aprender programación funcional? - Recursión - Abstracción funcional - Funciones de primer orden Estos conceptos se han incorporado en la
Más detallesProgramació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
Más detallesProgramación Concurrente y distribuida
Working Hypothesis Programación Concurrente y distribuida Camilo Rueda 1 1 Universidad Javeriana-Cali 1 de febrero de 2010 Motivación Working Hypothesis Premisa El contexto de aplicación de la Ingeniería
Más detallesTema 1. Introducción a la Programación Orientada a Objetos
Tema 1. Introducción a la Programación Orientada a Objetos Dpto. Lenguajes y Ciencias de la Computación. E.T.S.I. Informática. Universidad de Málaga Programación Orientada a Objetos Dpto. Lenguajes y Ciencias
Más detallesESTRUCTURA DE LOS LENGUAJES DE PROGRAMACIÓN
ESTRUCTURA DE LOS LENGUAES DE PROGRAMACIÓN DEFINICION DE LOS LENGUAES SINTAIS (BNF + EBNF + DIAGRAMAS DE SINTAIS) + SEMÁNTICA OPERACIONAL (APROIMACIÓN UTULIZADA AQUÍ) FORMAL (A TRAVÉS DE MECANÍSMOS RIGUROSOS
Más detallesGuía del Curso IFCD052PO PROGRAMACIÓN EN JAVA
Guía del Curso IFCD052PO PROGRAMACIÓN EN JAVA Modalidad de realización del curso: Titulación: Online Diploma acreditativo con las horas del curso OBJETIVOS CONTENIDOS UNIDAD DIDÁCTICA 1. INTRODUCCIÓN A
Más detallesTema 1: Introducción a las Computadores y Lenguajes de. Programa
Tema 1: Introducción a las Computadores y Lenguajes de programación: Paradigmas de la programación. Programa Arquitectura del Computador Input Células de memoria Información (words) Dirección Output w
Más detallesBENEMERITA UNIVERSIDADD AUTONOMA DE PUEBLA FACULTAD DE CIENCIAS DE LA COMPUTACIÓN LICENCIATURA EN CIENCIAS DE LA COMPUTACIÓN
BENEMERITA UNIVERSIDADD AUTONOMA DE PUEBLA FACULTAD DE CIENCIAS DE LA COMPUTACIÓN LICENCIATURA EN CIENCIAS DE LA COMPUTACIÓN PROGRAMACION CONCURRENTE PARALELA Y PRACTICA 3 (PARTE 1 Y 2) HILOS POSIX NOMBRE:
Más detallesINDICE Parte I Algoritmos y herramientas de programación Capitulo 1. Computadoras y lenguajes de programación Actividades de Programación Resueltas
INDICE Prologo a la tercera edición xiii Prologo a la segunda edición xxvii Parte I Algoritmos y herramientas de programación Capitulo 1. Computadoras y lenguajes de programación 3 1.1. Organización de
Más detallesANEXO XVII DE LA RESOLUCION N
Hoja 1 de 7 UNIVERSIDAD NACIONAL DE CÓRDOBA Facultad de Ciencias Exactas Físicas y Naturales República Argentina Programa de: Código: Informática Carrera: Materia común Res. Nº Plan: Puntos:3.5 Escuela:
Más detallesÍndice general 7. Presentación 15
ÍNDICE GENERAL Índice general 7 Presentación 15 1. Introducción 19 1.1. Antecedentes históricos de la computación................... 19 1.2. Definiciones previas............................... 24 1.3.
Más detallesParadigmas de lenguajes de programación. Introducción a la programación imperativa. Lenguaje C. Programación imperativa
Paradigmas de lenguajes de programación Introducción a la programación imperativa Algoritmos y Estructuras de Datos I Paradigma: Definición del modo en el que se especifica el cómputo (que luego es implementado
Más detallesPráctica 2. Reutilización de código Elementos básicos del lenguaje Java Definición de variables, expresiones y asignaciones
Práctica 2 Reutilización de código Elementos básicos del lenguaje Java Definición de variables, expresiones y asignaciones Fundamentos de Programación Departamento de Lenguajes y Sistemas Informáticos
Más detalles1. Computadores y programación
1. Computadores y programación Informática y computadora (RAE) Informática (Ciencia de la computación) Conjunto de conocimientos científicos y técnicos que hacen posible el tratamiento automático de la
Más detallesLenguajes y paradigmas de programación
Lenguajes y paradigmas de programación Temas Que es un programa? Que es un lenguaje de programación? Características de los lenguajes de programación Paradigmas de programación Que es un programa? La unión
Más detallesLenguajes de Programación I
Lenguajes de Programación I Prof. Wilmer Pereira Universidad Simón Bolívar Primeros pasos en los lenguajes de alto nivel El primer computador (1940) tenía el poder cálculo de una calculadora actual Primer
Más detallesOrganización. Organización. Llenguatges de Programació Curs Gonzalo Besuievsky IMA - UdG. Horario Miércoles de 9:30 a 13:00
Llenguatges de Programació Curs 03-04 Gonzalo Besuievsky IMA - UdG Organización Horario Miércoles de 9:30 a 13:00 Tutorías Después de clase por mail: gonzalo@ima.udg.es Página del curso http://ima.udg.es/docencia/03-04/3157ra0008/index.html
Más detallesTema 1 INTRODUCCIÓN A LOS LENGUAJES DE PROGRAMACIÓN
Tema 1 INTRODUCCIÓN A LOS LENGUAJES DE PROGRAMACIÓN - Introducción - Sintaxis - Semántica básica - Tipos de datos - Expresiones y enunciados - Procedimientos y ambientes - Tipos abstractos de datos y módulos
Más detallesIntroducción a la Programación en C
Christopher Expósito-Izquierdo cexposit@ull.edu.es Airam Expósito-Márquez aexposim@ull.edu.es Israel López-Plata ilopezpl@ull.edu.es Belén Melián-Batista mbmelian@ull.edu.es José Marcos Moreno-Vega jmmoreno@ull.edu.es
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 detallesModelos 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
Más detallesRELACIÒN ENTRE LA PROGRAMACIÒN ORIENTADA A OBJETOS Y LA ESTRUCTURADA
RELACIÒN ENTRE LA PROGRAMACIÒN ORIENTADA A OBJETOS Y LA ESTRUCTURADA La Programación Orientada a Objetos toma las mejores ideas de la programación estructurada la combina con nuevos y poderosos conceptos
Más detallesUnidad Didáctica 3. Tipos genéricos. Fundamentos de Programación Departamento de Lenguajes y Sistemas Informáticos
Unidad Didáctica 3 Tipos genéricos Fundamentos de Programación Departamento de Lenguajes y Sistemas Informáticos Definición de tipo genérico Hablamos de un tipo genérico cuando el tipo en cuestión depende
Más detallesEjecución de hebras. En realidad, todas las aplicaciones escritas en Java son aplicaciones multihebra (recuerde el recolector de basura).
Ejecución de hebras En realidad, todas las aplicaciones escritas en Java son aplicaciones multihebra (recuerde el recolector de basura). Hebras vs. Procesos Los cambios de contexto son más costosos en
Más detallesConcepto de compilador Intérprete Fases de un Compilador Herramientas de construcción de Compiladores
18:55 1 2 Temas Concepto de compilador Intérprete Fases de un Compilador Herramientas de construcción de Compiladores Objetivo Que el estudiante logre conocer, comprender y manejar conceptos y técnicas
Más detallesAgradecimientos. Nota de los autores. 1 Problemas, algoritmos y programas 1
Prologo Agradecimientos Nota de los autores Índice general I III V VII 1 Problemas, algoritmos y programas 1 1.1 Programas y la actividad de la programación.................... 4 1.2 Lenguajes y modelos
Más detallesUnidad III: Introducción a la Programación
Unidad III: Introducción a la Programación 3.1 Características del lenguaje de programación Un lenguaje de programación es un idioma artificial diseñado para expresar procesos que pueden ser llevadas a
Más detallesIntroducción a la programación. Cecilia Manzino
Paradigmas Un paradigma es un modelo o patrón en cualquier disciplina científica. Un paradigma de programación representa un estilo de programación en cual se escriben soluciones a problemas en términos
Más detallesJava. Introducción a la Programación Orientada a Objetos
Java Java es un lenguaje de programación presentado en 1995 enfocado a: soportar los fundamentos de la programación orientada a objetos. generar código independiente de la arquitectura de la computadora
Más detallesLenguajes de programación
Lenguajes de programación por Iván Cruz A través de la historia, el hombre siempre ha buscado la manera de comunicarse con otros seres vivos, debido a ello se crearon diversas formas de comunicación, tales
Más detallesParadigmas de Programación
Cátedra: PARADIGMAS DE PROGRAMACION Código: K9529 Carrera: INGENIERIA EN SISTEMA DE INFORMACIÓN Plan: ORD. Nº 1150 Año: 2013 Régimen: CUATRIMESTRAL Horas semanales: 8 Programa Analítico Paradigmas de Programación
Más detallesVARIABLES, CONSTANTES Y EXPRESIONES ASIGNACIÓN. TIPOS ELEMENTALES. PRECEDENCIA DE LOS ESTRUCTURAS DE CONTROL. CONDICIONAL E
Java Java es un lenguaje de programación presentado en 1995 enfocado a: soportar los fundamentos de la programación orientada a objetos. generar código independiente de la arquitectura de la computadora
Más detallesLenguajes de Cuarta Generación
Lenguajes de Cuarta Generación Diana Marcela SánchezS http://www.csi.map.es/csi/metrica3/index.html www.csi.map.es/csi/metrica3/ /metrica3/index.htmlindex.html Que es un programa? La unión de una secuencia
Más detalles8.1.- FUNCIONES Y PROCEDIMIENTOS DEFINIDOS POR EL USUARIO EN TURBO PASCAL.
8.1.- FUNCIONES Y PROCEDIMIENTOS DEFINIDOS POR EL USUARIO EN TURBO PASCAL. PROCEDIMIENTOS. CONCEPTO Un procedimiento es un programa que realiza una tarea específica. Puede recibir cero o más valores del
Más detallesCOLEGIO DE ESTUDIOS DE POSGRADO DE LA CIUDAD DE MÉXICO
COLEGIO DE ESTUDIOS DE POSGRADO DE LA CIUDAD DE MÉXICO ELABORO: ALEJANDRA FUERTES FRANCISCO TEMA: LENGUAJES DE PROGRAMACIÓN INTRODUCCIÓN Un lenguaje de programación es un conjunto de instrucciones que
Más detallesAplicació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:
Más detallesDra. Jessica Andrea Carballido
Dra. Jessica Andrea Carballido jac@cs.uns.edu.ar Dpto. de Ciencias e Ingeniería de la Computación UNIVERSIDAD NACIONAL DEL SUR Problemas, Algoritmos y Programas PROBLEMA Solución ALGORITMO PROGRAMA Problemas,
Más detalles14/03/2018. Problemas, Algoritmos y Programas. Problemas, Algoritmos y Programas. Programas y Lenguajes. Programas y Lenguajes. Programas y Lenguajes
Problemas, Algoritmos y Programas PROBLEMA Solución Dra. Jessica Andrea Carballido jac@cs.uns.edu.ar ALGORITMO Dpto. de Ciencias e Ingeniería de la Computación UNIVERSIDAD NACIONAL DEL SUR PROGRAMA Problemas,
Más detallesUnidad 1. Análisis de Algoritmos. Ing. Leonardo R. L. Estructura de datos - Generalidades Unidad I Pág 1
Unidad 1 Análisis de Algoritmos Ing. Leonardo R. L. Estructura de datos - Generalidades Unidad I Pág 1 GENERALIDADES Qué se necesita para escribir un programa eficiente? Para diseñar programas eficientes
Más detallesDra. Jessica Andrea Carballido
Dra. Jessica Andrea Carballido jac@cs.uns.edu.ar Dpto. de Ciencias e Ingeniería de la Computación UNIVERSIDAD NACIONAL DEL SUR Problemas, Algoritmos y Programas PROBLEMA Solución ALGORITMO PROGRAMA Problemas,
Más detallesGUIA EXAMEN FINAL/EXTRAORDINARIO
INSTITUTO SAN ANGEL DEL SUR ESCUELA NACIONAL PREPARATORIA INCORPORADA A LA UNAM CLAVE 1261 CICLO 2012-2013 Nombre del profesor: Ing. Jorge Padilla Gutiérrez Asignatura: INFORMATICA V GUIA EXAMEN FINAL/EXTRAORDINARIO
Más detallesINDICE Parte I. Conceptos 1. El estudio de los lenguajes de programación 2. Cuestiones de diseño de lenguajes
INDICE Parte I. Conceptos 1 1. El estudio de los lenguajes de programación 1.1. Por qué estudiar lenguajes de programación? 2 1.2. Breve historia de los lenguajes de programación 1.2.1. Desarrollo de los
Más detallesProgramación Orientada a Objetos Profr. Pedro Pablo Mayorga
Actividad 3 Historia de los paradigmas de programación Unidad 1 Paradigma de programación Un paradigma de programación representa un enfoque particular o filosofía para la construcción del software. No
Más detallesINICIACIÓN A LA PROGRAMACIÓN 1ª parte
TEMA 4 INICIACIÓN A LA PROGRAMACIÓN 1ª parte Qué es la programación? La programación es el proceso de diseñar, codificar, depurar y mantener el código fuente de programas computacionales. En la actualidad,
Más detalles2. Indica cuál de las siguientes afirmaciones es cierta:
Nombre:. Indica cuál de las siguientes afirmaciones es cierta: El diseño de un programa procedural está guiado por la división en tareas a realizar, mientras que el diseño orientado a objetos está dirigido
Más detallesUNIVERSIDAD DE SAN CARLOS DE GUATEMALA FACULTAD DE INGENIERIA ESCUELA DE CIENCIAS Y SISTEMAS
UNIVERSIDAD DE SAN CARLOS DE GUATEMALA FACULTAD DE INGENIERIA ESCUELA DE CIENCIAS Y SISTEMAS PROGRAMA DEL CURSO INTRODUCCION A LA PROGRAMACION Y COMPUTADORAS 1 CODIGO: 770 CREDITOS: 4 ESCUELA: Ciencias
Más detallesPARADIGMA y LENGUAJES DE PROGRAMACIÓN
CATEDRA CARRERA: PARADIGMA y LENGUAJES DE PROGRAMACIÓN LICENCIATURA EN SISTEMAS DE INFORMACION FACULTAD DE CIENCIAS EXACTAS QUIMICAS Y NATURALES UNIVERSIDAD NACIONAL DE MISIONES Año 2017 2do Cuatrimestre
Más detallesALGORITMICA Y PROGRAMACION POR OBJETOS I
ALGORITMICA Y PROGRAMACION POR OBJETOS I Nivel 1 Problemas, Soluciones y Programas Marcela Hernández Hoyos Solucionar un Problema = Construir un Programa Problema Programador Herramientas y Lenguajes Análisis
Más detallesConceptos de Programación Orientada a Objetos
Paradigmas de programación Prog. orientada a objetos Conceptos de Programación Orientada a Objetos Abstracción de Programación estructurada Programación imperativa 2 Programación estructurada (I) Programación
Más detallesProgramación orientada a objetos
Programación orientada a objetos Dra. Elisa Schaeffer elisa@yalma.fime.uanl.mx 12 de febrero de 2007 MECAS512 Estructura de Datos en C++ PROGRAMACIÓN ORIENTADA A OBJETOS un paradigma de programación programa
Más detallesabril de 2017 Desarrollo de aplicaciones en Java Tipos de datos primitivos Tipos de datos Elementos de aplicaciones simples
Desarrollo de aplicaciones en Java Generación de código fuente Compilación Ejecución Elementos de aplicaciones simples EII147-01-02 Introducción a las tecnologías de información Escuela de Ingeniería Industrial
Más detallesApuntes de Programación y estructuras de datos. Control de datos
Apuntes de Programación y estructuras de datos. Control de datos Nikos Mylonakis, Fernando Orejas y Ana Cristina Zoltan nicos@lsi.upc.edu Dept. Llenguatges i Sistemes Informátics Universitat Politécnica
Más detallesLa secuencia de referencias a páginas para el proceso B es:
SISTEMAS OPERATIVOS (Código: 71902048) Enero 2017 Material permitido: Solo calculadora no programable Tiempo: 2 horas N1 Aviso 1: Todas las respuestas deben estar debidamente razonadas. Aviso 2: Escriba
Más detallesAREA A LA QUE PERTENECE: 103 Matemática Básica 2 34 créditos POST REQUISITO: CATEGORIA: Obligatorio SEMESTRE: Primer Semestre 2015
UNIVERSIDAD DE SAN CARLOS DE GUATEMALA FACULTAD DE INGENIERIA ESCUELA DE CIENCIAS NOMBRE DEL CURSO: Introducción a la Programación Y Computación 1 CODIGO: 770 CREDITOS: 4 ESCUELA: Ciencias y Sistemas AREA
Más detallesFundamentos de Computadores y Lenguajes
Fundamentos de Computadores y Lenguajes 1. Elementos básicos de los lenguajes 2. Instrucciones de control 3. Tipos de datos 4. Métodos 5. Modularidad y Abstracción 6. Tratamiento de errores 7. Entrada/salida
Más detallesUnidad II. Fundamentos de programación en Java. Ing. José Luis Llamas Cárdenas
Unidad II Fundamentos de programación en Java Ing. José Luis Llamas Cárdenas En java para poder escribir se emplea el objeto System.out, t pero para leer del teclado es necesario emplear System.in Et Este
Más detallesAlgoritmos 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 detallesTema 5. Soporte lógico de computadoras.
Tema 5. Soporte lógico de computadoras. 5.1 Conceptos generales Como se ha visto previamente, un ordenador consta de dos partes, una la parte física, conocida como "Hardware" y otra, la parte lógica denominada
Más detallesESCUELA SUPERIOR POLITECNICA DEL LITORAL
ESCUELA SUPERIOR POLITECNICA DEL LITORAL LENGUAJES DE PROGRAMACIÓN UNIDAD ACADÉMICA: CARRERA: ESPECIALIZACIÓN: ÁREA: TIPO DE MATERIA: EJE DE FORMACIÓN: Facultad de Ingeniería en Electricidad y Computación
Más detallesPROGRAMACIÓN ORIENTADA A OBJETOS CON JAVA
PROGRAMACIÓN ORIENTADA A OBJETOS CON JAVA Angel García Beltrán y José María Arranz Santamaría Sección de Publicaciones Escuela Técnica Superior de Ingenieros Industriales Universidad Politécnica de Madrid
Más detallesUNIVERSIDAD AUTÓNOMA DE BAJA CALIFORNIA
UNIVERSIDAD AUTÓNOMA DE BAJA CALIFORNIA DIRECCIÓN GENERAL DE ASUNTOS ACADÉMICOS PROGRAMA DE ASIGNATURA POR S I. DATOS DE IDENTIFICACIÓN 1. Unidad Académica: Facultad de Ciencias Químicas e Ingeniería 2.
Más detallesArquitecturas cliente/servidor
Arquitecturas cliente/servidor Creación de Sockets Cliente Servidor 1 Creación de Sockets Cliente/Servidor Sockets en TCP Concepto de Hilos Definición de DAEMON Sockets en UDP 2 THREADS 3 Qué es un thread?
Más detallesTEMA 1. PROGRAMACIÓN DE UN COMPUTADOR
Tema 1. Programación de un computador TEMA 1. CIÓN DE UN COMPUTADOR 1. CONCEPTO DE 2. LENGUAJES DE CIÓN 2.1. LENGUAJE MÁQUINA 2.2. LENGUAJE ENSAMBLADOR 2.3. LENGUAJE DE ALTO NIVEL 3. ALGORITMOS. REPRESENTACIÓN
Más detallesPROGRAMA DE CURSO. Escuela de Ingeniería de Sistemas y Computación Universidad del Valle Santiago de Cali, Colombia. Febrero 2007
PROGRAMA DE CURSO Escuela de Ingeniería de Sistemas y Computación Universidad del Valle Santiago de Cali, Colombia Febrero 2007 Curso: ALGORITMIA Y PROGRAMACIÓN Código: 750001M Modalidad: Presencial Teórico
Más detallesPrincipios de Computadoras II
Departamento de Ingeniería Electrónica y Computadoras Ing. Ricardo Coppo Qué es una computadora? Una computadora es una máquina digital y sincrónica con capacidad de cálculo numérico y lógico controlada
Más detallesProgramación Orientada a Objetos
Unidad III Programación Orientada a Objetos en Java Programación Orientada a Objetos Programación I - 0416202 Contenido Esta lección abarca los siguientes temas con respecto a Java: Qué es Java? Breve
Más detallesIntroducción a la programación: Contenido. Introducción
Introducción a la programación: Contenido Introducción a la programación:... 1 Introducción... 1 1. Procesamiento automatizado de información... 1 2. Concepto de algoritmo.... 2 3. Lenguajes de programación....
Más detallesIntroducción. Introducción y conceptos de POO. En qué consiste la POO? Vocabulario. Definiciones
Introducción Fernández Universidad Autónoma de Madrid 20 de febrero de 2009 Introducción En qué consiste la Programación Orientada a Objetos? Vocabulario básico Ejemplo sencillo En qué consiste la POO?
Más detallesLenguajes de Programación
Lenguajes de Programación Entidades, atributos y ligaduras Ma. Laura Cobo Departamento de Ciencias e Ingeniería de la Computación 2018 Prof. Ma. Laura Cobo Página 1 Entidades Nombres o identificadores:
Más detallesMetodología de Desarrollo de Programas
Metodología de Desarrollo de Programas Prof. Judith Barrios Albornoz Departamento de Computación Escuela de Ingeniería de Sistemas Facultad de Ingeniería Universidad de Los Andes Semestre A_2013 Este material
Más detallesIntroducción a la programación
Introducción a la programación Conceptos Básicos El objetivo fundamental de éste curso es enseñar a resolver problemas mediante una computadora. El programador de computadoras es antes que nada una persona
Más detallesIntroducción al Lenguaje "C++"
UNIDAD 2 Introducción al Lenguaje "C++" 1.- La programación Orientada a Objetos. La Programación Orientada a Objetos no es un concepto nuevo, data de hace unas dos decadas. El origen de la Programación
Más detallesPOST REQUISITO: CATEGORIA: Obligatorio SEMESTRE: Primer Semestre 2015 HORAS POR SEMANA DEL LABORATORIO: DIAS QUE SE IMPARTE EL LABORATORIO:
UNIVERSIDAD DE SAN CARLOS DE GUATEMALA FACULTAD DE INGENIERIA ESCUELA DE CIENCIAS NOMBRE DEL CURSO: Introducción a la Programación Y Computación 1 CODIGO: 770 CREDITOS: 4 ESCUELA: Ciencias y Sistemas AREA
Más detallesParadigma Funcional Caso de estudio: ML. Lenguajes de Programación 2017
Paradigma Funcional Caso de estudio: ML Lenguajes de Programación 2017 Paradigma Funcional FUNCIÓN: Mapeo de un dominio en un rango El mapeo se puede describir por medio de una EXPRESIÓN f(1) = 2 f(2)
Más detallesLenguajes de Programación I
Lenguajes de Programación I Subrutinas - Pasaje de Ernesto Hernández-Novich Copyright c 2006-2010 Subrutinas Mecanismo principal para abstracción de control. Asocian un nombre a una secuencia
Más detallesIntroducción y conceptos de POO
Fernández Universidad Autónoma de Madrid 20 de febrero de 2009 Introducción Introducción En qué consiste la Programación Orientada a Objetos? Vocabulario básico Ejemplo sencillo En qué consiste la POO?
Más detallesConstrucciones del Lenguaje Java
Construcciones del Lenguaje Java Autor: Juan Alberto López Cavallotti Versión de Java: 5 / 6 Comentarios Comentario de Línea Comentario Multilínea //Esto es un comentario. /* Esto comenta varias lineas.
Más detallesTema 1.- Conceptos básicos de la OO
Tema 1.- Conceptos básicos de la OO 1. HISTORIA DE LOS CONCEPTOS... 2 2. OBJETOS Y MENSAJES... 3 3. CLASES DE OBJETOS... 5 4. HERENCIA... 8 5. OTROS CONCEPTOS... 9 6. DESARROLLO ORIENTADO A OBJETOS...
Más detallesIntroducción a la programación
Introducción a la programación PROGRAMACION I Grado en Matematicas Informática Programación I - 2015/2016 Introducción 1 Introducción a la programación Computador: aparato electrónico capaz de interpretar
Más detallesobtenidos a partir de los objetos que manipula. un nuevo paradigma de programación, La POO es Clases su forma de módulo.
(a) definición (b) elementos y notación (c) modelo de computación (d) ejecución de un sistema (e) exportación selectiva Clases Programación Orientada a Objetos DCIC UNS 2002 47 La POO es un nuevo paradigma
Más detallesEvolución del software y su situación actual
Evolución del software y su situación actual El software es el conjunto de programas que permite emplear la PC, es decir, es el medio de comunicación con la computadora, el control de sus funciones y su
Más detallesEnteros. Son los números que no contienen componentes fraccionarios y, por tanto, no contienen punto decimal.
LENGUAJE DE PROGRAMACIÓN TURBO PASCAL El lenguaje de programación de alto nivel Pascal fue diseñado el 1968 por Niklaus Wirth con una finalidad eminentemente pedagógica El 1983, el Pascal fue estandarizado
Más detallesUniversidad Rafael Urdaneta Escuela de Ingeniería de Computación. MSc Jaime Soto. Problemas, algoritmos y programas
Universidad Rafael Urdaneta Escuela de Ingeniería de Computación Problemas, algoritmos y programas Paradigmas y Lenguajes de programación Desarrollo sistemático de aplicaciones Un modelo de computador
Más detallesUnidad I: Organización del Computador. Ing. Marglorie Colina
Unidad I: Organización del Computador Ing. Marglorie Colina Arquitectura del Computador Atributos de un sistema que son visibles a un programador (Conjunto de Instrucciones, Cantidad de bits para representar
Más detallesCapítulo 3. Introducción a la programación. Continuar
Capítulo 3 Introducción a la programación Continuar Introducción Java es un lenguaje que tiene muchas ventajas frente a otros lenguajes de programación: es open source (código abierto), esto permite ver
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 detalles