Docsity
Docsity

Prepara tus exámenes
Prepara tus exámenes

Prepara tus exámenes y mejora tus resultados gracias a la gran cantidad de recursos disponibles en Docsity


Consigue puntos base para descargar
Consigue puntos base para descargar

Gana puntos ayudando a otros estudiantes o consíguelos activando un Plan Premium


Orientación Universidad
Orientación Universidad

Unidad 3, Lenguajes y automatas II, Resúmenes de Programación Informática

Resumen del tema sobre la unidad 3 muy resumido

Tipo: Resúmenes

2020/2021
En oferta
30 Puntos
Discount

Oferta a tiempo limitado


Subido el 01/07/2021

sait-aleman
sait-aleman 🇲🇽

5

(1)

1 documento

1 / 7

Toggle sidebar

Esta página no es visible en la vista previa

¡No te pierdas las partes importantes!

bg1
SECRETARIA DE EDUCACION PUBLICA
TECNOLÓGICO NACIONAL DE MÉXICO
INSTITUTO TECNOLOGICO DE PINOTEPA
CARRERA:
Ing. en sistemas computacionales
MATERIA:
Lenguajes Y Autómatas II (A)
Trabajo:
Investigación de Unidad 3
DOCENTE:
Rivero Caballero Juan José Everardo
ALUMNO:
OSCAR SAIT ALEMAN RENDON
NUMERO DE CONTROL:
18730178
SEMESTRE: GRUPO: “A”
SANTIAGO PINOTEPA NACIONAL OAXACA A junio DEL 2021
pf3
pf4
pf5
Discount

En oferta

Vista previa parcial del texto

¡Descarga Unidad 3, Lenguajes y automatas II y más Resúmenes en PDF de Programación Informática solo en Docsity!

SECRETARIA DE EDUCACION PUBLICA

TECNOLÓGICO NACIONAL DE MÉXICO

INSTITUTO TECNOLOGICO DE PINOTEPA

CARRERA:

Ing. en sistemas computacionales MATERIA: Lenguajes Y Autómatas II (A) Trabajo: Investigación de Unidad 3 DOCENTE: Rivero Caballero Juan José Everardo ALUMNO: OSCAR SAIT ALEMAN RENDON NUMERO DE CONTROL: 18730178 SEMESTRE:GRUPO: “A” SANTIAGO PINOTEPA NACIONAL OAXACA A junio DEL 2021

Contenido

  • III: Optimización
  • 3.1 Tipos de optimización
  • 3.1.1 Locales..................................................................................................................................
  • 3.1.2 Ciclos.....................................................................................................................................
  • 3.1.3 Globales
  • 3.1.4 De mirilla
  • 3.2.1 Costo de ejecución (Memoria, registros, pilas)................................................................
  • 3.2.2 Criterios para mejorar el código.........................................................................................
  • 3.2.3 Herramientas para el análisis del flujo de datos

3.1.2 Ciclos Los ciclos son una de las partes más esenciales en el rendimiento de un programa dado que realizan acciones repetitivas, y si dichas acciones están mal realizadas, el problema se hace N veces más grandes. La mayoría de las optimizaciones sobre ciclos tratan de encontrar elementos que no deben repetirse en un ciclo. Sea el ejemplo: while(a == b) { int c = a; c = 5; …; } En este caso es mejor pasar el Int c =a; fuera del ciclo de ser posible. El problema de la optimización en ciclos y en general radica es que muy difícil saber el uso exacto de algunas instrucciones. Así que no todo código de proceso puede ser optimizado. Otro uso de la optimización pueden ser el mejoramiento deconsultas en SQL o en aplicaciones remotas (sockets, E/S, etc.) 3.1.3 Globales La optimización global se da con respecto a todo el código. Este tipo de optimización es más lenta pero mejora el desempeño general de todo programa. Las optimizaciones globales pueden depender de la arquitectura de la máquina. En algunos casos es mejor mantener variables globales para agilizar los procesos (el proceso de declarar variables y eliminarlas toma su tiempo) pero consume más memoria. Algunas optimizaciones incluyen utilizar como variables registros del CPU, utilizar instrucciones en ensamblador.

3.1.4 De mirilla La optimización de mirilla trata de estructurar de manera eficiente el flujo del programa, sobre todo en instrucciones de bifurcación como son las decisiones, ciclos y saltos de rutinas. La idea es tener los saltos lo más cerca de las llamadas, siendo el salto lo más pequeño posible. Instrucciones de bifurcación Interrumpen el flujo normal de un programa, es decir que evitan que se ejecute alguna instrucción del programa y salta a otra parte del programa. Por ejemplo: el “break” Switch (expresión que estamos evaluando) { Case 1: cout << “Hola” ;Break; Case 2: cout << “amigos”;Break; } 3.2 Costos Los costos son el factor más importante a tomar en cuenta a la hora de optimizar ya que en ocasiones la mejora obtenida puede verse no reflejada en el programa final pero si ser perjudicial para el equipo de desarrollo. La optimización de una pequeña mejora tal vez tenga una pequeña ganancia en tiempo o en espacio pero sale muy costosa en tiempo en generarla. Pero en cambio si esa optimización se hace por ejemplo en un ciclo, la mejora obtenida puede ser N veces mayor por lo cual el costo se minimiza y es benéfico la mejora. Por ejemplo:

Muchos de estos criterios pueden modificarse con directivas del compilador desde el código o de manera externa. Este proceso lo realizan algunas herramientas del sistema como los ofuscadores para código móvil y código para dispositivos móviles. 3.2.3 Herramientas para el análisis del flujo de datos Existen algunas herramientas que permiten el análisis de los flujos de datos, entre ellas tenemos los depuradores y desambladores. La optimización al igual que la programación es un arte y no se ha podido sistematizar del todo.