lenguaje timba - unsl

34
Lenguaje TIMBA 2018 Resolución de Problemas y Algoritmos Área de Servicios Dpto. De Informática - FCFMyN

Upload: others

Post on 16-Oct-2021

18 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Lenguaje TIMBA - UNSL

Lenguaje TIMBA

2018

Resolución de Problemas y Algoritmos

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

Page 2: Lenguaje TIMBA - UNSL

Ellenguaje“TIMBA”recibeestenombrepor:TerriblyImbecileMachineforBoringAlgorithms.

FuedesarrolladoporunequipodetrabajoenlaUNSL,comounlenguajesencillodeprogramaciónparatrabajarconlaestructuradepilas.

ElequipofuedirigidoporelIng.HugoRyckeboerqueenlaactualidadesaúnProfesordenuestraCasa.

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

OrígenesLenguaje Timba

2018

Page 3: Lenguaje TIMBA - UNSL

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

2018

Page 4: Lenguaje TIMBA - UNSL

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

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

Lenguaje Timba

2018

Page 5: Lenguaje TIMBA - UNSL

Programa en TIMBAConstadedospartes:

unadefinicióndelprocesoalgorítmico

losdatosdepila.

Ladefinicióndelprocesocomienzaconlaspalabrasclaves:DEFINICION DE PROGRAMA,ylassentenciasquedescribenelalgoritmoacontinuación,vanseparadasentresípor“,”.

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

Lenguaje Timba

Separadasentresíporelsímbolo“;”

2018

Page 6: Lenguaje TIMBA - UNSL

Programa en TIMBALassentenciassondetrestipos:

Operativas:

De selección:

Iterativas: ordenanaUCPlarealizacióndeuna,

ningunaovariasvecesunbloquedesentencias

actúansobrelaspilasolacarta

ordenanaUCPcursosalternativosdelproceso

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

Lenguaje Timba

2018

Page 7: Lenguaje TIMBA - UNSL

Actúansobrelaspilasolacarta.

Sentencias Operativas

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

Lenguaje Timba

Comienzansiempreporunverboenimperativo,queesinterpretadoporUCPcomounaorden.

Losverbosposiblesson:a. TOME;b. INVIERTA;

c. DEPOSITE.2018

Page 8: Lenguaje TIMBA - UNSL

Sentencias de SelecciónPermitenordenaraUCPcursosalternativosdelflujodeproceso,bajociertascondicionesverificablesenejecución.

ComienzanconSI,seguidodelacondiciónylassentenciasaejecutarsiéstaesverdadera.

Sinohaydossecuenciasalternativas,lasentenciaSIfinalizaconlaspalabrasclavesSINO NADA MAS.

Sihayunasecuenciaarealizarsilacondiciónfuerafalsa,selaincluyeentrelaspalabrasclavesSINOyNADA MAS.

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

Lenguaje Timba

2018

Page 9: Lenguaje TIMBA - UNSL

Sentencias Iterativas

PermitenordenaraUCPlarealizacióndeuna,ningunaovariasvecesunbloquedesentencias,bajocontroldeunacondiciónverificableenejecución.

ComienzansiempreconMIENTRAS,queesseguidoporlacondición,elbloqueaejecutarylapalabraclaveREPITA.

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

Lenguaje Timba

2018

Page 10: Lenguaje TIMBA - UNSL

PilasSudescripcióndedatoscomienzaporlaspalabrasclave“UCP EJECUTE CON LAS SIGUIENTES CARTAS:”,seguidaporladescripcióndelaspilas,separadaspor“,”yesdeunadelasdosformas:

PILA <nombre> NO TIENE CARTAS

PILA <nombre> TIENE <lista de cartas>

Pila Vacía

Pila

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

Lenguaje Timba

2.  Descripcióndecontenidodepila.

1.  Descripcióndepilavacía.

2018

Page 11: Lenguaje TIMBA - UNSL

Sintaxis de TIMBAParaescribircorrectamentelosprogramasenunlenguaje,sedebenespecificarlasreglasatenerencuenta.

Elconjuntodereglasformalasintaxisdellenguaje.

Usaremoslosiguiente:

<>,

[],

{},

*

  PalabrasclavesdeTIMBA  Signosdepuntuación

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

Lenguaje Timba

2018

Page 12: Lenguaje TIMBA - UNSL

Sintaxis de TIMBALaspalabrasenmayúsculasonpalabrasclavesdeTIMBA,ydebenescribirsecomoaparecen.

Laspalabrasenminúsculaentrecorchetesangularesdebenreemplazarseporsudefinición.

Siaparecendosomásítemsentrellaves,seeligeentreellosaquélqueseajustealproblemaaresolver.

Siunítemestáentrecorchetessepuedeoptarporescribirloono.

Siunítemestáentrecorchetesseguidosdeunasterisco∗,sepuedeomitirelítemoescribirlouna,dosomásveces.

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

Lenguaje Timba

2018

Page 13: Lenguaje TIMBA - UNSL

Sintaxis de TIMBA Lenguaje Timba

2018

Page 14: Lenguaje TIMBA - UNSL

EjemploProblema:Setieneunapilade3cartasconel1deoros,el2decopas(ambasbocaarriba)yel3debastosbocaabajo.Sequiereinvertiréstaúltimaparadejarlastodasbocaarriba.

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.

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

Lenguaje Timba

DEFINICION DE PROGRAMA

2018

Page 15: Lenguaje TIMBA - UNSL

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

2018

Page 16: Lenguaje TIMBA - UNSL

SentenciasSonelelementoconstitutivodeTIMBAylamínimaunidadlógica.

Sondedosgrandestipos:OperativasydeControl.

Lasoperativasrealizancambiossobrelaspilas,oestadodelacartaqueUCPanalizaenesemomento:“lacartaqueUCPtieneenlamano”.

Lasdecontrolpermitencontrolarlasecuenciadeoperaciones,sinseroperacionesensí:SIyMIENTRAS.

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

Lenguaje Timba

2018

Page 17: Lenguaje TIMBA - UNSL

SentenciasCuandoenunadescripciónformalaparecelapalabrasentencias,sequieresimbolizar:

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

Lenguaje Timba

Dondeformalmente<sentencia>puedeser:

2018

Page 18: Lenguaje TIMBA - UNSL

Sentencias OperativasSontres,formalmente:

Ejemplo: TOME DE PILA A

Ejemplo: INVIERTA LA CARTA

Ejemplo: DEPOSITELA EN PILA A

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

Lenguaje Timba

2018

Page 19: Lenguaje TIMBA - UNSL

Sentencias OperativasLacartaquefiguraaltopedelapilaestomada.CualquierreferenciaaCARTAseinterpretarácomoalaúltimacartatomada,quenohayasidodepositada.DEPOSITEordenadejarlacartaquetieneenlamanoenesemomento,enunapiladeterminada.Lapiladebeserdeclaradaenlasegundapartedelprograma.

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

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

Lenguaje Timba

2018

Page 20: Lenguaje TIMBA - UNSL

Detección de ErroresUCP 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.

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

Lenguaje Timba

2018

Page 21: Lenguaje TIMBA - UNSL

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

2018

Page 22: Lenguaje TIMBA - UNSL

ProgramasSugiereelempleodesólotresestructurasdecontrol,comoúnicascomponenteselementalesdeunprograma:

Lasecuencia,laselecciónylarepetición,

En TIMBAsecuencialidad 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

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

Lenguaje Timba

2018

Page 23: Lenguaje TIMBA - UNSL

Sentencia SIFormalmentedebeescribirse:

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

2018

Page 24: Lenguaje TIMBA - UNSL

Ejecución condicionalTOME 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

2018

Page 25: Lenguaje TIMBA - UNSL

Ejecución condicionalTOME 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

2018

Page 26: Lenguaje TIMBA - UNSL

Sentencia MIENTRASFormalmente,debeescribirse:

Ejemplo:sisequierepasartodaslascartasdelaPILA B alaCyluegotomarunacartadelaPILA D

MIENTRAS LA PILA B NO ESTA VACIA

TOME DE PILA B,

DEPOSITE EN PILA C

REPITA,

TOME DE PILA D

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

Lenguaje Timba

2018

Page 27: Lenguaje TIMBA - UNSL

CondiciónEsunaproposiciónlógica,queemiteunjuiciosobreelestadodelaspilasolacarta,yquepuedeserevaluadacomo“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

2018

Page 28: Lenguaje TIMBA - UNSL

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 CARTA ES IGUAL A 1 y CARTA ES DEL PALO OROS

DEPOSITELA EN PILA A

SINO NADA MAS

SINO NADA MAS

Condición Lenguaje Timba

 Ejemplos:

2018

Page 29: Lenguaje TIMBA - UNSL

Proposición

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

Lenguaje Timba

2018

Page 30: Lenguaje TIMBA - UNSL

Descripción de Pila

Formalmente,seescribe:

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

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

Lenguaje Timba

2018

Page 31: Lenguaje TIMBA - UNSL

Backus Naur Form

UnaespecificaciónBNFesunconjuntodereglasdederivaciónquepermitendescribirlasintaxisdeunlenguaje.Lasreglasseescribencomo:<símbolo>::=expresión,<símbolo>esunno-terminalexpresiónconsistedeunaomássecuenciasdesímbolos;separadas|,paraindicarunaelecciónposible.

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

Lenguaje Timba

2018

Page 32: Lenguaje TIMBA - UNSL

Backus Naur Form

Cadaopcióndelladoderechopuedesustituircompletoal<símbolo>delaizquierda.

Lossímbolosquenoaparecendelladoizquierdosonlosterminales.

Lossímbolosdelaizquierdasonno-terminalesyaparecenencerradosentre<>.

Elsímbolo::=indicaqueelsímbolodelaizquierdadebesustituirseporlaexpresióndeladerecha.

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

Lenguaje Timba

2018

Page 33: Lenguaje TIMBA - UNSL

Backus Naur FormEjemplo:

No-terminal distinguidoNo-terminales

Terminales

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

Lenguaje Timba

2018

Page 34: Lenguaje TIMBA - UNSL

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

2018