¿Qué es un lenguaje?hilario_sm/slide/ensamblador 2012... · ¿Qué es un lenguaje? Conjunto de...

19

Transcript of ¿Qué es un lenguaje?hilario_sm/slide/ensamblador 2012... · ¿Qué es un lenguaje? Conjunto de...

Page 1: ¿Qué es un lenguaje?hilario_sm/slide/ensamblador 2012... · ¿Qué es un lenguaje? Conjunto de símbolos y palabras (vocabulario o léxico) y conjunto de reglas (sintaxis y semántica)
Page 2: ¿Qué es un lenguaje?hilario_sm/slide/ensamblador 2012... · ¿Qué es un lenguaje? Conjunto de símbolos y palabras (vocabulario o léxico) y conjunto de reglas (sintaxis y semántica)
Page 3: ¿Qué es un lenguaje?hilario_sm/slide/ensamblador 2012... · ¿Qué es un lenguaje? Conjunto de símbolos y palabras (vocabulario o léxico) y conjunto de reglas (sintaxis y semántica)

¿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

Page 4: ¿Qué es un lenguaje?hilario_sm/slide/ensamblador 2012... · ¿Qué es un lenguaje? Conjunto de símbolos y palabras (vocabulario o léxico) y conjunto de reglas (sintaxis y semántica)

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.

Page 5: ¿Qué es un lenguaje?hilario_sm/slide/ensamblador 2012... · ¿Qué es un lenguaje? Conjunto de símbolos y palabras (vocabulario o léxico) y conjunto de reglas (sintaxis y semántica)

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

Page 6: ¿Qué es un lenguaje?hilario_sm/slide/ensamblador 2012... · ¿Qué es un lenguaje? Conjunto de símbolos y palabras (vocabulario o léxico) y conjunto de reglas (sintaxis y semántica)

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.

Page 7: ¿Qué es un lenguaje?hilario_sm/slide/ensamblador 2012... · ¿Qué es un lenguaje? Conjunto de símbolos y palabras (vocabulario o léxico) y conjunto de reglas (sintaxis y semántica)
Page 8: ¿Qué es un lenguaje?hilario_sm/slide/ensamblador 2012... · ¿Qué es un lenguaje? Conjunto de símbolos y palabras (vocabulario o léxico) y conjunto de reglas (sintaxis y semántica)

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

Page 9: ¿Qué es un lenguaje?hilario_sm/slide/ensamblador 2012... · ¿Qué es un lenguaje? Conjunto de símbolos y palabras (vocabulario o léxico) y conjunto de reglas (sintaxis y 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)

Page 10: ¿Qué es un lenguaje?hilario_sm/slide/ensamblador 2012... · ¿Qué es un lenguaje? Conjunto de símbolos y palabras (vocabulario o léxico) y conjunto de reglas (sintaxis y semántica)

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

Page 11: ¿Qué es un lenguaje?hilario_sm/slide/ensamblador 2012... · ¿Qué es un lenguaje? Conjunto de símbolos y palabras (vocabulario o léxico) y conjunto de reglas (sintaxis y semántica)
Page 12: ¿Qué es un lenguaje?hilario_sm/slide/ensamblador 2012... · ¿Qué es un lenguaje? Conjunto de símbolos y palabras (vocabulario o léxico) y conjunto de reglas (sintaxis y semántica)

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:

Page 13: ¿Qué es un lenguaje?hilario_sm/slide/ensamblador 2012... · ¿Qué es un lenguaje? Conjunto de símbolos y palabras (vocabulario o léxico) y conjunto de reglas (sintaxis y semántica)

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

Implementación de un

ciclo(for, while, do-while)

Page 14: ¿Qué es un lenguaje?hilario_sm/slide/ensamblador 2012... · ¿Qué es un lenguaje? Conjunto de símbolos y palabras (vocabulario o léxico) y conjunto de reglas (sintaxis y semántica)
Page 15: ¿Qué es un lenguaje?hilario_sm/slide/ensamblador 2012... · ¿Qué es un lenguaje? Conjunto de símbolos y palabras (vocabulario o léxico) y conjunto de reglas (sintaxis y semántica)

Usando estructura repetitiva

Page 16: ¿Qué es un lenguaje?hilario_sm/slide/ensamblador 2012... · ¿Qué es un lenguaje? Conjunto de símbolos y palabras (vocabulario o léxico) y conjunto de reglas (sintaxis y semántica)

Usando memoria

0 1 2 3 4 5 6 7 8 9

11 24 32

memoria

Page 17: ¿Qué es un lenguaje?hilario_sm/slide/ensamblador 2012... · ¿Qué es un lenguaje? Conjunto de símbolos y palabras (vocabulario o léxico) y conjunto de reglas (sintaxis y semántica)

Usando la pila (Stack)

321

Pu

sh(&

reg)

po

p(

)

Puntero tope(SP)Stac

k

Page 18: ¿Qué es un lenguaje?hilario_sm/slide/ensamblador 2012... · ¿Qué es un lenguaje? Conjunto de símbolos y palabras (vocabulario o léxico) y conjunto de reglas (sintaxis y semántica)

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)

Page 19: ¿Qué es un lenguaje?hilario_sm/slide/ensamblador 2012... · ¿Qué es un lenguaje? Conjunto de símbolos y palabras (vocabulario o léxico) y conjunto de reglas (sintaxis y semántica)

Tarea 1

Problema:

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