Unidad 3 - Teoría

Descargar como pdf o txt
Descargar como pdf o txt
Está en la página 1de 31

TECNOLÓGICO NACIONAL DE MÉXICO

INSTITUTO TECNOLÓGICO DE CHIHUAHUA II

Unidad III - Teoría

PROGRAMACÓN LÓGICA Y FUNCIONAL

ING. LUIS FERNANDO FLORES SÁNCHEZ

CLASE DE 18:00 – 19:00

CARLOS ROGELIO RIVERA LUJAN – 18550725


LUIS CARLOS SANTILLANES LOYA – 18550694
ROBERTO VALDEZ VAZQUEZ - 18550731
INDICE
INDICE DE IMÁGENES ................................................................................................................. 4

INTRODUCCIÓN ............................................................................................................................ 5

OBJETIVO ...................................................................................................................................... 6

MARCO TEORICO ......................................................................................................................... 7

¿Qué son las metodologías? ...................................................................................................... 7

¿Qué es la metodología ágil? ................................................................................................. 7

¿Cuándo usar la metodología ágil? ........................................................................................ 7

Aplicaciones y Softwares utilizados para la elaboración ............................................................ 8

Photoshop................................................................................................................................ 8

Trello ........................................................................................................................................ 8

NetBeans ................................................................................................................................. 8

ADOBE XD .............................................................................................................................. 8

Adobe Illustrator....................................................................................................................... 8

¿Qué es un compilador? ......................................................................................................... 9

Analizador léxico: .................................................................................................................... 9

Analizador sintáctico:............................................................................................................... 9

Analizador semántico: ............................................................................................................. 9

¿Qué es un lenguaje de programación y qué tipos existen? ..................................................... 9

¿Qué tipos de lenguaje de programación existen? .............................................................. 10

Lenguaje de programación de bajo nivel .............................................................................. 10

Lenguaje máquina ................................................................................................................. 10

Lenguaje ensamblador .......................................................................................................... 11

Lenguaje de programación de alto nivel ............................................................................... 11

Traductor................................................................................................................................ 11

Compilador ............................................................................................................................ 11

¿Para qué sirven los lenguajes de programación? .............................................................. 11


¿Qué softwares de programación existen? .......................................................................... 12

Lenguaje Java. ...................................................................................................................... 13

¿Por qué utilizamos el lenguaje Java como base de nuestro propio lenguaje? .................. 14

CONTENIDO................................................................................................................................. 15

Interpretación del problema ...................................................................................................... 15

Hipótesis de solución ................................................................................................................ 16

Cronograma .............................................................................................................................. 17

Proceso de solución .................................................................................................................. 18

Colores, Simbología y Fuentes utilizados en nuestro Compilador. ......................................... 18

Colores del fondo .................................................................................................................. 18

Colores del Logo ................................................................................................................... 18

Imagen de Fondo del compilador .......................................................................................... 18

Imagen del Logo del Lenguaje. ............................................................................................. 19

Imagen del Logo del Compilador .......................................................................................... 20

Colores usados en el logo del compilador ............................................................................ 20

Fuentes Utilizadas. ................................................................................................................ 21

Diccionario ................................................................................................................................. 23

Resultados................................................................................................................................. 24

Diagramas Sintácticos ........................................................................................................... 27

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/

¿Qué es la metodología ágil?


La metodología ágil es una metodología colaborativa de gestión de proyectos que desglosa los
proyectos más grandes en pequeñas tareas que los equipos abordan conjuntamente.

En este tipo de metodología se valoran la flexibilidad y la colaboración entre equipos, y se libera


a los equipos de la estructura del paso a paso de los métodos lineales para adaptar un proyecto
a medida que avanza.

¿Cuándo usar la metodología ágil?


La metodología ágil es más adecuada para este tipo de proyectos que no tienen un alcance
definido y en los que se podría enfrentar obstáculos que requieren de cambios rápidos o
imprevistos durante el proceso de creación.
Aplicaciones y Softwares utilizados para la elaboración
Photoshop.
Es un programa informático de edición de imagen desarrollado por la
empresa Adobe Systems para dispositivos Windows y Mac Os. Destinada
al diseño gráfico, diseño web, 3D y fotografía, se trata de uno del programa
más utilizado en el mundo, ya no solo a nivel fotográfico si no en líneas
generales.
Ilustración 1 Photoshop

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.

Ilustración 5 Adobe Illustrator


¿Qué es un compilador?

Es un Software que traduce un programa escrito en un lenguaje de programación de alto nivel


(C / C ++, COBOL, etc.) en lenguaje de máquina. Un compilador generalmente genera lenguaje
ensamblador primero y luego traduce el lenguaje ensamblador al lenguaje máquina.

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.

O. (2019a, septiembre 7). Oscar++ Mi propio compilador. Oscar Blancarte - Software

Architecture. https://www.oscarblancarteblog.com/2019/09/06/oscar-mi-propio-

compilador/

¿Qué es un lenguaje de programación y qué tipos existen?


Es un lenguaje formal que, mediante una serie de instrucciones, le permite a un programador
escribir un conjunto de órdenes, acciones consecutivas, datos y algoritmos para, de esa forma,
crear programas que controlen el comportamiento físico y lógico de una máquina.

Mediante este lenguaje se comunican el programador y la máquina, permitiendo especificar, de


forma precisa, aspectos como:
• cuáles datos debe operar un software específico;
• cómo deben ser almacenados o transmitidos esos datos;
• las acciones que debe tomar el software dependiendo de las circunstancias variables.

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?

Pues, es debido a que el lenguaje de programación obedece a un conjunto de reglas que


permiten expresar las instrucciones que serán interpretadas por el programador

. 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.

¿Qué tipos de lenguaje de programación existen?


El lenguaje de programación es la base para construir todas las aplicaciones digitales que se
utilizan en el día a día y se clasifican en dos tipos principales: lenguaje de bajo nivel y de alto
nivel.

Lenguaje de programación de bajo nivel


Son lenguajes totalmente orientados a la máquina.

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.

Lenguaje de programación de alto nivel


Tienen como objetivo facilitar el trabajo del programador, ya que utilizan unas instrucciones más
fáciles de entender.

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.

¿Para qué sirven los lenguajes de programación?


En general un lenguaje de programación sirve para programar. Sin embargo, cada uno tiene un
alcance y forma de comunicación diferente.

En resumidas cuentas, el lenguaje de bajo nivel permite la comunicación interna de la máquina,


cada instrucción tiene su código único de operación.
Y el lenguaje de alto nivel facilita la captación de instrucciones que el programador le da a la
máquina, mientras que éste introduce datos en el idioma conocido la máquina lo va absorbiendo
en lenguaje de máquinas mediante traductores o compiladores, permitiendo así:

• reducir el tiempo de programación;


• entender más fácilmente la tarea a realizar;
• permitir al programador desvincularse del funcionamiento interno de la máquina, entre
otros.

¿Qué softwares de programación existen?


Por software de programación entendemos el conjunto de todas las herramientas que le permiten
al programador, crear, escribir códigos, depurar, mantener y empaquetar los proyectos.

Algunos de los distintos programas por los que pasará el proyecto para gestionarlo son:

Editores de código o texto


Al escribir los códigos se autocompletan marcando los errores sintácticos y la refactorización.

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 descarga de Java es gratuita?

Sí, la descarga de Java es gratuita. Puede obtener la última versión en java.com.

Si está diseñando un dispositivo de consumo o integrado y le gustaría incluir Java, póngase en


contacto con Oracle para solicitar información sobre cómo incluir Java en su dispositivo.

¿Por qué debería actualizarme a la versión más reciente de Java?

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.

¿Qué recibiré al descargar software de Java?

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

¿Por qué utilizamos el lenguaje Java como base de nuestro propio


lenguaje?
Debido principalmente a que es el lenguaje que más conocemos y es también de los únicos que
nos generan cierta confianza a la hora de trabajarlo ya que podemos destacar que es el más
usado en el mercado y por consiguiente es vital que nos enseñen acerca de él, por lo cual todo
proyecto de ser posible lo crearemos en este lenguaje para aprenderlo en su totalidad.
CONTENIDO
Interpretación del problema

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 8 Colores FONDO

Colores del Logo

Ilustración 9 Colores del Logo.

Imagen de Fondo del compilador


Ilustración 10 Fondo

Imagen del Logo del Lenguaje.

Ilustración 11 Logo Lenguaje


Imagen del Logo del Compilador

Ilustración 12 Logo del Compilador

Colores usados en el logo del compilador

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

Tipos de Datos Reserved Words


Candy+ Java Candy+ Java
duvalin boolean
abierto public
bocadin byte
cerrado private
chicle char
bolsita class
rellerindo Int
piñata package
cachetada long
wini void
mazapan double
(: :) //
skwinkle String

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)

Input and Output

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

Ilustración 22 Diagrama Sintáctico del ciclo for

Ilustración 23 Diagrama Sintáctico de la sentencia IF


Ilustración 24 Diagrama Sintáctico de la salida de datos

Ilustración 25 Diagrama Sintáctico de la entrada de datos

Ilustración 26 Diagrama Sintáctico de ciclo while

Ilustración 27 Diagrama Sintáctico de asignación de variables


Ilustración 28 Diagrama sintáctico de ciclo do while

Ilustración 29 Diagrama sintáctico de switch


CONCLUSIÓN
Hasta ahorita lo que va de proyecto, a sido de mucho esfuerzo y dedicación ya que contamos
con poco tiempo para la creación de los avances actuales, es grata la experiencia adquirida, por
lo cual, en esta parte de entrega del proyecto casi terminado, logramos un buen avance y sobre
todo logramos tener enfocado nuestras visiones y metas del proyecto.

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

• O. (2019a, septiembre 7). Oscar++ Mi propio compilador. Oscar Blancarte - Software


Architecture. https://www.oscarblancarteblog.com/2019/09/06/oscar-mi-propio-
compilador/
• 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/
• 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/

• Java. (2020). Java. Recuperado 2021, de


https://www.java.com/es/download/help/whatis_java.html

También podría gustarte