LE, EI, Profesor Ramón Castro Liceaga UNIVERSIDAD LATINA (UNILA) V. GESTIÓN DE TIPOS Y GENERACIÓN DE CÓDIGOS.

Slides:



Advertisements
Presentaciones similares
2. Manejo de memoria Manejo de memoria estática
Advertisements

Curso de java básico (scjp)
Fundamentos de programación
Repaso para la construcción del intérprete 2012
Elementos básicos del Lenguaje
Técnico en programación de Software
Combinadores SK.
1.2 Sintaxis del lenguaje Java.
MÉTODOS DE CLASIFICACION
UNIVERSIDAD LATINA (UNILA)
PROGRAMACION DE ESTRUCTURAS DE DATOS IV. MÉTODOS DE ORDENAMIENTO.
UNIVERSIDAD LATINA (UNILA) IV. IMPLANTACION DE ALGORITMOS.
UNIVERSIDAD NACIONAL AUTÓNOMA DE MÉXICO
Algoritmo y Estructura de Datos I
Tema 3. Optimización de Código
Conceptos Básicos de Java
Material Elaborado por: Lic. Saily González. CONTENIDO 2.1- Estructura de una Aplicación JAVA 2.2- Elementos básicos de la Programación JAVA Comentarios.
Tema 7: Polimorfismo Antonio J. Sierra. Índice Introducción. Sobrecarga de métodos. Objetos como parámetros. Paso de argumentos. Devolución de objetos.
POO Java Módulo 3 Elementos de programas Identificadores
Clases y objetos La unidad fundamental de programación OO son las clases. Conjunto de métodos y semántica Qué se va a hacer POO Clase: que define la implementación.
Tema 6: Clases Antonio J. Sierra.
UNIVERSIDAD DE MANAGUA I CUATRIMESTRE INTRODUCCION A LA PROGRAMACION
Programación de Computadores
Nombre, Alcance y Asociaciones (Bindings). Agenda Definición Nombre y Bindings Binding Time Importancia del Binding Time Eventos relacionados a la Asociación.
LENGUAJE “C” Programación.
SCJP SUN CERTIFIED PROGRAMMER FOR JAVA 6. SEMANA TRES ASIGNACION.
Tema 2: Los tipos de datos
FUNDAMENTOS DE PROGRAMACION
INGENIERIA EN SISTEMAS COMPUTACIONALES
Sintaxis.
Java. Java nació el año 1991, por un par de ingenieros de la Sun Microsystems.
Capítulo 1 “Elementos de Programación”
Valor X Valor Y Punto (0,0) Coordenadas.
Tipo de Datos Básicos.
FORMA INTERNA DE REPRESENTAR
Administración de Proyectos de desarrollo de Software Ciclo de vida de un proyecto Enfoque moderno Temas Componentes Directivas Declaraciones globales.
Programación Básica con NQC Patricio A. Castillo Pizarro 25/08/2007.
Procesadores de Lenguajes
Resumen Fundamentos de Programación/ Programación I
Capítulo 7 Gestión de memoria.
Elementos básicos del lenguaje
VBA – Elementos del Lenguaje
Programación de Sistemas
Programación orientada a objetos. El método main es el comportamiento por el cual comienzan todos los programas en Java, de la misma forma en la que C,
Elementos básicos del lenguaje
INFORMATICA VII (Programación e implementación de sistemas)
Sentencias de repetición
EI, Profesor Ramón Castro Liceaga Agosto de 2005 UNIVERSIDAD LATINA (UNILA) PROGRAMACION ORIENTADA A OBJETOS EN JAVA (Optativa) ESTRUCTURA DEL LENGUAJE.
EI, Profesor Ramón Castro Liceaga Agosto de 2005 UNIVERSIDAD LATINA (UNILA) PROGRAMACION ORIENTADA A OBJETOS EN JAVA (Optativa) CONCEPTOS DE PROGRAMACION.
IDENTIFICADORES Un identificador es un "nombre" que nos permite dirigirnos específicamente a una de las entidades propias del lenguaje, es decir, son los.
FUNDAMENTOS DE PROGRAMACIÓN
ELEMENTOS DE COMPUTACIÓN Profesor: Guillermo Figueroa
LE, EI, Profesor Ramón Castro Liceaga UNIVERSIDAD LATINA (UNILA) TRADUCTORES Y ANALIZADOR LEXICOGRÁFICO.
CARACTERÍSTICAS Es un lenguaje de programación estructurado de propósito general. Está estrechamente asociado al sistema operativo UNIX, ya que el propio.
Tratamiento de excepciones
PRINCIPIOS DE PROGRAMACIÓN
Presente un cuestionario con los aspectos mas importantes sobre los
UNIDAD 4: Introducción a la Lógica Computacional Objetivo : Interpretar y aplicar adecuadamente los fundamentos básicos de la estructura y funcionamiento.
IV. GRAMÁTICAS DISTRIBUIDAS Y TABLAS DE SÍMBOLOS
Programación de Sistemas
ARREGLOS. La sintaxis para declarar e inicializar un array será: Tipo_de_variable[ ] Nombre_del_array = new Tipo_de_variable[dimensión]; También podemos.
Elementos básicos.  Fuertemente tipeado.  Sintaxis similar a C/C++.  Sin punteros: garbage collection.  Portable.  Integra librerías para objetos.
LENGUAJE DE PROGRAMACIÓN
Estructuras de control selectivas Fundamentos de Programación Departamento de Lenguajes y Sistemas Informáticos Versión Práctica 3.
1 Métodos. 2 Un método es un conjunto de instrucciones definidas dentro de una clase, que realizan una determinada tarea y a las que podemos invocar mediante.
Reutilización de código Elementos básicos del lenguaje Java Definición de variables, expresiones y asignaciones Fundamentos de Programación Departamento.
1 Clase 4: primeros programas (2ª parte) iic1102 – introducción a la programación.
METODOS DE PROGRAMACION I Ing. Vania Flores Pinto.
LE, EI, Profesor Ramón Castro Liceaga UNIVERSIDAD LATINA (UNILA) IV. IMPLANTACION DE ALGORITMOS.
Paso de parámetros Diseño de programas iterativos Fundamentos de Programación Departamento de Lenguajes y Sistemas Informáticos Unidad Didáctica 7 Versión.
Transcripción de la presentación:

LE, EI, Profesor Ramón Castro Liceaga UNIVERSIDAD LATINA (UNILA) V. GESTIÓN DE TIPOS Y GENERACIÓN DE CÓDIGOS.

Gestión de tipos de código Un compilador debe comprobar si el programa fuente sigue tanto las convenciones sintácticas como las semánticas del lenguaje fuente. Esta comprobación garantiza la detección y comunicación de algunas clases de errores de programación por ejemplo del manejo de diferentes tipos de datos. Es el proceso de administración de tipos de código del compilador donde éste se asegura que el tipo de una construcción coincida con el previsto en su contexto. Por ejemplo, el operador aritmético predefinido mod en MODULA exige operandos de tipo entero, de modo que mediante la gestión de tipos debemos asegurar que dichos operandos sean de tipo entero. De igual manera, la gestión de tipo debe asegurarse de que la desreferenciación se aplique sólo a un apuntador, de que la indización se haga sólo sobre una matriz, de que una función definida por el usuario se aplique la cantidad y tipo correctos de argumentos, etc.

Practica : Gestión de tipos de código Hacer un programa en Java considerando el proceso siguiente:

Practica : Gestión de tipos de código Utilizando los siguientes tipos: private int precio; // Las instrucciones y declaraciones finalizan con ; private int importe_acumulado; private String profesor; private String aula; private int capacidad; private boolean funciona; private boolean esVisible; private float diametro; private float peso; private short edad; private long masa; private char letra1;

Practica : Gestión de tipos de código Utilizando los siguientes tipos: Precio = 42; // Entero tipo int. Un número sin punto decimal se interpreta normalmente como int. importe_acumulado = 210; // Entero tipo int profesor = “Ernesto Juárez Pérez”; // Tipo String aula = “A-44”; // Tipo String capacidad = 1500; // Entero tipo int funciona = true; // Tipo boolean esVisible = false; // Tipo boolean diametro = 34.25f; // Tipo float. Una f o F final indica que es float. peso = 88.77; // Tipo double. Un número con punto decimal se interpreta normalmente como double. edad = 19; // Entero tipo short masa = L; // Entero tipo long. Una l o L final indica que es long. letra1 = ‘h’; // Tipo char (carácter). Se escribe entre comillas simples.

Practica: Gestión de tipos de codigo. Hacer un programa en java que actualice los diferentes tipos de código que se muestran en la diapositiva anterior

Generación de códigos. Es el proceso de recibir como entrada una representación intermedia del programa fuente y la asigna al lenguaje destino. PF -> LD Si el lenguaje destino es código máquina, se seleccionan registros o ubicaciones (localidades) de memoria para cada una de las variables que utiliza el programa. LD -> M Después, las instrucciones intermedias se traducen en secuencias de instrucciones de máquina que realizan la misma tarea. II -> IM Un aspecto crucial de la generación de código es la asignación juiciosa de los registros para guardar las variables. A := B

Generación de códigos.

Generación y Optimización. Generación de código – Se realiza mientras se analiza el programa – “Libre del contexto” Optimización – Se realiza después de la generación de código de todo el programa o de un elemento ejecutable del programa (función, procedimiento, etc). – “Dependiente del contexto”

Optimización Es el proceso de eliminación de instrucciones innecesarias en el código objeto, o la sustitución de una secuencia de instrucciones por una secuencia más rápida de instrucciones que haga lo mismo, a este proceso se le conoce como mejora de código u optimización de código.

Practica: De optimización de código. U na empresa del área de recursos humanos requiere ordenar tres números en orden ascendente. hacer el programa en java que pida los tres números y muestre dicho ordenamiento. Implementar el algoritmo de la burbuja con un código optimizado

Practica: De optimización de código. El algoritmo de la burbuja es uno de los métodos de ordenación más conocidos y uno de los primeros que aprenden los programadores. Consiste en comparar pares de elementos adyacentes en un array y si están desordenanos intercambiarlos hasta que estén todos ordenados. Si A es el array a ordenar, se realizan A.length-1 pasadas. Si la variable i es la que cuenta el número de pasadas, en cada pasada i se comprueban los elementos adyacentes desde el primero hasta A.length-i-1 ya que el resto hasta el final del array están ya ordenados. Si los elementos adyacentes están desordenados se intercambian.

Practica: De optimización de código. El método de ordenación de la burbuja en java para ordenar un array A es el siguiente: public static void burbuja(int [] A){ int i, j, aux; for(i=0;i<A.length-1;i++) for(j=0;j<A.length-i-1;j++) if(A[j+1]<A[j]){ aux=A[j+1]; A[j+1]=A[j]; A[j]=aux; }

Practica: De optimización de código.

Ya están ordenados, pero los dos bucles for seguirán ejecutándose hasta el final. El tiempo de ejecución del algoritmo de la burbuja es del orden O(n2) Es uno de los peores algoritmos de ordenación en cuanto a tiempo de ejecución, solamente es recomendable su uso para ordenar listas con un número pequeño de elementos.

Ensamblamiento (Folding). Es el proceso del compilador que consiste en remplazar las expresiones por su resultado cuando se pueden evaluar en tiempo de compilación (resultado constante). – Ejemplo: Expresión A=2+3+A+C Remplazo -> A=5+A+C Estas optimizaciones permiten que el programador utilice cálculos entre constantes representados explícitamente sin introducir ineficiencias.

Practica :Ensamblamiento (Folding). Hacer un programa en Java que remplace las siguientes expresiones: Usar variables y que sea para cualquier expresión. Expresión A=2+3+A+C Remplazo -> A=5+A+C Expresión B=55 * 2+A+B+C Remplazo -> B=110+A+B+C Expresión D=(5+8+4)/2+A+B Remplazo -> D=8.5+A+B Expresión A=(5*25) / (4 + 3) * 4 Remplazo -> A=125 / 6 * 4

Grafos de flujo Es el proceso del compilador que se realiza cuando un programa de código intermedio se particiona en bloques básicos relacionados entre si, representando el flujo de control entre ellos mediante un grafo de flujo. Los nodos del grafo de flujo son los nodos básicos.

Ejemplo: Grafos de flujo

Hacer un programa en Java con métodos o clases B1, B2, B3, B4, B5 y B6 que simule el grafo de flujo de la figura anterior (8.9) public class B3 { // Método B1 static void metodoB1(){ int i = 1; System.out.println("i = 1 es " + i); } // Método B2 static void metodoB2(){ int j = 5; System.out.println("j = 5 es " + j); } public static void main(String[] args) { System.out.print(" Metodo B1 "); metodoB1(); System.out.print(" Metodo B2 "); metodoB2(); } Metodo B1 i = 1 es 1 Metodo B2 j = 5 es 5