¿Qué es un lenguaje? - cs.buap.mxhilario_sm/slide/ensamblador 2012/slide... · Un compilador es...

19

Transcript of ¿Qué es un lenguaje? - cs.buap.mxhilario_sm/slide/ensamblador 2012/slide... · Un compilador es...

¿Qué es un lenguaje?Conjunto de símbolos y palabras (vocabulario o léxico) y conjunto de reglas (sintaxisy semántica) que permiten agrupar los símbolos para formar las frases del lenguaje.

¿De programación?Que sirve para especificar algoritmos sobre un ordenador.Un programa se escribe como una secuencia de frases del lenguaje.Un lenguaje de programación viene definido por un léxico, una sintaxis y una semántica

Léxico:Conjunto de símbolos que se pueden usar en un lenguaje.

Estos símbolos o elementos básicos del lenguaje, podrán ser de los siguientes:• Identificadores: nombres simbólicos que se darán a ciertos elementos de

programación (p.e. nombres de variables, tipos, módulos, etc.).• Constantes: datos que no cambiarán su valor a lo largo del programa.• Operadores: símbolos que representarán operaciones entre variables y constantes.• Instrucciones: símbolos especiales que representarán estructuras de

procesamiento, y de definición de elementos de programación.• Comentarios: texto que se usará para documentar los programas

Sintaxis:

Consta de unas definiciones, denominadas reglas sintácticas o producciones queespecifican la secuencia de símbolos que forman una frase del lenguaje. Estas reglasdicen si una frase está bien escrita o no.

Las reglas sintácticas pueden contener dos tipos de elementos:• Elementos Terminales (∈ Vocabulario)• Elementos no Terminales, que son construcciones intermedias de la gramática.

Un compilador es un programa que permite traducir el código fuente de un programa en lenguaje de alto nivel, a otro lenguaje de nivel inferior (típicamente lenguaje de máquina).

Un enlazador (en inglés, linker) es un programa que toma los objetos generados en losprimeros pasos del proceso de compilación, la información de todos los recursosnecesarios (biblioteca), quita aquellos recursos que no necesita, y enlaza el códigoobjeto con su(s) biblioteca(s) con lo que finalmente produce un fichero ejecutable ouna biblioteca. En el caso de los programas enlazados dinámicamente, el enlace entreel programa ejecutable y las bibliotecas se realiza en tiempo de carga o ejecución delprograma.

Que es ens.h?

Es un archivo cabecera, en donde están definidas las funciones, pila y memoria, parala implementación de programas en un microensamblador, este archivo no esexclusivo de lenguaje c, lo implemente para usarlo como herramienta de trabajo, porlo tanto hay que descargarlo del sitio web e incluirlo en nuestros programas, paraformar nuestro programas podemos usar como compilador y ligador Dev c++, gcc,cc, Turbo C, Visual C

Lenguaje = un léxico+ una sintaxis +una semántica

ah al bl bh ch cl dh dl If scanf main system goto

mov( ..) mov1( ..)

add(…) sub(…) pìla1()

pop() push(…) div1(..)

mult(..) xhcg(..) dec(..)

inc(..) r() cmp(...)

mem[ ]

Micro ensamblador(ens.h)

Diagrama de flujo

inicio

al ,ah,bl,bh,cl

ch=al +ah+bl+bh+cl

ch

fin

Problema: sumar cinco números y mostrar el resultado

Del lenguaje C solo puede utilizar las instrucciones if, scanf, main, system y goto, además no debe

declarar ninguna otra variable, solo debe hacer uso de lo permitido por ens.h

Cuerpo básico de cualquier aplicación:

Si necesita implementar una estructura repetitiva, se hace de la siguiente manera

Implementación de un

ciclo(for, while, do-while)

Usando estructura repetitiva

Usando memoria

0 1 2 3 4 5 6 7 8 9

11 24 32

memoria

Usando la pila (Stack)

321

Pu

sh(&

reg)

po

p(

)

Puntero tope(SP)Stac

k

Ejercicio 1

Problema:

Construya un programa en ens.h para calcular el perímetro(P) y la superficie(S) de un rectangulo.

S=base * altura

P=2*(base + altura)

Tarea 1

Problema:

Construya un programa en ens.h para calcular el promedio de n números.