Lenguaje TIMBA
2018
Fundamentos de la Informática – Int. a la ProgramaciónResolución de Problemas y Algoritmos
Área de Servicios – Dpto. De Informática - FCFMyN
Ellenguaje“TIMBA”recibeestenombrepor:TerriblyImbecileMachineforBoringAlgorithms.
FuedesarrolladoporunequipodetrabajoenlaUNSL,comounlenguajesencillodeprogramaciónparatrabajarconlaestructuradepilas.
ElequipofuedirigidoporelIng.HugoRyckeboerqueenlaactualidadesaúnProfesordenuestraCasa.
Área de Servicios – Dpto. De Informática – FCFMyN - UNSL
OrígenesLenguaje Timba
2018
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
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
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
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
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
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
Sentencias Iterativas
PermitenordenaraUCPlarealizacióndeuna,ningunaovariasvecesunbloquedesentencias,bajocontroldeunacondiciónverificableenejecución.
ComienzansiempreconMIENTRAS,queesseguidoporlacondición,elbloqueaejecutarylapalabraclaveREPITA.
Área de Servicios – Dpto. De Informática – FCFMyN - UNSL
Lenguaje Timba
2018
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
Sintaxis de TIMBAParaescribircorrectamentelosprogramasenunlenguaje,sedebenespecificarlasreglasatenerencuenta.
Elconjuntodereglasformalasintaxisdellenguaje.
Usaremoslosiguiente:
<>,
[],
{},
*
PalabrasclavesdeTIMBA Signosdepuntuación
Área de Servicios – Dpto. De Informática – FCFMyN - UNSL
Lenguaje Timba
2018
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
Sintaxis de TIMBA Lenguaje Timba
2018
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
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
SentenciasSonelelementoconstitutivodeTIMBAylamínimaunidadlógica.
Sondedosgrandestipos:OperativasydeControl.
Lasoperativasrealizancambiossobrelaspilas,oestadodelacartaqueUCPanalizaenesemomento:“lacartaqueUCPtieneenlamano”.
Lasdecontrolpermitencontrolarlasecuenciadeoperaciones,sinseroperacionesensí:SIyMIENTRAS.
Área de Servicios – Dpto. De Informática – FCFMyN - UNSL
Lenguaje Timba
2018
SentenciasCuandoenunadescripciónformalaparecelapalabrasentencias,sequieresimbolizar:
Área de Servicios – Dpto. De Informática – FCFMyN - UNSL
Lenguaje Timba
Dondeformalmente<sentencia>puedeser:
2018
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
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
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
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
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
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
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
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
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
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
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
2018
Proposición
Área de Servicios – Dpto. De Informática – FCFMyN - UNSL
Lenguaje Timba
2018
Problemas
Área de Servicios – Dpto. De Informática – FCFMyN - UNSL
Lenguaje Timba
2018
Dadas3pilasdecartasnovacíasycontodaslascartasbocaarriba,sepideintercambiarrotativamente(enelsentidodelasagujasdelreloj)lostopesdelasmismasSINUSARPILASAUXILIARES.
Porejemplo:EstadoInicial EstadoFinal
Separar de una pila A donde las cartas se pueden encontrar en cualquierestado,todaslascartasdepaloespada.
ABC ABC 1 2 3 3 1 2
DadaunapilaAdondesóloexistencartasdeoroybasto,generarotrapilaBdondeaparezcanintercaladoslosorosybastos.
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
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
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
Backus Naur FormEjemplo:
No-terminal distinguidoNo-terminales
Terminales
Área de Servicios – Dpto. De Informática – FCFMyN - UNSL
Lenguaje Timba
2018
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