Compilador Propuesta
Compilador Propuesta
Compilador Propuesta
Campus Monterrey
Propuesta de Proyecto:
DaVinci
1
Índice
1) General
a) Visión del proyecto ……………..……………..……………..……………..3
b) Objetivo principal(incluyendo área)……………..……………..………….3
2) Requerimientos del lenguaje
a) Palabras reservadas, operadores(lógicos, aritméticos, relacionales)..4
b) Diagramas de sintaxis……………..……………..………………………..4
c) Principales elementos de la semántica……………..…………………...4
d) Breve descripción de cada función especial así como instrucciones
usadas en nuestro lenguaje.……………..……………..………………...5
e) Tipos de datos……………..……………..……………..………………….5
3) Entorno
a) Lenguaje……………..……………..……………..………………………..6
b) Sistema Operativo……………..……………..……………..……………..6
4) Bibliografía……………..……………..……………..……………..……………….6
2
General
Visión
Objetivo
El objetivo de este proyecto es crear una herramienta que acerque a los jóvenes
que no han tenido experiencia en programación de una manera divertida, por medio
de figuras geométricas creadas a través de comandos fáciles e intuitivos, siendo
auxiliar en su aprendizaje y tareas.
Palabras reservadas
penOff
3
Tokens
id [A-Za-z][0-9A-Za-Z_]*
cte_int [0-9]+
cte_float [0-9]+\.[0-9]+
cte_string \".*\"
Operadores lógicos
Operador Uso
AND Unión
OR Intersección
NOT Negación
Operadores aritméticos
Operador Uso
+ Suma
- Resta
* Multiplicación
/ División
Operadores relacionales
Operador Uso
4
<= Menor o igual que
== Igual a
!= Diferente de
5
Diagramas de sintaxis
DAVINCI
ASSIGNMENT
BLOCK
COLOR CTE
CONDITION
COLOR
CIRCLE
SQUARE
6
TRIANGLE
RECTANGLE
POLIGON
ROTATE
PENSIZE
PENFORWARD
PENBACK
TYPE
7
VARS
EXPRESSION
EXP
CTE BOOL
FACTOR
TERM
8
CALL
VAR CTE
STATUTE
9
Elementos de la semántica
Int Int Int Int Int Float Bool error error error
Int Float Float Float Float Float Bool error error error
Int Bool error error error error error error error error
Int String error error error error error error error error
Float Float Float Float Float Float Bool error error error
Float Int Float Float Float Float Bool error error error
Float Bool error error error error error error error error
Float Sring error error error error error error error error
String String String error error error Bool error error error
String Int error error error error error error error error
String Float error error error error error error error error
String Bool error error error error error error error error
Bool Bool error error error error error Bool Bool Bool
Bool Int error error error error error error error error
Bool Float error error error error error error error error
Bool String error error error error error error error error
Tipos de datos
Tipo de dato
Entero
Flotante
Booleano
String
Funciones especiales
Función Descripción
10
DaVinci{} Marca el inicio del programa.
Programa Prueba
DaVinci
{
penSize(3);
color(red);
penForward(5); //el pincel se mueve hacia arriba 5 unidades.
triangle(2,5); //dibuja un triángulo de base 2 y altura 5 color rojo en la parte superior
con grosor de 3
penOff();
rotate(180); // el pincel ahora apunta hacia abajo de la pantalla.
11
penForward(10); //el pincel se mueve hacia abajo 10 unidades.
color(blue);
penOn();
penSize(4);
square(3); //dibuja un cuadrado de 3 unidades por lado en la parte inferior color azul
con grosor de 1
penOff()
penBack(5); // el pincel regresa a la posición central.
//Free Drawing
PenOn()
PenForward(2);
rotate(20);
PenForward(2);
rotate(30);
PenBack(5);
…
}
Lenguaje
Para el desarrollo de “DaVinci” se usará Python 3.7.0.
Sistema Operativo
Desarrollo en macOS High Sierra 10.13.6
Bibliografía
https://docs.python.org/3/
https://www.dabeaz.com/ply/ply.html
https://docs.python.org/3.7/library/turtle.html
12
errores:
Nos faltaron en palabras reservadas:
equal, red, green, yellow, blue, pink, purple,
13