Unidad 3 - Teoría
Unidad 3 - Teoría
Unidad 3 - Teoría
INTRODUCCIÓN ............................................................................................................................ 5
OBJETIVO ...................................................................................................................................... 6
Photoshop................................................................................................................................ 8
Trello ........................................................................................................................................ 8
NetBeans ................................................................................................................................. 8
ADOBE XD .............................................................................................................................. 8
Adobe Illustrator....................................................................................................................... 8
Analizador sintáctico:............................................................................................................... 9
Traductor................................................................................................................................ 11
Compilador ............................................................................................................................ 11
¿Por qué utilizamos el lenguaje Java como base de nuestro propio lenguaje? .................. 14
CONTENIDO................................................................................................................................. 15
Cronograma .............................................................................................................................. 17
Diccionario ................................................................................................................................. 23
Resultados................................................................................................................................. 24
CONCLUSIÓN .............................................................................................................................. 30
BIBLIOGRAFÍA ............................................................................................................................ 31
INDICE DE IMÁGENES
Ilustración 1 Photoshop .................................................................................................................. 8
Ilustración 2 Trello........................................................................................................................... 8
Ilustración 3 NetBeans.................................................................................................................... 8
Ilustración 4 Adobe XD ................................................................................................................... 8
Ilustración 5 Adobe Illustrator ......................................................................................................... 8
Ilustración 6 TRELLO ................................................................................................................... 17
Ilustración 7 TRELLO ................................................................................................................... 17
Ilustración 8 Colores FONDO ....................................................................................................... 18
Ilustración 9 Colores del Logo. ..................................................................................................... 18
Ilustración 10 Fondo ..................................................................................................................... 19
Ilustración 11 Logo Lenguaje ....................................................................................................... 19
Ilustración 12 Logo del Compilador .............................................................................................. 20
Ilustración 13 #F28DCF ................................................................................................................ 20
Ilustración 14 #FEFFD1 ................................................................................................................ 20
Ilustración 15 #56BFB5 ................................................................................................................ 21
Ilustración 16 #F24949 ................................................................................................................. 21
Ilustración 17 #0D0D0D................................................................................................................ 21
Ilustración 18 Evidencia 1 ............................................................................................................. 26
Ilustración 19 Evidencia 2 ............................................................................................................. 26
Ilustración 20 Evidencia 3 ............................................................................................................. 26
Ilustración 21 Evidencia 4 ............................................................................................................. 27
Ilustración 22 Diagrama Sintáctico del ciclo for ........................................................................... 27
Ilustración 23 Diagrama Sintáctico de la sentencia IF ................................................................. 27
Ilustración 24 Diagrama Sintáctico de la salida de datos ............................................................ 28
Ilustración 25 Diagrama Sintáctico de la entrada de datos ......................................................... 28
Ilustración 26 Diagrama Sintáctico de ciclo while ........................................................................ 28
Ilustración 27 Diagrama Sintáctico de asignación de variables .................................................. 28
Ilustración 28 Diagrama sintáctico de ciclo do while .................................................................... 29
Ilustración 29 Diagrama sintáctico de switch ............................................................................... 29
INTRODUCCIÓN
Creamos nuestro propio lenguaje de programación con su propio compilador, se les asigno un
nombre y creamos sus características en conjunto como equipo, abarcamos lo que es su uso y
el manejo de este, explicamos cada parte y proceso utilizados en el lenguaje y especificamos a
grandes pasos y rasgos la manera de usar el compilador, logramos crear un lenguaje sencillo,
llamativo para los nuevos programadores y nos enfocamos a cosas entendibles como lo son los
dulces.
OBJETIVO
Crear, hacer más eficiente y hacer más llamativo el lenguaje Java y a su vez crear un compilador
capaz de correr nuestras especificaciones eficiente y certeramente. Lograr atraer más
programadores con el fin de hacer conciencia de que programar es fácil y te puedes divertir
haciéndolo.
MARCO TEORICO
¿Qué son las metodologías?
Una metodología de gestión de proyectos es un sistema de procesos que guían un proyecto de
principio a fin.
Las metodologías mantienen a los equipos encaminados y establecen las reglas básicas para
planificar, iniciar y trabajar en un proyecto.
Las metodologías poseen diferentes características, algunas son detalladas y rígidas, mientras
que otras son ligeras y flexibles.
Todos en monday.com. (2021, 7 octubre). Metodología ágil o de cascada: ¿qué tipo de gestor
eres? monday.com Blog.
https://monday.com/blog/es/gestion-de-proyectos/metodologia-agil-o-de-cascada-que-tipo-de-
gestor-eres/
Trello
Es un software de administración de proyectos con interfaz web y con
cliente para iOS y Android para organizar proyectos.
Ilustración 2 Trello
NetBeans
Es un entorno de desarrollo integrado libre, hecho principalmente para el
lenguaje de programación Java. Existe además un número importante de
módulos para extenderlo. NetBeans IDE es un producto libre y gratuito sin
restricciones de uso.
Ilustración 3 NetBeans
ADOBE XD
Es un editor de gráficos vectoriales desarrollado y publicado por Adobe Inc.
para diseñar, un prototipo de la experiencia del usuario para páginas web y
aplicaciones móviles. El software está disponible para MacOS y Windows.
Ilustración 4 Adobe XD
Adobe Illustrator
Es un editor de gráficos vectoriales sirve para editar entre otras cosas. Es
desarrollado y comercializado por Adobe Systems.
Analizador léxico:
El analizador léxico o lexicográfico (Scanner en inglés) es la primera etapa del proceso de
compilación, el cual se encarga de dividir el programa en Tokens, los cuales, según una tabla de
símbolos definida por el mismo lenguaje.
De esta forma cada token del programa es clasificado según su significado para ser procesados
en la segunda etapa del proceso de compilación.
Analizador sintáctico:
El analizador sintáctico (Parse en inglés), es la segunda fase del proceso de compilación y tiene
como finalidad la generación de un Árbol sintáctico, el cual no es más que una estructura de
datos compleja que permite representar de una forma más simple al programa fuente
Analizador semántico:
El analizador semántico es el último paso antes de empezar a compilar realmente el código,
prepara el programa para ser compilado. El analizador semántico parte del árbol sintáctico
abstracto y tiene la finalidad de validar los puntos más finos del programa.
Architecture. https://www.oscarblancarteblog.com/2019/09/06/oscar-mi-propio-
compilador/
Para explicarlo mejor (en otras y con menos palabras), el lenguaje de programación es un
sistema estructurado de comunicación, el cual está conformado por conjuntos de símbolos,
palabras claves, reglas semánticas y sintácticas que permiten el entendimiento entre un
programador y una máquina.
Es importante recalcar que existe el error común de usar como sinónimos el lenguaje de
programación y el lenguaje informático, pero ¿por qué no debemos confundirlos?
. Y el lenguaje informático comprende otros lenguajes que dan formato a un texto, pero no son
programación en sí mismos.
Entonces, no todos los lenguajes informáticos son de programación, pero todos los lenguajes de
programación son a la vez informáticos.
Este lenguaje sirve de interfaz y crea un vínculo inseparable entre el hardware y el software.
Además, ejerce un control directo sobre el equipo y su estructura física. Para aplicarlo
adecuadamente es necesario que el programador conozca sólidamente el hardware. Éste se
subdivide en dos tipos:
Lenguaje máquina
Es el más primitivo de los lenguajes y es una colección de dígitos binarios o bits (0 y 1) que la
computadora lee e interpreta y son los únicos idiomas que las computadoras entienden.
Ejemplo: 10110000 01100001
No entendemos muy bien lo que dice ¿verdad? Por eso, el lenguaje ensamblador nos permite
entender mejor a qué se refiere este código.
Lenguaje ensamblador
El lenguaje ensamblador es el primer intento de sustitución del lenguaje de máquina por uno más
cercano al utilizado por los humanos.
Un programa escrito en este lenguaje es almacenado como texto (tal como programas de alto
nivel) y consiste en una serie de instrucciones que corresponden al flujo de órdenes ejecutables
por un microprocesador.
Sin embargo, dichas máquinas no comprenden el lenguaje ensamblador, por lo que se debe
convertir a lenguaje máquina mediante un programa llamado Ensamblador.
Además, el lenguaje de alto nivel permite escribir códigos mediante idiomas que conocemos
(español, inglés, etc.) y luego, para ser ejecutados, se traduce al lenguaje de máquina mediante
traductores o compiladores.
Traductor
Traducen programas escritos en un lenguaje de programación al lenguaje máquina de la
computadora y a medida que va siendo traducida, se ejecuta.
Compilador
Permite traducir todo un programa de una sola vez, haciendo una ejecución más rápida y puede
almacenarse para usarse luego sin volver a hacer la traducción.
Algunos de los distintos programas por los que pasará el proyecto para gestionarlo son:
Compiladores
Como mencionados anteriormente, éstos traducen el código ingresado a lenguaje de máquina
generando un código binario ejecutable.
Depuradores
Sirven para optimizar el tiempo de desarrollo mediante el monitoreo de la ejecución de un
programa, el seguimiento a los valores de ciertas variables, las referencias a objetos en memoria
y, por ende, nos ayuda a corregir errores.
Enlazadores
Este programa toma objetos generados en los primeros pasos del proceso de compilación y los
recursos necesarios de la biblioteca, quita aquellos procesos y datos que no necesita, y enlaza
el código con dicha biblioteca para así aumentar su tamaño y extensión.
Interpretadores o traductores
Como leíste en este artículo, el traductor (o intérprete) carga el código ingresado y traduce las
instrucciones para que el programa pueda ser ejecutado.
IDE
• El IDE (Integrated Development Environment) o Entorno de Desarrollo Integrado, es una
aplicación informática que proporciona una serie de servicios que facilitan la
programación de software, tales como:
• funciones de autocompletado;
• un editor de código fuente;
• gestión de conexiones a bases de datos;
• integración con sistemas de control de versiones;
• simuladores de dispositivos;
Content, R. R. (2021, 22 junio). ¿Qué es un lenguaje de programación y qué tipos existen? Rock
Content - ES. https://rockcontent.com/es/blog/que-es-un-lenguaje-de-programacion/
Lenguaje Java.
Java es un lenguaje de programación y una plataforma informática comercializada por primera
vez en 1995 por Sun Microsystems. Hay muchas aplicaciones y sitios web que no funcionarán a
menos que tenga Java instalado y cada día se crean más. Java es rápido, seguro y fiable. Desde
portátiles hasta centros de datos, desde consolas para juegos hasta súper computadoras, desde
teléfonos móviles hasta Internet, Java está en todas partes.
La versión más reciente de Java contiene importantes mejoras para el rendimiento, estabilidad y
seguridad de las aplicaciones Java que se ejecutan en su equipo. La instalación de la
actualización gratuita garantiza que sus aplicaciones Java sigan ejecutándose de forma segura
y eficaz.
Java Runtime Environment (JRE) es lo que se obtiene al descargar el software de Java. JRE
está formado por Java Virtual Machine (JVM), clases del núcleo de la plataforma Java y
bibliotecas de la plataforma Java de soporte. JRE es la parte de tiempo de ejecución del software
de Java, que es todo lo que necesita para ejecutarlo en el explorador web.
Java. (2020). Java. Recuperado 2021, de
https://www.java.com/es/download/help/whatis_java.html
Se nos plantea el tener que crear nuestro propio compilador, desde su lenguaje de programación,
hasta realizar la interfaz de uso del mismo, vemos como área de oportunidad que se nos
proporciona la información de los sitios web del cómo realizar uno, pero otro punto a destacar es
que es de categoría libre, puede tener cualquier temática, lo cual nos genera el querer
involucrarnos más porque estamos incluyendo nuestros gustos y características que no solo nos
definen como personas, sino también como programadores, tomamos en cuenta que es un
trabajo amplio y extenso pero sin duda estamos dispuestos a tomar las mejores decisiones que
nos lleven a la mejor resolución del problema, añadiremos nuestro caminar paso a paso, en la
construcción del compilador, tenemos altas expectativas del trabajo, pero como interpretación
del problema nos queda más que claro que tenemos que realizar el mejor de los compiladores y
mejor aún, con nuestros propios gustos como bases del mismo.
Hipótesis de solución
Nuestra hipótesis como equipo, en primeras instancias es que será un gran reto como proyecto
de la materia, tenemos altas expectativas, por lo cual generamos altas dudas y cuestiones en las
cuales nos veamos capaces de realizar dicho proyecto, creemos que serán resultados favorables
para todos los miembros del equipo, por lo cual generamos otra hipótesis, que nos hace pensar
que lo más laborioso será ponernos de acuerdo en la realización y creación de ideas y a su vez,
generar los análisis semánticos y sintácticos, nos veremos en la necesidad de cuestionarnos
dichas dudas en clase y también en internet, pero la hipótesis más grande que nos hacemos es
que será un gran proyecto y lo concluiremos con mucho éxito.
Cronograma
Ilustración 6 TRELLO
https://trello.com/b/gMQWUB9S/candy
Adjunto evidencia de lo que se lleva actualmente en el Trello, junto con su link de acceso.
Como segundo sprint, adjunto una evidencia de como llevamos nuestro Trello actualmente, cabe
aclarar que aun hay como 6-8 tareas en proceso, pero esperamos lograr los objetivos en tiempo
y forma.
Ilustración 7 TRELLO
Proceso de solución
Colores, Simbología y Fuentes utilizados en nuestro
Compilador.
Colores del fondo
Ilustración 13 #F28DCF
Ilustración 14 #FEFFD1
Ilustración 15 #56BFB5
Ilustración 16 #F24949
Ilustración 17 #0D0D0D
Fuentes Utilizadas.
• Fuentes botones: Segoe Print Bold
• Fuente Código: Modern No.20
• Fuente logo compilador: Glacial Indifference
• Fuente logo lenguaje: HK Modular
Diccionario
Operadores
Candy+ Java
IGUAL ==
DIF !=
MAYOR >
MENOR <
MAIGUAL >=
MEIGUAL <=
Cycles
Candy+ Java
Candy+ Java
implementa implements
PARA for
nulo null
MIENTRAS while
tico static
HAZ do
esto this
SI if
lanzar throw
SI NO else if
JUICIO switch
CASO case
DEFECTO Default
ROMPER break
Candy+ Java
fin end
extiende extends
poner set
tomar get
nuevo new
caramelo catch
verdad true
mentira False
Reserved Words
Candy+ Java
continue
continuar
import
importar
;
(SE OMITE)
Candy+ Java
Skittle Scanner
Ticket System.out.println
Aritmetic Operators
Candy+ Java
+ +
- -
/ /
* *
% %
Other reserved words
Candy+
"
Logical Operators
Candy+ Java
NO !
YY &&
OO ││
OE ^
Resultados
En este apartado se adjuntarán evidencias de los resultados creados en la finalización del
proyecto, estamos bastante satisfechos con lo conseguido, ya que no era la única materia que
encargó trabajos pesados, fue cuestión de administrar tiempo y esfuerzo para conseguir lo
cometido.
Ilustración 18 Evidencia 1
Ilustración 19 Evidencia 2
Ilustración 20 Evidencia 3
Ilustración 21 Evidencia 4
Diagramas Sintácticos
Concluyendo finalmente el proyecto, nos quedamos con un buen sabor boca, es un gran
proyecto, independientemente de la calificación obtenida, nos tomó un gran esfuerzo realizar
cada una de las fases, aprendimos muchas cosas nuevas y sobre todo, realzamos conocimientos
ya adquiridos poniéndolos en práctica nuevamente.
BIBLIOGRAFÍA