RubioScript
Un lenguaje de script que describe y resuelve problemas de primaria.
RubioScript surge de la inspiración en los cuadernillos de problemas Rubio de mi infancia, la necesidad
de hacer algo distinto para pasar el rato, y las ganas de hacer mi propio lenguaje
de programación e intérprete. Espero que no me demanden.
Sintaxis
RubioScript es un pequeño lenguaje de programación declarativo específico para describir y resolver problemas de primaria. Su sintaxis es muy parecido al español. Se trabaja con sujetos, objetos y unidades. Los objetos no son parte de una orientación a objetos.
Asignación
Tiene la forma
'sujeto' tiene 'objeto' 'unidades'
Ejemplo
Pedro tiene 3 manzanas.
Con esto se crea un sujeto llamado Pedro que tiene 3 unidades del objeto manzanas.
Contenedor
Una variante del sujeto son los contenedores. Es exactamente igual que el sujeto. Solamente es para hacer el lenguaje más expresivo.
En (un|una) 'contenedor' (hay|habia) 'unidades' 'objeto'
En un cuenco habia 3 platanos.
Salida
Obviamente necesitamos saber el resultado del problema. Esto se hace preguntando sobre el sujeto o globalmente.
Sobre el sujeto
(Cuántas|Cuántos) 'objeto' tiene 'sujeto'?
Pedro tiene 3 manzanas, cuántas manzanas tiene Pedro?
Pedro tiene 3 manzanas.
Puedes usar . y , para separar las sentencias.
Esta forma es para contenedores.
(Cuantos|Cuantas) 'objeto' hay en (el|la|ese|esa) 'contenedor'
Cuantos platanos hay en el cuenco?
Globalmente
Cuantos|Cuantas 'objeto' hay en total?
Pedro tiene 1 caramelos, Maria tiene 2 caramelos, cuantos caramelos hay en total?
Hay 3 caramelos en total.
Operaciones
Obviamente necesitamos hacer operaciones como dar o quitar objetos a sujetos, objetos entre sujetos y objetos entre sujetos y contenedores.
Objetos a sujetos
Si se (da|quita) 'unidades' 'objeto' a 'sujeto'.
Pedro tiene 4 manzanas. Si se da 2 manzanas a Pedro, cuantas manzanas tiene Pedro?
Pedro tiene 6 manzanas.
Objetos entre sujetos
Si 'sujeto' (da|quita) 'unidades' 'objetos' a 'sujeto2'
Pedro tiene 3 manzanas. Si Maria quita 3 manzanas a Pedro, cuantas manzanas tiene Pedro?
Pedro tiene 0 manzanas.
Aquí se ve que María no tiene, o no se sabe, cuántas manzanas tiene al principio. Se asume que no tiene nada María. Si se pregunta cuántas manzanas tiene María pues la respuesta es 3.
Objetos entre sujetos y contenedores
Esta es una forma especial entre objetos entre sujetos. De hecho actúa de la misma forma.
'sujeto' (coge|pone) 'unidades' 'objeto' (de|en) (la|el|un|una) 'contenedor'
Maria coge 3 peras de el cuenco.
Pedro pone 2 peras en el cuenco.