Algoritmos
Conceptos básicos III
1
Universidad Veracruzana
Ricardo Carrera Hernández
Agosto 2014
Campus Ixtac
Compilación/Interpretación
2
Consiste en obtener el programa ejecutable/objeto a partir del
programa fuente.
Programa fuente
Programa Ejecutable
Prueba
3
Consiste en determinar si el programa funciona
correctamente y realiza las operaciones que esperamos de
él.
Programa Ejecutable Aplicación
Lenguajes de programación
4
Lenguaje de Programación: es un lenguaje que permite la traducción
de un algoritmo para que sea entendible por la computadora. Son los
lenguajes utilizados para escribir programas de computadoras.
Tipos de Lenguaje de Programación:
 Lenguaje de Máquina
 Lenguaje de Bajo Nivel (Ensamblador)
 Lenguaje de Alto Nivel
Lenguaje máquina
5
 Son aquellos que están escritos en lenguaje directamente
comprensible por la máquina, ya que sus instrucciones son cadenas
binarias (0’s ,1’s) que especifican una operación.
 Las instrucciones en lenguaje máquina dependen del Hardware de la
computadora; difiere de una computadora a otra.
 La ventaja de los lenguajes máquina es que ofrecen mayor velocidad
de ejecución.
 Existen algunas desventajas: dificultad y lentitud en la codificación,
poca fiabilidad, los programas no son portables.
Ejemplo de lenguaje máquina
6
11001010 00010111 11110101 00101011
00010111 11110101 00101011 00101011
11001010 00010111 11110101 00101011
00010111 11110101 00101011 00101011
11001010 11110101 00101011 00101011
11001010 11001010 11110101 00101011
11001010 11110101 00101011 00101011
11001010 00010111 11110101 00101011
00010111 11110101 00101011 00101011
11001010 11110101 00101011 00101011
Lenguaje de alto nivel
7
 Son lenguajes que permiten escribir programas con instrucciones similares al
lenguaje humano.
 Son más fáciles de utilizar que los lenguajes de máquina, pero éstos también
dependen de la máquina en particular.
 Un programa escrito en lenguaje ensamblador requiere una fase de
traducción.
 Entre las desventajas tenemos: que este lenguaje depende de la máquina y
demanda una mayor exigencia para los programadores, ya que deben
conocer tanto las técnicas de programación así como el interior de la máquina
Ejemplo de lenguaje
ensamblador
8
; HOLA.ASM
STACK SEGMENT STACK ; Segmento de pila
DW 64 DUP (?) ; Define espacio en la pila
STACK ENDS
DATA SEGMENT ; Segmento de datos
SALUDO DB "Hola mundo!!",13,10,"$" ; Cadena
DATA ENDS
INICIO: ; Punto de entrada al
programa
MOV AX,DATA ; Pone dirección en AX
MOV DS,AX ; Pone la dirección en los
registros
MOV DX,OFFSET SALUDO ; Obtiene dirección del mensaje
MOV AH,09H ; Función: Visualizar cadena
INT 21H ; Servicio: Funciones
alto nivel DOS
MOV AH,4CH ; Función: Terminar
INT 21H
CODE ENDS
END INICIO ; Marca fin y define INICIO
Lenguaje de alto nivel
9
 Son los más utilizados por los programadores
 Son independientes de la máquina
 Los programas escritos en estos lenguajes son portables
 Aumento de la ocupación de la memoria
 Las estructuras de los programas se basan en reglas sintácticas
 Ejemplos: C, C++, Pascal, Ada, Prolog, Visual Basic, Delphi, Java,...
Ejemplo de lenguaje de alto
nivel
10
#include <stdio.h>
int main(void)
{
printf("Hola, Mundon");
}
Traductores de lenguajes
11
Son programas que traducen a su vez los programas fuentes
escritos en lenguajes de alto nivel a código máquina. Estos se
dividen en intérpretes y compiladores.
Intérprete
12
Es un traductor que toma un programa fuente, lo traduce línea a línea y
a continuación la ejecuta una por una, (Basic).
Programa fuente
Intérprete
Traducción y
ejecución línea a
línea
Compilación
13
Es el proceso de traducción de programas
fuentes a programas objetos. En este proceso
se debe utilizar como paso intermedio un
programa llamado enlazador (linker) el cual
da como resultado un programa en lenguaje
máquina directamente ejecutable.
Programa fuente
Compilador
Programa objeto
Enlazador
Programa
ejecutable en
lenguaje máquina
Etapas de programación 14
Código Fuente
Compilador
Modificación del
programa fuente
Existen
Errores Código objeto
Linkado/
Interpretación
Programa
Ejecutable
Existen
Errores
Pruebas
Existen
Errores
No
No
Errores
léxicos
Tiempo de
compilación
Errores de
ejecución
Tiempo de
ejecución
Errores
lógicos
Tiempo de
pruebas
APLICACIÓN
BUENA PROGRAMACIÓN
Algoritmos
Conceptos básicos III
15
Universidad Veracruzana
Ricardo Carrera Hernández
Agosto 2014
Campus Ixtac

4. Conceptos básicos III

  • 1.
    Algoritmos Conceptos básicos III 1 UniversidadVeracruzana Ricardo Carrera Hernández Agosto 2014 Campus Ixtac
  • 2.
    Compilación/Interpretación 2 Consiste en obtenerel programa ejecutable/objeto a partir del programa fuente. Programa fuente Programa Ejecutable
  • 3.
    Prueba 3 Consiste en determinarsi el programa funciona correctamente y realiza las operaciones que esperamos de él. Programa Ejecutable Aplicación
  • 4.
    Lenguajes de programación 4 Lenguajede Programación: es un lenguaje que permite la traducción de un algoritmo para que sea entendible por la computadora. Son los lenguajes utilizados para escribir programas de computadoras. Tipos de Lenguaje de Programación:  Lenguaje de Máquina  Lenguaje de Bajo Nivel (Ensamblador)  Lenguaje de Alto Nivel
  • 5.
    Lenguaje máquina 5  Sonaquellos que están escritos en lenguaje directamente comprensible por la máquina, ya que sus instrucciones son cadenas binarias (0’s ,1’s) que especifican una operación.  Las instrucciones en lenguaje máquina dependen del Hardware de la computadora; difiere de una computadora a otra.  La ventaja de los lenguajes máquina es que ofrecen mayor velocidad de ejecución.  Existen algunas desventajas: dificultad y lentitud en la codificación, poca fiabilidad, los programas no son portables.
  • 6.
    Ejemplo de lenguajemáquina 6 11001010 00010111 11110101 00101011 00010111 11110101 00101011 00101011 11001010 00010111 11110101 00101011 00010111 11110101 00101011 00101011 11001010 11110101 00101011 00101011 11001010 11001010 11110101 00101011 11001010 11110101 00101011 00101011 11001010 00010111 11110101 00101011 00010111 11110101 00101011 00101011 11001010 11110101 00101011 00101011
  • 7.
    Lenguaje de altonivel 7  Son lenguajes que permiten escribir programas con instrucciones similares al lenguaje humano.  Son más fáciles de utilizar que los lenguajes de máquina, pero éstos también dependen de la máquina en particular.  Un programa escrito en lenguaje ensamblador requiere una fase de traducción.  Entre las desventajas tenemos: que este lenguaje depende de la máquina y demanda una mayor exigencia para los programadores, ya que deben conocer tanto las técnicas de programación así como el interior de la máquina
  • 8.
    Ejemplo de lenguaje ensamblador 8 ;HOLA.ASM STACK SEGMENT STACK ; Segmento de pila DW 64 DUP (?) ; Define espacio en la pila STACK ENDS DATA SEGMENT ; Segmento de datos SALUDO DB "Hola mundo!!",13,10,"$" ; Cadena DATA ENDS INICIO: ; Punto de entrada al programa MOV AX,DATA ; Pone dirección en AX MOV DS,AX ; Pone la dirección en los registros MOV DX,OFFSET SALUDO ; Obtiene dirección del mensaje MOV AH,09H ; Función: Visualizar cadena INT 21H ; Servicio: Funciones alto nivel DOS MOV AH,4CH ; Función: Terminar INT 21H CODE ENDS END INICIO ; Marca fin y define INICIO
  • 9.
    Lenguaje de altonivel 9  Son los más utilizados por los programadores  Son independientes de la máquina  Los programas escritos en estos lenguajes son portables  Aumento de la ocupación de la memoria  Las estructuras de los programas se basan en reglas sintácticas  Ejemplos: C, C++, Pascal, Ada, Prolog, Visual Basic, Delphi, Java,...
  • 10.
    Ejemplo de lenguajede alto nivel 10 #include <stdio.h> int main(void) { printf("Hola, Mundon"); }
  • 11.
    Traductores de lenguajes 11 Sonprogramas que traducen a su vez los programas fuentes escritos en lenguajes de alto nivel a código máquina. Estos se dividen en intérpretes y compiladores.
  • 12.
    Intérprete 12 Es un traductorque toma un programa fuente, lo traduce línea a línea y a continuación la ejecuta una por una, (Basic). Programa fuente Intérprete Traducción y ejecución línea a línea
  • 13.
    Compilación 13 Es el procesode traducción de programas fuentes a programas objetos. En este proceso se debe utilizar como paso intermedio un programa llamado enlazador (linker) el cual da como resultado un programa en lenguaje máquina directamente ejecutable. Programa fuente Compilador Programa objeto Enlazador Programa ejecutable en lenguaje máquina
  • 14.
    Etapas de programación14 Código Fuente Compilador Modificación del programa fuente Existen Errores Código objeto Linkado/ Interpretación Programa Ejecutable Existen Errores Pruebas Existen Errores No No Errores léxicos Tiempo de compilación Errores de ejecución Tiempo de ejecución Errores lógicos Tiempo de pruebas APLICACIÓN BUENA PROGRAMACIÓN
  • 15.
    Algoritmos Conceptos básicos III 15 UniversidadVeracruzana Ricardo Carrera Hernández Agosto 2014 Campus Ixtac