Download 2 Clasificación de los lenguajes de programación y su evolución

Document related concepts

Little man computer wikipedia , lookup

APL wikipedia , lookup

Programación funcional wikipedia , lookup

Lisp wikipedia , lookup

Transcript
Unidad I Panorama
general de lenguajes de
programación en
aplicaciones mecatrónicas
M.C. Juan Carlos Olivares Rojas
1
Agenda
1.1 Clasificación de los lenguajes
programación y su evolución.
de
1.2 Lenguaje ensamblador.
2
Clasificación de los lenguajes de
programación y su evolución
• Un lenguaje es la forma que utilizan dos
entidades llamadas emisor y receptor para
comunicarse.
• Un lenguaje de programación es la forma
en que un ser humano le indica a una
computadora lo que debe de hacer.
3
Clasificación de los lenguajes de
programación y su evolución
• Los lenguajes de programación son
necesarios dado que el lenguaje que
entendemos los humanos y las máquinas es
totalmente distinto.
• Las computadoras entienden un lenguaje
máquina de 0s y 1s.
4
Clasificación de los lenguajes de
programación y su evolución
• El lenguaje máquina es diferente entre
familia de microprocesadores
• Los lenguajes de programación se
clasifican de acuerdo a su objetivo en: de
propósito general y propósito específico.
5
Clasificación de los lenguajes de
programación y su evolución
• Los lenguajes de propósito general sirven
para resolver casi cualquier problema.
Ejemplos: C/C++, Java, Pascal, Ada, etc.
• Los lenguajes de propósito específico son
de un dominio más específico. Ejemplo:
SQL (Base de Datos), Promela (Simulación),
etc.
6
Clasificación de los lenguajes de
programación y su evolución
• Los lenguajes de programación también se
pueden clasificar de acuerdo a su nivel de
abstracción en bajo nivel y alto nivel.
• El nivel de abstracción se da desde el
punto de vista humano; es decir, el de alto
nivel está más cercano al lenguaje natural.
7
Clasificación de los lenguajes de
programación y su evolución
• Los lenguajes de alto nivel son muy
parecidos a lenguajes naturales como el
inglés. Permiten un rápido desarrollo e
implantación de algoritmos. Ejemplo: C++,
Java, BASIC, Fortran, COBOL, etc.
8
Clasificación de los lenguajes de
programación y su evolución
• Los lenguajes de bajo nivel son los que
están más cercano al lenguaje máquina,
permiten el desarrollo más eficiente de
aplicaciones, pero la programación es más
complicada.
Ejemplo:
lenguaje
ensamblador x86, ensamblador PPC,
ensamblador 68x, etc.
9
Clasificación de los lenguajes de
programación y su evolución
• ¿Cómo es posible que dos entidades con
diferentes
lenguajes
(humanos
y
computadoras) puedan comunicarse entre
si?
• Se puede realizar por medio de un
traductor. Lo cual da otra clasificación de
lenguajes de programación.
10
Clasificación de los lenguajes de
programación y su evolución
• Por la forma en que se realiza la
programación, los lenguajes se clasifican
en lenguajes compilados (compilador) e
interpretados (intérprete).
• Los lenguajes interpretados se procesa el
código fuente y se traduce línea por línea.
11
Clasificación de los lenguajes de
programación y su evolución
• Ejemplo de lenguajes interpretados está la
línea de comandos (shell) de un sistema
operativo, BASIC, entre otros.
• En los lenguajes compilados la traducción
se realiza leyendo todo el código fuente.
Ejemplo: Pascal, Delphi, C/C++, etc.
12
Clasificación de los lenguajes de
programación y su evolución
• Otra forma de clasificar los lenguajes de
programación es en base al paradigma
utilizado para programar.
• Existen
diversos
paradigmas
como
procedimental o estructurado (C, Pascal,
etc.), orientado a objetos (Java, C++,
13
SmallTalk, etc.).
Clasificación de los lenguajes de
programación y su evolución
• Otros paradigmas de programación son el
funcional como LISP, la programación
lógica
con
PROLOG,
programación
orientada a aspectos, etc.
• Los lenguajes de programación también
tienen otros fines como configurar
programas.
14
Lenguaje ensamblador
• Es
totalmente
dependiente
arquitectura de la computadora.
de
la
• Utiliza instrucciones cortas llamadas
mnemónicos. Las cuales se sustituyen al
momento de ensamblar.
15
Lenguaje ensamblador
• La mayoría de los lenguajes de alto nivel
genera
como
código
intermedio
instrucciones en ensamblador.
• Por ejemplo el código máquina 10110000
01100001 (0xb061) es representado en
ensamblador x86 como MOV al, 061h
16
Lenguaje ensamblador
• Una forma fácil de aprender a programar
en ensamblador es haciendo uso de la
herramienta debug presente en DOS.
• Las opciones básicas de debug son:
– A Ensamblar
– D Mostrar el contenido de un área de memoria
– E Introducir datos en memoria, iniciando en
una localidad específica
17
Lenguaje ensamblador
– G correr el programa ejecutable en memoria
– N nombrar un programa
– P Proceder a ejecutar un conjunto de
instrucciones relacionadas
– Q salir de la sesión
– R mostrar el contenido de los registros
– T Rastrear la ejecución del programa
– U Desensamblar
– W Escribir o grabar un programa a disco
18
Actividad 2
• Se deberán realizar cada una de las
siguientes
actividades
por
parejas
utilizando debug y capturando pantalla de
cada una de las actividades.
• Para ver la fecha que tiene la ROM de
nuestra computadora: D FFFF:5
19
Lenguaje ensamblador
• Se deberá cargar el siguiente programa en
ensamblador en memoria en la localidad
de memoria de sus últimos 4 números de su
matrícula, por ejemplo: A 0100
• Se deberá tener cuidado al cargarlo por
que sino se deberá reescribir el programa.
No dar enter hasta estar seguros
20
Lenguaje ensamblador
• Se deberá seguir la traza del programa con
la opción T hasta que se terminen las
instrucciones.
• Finalmente se deberá desensamblar el
código con la opción U y la dirección de
memoria en donde se empezó el programa.
21
Lenguaje ensamblador
• Colocar tu número de matricula a partir de
la dirección 100 con la opción E.
• Mostrar las direcciones de memoria a partir
de la localidad 100.
• Con el código del programa anterior
desensamblado colocarlo directamente en
memoria en la dirección cs:100
22
Lenguaje ensamblador
• Realizar programación en ensamblador de
esta forma es sumamente complicado.
• Para facilitar el proceso se utilizan
editores de texto o en casos más
elaborados IDEs para programar. La
desventaja es que entre diferentes
herramientas puede cambiar la sintaxis.
23
Lenguaje ensamblador
;Programa Ejemplo ensamblador
.model small
.stack
.data
Cadena1 DB 'Hola Mundo.$'
.code ;inicio del código
24
Lenguaje ensamblador
programa:
mov ax, @data
mov ds, ax
mov dx, offset Cadena1
mov ah, 9
int 21h
end programa
25
Lenguaje ensamblador
• Para ensamblar el siguiente código
utilizaremos el TASM (Turbo Assembler) y
para generar el ejecutable el TLINK (Turbo
Linker).
• El código debe tener extension .asm en
formato de texto plano. Luego se ejecuta
desde
línea
de
comandos:
tasm
archivo.asm.
26
Lenguaje ensamblador
• Sino ocurrió ningún error, se generó un
archivo objeto (.obj) que es el código
máquina.
• Al enlazar con tlink archivo.obj se obtiene
un ejecutable como tal.
• Otro ejemplo de ensamblador es el del PIC
16F84 que se muestra a continuación:
27
Lenguaje ensamblador
ORG 0
Inicio
bsf STATUS,RP0
clrf PORTB
movlw 0xFF
movwf PORTA
bcf STATUS,RP0
Principal
28
Lenguaje ensamblador
movf PORTA,W
movwf Contador
movf Contador,F
btfsc STATUS,Z
goto PuntoDecimal
sublw d'9'
btfss STATUS,C
END
29
Ejercicio de Reforzamiento
• Realizar un pequeño resumen en el cual se
muestren la arquitectura básica del
microprocesador Intel 8086 así como los
mnemónicos básicos y ejemplos de ellos.
• Fecha de entrega, hasta el día del examen
por Blackboard.
30
¿Preguntas, dudas y comentarios?
31