Pau Patrol++, un lenguaje orientado a objetos que provee mecanismos para definir clases, atributos, métodos y herencia sencilla, basado en C++.
Para poder correr el programa es necesario tener instalado Python 3 y Ply. Para instalar python ingresa a este link Para instalar ply, una vez instalado python, corre el siguiente comando en tu terminal
pip install ply
Una vez instalados descarga el repositorio!
Para poder correr tu programa, deberás de crear un archivo con la extensión “.patrol”. Te recomendamos que lo hagas dentro de la carpeta del repositorio.
Un programa Patrol empieza con la declaración del nombre del programa, seguido por todas sus clases, la declaración de variables globales, funciones y al ultimo la función main del programa. Los únicos bloques de código obligatorios son la declaración del nombre del programa y la función main del programa. A continuación te presentamos un programa básico de ejemplo:
program Prog1;
main(){
write("Hello World");
}
Pau Patrol ++ soporta int
, float
, char
y bool
como tipos de variables primitivos
Las variables deben empezar con letra minúscula, el resto de su contenido puede contener letras minúsculas, mayúsculas, números y guiones bajos
a
nombreVariable
nombre_Variable
a1
A
1a
__variable__
La declaración de variables globales debe empezar con el encabezado vars
vars
var: int;
La declaración de variables locales dentro de funciones sigue la misma estructura que una variable global pero no hay que incluir el encabezado vars
Un arreglo o matriz es declarado dándole un nombre de variable seguido por dos corchetes en donde se especificarán las dimensiones de la variable
Arr[5] : int;
Mat[5,10] : int;
Estos ids deben empezar con una letra mayúscula y pueden contener letras mayúsculas, minúsculas y número
A
Programa
Func1
a
5Function
Func_1
Este bloque debe ser el primero en tu codigo, empieza con la palabra program
, seguido por el nombre de tu programa y termina con un ;
program Prog1;
Operación | Operador |
---|---|
Suma | + |
Resta | - |
Multiplicación | * |
División | / |
Operación | Operador |
---|---|
Mayor que | > |
Menor que | < |
Mayor igual que | >= |
Menor igual que | <= |
Igual | == |
Diferente | != |
And | & |
Or | | |
Operación | Operador |
---|---|
Asignación | = |
Suma igual | += |
Resta igual | -= |
Multiplicación igual | *= |
División igual | /= |
Se puede usar cualquiera de los operadores de asignación para asignar el resultado de una expresión a una variable, ya sea sencilla o dimensionada. Si se usa un operador que implica una operación extra, es necesario que la variable a la que se está asignando un valor tenga un valor previamente definido.
var1 = 5;
var2 = 9+6;
var[5] = 10;
var[2,3] = 15*2;
La estructura de la función return empieza con la palabra return
seguido por dos paréntesis en donde pondremos la expresión que se desea retornar.
return(a+b);
return(5);
Para llamar una función es necesario empezar con el nombre de la función a llamar, seguido por sus parámetros entre paréntesis.
Func1();
Func2(a,b,9);
Esta función imprimirá variables, valores y letreros en consola. La estructura de la función write empieza con la palabra write
seguido por dos paréntesis en donde podremos colocar todo aquello que queremos que se imprima. Para imprimir más de una expresión dentro de la función es necesario separarlas por comas.
write(a);
write("Hello World", 5+10, b);
Esta función recibirá un valor de un usuario y la asignará a la variable definida. La estructura de la función read empieza con la palabra read
seguido por dos paréntesis en donde pondremos colocar la función a la cual queremos dar un valor.
read(a);
Pau Patrol++ soporta los bloques condicionales if
y else
, basandose un poco en la estructura de c++, el bloque if
puede o no ser seguido por un bloque else
.
if(r == 1) then {
write(r);
}
if(r == 1) then {
write(r);
} else{
write(5);
}
Pau Patrol++ también soporta el bloque condicional while
, basándose un poco en la estructura de c++.
while(a > b) do {
write(5);
}
Pau Patrol++ soporta el bloque no condicional from
, basandose en la estructura del for loop de c++, donde primero se hace una asignación y luego se define un limite para la variable.
from x = 0 to l0 do{
write(x);
}
Las funciones dentro de Pau Patrol++ siguen la siguiente estructura, siendo la declaración de variables locales opcional.
Tipo_Funcion function Nombre_Función(Parametros);
Declaración de variables
{
Bloque de codigo
}
Los tipos que puede tomar una función son int
, float
, char
, bool
y void
Una función puede o no tener definidos parametros de entrada. La sintaxis para definir un parámetro es la siguiente nombre_variable : tipo_Variable;
, al final de la declaración de un parámetro es necesario colocar un ;
int function Func1(a:int;);
void function Func2(a:int; b:float;)
int function Func3();
Las clases dentro de Pau Patrol++ siguen la siguiente estructura, siendo la declaración de atributos opcional.
class Nombre_Clase; {
attributes
declaración de variables
methods
bloque de funciones
};
La declaración de atributos en una clase es opcional, debe estar definida por el encabezado de attributes
y dentro sigue la misma estructura que una declaración de variables normal.
attributes
age: int;
weight: float;
size: char;
Dentro de la declaración de métodos es obligatoria dentro de las clases y debe tener al menos una función definida.
methods
void function ClassFunc();
{
age = 0;
weight = 0.0;
size = 's';
}
Pau Patrol++ soporta la herencia entre clases. Para heredar una clase esta debe estar definida con anterioridad y la sintaxis a seguir para heredar una clase es la siguiente:
class Hijo <inherit Padre>; {
Para definir un objeto de una clase se hace de la siguiente manera:
var : NombreClase;
Para obtener o asignar el valor de una variable definida de en una clase se sigue la siguiente sintaxis:
var.varClass = 5;
a = var.varClass + 5;
Para mandar a llamar a una método definido en una clase se sigue la siguiente sintaxis:
var.ClassFunc1();
var.ClassFunc2(a,2.5);
Para colocar un comentario dentro de tu programa es necesario poner el simbolo #
seguido de tu comentario.
#Esto es un comentario
a = 5; #Esto tambien es un comentario
Una vez que hayas terminado de escribir tu programa, guarda el archivo. Abre la terminal y ve a la carpeta donde tienes el archivo. Una vez ahi ejecuta el siguiente comando:
python3 LaTonta.py
En caso de estar en otra carpeta
python3 [direccion del repo]/LaTonta.py
Y listo! Tendrás a tu pequeño programa en Pau Patrol++ corriendo. ¡RECORDATORIO! : Si hay errores en el programa estos aparecerán en la terminal cuando lo corras
A continuación te dejamos un video tutorial de como hacer y correr tus programas Pau Patrol ++ Video
Si quieres saber mas sobre el lenguaje y el compilador de para Pau Patrol++ puedes checarla documentación aquí
- Gabriel Ortega Jacobo
- Paulina Cámara Vidales