Lenguaje TIMBA - UNSL
Transcript of Lenguaje TIMBA - UNSL
![Page 1: Lenguaje TIMBA - UNSL](https://reader030.fdocumento.com/reader030/viewer/2022012408/616a38a811a7b741a350224d/html5/thumbnails/1.jpg)
Lenguaje TIMBA
2018
Resolución de Problemas y Algoritmos
Área de Servicios – Dpto. De Informática - FCFMyN
![Page 2: Lenguaje TIMBA - UNSL](https://reader030.fdocumento.com/reader030/viewer/2022012408/616a38a811a7b741a350224d/html5/thumbnails/2.jpg)
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](https://reader030.fdocumento.com/reader030/viewer/2022012408/616a38a811a7b741a350224d/html5/thumbnails/3.jpg)
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](https://reader030.fdocumento.com/reader030/viewer/2022012408/616a38a811a7b741a350224d/html5/thumbnails/4.jpg)
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](https://reader030.fdocumento.com/reader030/viewer/2022012408/616a38a811a7b741a350224d/html5/thumbnails/5.jpg)
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](https://reader030.fdocumento.com/reader030/viewer/2022012408/616a38a811a7b741a350224d/html5/thumbnails/6.jpg)
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](https://reader030.fdocumento.com/reader030/viewer/2022012408/616a38a811a7b741a350224d/html5/thumbnails/7.jpg)
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](https://reader030.fdocumento.com/reader030/viewer/2022012408/616a38a811a7b741a350224d/html5/thumbnails/8.jpg)
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](https://reader030.fdocumento.com/reader030/viewer/2022012408/616a38a811a7b741a350224d/html5/thumbnails/9.jpg)
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](https://reader030.fdocumento.com/reader030/viewer/2022012408/616a38a811a7b741a350224d/html5/thumbnails/10.jpg)
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](https://reader030.fdocumento.com/reader030/viewer/2022012408/616a38a811a7b741a350224d/html5/thumbnails/11.jpg)
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](https://reader030.fdocumento.com/reader030/viewer/2022012408/616a38a811a7b741a350224d/html5/thumbnails/12.jpg)
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](https://reader030.fdocumento.com/reader030/viewer/2022012408/616a38a811a7b741a350224d/html5/thumbnails/13.jpg)
Sintaxis de TIMBA Lenguaje Timba
2018
![Page 14: Lenguaje TIMBA - UNSL](https://reader030.fdocumento.com/reader030/viewer/2022012408/616a38a811a7b741a350224d/html5/thumbnails/14.jpg)
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](https://reader030.fdocumento.com/reader030/viewer/2022012408/616a38a811a7b741a350224d/html5/thumbnails/15.jpg)
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](https://reader030.fdocumento.com/reader030/viewer/2022012408/616a38a811a7b741a350224d/html5/thumbnails/16.jpg)
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](https://reader030.fdocumento.com/reader030/viewer/2022012408/616a38a811a7b741a350224d/html5/thumbnails/17.jpg)
SentenciasCuandoenunadescripciónformalaparecelapalabrasentencias,sequieresimbolizar:
Área de Servicios – Dpto. De Informática – FCFMyN - UNSL
Lenguaje Timba
Dondeformalmente<sentencia>puedeser:
2018
![Page 18: Lenguaje TIMBA - UNSL](https://reader030.fdocumento.com/reader030/viewer/2022012408/616a38a811a7b741a350224d/html5/thumbnails/18.jpg)
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](https://reader030.fdocumento.com/reader030/viewer/2022012408/616a38a811a7b741a350224d/html5/thumbnails/19.jpg)
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](https://reader030.fdocumento.com/reader030/viewer/2022012408/616a38a811a7b741a350224d/html5/thumbnails/20.jpg)
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](https://reader030.fdocumento.com/reader030/viewer/2022012408/616a38a811a7b741a350224d/html5/thumbnails/21.jpg)
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](https://reader030.fdocumento.com/reader030/viewer/2022012408/616a38a811a7b741a350224d/html5/thumbnails/22.jpg)
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](https://reader030.fdocumento.com/reader030/viewer/2022012408/616a38a811a7b741a350224d/html5/thumbnails/23.jpg)
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](https://reader030.fdocumento.com/reader030/viewer/2022012408/616a38a811a7b741a350224d/html5/thumbnails/24.jpg)
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](https://reader030.fdocumento.com/reader030/viewer/2022012408/616a38a811a7b741a350224d/html5/thumbnails/25.jpg)
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](https://reader030.fdocumento.com/reader030/viewer/2022012408/616a38a811a7b741a350224d/html5/thumbnails/26.jpg)
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](https://reader030.fdocumento.com/reader030/viewer/2022012408/616a38a811a7b741a350224d/html5/thumbnails/27.jpg)
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](https://reader030.fdocumento.com/reader030/viewer/2022012408/616a38a811a7b741a350224d/html5/thumbnails/28.jpg)
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](https://reader030.fdocumento.com/reader030/viewer/2022012408/616a38a811a7b741a350224d/html5/thumbnails/29.jpg)
Proposición
Área de Servicios – Dpto. De Informática – FCFMyN - UNSL
Lenguaje Timba
2018
![Page 30: Lenguaje TIMBA - UNSL](https://reader030.fdocumento.com/reader030/viewer/2022012408/616a38a811a7b741a350224d/html5/thumbnails/30.jpg)
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](https://reader030.fdocumento.com/reader030/viewer/2022012408/616a38a811a7b741a350224d/html5/thumbnails/31.jpg)
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](https://reader030.fdocumento.com/reader030/viewer/2022012408/616a38a811a7b741a350224d/html5/thumbnails/32.jpg)
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](https://reader030.fdocumento.com/reader030/viewer/2022012408/616a38a811a7b741a350224d/html5/thumbnails/33.jpg)
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](https://reader030.fdocumento.com/reader030/viewer/2022012408/616a38a811a7b741a350224d/html5/thumbnails/34.jpg)
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