Está en la página 1de 6

Lenguajes y Autómatas I

TECNM Instituto Tecnológico de Saltillo

Tecnológico Nacional de México.

Instituto Tecnológico de Saltillo.

Lenguajes y autómatas I.
Práctica 1. Traductores y Componentes Léxicos

Equipo 4

Fecha de entrega: 14 de febrero de 2023


Práctica 1. Traductores y Componentes Léxicos
Francisco Bernardo Murillo Torres 20051220
Marcela González Beltrán 20051190
Brenda Nayeli Rodríguez Salazar 19050116

Ing. Karina Cabrera Chagoyan


Lenguajes y Autómatas I
TECNM Instituto Tecnológico de Saltillo

a. Investigue lo siguiente asociado a los traductores de un lenguaje de programación

¿Qué es un traductor?
Un traductor es un programa esencial para la programación o desarrollo, este se encarga de convertir el código fuente a lenguaje máquina para
que el ordenador pueda comprender las instrucciones que nosotros como humanos le demos, si cabe, mensajes de error
Estos son ejemplos de traductores son los ensambladores y los compiladores.

¿Qué características principales tiene?


● Es capaz de traducir en cualquier idioma
● Nos ayuda a crear o descifrar textos de inteligencia
● En su mayoría son precisos y exactos
● Tiene un uso específico

¿Cuál es su funcionamiento?
Es convertir el código de un lenguaje en otro, traduciendo código fuente en código objeto.
El funcionamiento de un traductor con respecto a la materia es que se encarga de analizar el código (código fuente), para después transformarlo
a una forma que una computadora lo pueda entender, por lo tanto, lo transforma a lenguaje de bajo nivel.

¿Cómo se clasifica?
Hay diferentes tipos de traductores, dependiendo del tipo de lenguaje de programación que se esté traduciendo y del tipo de traducción que se
desee realizar. Algunos ejemplos de traductores incluyen compiladores, intérpretes, ensambladores, y traductores de código objeto a código
fuente

b. Utilizando la información anterior, elabore un cuadro sinóptico de los diferentes tipos de traductores que investigó y asocie al menos dos
lenguajes de programación para cada traductor identificado.
• Lenguajes de
• Siempre procesa el código, línea por línea programación que
tradicionalmente son
• Procesa el código fuente de un proyecto
interpretados son el LISP
mientras se está ejecutando actúa como
y el BASIC.
una interfaz con el procesador
• Los lenguajes de prog.
Interprete • Es un traductor que realiza la operación de
Interpretados es donde
compilación paso a paso
este lee la instrucción del
• Permite utilizar funciones y operadores
código en tiempo real,
más potentes
ejemplos son JavaScript,
PHP, Python, etc.

• Es un programa que lee un programa


escrito y lo traduce a un programa, pero a • Los lenguajes de prog.
otro lenguaje Compilados es donde se
• Es un programa informático que traduce convierte a binarios que lee
todo el código fuente a código máquina el SO es el lenguaje C
antes de ejecutarlo lenguaje C++, Pascal.
Compilador • Determina qué instrucciones van a
enviarse al procesador y en qué orden
• Los programas se ejecutan una vez
mucho más rápidamente una vez
compilados.

• Son los pioneros de los compiladores, ya


• Algunos lenguajes de muy
que, en los albores de la informática, los
alto nivel, como C y
programas se escribían directamente en
Borland/Pascal, soportan
código máquina, y los ensambladores
ensamblado en línea, donde
establecen una relación biunívoca entre
relativamente secciones
cada instrucción
Ensamblador cortas de código en
• Tienen una gran habilidad para
ensamblador puede ser
establecer una relación para cada
empotradas dentro del código
instrucción
del lenguaje de alto nivel.
• Velocidad
• Flexibilidad

Python y Java son los dos tipos de traductores más utilizados, ya que Python cuenta con diversas áreas de aplicación y Java en los traductores
es tipo máquina virtual y este lenguaje va orientado a objetos.

Ing. Karina Cabrera Chagoyan


Lenguajes y Autómatas I
TECNM Instituto Tecnológico de Saltillo

Investigue que es un componente léxico en un lenguaje de programación, para un ejemplo identifique y liste los componentes al menos 5
categorías de componentes léxicos, escriba los componentes léxicos identificados en una tabla

Categoría Definición / ejemplo


Componente léxico Un componente léxico es la secuencia lógica y
coherente de caracteres relativo a una categoría

Palabras reservadas Las palabras reservadas tienen un significado


concreto, sin necesidad de que se lo asignemos
nosotros.
Ejemplos: auto, break, case, do, while, continue,
default.
Identificadores Un identificador es una palabra que se usa para
nombrar con algún carácter
Ejemplo: scanner, variableValida, a,
identificador_valido, tu_re3.
Literales La literal es una especificación de un valor de
un tipo de dato.
Ejemplo: 3, ‘a’, null, “cadena de caracteres”, 32

eOperadores Un operador al igual que en las matemáticas,


suelen devolver un valor, suelen ser
representados por tokens formados por
símbolos.
Ejemplos: +, <=, and, not, ==.
Delimitadores Los delimitadores son símbolos usados como
separadores de distintas construcciones en la
programación.
Ejemplos: (), [], {}, ‘,’ , *.
Comentarios Un comentario es una aclaración del
programador que incluye un programador para
que sea más inteligible .
Ejemplos: //, /*.

c. Realice una aplicación en el lenguaje de programación de su elección, que muestre el siguiente MENU y permita realizar lo siguiente:

1. Escribir texto

2. Almacenar texto en archivo

3. Leer texto de Archivo

4. Salir

Ejecución del programa:

Al iniciar el programa nos desplegará el menú mediante una interfaz gráfica con las 4 opciones disponibles, y un textbox en el que escribiremos
la opción que queramos ejecutar.

Si intentamos leer el texto en el momento en el que no se encuentre nada de información en el documento, nos desplegará un aviso mencionando
que está vacío.

Ing. Karina Cabrera Chagoyan


Lenguajes y Autómatas I
TECNM Instituto Tecnológico de Saltillo

Dentro de la opción 1 podemos ingresar el texto que queramos, podemos escribir varias líneas a la vez, así como dejar líneas vacías.

Al guardar, no se almacenará inmediatamente en el archivo, si no que tenemos que utilizar la opción 2 “Almacenar en el archivo”. Si no lo
hacemos, el archivo seguirá vacío (o con lo que se haya almacenado anteriormente).

Usamos la opción 2 y almacenamos la información.

Ya que la información se guardó en el archivo, ahora podemos leerla con la opción 3 “Leer texto”, nos mencionará la cantidad de líneas, y de
palabras totales y por cada renglón. También nos menciona que no se encuentran palabras (o, hay 0 palabras) en las líneas vacías.

Ing. Karina Cabrera Chagoyan


Lenguajes y Autómatas I
TECNM Instituto Tecnológico de Saltillo

Reporte

Desarrollo del diseño del proyecto


Comenzamos leyendo la problemática que se plantea para realizar el programa, pensamos en realizar un menú de opciones mediante una
interfaz gráfica para realizar el manejo de archivos. Decidimos trabajar en JAVA porque es el lenguaje con el que contamos con más
experiencia y conocimiento, por lo que lo podemos manejar de una mejor manera.
Ya decidido el lenguaje de programación en el que íbamos a realizar el proyecto, comenzamos a realizar un diseño de cómo podría ser, pues
al principio nos encontramos con ciertas problemáticas a la hora de organizarnos ya que pensábamos en unificar el inciso 1 con el 2, al final si
pudimos realizar cada inciso individualmente.
Otra de las dificultades por las que pasamos al realizar el diseño del proyecto fue si trabajaríamos utilizando una interfaz o no; al final
decidimos implementarla pues nos facilitaría el trabajo.

Al terminar el análisis de diseño comenzamos con la etapa de la programación. Empezamos con el esqueleto del menú; este fue un menú
básico. Cada integrante comenzó con su inciso correspondiente, aunque nos ayudamos entre todos por si nos aparecía alguna dificultad al
momento de estar programando, esto para agilizar todo el trabajo. Así también todos estaríamos al pendiente de todas las partes del código y
podríamos saber con más facilidad como es que funciona todo el código y no solo el inciso al que cada integrante le tocó desarrollar.

Desarrollo de la practica

Primero, como equipo nos pusimos de acuerdo en que haría cada inciso de este menú de manejo de archivos al momento de ponernos de
acuerdo también íbamos diseñando el programa llegamos a la conclusión a un resultado.

Conclusiones
Marcela González Beltrán conclusión:
Esta práctica me ayudo a reforzar el manejo de archivos ya previamente visto en otras asignaturas, a mi dentro de mi equipo me tocó realizar
el inciso 2 que es almacenar el texto escrito en el inciso 1 dentro de un archivo de texto por lo tanto tuve que sacar una variable del inciso 1 el
cual me almacenaba el texto que recién se escribió para después con ayuda de métodos dentro del FileWrite se puedo alcanzar el objetivo que
era almacenarlo sin tener que sobrescribir sobre el archivo.
También ayudé en los demás incisos cuando mis compañeros se les complicaba, asimismo también recibí ayuda por parte de mis compañeros
cuando tuve algún tipo de problema o duda con respecto a mi punto.

Brenda Nayeli Rodríguez Salazar


Lo que a mí me toco fue la parte de leer texto de archivo y el cuadro sinóptico, esta práctica me llamó mucho la atención por la parte de los
diferentes tipos de traductores y los lenguajes que se usan en cada uno de ellos, los componentes léxicos, ya que casi siempre programamos
sin prestarle mucha atención a este tipo de tema, ya los conocía, pero con esta práctica pude llevar a cabo estos conocimientos de los
componentes léxicos.

Francisco Bernardo Murillo Torres


Al realizar esta práctica aprendí más acerca de los traductores y de sus componentes léxicos, así sus características, funcionamiento, su
clasificación, etc. También reforzamos los conocimientos que ya habíamos adquirido en los semestres anteriores sobre el lenguaje JAVA y el
manejo de archivos y documentos. Dentro del equipo me tocó trabajar con el inciso 1, el que consiste en escribir texto para que este después
sea almacenado en un archivo de texto; también me tocó junto con mi compañera a contestar las preguntas de la parte teórica, por lo que entre
los dos estuvimos revisando la información. Decidimos utilizar una interfaz gráfica, pues era más cómodo para el usuario, y poder así escribir

Ing. Karina Cabrera Chagoyan


Lenguajes y Autómatas I
TECNM Instituto Tecnológico de Saltillo

varias líneas de texto a la vez, sin que el usuario tenga que ejecutar varias veces la misma opción por si quiere escribir varios renglones. Hubo
varios problemas al momento de “coordinar” las opciones para que trabajaran de manera harmoniosa, pues en las líneas sin ninguna palabra
se nos estaban presentando algunas complicaciones, al igual que cuando no escribíamos nada en el documento; el método isBlank fue de
mucha utilidad para solucionar nuestros problemas. Obtuve ayuda de mis compañeros en cuanto a conocimiento para seguir la programación,
así como en el raciocinio del problema, así como yo intenté ayudar en cualquier duda que mis compañeras presentaban.

Bibliografías

Carrizal, L. C. (2021, 23 marzo). ¿qué es un traductor en informática? https://aleph.org.mx/que-es-un-traductor-en-informatica

https://ed.team/blog/lenguajes-de-programacion-compilados-vs-interpretados

https://elvex.ugr.es/decsai/c/apuntes/tokens.pdf

Ing. Karina Cabrera Chagoyan

También podría gustarte