Lenguajes de Programación I
|
|
|
- Nicolás Cordero Maldonado
- hace 7 años
- Vistas:
Transcripción
1 Lenguajes de Programación I Subrutinas - Pasaje de Ernesto Hernández-Novich <[email protected]> Copyright c
2 Subrutinas Mecanismo principal para abstracción de control. Asocian un nombre a una secuencia de instrucciones. Comportamiento varía según parámetros. Funciones cuando retornan valores. Puras No causan efectos de borde. Impuras Causan efectos de borde. Procedimientos cuando no retornan valores. En la mayoría de los lenguajes, deben ser declaradas antes de ser utilizadas.
3 Registro de Activación Profundizando lo que ya estudiamos Cada rutina invocada tiene un Registro de Activación en la Pila de Ejecución. Se arma en parte por el llamador y en parte por el llamado. Se desarma cuando la rutina retorna. Construcción basada en aprovechar características del hardware subyacente. Stack Pointer registro que apunta al último elemento utilizado de la Pila de Ejecución. Frame Pointer registro que apunta a una ubicación fija dentro del Registro de Activación. CALL y RETURN auxilian al código generado por el compilador. En lenguajes dinámicos parte o todo este comportamiento debe ser simulado en el heap.
4 Registro de Activación La importancia de ser Frame Pointer Posiciones de objetos expresada como desplazamientos a partir del frame pointer. Objetos con Tamaño Fijo Desplazamientos son conocidos a tiempo de compilación. Ubicados cerca del frame pointer ambos lados. Acceso directo a tiempo de ejecución. Objetos con Tamaño Variables Desplazamientos desconocido a tiempo de compilación. Ubicados lejos del frame pointer ambos lados. Acceso indirecto a tiempo de ejecución (dope vector). Aplica para argumentos y variables orientación diferente Locales después de la parte estática en el llamado. Argumentos antes de la parte estática en el llamador.
5 Cadenas Dinámica y Estática Criterios de inclusión y dependencia de ejecución Cadena Dinámica representa el orden de llamadas Se mantiene conservando en cada Registro de Activación, el apuntador al Registro de Activación anterior. Responsabilidad del llamado a tiempo de ejecución. Indispensable para alcance dinámico y excepciones. La Cadena Estática representa el anidamiento de rutinas (en lenguajes donde tenga sentido). Responsabilidad del llamador a tiempo de compilación. Indispensable para alcance estático a objetos no locales. Aprovecha acceso indirecto del procesador de ser posible.
6 Mantenimiento del Registro de Activación Responsabilidad compartida entre llamador y llamado Usualmente tres fragmentos de código generados a tiempo de compilación: Secuencia de Llamada código ejecutado por el llamador inmediatamente antes de transferir el control a la subrutina. Prólogo código ejecutado por el llamado justo al entrar en la subrutina. Epílogo código ejecutado por el llamado justo antes de retornar de la subrutina.
7 Qué se hace en la Secuencia de Llamada? Salvar registros cuyo valor sea necesario al retornar. Evaluar y colocar parámetros en la pila tamaño variable van antes que tamaño fijo. Reserva espacio para valores de retorno en caso que usen la pila (si aplica). Calcular Cadena Estática y colocarla en la pila (si aplica). Saltar a la Subrutina (instrucción especial si es posible). La subrutina ejecuta y eventualmente retorna. Tomar los valores de retorno (si aplica). Restaurar registros salvados.
8 Qué se hace en el Prólogo? Salvar valor actual del frame pointer esto extiende la cadena dinámica. Apuntar el frame pointer a la ubicación apropiada usualmente el tope actual de la pila. Reservar espacio en la pila para las variables locales modificación directa del stack pointer. Salvar registros que sean utilizados en la subrutina.
9 Qué se hace en el Epílogo? Colocar el valor de retorno en la posición adecuada del Registro de Activación del llamador (si aplica). Restaurar registros que fueron utilizados en la subrutina. Restaurar los valores del stack pointer y frame pointer. Asignar frame pointer al stack pointer. Desempilar frame pointer. Retornar el control al llamador instrucción especial si es posible.
10 Cómo se mantiene la Cadena Estática? A tiempo de compilación se sabe El anidamiento de rutinas. Quién llama a quién. Cada vez que el compilador va a generar código para una llamada, debe hacer una observación simple: Si el llamado está anidado dentro del llamador: La Cadena Estática del llamado debe apuntar al llamador. Trivial basta copiar el frame pointer propio como cadena estática del llamado. Si el llamado está k 0 alcances hacia afuera: k alcances envuelven al llamador. El llamador debe seguir su cadena estática k veces y copiar ese valor como cadena estática del llamado.
11 Pasaje de Permiten influir sobre el comportamiento de la subrutina. Formales indicados simbólicamente en la definición proc foo(int bar, bool baz, float qux) Reales pasados efectivamente a tiempo de ejecución foo(42,true,3.1415) También llamados argumentos o actuales. Invocación Notación prefija en la mayoría de los lenguajes. LISP asume que primer símbolo de expresión es la función. Notación infija opcional (ML, Haskell). Notación mezclada como en Smalltalk.
12 Modalidades para el Pasaje de Pasaje por Valor (Call by Value) Pasaje por Valor Implantación simple Calcular el valor del parámetro actual. Espacio para el formal en la pila recibe una copia del valor calculado. Puede optimizarse usando un registro en lugar de espacio en la pila. Ventaja imposible que la rutina modifique los actuales. Desventaja costoso pasar objetos grandes.
13 Modalidades para el Pasaje de Pasaje por Referencia Pasaje por Referencia Implantación simple Calcular la dirección del parámetro actual. Espacio para el formal en la pila recibe una copia del valor calculado es una referencia. Se usa en la subrutina como un l-value. Ventaja eficiente, pues no hay copia de valores ni requiere espacio adicional. Desventajas Acceso más lento al menos una indirección. Los actuales deben ser l-values. Crean aliases.
14 La diferencia... x : integer procedure foo( y : integer ) y := 3; print x; end x := 2 foo(x) print x Si y es pasada por valor, imprime 2 2. Si y es pasada por referencia, imprime 3 3.
15 Variaciones en las Modalidades Por valor o por referencia? Lenguajes que sólo pasan por valor la mayoría. Simular pasaje por referencia pasando un apuntador. Casos especiales (arreglos en C). Lenguajes que sólo pasan por referencia Fortran. Lenguajes que ofrecen ambos mecanismos a través de palabras reservadas (var en Pascal).
16 Variaciones en las Modalidades Sólo-Lectura (Modula-3, C) Eficiencia de pasaje por referencia. Seguridad de pasaje por valor. Se indica en declaración del formal que no pueda ser modificado dentro de la subrutina. Dirección del Pasaje (Ada) in, out y inout. Los parámetros deben ser copiados al entrar. in es equivalente a pasaje por valor. out es denominado llamada por resultado. inout es denominado llamada por valor/resultado. El efecto de los cambios para un inout puede o no ser inmediato.
17 Clausuras En lenguajes que permiten pasar subrutinas como parámetros actuales Debe pasarse la referencia al cuerpo de la subrutina. Debe pasarse el ambiente de referencia solamente si el lenguaje soporta anidamiento de subrutinas. Rutinario y simple en lenguajes funcionales porque los ambientes de referencia sólo interesan por sus valores. En lenguajes imperativos el ambiente de referencia incluye referencias a los objetos alcanzables al momento de construir la clausura.
18 de Propósito Especial Arreglos con Forma Dinámica (Conformant Arrays). Cuando la forma del arreglo sólo se conoce a tiempo de ejecución. Pasar una referencia a la base y las dimensiones. Valores por defecto para parámetros omitidos. nombrados (keyword parameters) vs. parámetros posicionales. Número variable de argumentos. Recibir todo como una lista y manipularla (LISP, Perl). Utilizar macros/librerías para acceder a ellos en la pila de ejecución (C). Obligar a que todos sean del mismo tipo (C#, Java).
19 Valores de Retorno La mayoría de los lenguajes son restrictivos al respecto: Un valor escalar....que podría ser un apuntador. Lenguajes más flexibles permiten retornar elementos de tipos compuestos (registros y listas) o funciones. Cómo retornarlo? Instrucción explícita de retorno (return). Valor de la última expresión evaluada.
Lenguajes de Programación I
Lenguajes de Programación I Tipos de Datos Compuestos Ernesto Hernández-Novich Copyright c 2006-2010 Registros Registros agrupan datos de tipos heterogéneos para almacenarlos y manipularlos
Diseño de compiladores. Organización de memoria. Organización de memoria. Organización de memoria. Zona de código 04/05/2014 ORGANIZACIÓN DE MEMORIA
Diseño de compiladores Gestión de la memoria / Generación de código ORGANIZACIÓN DE MEMORIA Organización de memoria Depende del tipo de lenguaje (declarativos, imperativos), del compilador y del sistema
2.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
Tema 6 Organización y gestión de la memoria
Departamento de Tecnologías de la Información Tema 6 Organización y gestión de la memoria Ciencias de la Computación e Inteligencia Artificial Índice 6.1 Organización de la memoria en tiempo de ejecución
Apuntes 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 [email protected] Dept. Llenguatges i Sistemes Informátics Universitat Politécnica
Tema 3 SUBRUTINAS. Estructura de Computadores OCW_2015 Nekane Azkona Estefanía
Tema 3 SUBRUTINAS ÍNDICE Definición e instrucciones básicas Soporte para el tratamiento de subrutinas (ejecución de la subrutina y gestión del bloque de activación) Interrupciones vs llamadas a procedimiento
Programación Avanzada CONCEPTOS BÁSICOS DE IMPLEMENTACIÓN EN C++
Programación Avanzada CONCEPTOS BÁSICOS DE IMPLEMENTACIÓN EN C++ OBJETIVO En este documento se presentan las construcciones básicas de orientación a objetos del lenguaje de programación C++, y recomendaciones
Lenguajes de Programación. Juan Zamora O. Semestre II Nombres, Ambitos y Ligados
Lenguajes de Programación Nombres, Ambitos y Ligados Juan Zamora O. Semestre II - 2013 Nombres, Ambitos y Ligados Aspectos semánticos fundamentales de las variables. Conceptos a revisar: Abstracción Nombres
Lenguajes de Programación
Lenguajes de Programación Entidades, atributos y ligaduras Ma. Laura Cobo Departamento de Ciencias e Ingeniería de la Computación 2017 Prof. Ma. Laura Cobo Página 1 Entidades Nombres o identificadores:
Tipo 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
ESTRUCTURA 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
Construyendo Programas más Complejos
Arquitectura de Ordenadores Construcciones de Alto Nivel en Ensamblador Abelardo Pardo [email protected] Universidad Carlos III de Madrid Departamento de Ingeniería Telemática Construyendo Programas más
Capítulo 3. Subprogramas. 3.1 Subprogramas FUNCTION
Capítulo 3 Subprogramas Con lo explicado hasta aquí se pueden escribir programas sencillos y no demasiado largos. Pero varias razones justifican la necesidad de disponer de otro tipo de recursos. Por una
Tema 8 Gestión de la memoria en tiempo de ejecución.
Traductores, Compiladores e Intérpretes 1 Tema 8 Gestión de la memoria en tiempo de ejecución. S Organización de la memoria en tiempo de ejecución. Cuando un programa se ejecuta sobre un sistema operativo
Paradigmas 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
SUBPROGRAMAS. Los subprogramas pueden ser invocados varias veces desde diferentes partes del programa.
SUBPROGRAMAS Los subprogramas son un conjunto de instrucciones que realizan una labor específica y se comportan de manera independiente en un programa. Los subprogramas facilitan: Descomponer la complejidad
Para crear un arreglo de cualquier tipo de elementos la sintaxis es:
Arreglos (arrays) Un arreglo es una estructura de datos homogénea o conjunto de elementos del mismo tipo. En Java se pueden manejar arreglos de elementos de tipo primitivo (8 tipos primitivos hay en Java)
Clases y Objetos en C++
Informática II Clases y Objetos en C++ Introducción Las variables de los tipos fundamentales de datos no son suficientes para modelar adecuadamente objetos del mundo real. alto, ancho y longitud para representar
UNIDAD 3 Modularidad
Modularidad Funciones de biblioteca, uso. Módulos. Concepto. Clasificación. Ámbito de identificadores. Transferencia de información a y desde procedimientos: los parámetros, tipos de parámetros. Conceptos
Programación I Recursividad.
Programación I Recursividad http://proguno.unsl.edu.ar [email protected] Recursividad Técnica de resolución de problemas particulares. La definición de un concepto es recursiva si el concepto es definido
directamente indirectamente
PUNTEROS EN C PUNTEROS Permiten simular el pasaje de parámetros por referencia. Permiten crear y manipular estructuras de datos dinámicas. Su manejo es de fundamental importancia para poder programar en
PUNTEROS (Apuntadores)
PUNTEROS (Apuntadores) Unidad III INTRODUCCIÓN A PUNTEROS. CONCEPTOS BÁSICOS. DECLARACIÓN DE PUNTEROS. PUNTEROS Como una colección de posiciones de memoria consecutivas. En ella se almacenan los distintos
Procesadores 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,
Lenguajes 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
Procesadores de lenguaje Tema 6 La tabla de símbolos
Procesadores de lenguaje Tema 6 La tabla de símbolos Departamento de Ciencias de la Computación Universidad de Alcalá Resumen La tabla de símbolos. Requerimientos de información. Diseño de la tabla de
Nombres, Ligaduras, Chequeo de Tipos y Alcance. Luis Garreta (Basados en el libro de Robert Sebesta)
Nombres, Ligaduras, Chequeo de Tipos y Alcance Luis Garreta [email protected] (Basados en el libro de Robert Sebesta) 1 Nombres, Ligaduras, Chequeo de Tipos y Alcance Nombres Variables El concepto
Manual de referencia de C++ Parte IV Variables Punteros. Preparado por Prof. Luis A. Ortiz Ortiz
Manual de referencia de C++ Parte IV Variables Punteros Preparado por Prof. Luis A. Ortiz Ortiz TABLA DE CONTENIDO Memoria de la computadora... 1 Representación de la memoria de la computadora... 1 Declaración
Capítulo 9 Gestión de la memoria en tiempo de ejecución
Java a tope: Traductores y compiladores con Lex/Yacc, JFlex/Cup y JavaCC Capítulo 9 Gestión de la memoria en tiempo de ejecución 9.1 Organización de la memoria durante la ejecución Como ya se comentó en
Modularización en lenguaje C. Funciones
Modularización en lenguaje C Funciones Segundo Cuatrimestre 2016 F. de la Informática- Int.a la Computación - Int.a la Programación 1 Ejercicio: Dado el siguiente algoritmo incompleto codificado en Lenguaje
Aspectos de los LP. Diseño de compiladores. Estático vs. Dinámico. Estático vs. Dinámico. Scope. Scope 24/03/2015
Aspectos de los LP Diseño de compiladores Lenguajes de Programación Antes de comenzar con la construcción de un compilador, debemos comprender los conceptos basicos del lenguaje de programación con el
Programació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
LENGUAJES DE PROGRAMACIÓN. Solución al Ejercicio de Autocomprobación 1
Solución al Ejercicio de Autocomprobación 1 PREGUNTA 1 (1 punto) Señale razonadamente la veracidad o falsedad de las afirmaciones siguientes: A. La diferencia fundamental entre los lenguajes ensamblador
Memoria en C++ Punteros - Referencias Clases Y ahora, a trabajar! Memoria Dinámica en C++
Qué es una variable? Variables Memoria Matemática: una etiqueta que representa a un valor en una expresión: f (y) = y 2 + 2y Programación: Nombre simbólico dado a un valor residente en la memoria. Propiedades
Principios 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.
Unidad 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
Principios de Computadoras II
Departamento de Ingeniería Electrónica y Computadoras Ing. Ricardo Coppo [email protected] Qué es un Objeto? Un objeto es una instancia de una clase Las clases actuán como modelos que permiten la creación
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
ANÁLISIS SEMÁNTICO LA TABLA DE SÍMBOLOS
Todos los derechos de propiedad intelectual de esta obra pertenecen en exclusiva a la Universidad Europea de Madrid, S.L.U. Queda terminantemente prohibida la reproducción, puesta a disposición del público
Comunicación entre objetos
Comunicación entre objetos 109 Data Provider Procedimiento Web Panel Transacción Procedimiento PDF Los objetos GeneXus pueden comunicarse entre ellos o con otros programas externos. Un objeto GeneXus puede
Análisis semántico Tabla de símbolos, chequeo de tipos y representaciones internas
Análisis semántico Tabla de símbolos, chequeo de tipos y representaciones internas Análisis semático c 2001 José Fortes Gálvez p.1 Análisis?... semántico? La semántica corresponde al significado asociado
Lenguajes 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
Tema 6. Gestión dinámica de memoria
Tema 6. Gestión dinámica de memoria http://aulavirtual.uji.es José M. Badía, Begoña Martínez, Antonio Morales y José M. Sanchiz {badia, bmartine, morales, [email protected] Estructuras de datos y de la
Tema 13: Apuntadores en C
Tema 13: Apuntadores en C M. en C. Edgardo Adrián Franco Martínez http://www.eafranco.com [email protected] @edfrancom edgardoadrianfrancom Estructuras de datos (Prof. Edgardo A. Franco) 1 Contenido Introducción
APUNTADORES. Un apuntador es un objeto que apunta a otro objeto. Es decir, una variable cuyo valor es la dirección de memoria de otra variable.
APUNTADORES Un apuntador es un objeto que apunta a otro objeto. Es decir, una variable cuyo valor es la dirección de memoria de otra variable. No hay que confundir una dirección de memoria con el contenido
Tema 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
Ejercicios del Tema 3. Fundamentos de la programación en ensamblador
Ejercicios del Tema 3. Fundamentos de la programación en ensamblador Ejercicio 1. Dada la siguiente expresión de un lenguaje de alto nivel int a = 6; int b = 7; int c = 3; int d; d = (a+b) * (a+b); Indique
Gestión de la memoria en tiempo de ejecución
Apéndice A Gestión de la memoria en tiempo de ejecución A1. Organización de la memoria en tiempo de ejecución Las técnicas de gestión de la memoria durante la ejecución del programa difieren de unos lenguajes
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:
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
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
Implementación de una metodología de reparación de errores sintácticos para el generador de analizadores sintácticos GNU Bison
Implementación de una metodología de reparación de errores sintácticos para el generador de analizadores sintácticos GNU Bison Memoria de Título Claudio Saavedra Facultad de Ingeniería Universidad de Talca
Tema 18: Memoria dinámica y su uso en C
Tema 18: Memoria dinámica y su uso en C M. en C. Edgardo Adrián Franco Martínez http://www.eafranco.com [email protected] @edfrancom edgardoadrianfrancom Estructuras de datos (Prof. Edgardo A. Franco) 1
Programando sobre MIPS64
Programando sobre MIPS64 Escribir un programa en cualquier lenguaje involucra estructurar el código de forma que éste sea modular, extensible, simplede mantener y reutilizable. En assembly, eso involucra
Memoria Dinámica en C++
Memoria Dinámica en C++ Algoritmos y Estructuras de Datos II DC-FCEyN-UBA 26 de Agosto de 2015 AED2 (DC-FCEyN-UBA) Memoria Dinámica en C++ 26 de Agosto de 2015 1 / 46 Repaso: Qué es una variable? Matemática:
Introducción a la Programación en C
Christopher Expósito-Izquierdo [email protected] Airam Expósito-Márquez [email protected] Israel López-Plata [email protected] Belén Melián-Batista [email protected] José Marcos Moreno-Vega [email protected]
Introducción a la Programación en C Funciones
Christopher Expósito-Izquierdo [email protected] Airam Expósito-Márquez [email protected] Israel López-Plata [email protected] Belén Melián-Batista [email protected] José Marcos Moreno-Vega [email protected]
Arquitectura de Computadoras
4-1 Arquitectura de Computadoras Tema 4: Arquitectura del Set de Instrucciones Eduardo Daniel Cohen [email protected] http://www.herrera.unt.edu.ar/arqcom 4-2 Arquitectura del Set de Instrucciones Indice
FUNDAMENTOS DE PROGRAMACIÓN. PRÁCTICA 11: Apuntadores
Objetivos El alumno conocerá y aplicará el concepto de apuntadores para la solución de programas en Lenguaje C Introducción Un apuntador es una variable que mantiene la dirección de memoria de un elemento
Estructuras de control selectivas
Práctica 3 Estructuras de control selectivas Fundamentos de Programación Departamento de Lenguajes y Sistemas Informáticos Versión 2.0.2 Concepto de sentencia y estructura de control El cuerpo de los métodos
Subrutinas. Subrutinas. Erwin Meza Vega
Subrutinas Erwin Meza Vega Outline 1 Introducción 2 Especicación de subrutinas 3 Funciones booleanas 4 Parámetros 5 Recursividad 6 Ejercicios Introducción Programación divide y vencerás Cuando la solución
FUNCIONES. Identificador valido. Tipo-Funcion Identificador_de_la_funcion (Tipo par1,tipo par2 )
FUNCIONES Las funciones son el medio básico de que se vale C para construir programas. Un Programa es, básicamente, una colección de funciones entre las que se incluye una especial llamada main(), la función
Diseño descendente. Su ejecución se controla desde alguna otra unidad de programa (que puede ser el programa principal u otro procedimiento externo).
Diseño descendente Diseño descendente, top-down, que consiste en dividir el problema en subproblemas más pequeños, que se pueden tratar de forma separada. En Fortran, hay dos tipos de procedimientos externos:
INDICE 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
Punteros y aritmética de punteros. se almacena el operando
1. Introducción Punteros y aritmética de punteros Una de las características más poderosas del C, es el puntero o apuntador. Los punteros permiten simular las llamadas por referencia y crear y manipular
Componentes 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
Informá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:
Unidad VI Generación de Código Intermedio. M.C. Juan Carlos Olivares Rojas
Unidad VI Generación de Código Intermedio M.C. Juan Carlos Olivares Rojas Agenda 6.1 Lenguajes intermedios. 6.2 Notaciones. 6.2.1 Infija. 6.2.2 Postfija. 6.2.3 Prefija. 6.3 Representación de código intermedio.
USO DE SUBRUTINAS, TRANSMISIÓN DE PARÁMETROS Y COMPILACIÓN CONDICIONAL EN C++
USO DE SUBRUTINAS, TRANSMISIÓN DE PARÁMETROS Y COMPILACIÓN CONDICIONAL EN C++ Bruno López Takeyas Instituto Tecnológico de Nuevo Laredo Reforma Sur 2007, C.P. 88250, Nuevo Laredo, Tamps. México http://www.itnuevolaredo.edu.mx/takeyas
Procedimientos, Funciones y Recursividad
Procedimientos, Funciones y Recursividad Gonzalo Soriano [email protected] 7 de abril de 2009 Divide y vencerás 1. Introducción a procedimientos y funciones. Un procedimiento o función es un bloque de
Procesadores de lenguaje Tema 8 Generación de código y optimización
Procesadores de lenguaje Tema 8 Generación de código y optimización Departamento de Ciencias de la Computación Universidad de Alcalá Resumen Tipos de código objeto Operaciones básicas en la generación
Funciones Definición de función
Funciones Definición de función Una función es un bloque de código que realiza una tarea específica. Una función es una porción de programa, identificable mediante un nombre, que realiza determinadas tareas
Paso de parámetros y gestión del marco de pila
Paso de parámetros y gestión del marco de pila Estructura de Computadores 1. Introducción En clases previas se ha presentado el modelo de programación del 88110 y se ha explicado cómo se ubican las distintas
UNIVERSIDAD DE LOS ANDES NUCLEO UNIVERSITARIO RAFAEL RANGEL (NURR) DEPARTAMENTO DE FISICA Y MATEMATICA AREA COMPUTACION TRUJILLO EDO.
UNIVERSIDAD DE LOS ANDES NUCLEO UNIVERSITARIO RAFAEL RANGEL (NURR) DEPARTAMENTO DE FISICA Y MATEMATICA AREA COMPUTACION TRUJILLO EDO. TRUJILLO 1.- Resumen de Prog1 Comentarios es C++ Declaraciones de variables.
EXAMENES RESUELTOS DE PROGRAMACION I
EXAMENES RESUELTOS DE PROGRAMACION I Comentarios por Jose Antonio Vaqué EXAMEN DE septiembre 1994, Reserva Soluciones no oficiales 1.- Determinar los valores reales válidos en Modula-2: a) 56.2F-54 y 2.2
Un. VI. Generador de código intermedio.
Un. VI. Generador de código intermedio. La administración de la memoria se da en esta etapa. Se debe considerar tanto la memoria estática como dinámica, y en esta se utilizan generalmente pilas. Los lenguajes
Tema 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
Facultad de Ingeniería Industrial y de Sistemas v2.0 MA781U GESTION DE MEMORIA
GESTION DE MEMORIA Preparado por: Angel Chata Tintaya ([email protected]) Resumen La memoria es el lugar donde residen procesos y datos de los programas del usuario y del sistema operativo; se debe
LENGUAJE. Tema 4 Vectores, Matrices y Cadenas de caracteres.
LENGUAJE Tema 4 Vectores, Matrices y Cadenas de caracteres. VECTORES UNIDIMENSIONALES Los vectores (array o arreglo) unidimensionales son secuencias de valores del mismo tipo que se almacenan en localidades
ESCUELA 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
COLEGIO 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
