Lenguaje TIMBA. Fundamentos de la Informática Int. a la Programación Resolución de Problemas y Algoritmos

35  28  Descargar (0)

Texto completo

(1)

Lenguaje TIMBA

2018

Fundamentos de la Informática

Int. a la Programación

Resolución de Problemas y Algoritmos

(2)

El lenguaje “TIMBA” recibe este nombre por: Terribly Imbecile Machine for Boring Algorithms.

Fue desarrollado por un equipo de trabajo en la UNSL, como un lenguaje sencillo de programación para trabajar con la estructura de pilas.

El equipo fue dirigido por el Ing. Hugo Ryckeboer que en la actualidad es aún Profesor de nuestra Casa.

Orígenes

Lenguaje Timba

(3)

El Lenguaje TIMBA

Maneja pilas de cartas y tiene sólo tres operaciones elementales sobre ellas.

No es posible una gran capacidad de programación.

Permite definir pilas y consta de las operaciones elementales sobre las pilas de tomar y depositar cartas, e invertir la carta que en ese momento se analiza.

Área de Servicios – Dpto. De Informática – FCFMyN - UNSL

Lenguaje Timba

(4)

Programa en TIMBA

Un programa es una secuencia de órdenes o sentencias a un ejecutor, UCP.

UCP es responsable de los resultados y del análisis de errores y reconoce las pilas por su nombre, las operaciones “tomar” y “depositar”, las estructuras de control y un ente especial,

llamado “CARTA” o “LA CARTA”.

Lenguaje Timba

(5)

Programa en TIMBA

Consta de dos partes:

una definición del proceso algorítmico los datos de pila.

La definición del proceso comienza con las palabras claves:

DEFINICION DE PROGRAMA, y las sentencias que describen el algoritmo a continuación, van separadas entre sí por “,”.

Área de Servicios – Dpto. De Informática – FCFMyN - UNSL

Lenguaje Timba

Separadas entre sí

por el símbolo “;”

(6)

Programa en TIMBA

Las sentencias son de tres tipos:

Operativas:

De selección:

Iterativas:

ordenan a UCP la realización de una,

ninguna o varias veces un bloque de

sentencias

actúan sobre las pilas o la carta

ordenan a UCP cursos alternativos

del proceso

Lenguaje Timba

(7)

Actúan sobre las pilas o la carta.

Sentencias Operativas

Área de Servicios – Dpto. De Informática – FCFMyN - UNSL

Lenguaje Timba

Comienzan siempre por un verbo en imperativo, que es interpretado por UCP como una orden.

Los verbos posibles son:

a. TOME;

b. INVIERTA;

c. DEPOSITE.

(8)

Sentencias de Selección

Permiten ordenar a UCP cursos alternativos del flujo de proceso, bajo ciertas condiciones verificables en ejecución.

Comienzan con SI, seguido de la condición y las sentencias a ejecutar si ésta es verdadera.

Si no hay dos secuencias alternativas, la sentencia SI finaliza con las palabras claves SINO NADA MAS.

Si hay una secuencia a realizar si la condición fuera falsa, se la incluye entre las palabras claves SINO y NADA MAS.

Lenguaje Timba

(9)

Sentencias Iterativas

Permiten ordenar a UCP la realización de una, ninguna o varias veces un bloque de sentencias, bajo control de una condición verificable en

ejecución.

Comienzan siempre con MIENTRAS, que es seguido por la condición, el bloque a ejecutar y la palabra clave REPITA.

Área de Servicios – Dpto. De Informática – FCFMyN - UNSL

Lenguaje Timba

(10)

Pilas

Su descripción de datos comienza por las palabras clave “UCP EJECUTE CON LAS SIGUIENTES CARTAS:”, seguida por la

descripción de las pilas, separadas por “,” y es de una de las dos formas:

PILA <nombre> NO TIENE CARTAS

PILA <nombre> TIENE <lista de cartas>

Pila Vacía

Pila

Lenguaje Timba

2.Descripción de contenido de pila.

1.Descripción de pila vacía.

(11)

Sintaxis de TIMBA

Para escribir correctamente los programas en un lenguaje, se deben especificar las reglas a tener en cuenta.

El conjunto de reglas forma la sintaxis del lenguaje. Usaremos lo siguiente:

< >, [ ], { }, *

Palabras claves de TIMBA Signos de puntuación

Área de Servicios – Dpto. De Informática – FCFMyN - UNSL

Lenguaje Timba

(12)

Sintaxis de TIMBA

Las palabras en mayúscula son palabras claves de TIMBA, y deben escribirse como aparecen.

Las palabras en minúscula entre corchetes angulares deben reemplazarse por su definición.

Si aparecen dos o más ítems entre llaves, se elige entre ellos aquél que se ajuste al problema a resolver.

Si un ítem está entre corchetes se puede optar por escribirlo o no. Si un ítem está entre corchetes seguidos de un asterisco

, se puede omitir el ítem o escribirlo una, dos o más veces.

Lenguaje Timba

(13)

Sintaxis de TIMBA

Lenguaje Timba

(14)

Ejemplo

Problema: Se tiene una pila de 3 cartas con el 1 de oros, el 2 de copas (ambas boca arriba) y el 3 de bastos boca abajo. Se quiere invertir ésta última para dejarlas todas boca arriba.

TOME DE PILA A,

INVIERTA LA CARTA,

DEPOSITELA EN PILA A;

UCP EJECUTE CON LAS SIGUIENTES CARTAS:

PILA A TIENE 1 DE OROSh - 2 DE COPASh - 3 DE BASTOS.

Lenguaje Timba

DEFINICION DE PROGRAMA

(15)

UCP Ejecuta

DEFINICION DE PROGRAMA

TOME DE PILA A, INVIERTA LA CARTA, DEPOSITELA EN PILA A;

UCP EJECUTE CON LAS SIGUIENTES CARTAS:

PILA A TIENE 1 DE OROSh - 2 DE COPASh - 3 DE BASTOS.

PILA A

Área de Servicios – Dpto. De Informática – FCFMyN - UNSL

Lenguaje Timba

(16)

Sentencias

Son el elemento constitutivo de TIMBA y la mínima unidad lógica. Son de dos grandes tipos: Operativas y de Control.

Las operativas realizan cambios sobre las pilas, o estado de la carta que UCP analiza en ese momento: “la carta que UCP tiene en la mano”.

Las de control permiten controlar la secuencia de operaciones, sin ser operaciones en sí: SI y MIENTRAS.

Lenguaje Timba

(17)

Sentencias

Cuando en una descripción formal aparece la palabra sentencias, se quiere simbolizar:

Área de Servicios – Dpto. De Informática – FCFMyN - UNSL

Lenguaje Timba

Donde formalmente <sentencia> puede ser:

(18)

Sentencias Operativas

Son tres, formalmente:

Ejemplo:TOME DE PILA A

Ejemplo:INVIERTA LA CARTA Ejemplo: DEPOSITELA EN PILA A

Lenguaje Timba

(19)

Sentencias Operativas

La carta que figura al tope de la pila es tomada.

Cualquier referencia a CARTA se interpretará como a la última carta tomada, que no haya sido depositada.

DEPOSITE ordena dejar la carta que tiene en la mano en ese momento, en una pila determinada.

La pila debe ser declarada en la segunda parte del programa.

Ejemplo: PILA A TIENE 1 DE OROSh - 2 DE COPASh - 3 DE BASTOS.

Área de Servicios – Dpto. De Informática – FCFMyN - UNSL

Lenguaje Timba

(20)

Detección de Errores

UCP detectará error de ejecución si no tuviera una carta en la mano y se le ordenara DEPOSITE.

UCP no admite la ejecución de dos TOME sin un DEPOSITE entre ellos.

UCP reconoce error de ejecución al intentar tomar una carta de una pila vacía.

INVIERTA presupone la existencia de carta, sino UCP detecta un error de ejecución.

Lenguaje Timba

(21)

Errores de Ejecución

Ejemplo 1: ME PIDE UD. QUE TOME DE PILA ⟨nombre⟩ QUE ESTA VACIA.

Ejemplo2:ME PIDE UD. QUE TOME PILA ⟨nombre⟩ Y YO YA TENGO UNA CARTA: el ⟨número⟩ de ⟨palo⟩.

Ejemplo 3: ME PIDE UD. QUE DEPOSITE EN PILA ⟨nombre⟩ Y YO NO TENGO CARTA.

Ejemplo 4: ME PIDE UD. QUE INVIERTA LA CARTA, PERO YO NO TENGO CARTA.

Área de Servicios – Dpto. De Informática – FCFMyN - UNSL

Lenguaje Timba

(22)

Programas

Sugiere el empleo de sólo tres estructuras de control, como únicas componentes elementales de un programa:

La secuencia, la selección y la repetición,

En TIMBA

secuencialidad natural de las sentencias

separadas por el símbolo

,

sentencias

SI

. . .

SINO

. . .

NADA MAS

sentencias

MIENTRAS

. . .

REPITA

f. Unión, enlace entre ideas o actos

Lenguaje Timba

(23)

Sentencia SI

Formalmente debe escribirse:

Ejemplos:

•  TOME LA CARTA DE PILA A, SI CARTA ESTA BOCA ABAJO INVIERTA LA

CARTA, DEPOSITE LA CARTA EN PILA A SINO DEPOSITELA EN PILA B NADA MAS

•  TOME LA CARTA DE PILA A, SI LA CARTA NO ESTA BOCA ABAJO, SI LA

CARTA ES EL 1 DE OROS DEPOSITELA EN PILA A SINO NADA MAS SINO NADA MAS

Área de Servicios – Dpto. De Informática – FCFMyN - UNSL

Lenguaje Timba

(24)

Ejecución condicional

TOME LA CARTA DE PILA A, SI CARTA ESTA BOCA ABAJO INVIERTA LA CARTA, DEPOSITE LA CARTA EN PILA A SINO DEPOSITELA EN PILA B NADA

MAS

Pila A

Pila B

Lenguaje Timba

(25)

Ejecución condicional

TOME LA CARTA DE PILA A, SI CARTA ESTA BOCA ABAJO INVIERTA LA CARTA, DEPOSITE LA CARTA EN PILA A SINO DEPOSITELA EN PILA B

NADA MAS

Pila A

Pila B

Área de Servicios – Dpto. De Informática – FCFMyN - UNSL

Lenguaje Timba

(26)

Sentencia MIENTRAS

Formalmente, debe escribirse:

Ejemplo: si se quiere pasar todas las cartas de la PILA B a la C y luego tomar una carta de la PILA D

MIENTRAS LA PILA B NO ESTA VACIA

TOME DE PILA B, DEPOSITE EN PILA C REPITA, TOME DE PILA D

Lenguaje Timba

2018

(27)

Condición

Es una proposición lógica, que emite un juicio sobre el estado de las pilas o la carta, y que puede ser evaluada como “Verdadera” o “Falsa”.

Ejemplo:

•  LA CARTA ES DEL PALO OROS Y LA CARTA ES DEL VALOR 1

Área de Servicios – Dpto. De Informática – FCFMyN - UNSL

Lenguaje Timba

(28)

Condición

Lenguaje Timba

TOME LA CARTA DE PILA A,

SI CARTA ESTA BOCA ABAJO

INVIERTA LA CARTA,

DEPOSITE LA CARTA EN PILA A

SINO DEPOSITELA EN PILA B NADA MAS

Ejemplos:

TOME LA CARTA DE PILA A,

SI LA CARTA NO ESTA BOCA ABAJO,

SI CARTA ES IGUAL A 1 y CARTA

ES DEL PALO OROS

DEPOSITELA EN PILA A

SINO NADA MAS

SINO NADA MAS

(29)

Proposición

Área de Servicios – Dpto. De Informática – FCFMyN - UNSL

Lenguaje Timba

(30)

Problemas

Lenguaje Timba

2018

Dadas 3 pilas de cartas no vacías y con todas las cartas boca arriba, se pide intercambiar rotativamente (en el sentido de las agujas del reloj) los topes de las mismas SIN USAR PILAS AUXILIARES.

Por ejemplo: Estado Inicial Estado Final

Separar de una pila A donde las cartas se pueden encontrar en cualquier estado, todas las cartas de palo espada.

A B C A B C

1 2 3 3 1 2

Dada una pila A donde sólo existen cartas de oro y basto, generar otra pila B donde aparezcan intercalados los oros y bastos.

(31)

Descripción de Pila

Formalmente, se escribe:

Ejemplo:

•  PILA A TIENE 1 DE OROSh - 2 DE COPASh - 3 DE BASTOS.

Área de Servicios – Dpto. De Informática – FCFMyN - UNSL

Lenguaje Timba

(32)

Backus Naur Form

Una especificación BNF es un conjunto de reglas de derivación que permiten describir la sintaxis de un lenguaje.

Las reglas se escriben como: <símbolo> ::= expresión,

<símbolo> es un no-terminal

expresión consiste de una o más secuencias de símbolos; separadas |, para indicar una elección posible.

Lenguaje Timba

(33)

Backus Naur Form

Cada opción del lado derecho puede sustituir completo al <símbolo> de la izquierda.

Los símbolos que no aparecen del lado izquierdo son los terminales.

Los símbolos de la izquierda son no-terminales y aparecen encerrados entre < >.

El símbolo ::= indica que el símbolo de la izquierda debe sustituirse por la expresión de la derecha.

Área de Servicios – Dpto. De Informática – FCFMyN - UNSL

Lenguaje Timba

(34)

Backus Naur Form

Ejemplo:

No

-

terminal distinguido

No

-

terminales

Terminales

Lenguaje Timba

2018

(35)

Ejemplo de Derivación

<Programa timba>

<proceso> ; <declaraciones> .

TOME DE PILA A, INVIERTA LA CARTA,

DEPOSITELA EN PILA A; UCP EJECUTE CON LAS SIGUIENTES CARTAS:

PILA A TIENE 1 DE OROSh - 2 DE COPASh - 3 DE BASTOS.

DEFINICION DE PROGRAMA

DEFINICION DE PROGRAMA <sentencias> UCP EJECUTE CON LAS SIGUIENTES CARTAS : <lista de pilas>

<sentencias> <sentencia> <sentencias> <sentencia> <sentencia> <operativa> <operativa> <operativa> <descripcion de pila> <contenido> <nombre> <pila> ... ... ...

PILA A TIENE <lista de cartas>

...

Área de Servicios – Dpto. De Informática – FCFMyN - UNSL

Lenguaje Timba

Figure

Actualización...

Referencias

Actualización...

Related subjects :