Unidad I Panorama general de lenguajes de programacin

  • Slides: 31
Download presentation
Unidad I Panorama general de lenguajes de programación en aplicaciones mecatrónicas M. C. Juan

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

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

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

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 0 s y 1 s. 4

Clasificación de los lenguajes de programación y su evolución • El lenguaje máquina es

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

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

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

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

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 x 86, ensamblador PPC, ensamblador 68 x, etc. 9

Clasificación de los lenguajes de programación y su evolución • ¿Cómo es posible que

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

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

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

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++, Small. Talk, etc. ). 13

Clasificación de los lenguajes de programación y su evolución • Otros paradigmas de programación

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

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

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 101100001 (0 xb 061) es representado en ensamblador x 86 como MOV al, 061 h 16

Lenguaje ensamblador • Una forma fácil de aprender a programar en ensamblador es haciendo

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

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

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

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

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

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. •

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 Cadena 1 DB 'Hola

Lenguaje ensamblador ; Programa Ejemplo ensamblador. model small. stack. data Cadena 1 DB 'Hola Mundo. $'. code ; inicio del código 24

Lenguaje ensamblador programa: mov ax, @data mov ds, ax mov dx, offset Cadena 1

Lenguaje ensamblador programa: mov ax, @data mov ds, ax mov dx, offset Cadena 1 mov ah, 9 int 21 h end programa 25

Lenguaje ensamblador • Para ensamblar el siguiente código utilizaremos el TASM (Turbo Assembler) y

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)

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 16 F 84 que se muestra a continuación: 27

Lenguaje ensamblador ORG 0 Inicio bsf STATUS, RP 0 clrf PORTB movlw 0 x.

Lenguaje ensamblador ORG 0 Inicio bsf STATUS, RP 0 clrf PORTB movlw 0 x. FF movwf PORTA bcf STATUS, RP 0 Principal 28

Lenguaje ensamblador movf PORTA, W movwf Contador movf Contador, F btfsc STATUS, Z goto

Lenguaje ensamblador movf PORTA, W movwf Contador movf Contador, F btfsc STATUS, Z goto Punto. Decimal sublw d'9' btfss STATUS, C END 29

Ejercicio de Reforzamiento • Realizar un pequeño resumen en el cual se muestren la

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

¿Preguntas, dudas y comentarios? 31