Está en la página 1de 8

LENGUAJES AUTOMATAS II

Integrantes

Enrique Reyes Cruz

Jose Arnulfo Morales Lopez

Jesus Antonio Chable Garcia

Jorgue Ivan Sierra Silva

Profesor: Mauricio Arturo Reyes Hernández

15 DE SEPTIEMBRE DE 2022
Actividad 1
1.Definir el lenguaje de programación en español sobre el que diseñaran el
compilador en sus etapas de

Análisis léxico
El Análisis Léxico es la primera fase de un compilador y consiste en un
programa que recibe como entrada el código fuente de otro programa
(secuencia de caracteres) y produce una salida compuesta de tokens
(componentes léxicos) o símbolos.
La especificación de un lenguaje de programación a menudo incluye un
conjunto de reglas que definen el léxico. Estas reglas consisten comúnmente
en expresiones regulares que indican el conjunto de posibles secuencias de
caracteres que definen un token o lexema.

Función del Analizador Léxico


Su principal función consiste en leer los caracteres de entrada y elaborar
como salida una secuencia de componentes léxicos que utiliza el analizador
sintáctico para hacer el análisis. En la imagen se puede apreciar el esquema
de una interacción que se aplica convirtiendo el analizador léxico en una
subrutina o corrutina del analizador sintáctico. Recibida la orden "obtener el
siguiente componente léxico" del analizador sintáctico, el analizador léxico
lee los caracteres de entrada hasta que pueda identificar el siguiente
componente léxico.
Análisis sintáctico-
Es el análisis de las funciones sintácticas o relaciones de concordancia y
jerarquía que guardan las palabras cuando se agrupan entre sí en forma
de sintagmas, oraciones simples y oraciones compuestas de proposiciones.
Como no está muchas veces claro el límite entre la sintaxis y la morfología a
estos respectos, especialmente según el tipo de lengua de que se trate, también
se suele denominar análisis morfosintáctico, aunque esta denominación se
suele reservar también para un análisis más profundo y detenido.
Análisis semántico
Sintaxis de un lenguaje de programación es el conjunto de reglas formales que
especifican la estructura de los programas pertenecientes a dicho lenguaje.
Semántica de un lenguaje de programación es el conjunto de reglas que
especifican el significado de cualquier sentencia sintácticamente válida.
Finalmente, el análisis semántico1 de un procesador de lenguaje es la fase
encargada de detectar la validez semántica de las sentencias aceptadas por el
analizador sintáctico.

/** Método que reconoce sintácticamente el no


* terminal "masTerminos".<br/>
* Produccion: masTerminos1 -> '+' termino masTerminos2<br/>
* Produccion: masTerminos1 -> '-' termino masTerminos2<br/>
* Produccion: masTerminos1 -> lambda<br/>
* Además evalúa los atributos calculados en las reglas semánticas
* de esta producción. Recibe los atributos heredados
* (masTerminos.operando1) y devuelve los sintetizados
* (masTerminos.valor)<br/>
*/
privado interno masTerminos(interno operando1) {
interno token=lexico.tomarToken();
switch (token) {
caso '+': lexico.parejo('+');

// * Regla:
masTerminos2.operando1=masTerminos1.operando1+termino.valor
int masTerminos2Operando1=masTerminos(operando1+termino());
// * Regla: masTerminos1.valor = masTerminos2.valor
regreso masTerminos2Operando1;
case '-': lexico.parejo('-');
// * Regla: masTerminos2.operando1=masTerminos1.operando1-
termino.valor
masTerminos2Operando1=masTerminos(operando1-termino());
// * Regla: masTerminos1.valor = masTerminos2.valor
Regresar masTerminos2Operando1;
default: // * lambda
// * Regla: masTerminos1.valor = masTerminos1.operando1
Regresar operando1;
Nombre del lenguaje: Lenguaje J-Zap

2-Palabras reservadas

Abstract=abstracto Break=descanso Catch=captura


Asssert=afirmar Byte=byte Char=caracter
Boolean=boleano Case=caso Clases=clase
Continué=continuar Do=hacer Else=mas
Default=defecto Double=doble Enum=enumerar
Extends=extiende Final=final Finally=finalmente
Float=flotar For=para Goto=ir a
If=si Implementa=implemento Import=importar
Int=entero Interface=interfaz Long=largo
Native=nativo New=nuevo Package=paquete
Prívate=privado Protected=protegido Public=publico
Return=devolver Static=estatico Strictfp=estricto
Synchronized=sincronizado This=esta Throw=lanzar
Transiet=transitorio Try=probar Void=vacio
While=tiempo Volátile=volatil Instanceof=en vez
de

3.Simbolos especiales:

-Operadores oAritméticosoRelacionales oLógicos

Operadores aritméticos

Suma
Resta
Multiplicación
División
Operadores relacionales

Mayor que
Menor que
Igual que
Diferente a que
Mayor o igual que
Menor o igual que

Operadores lógicos

! Negación
| Suma lógica
|| Suma lógica cortocircuito
^ Suma log exclusivo
& Producto lógico

4. Tipos de datos
• Indefinido: representa una variable que no ha sido declarada o a la
cual no se le ha asignado un valor.
• Booleano: representa un valor lógico y puede tener dos valores, ya
sean true o false.
• Numero: permite representar y manipular valores numéricos como
«37» o «-9.25».
• Cuerda: representa datos textuales (cadenas de caracteres).
• Empezando: representa valores numéricos que son demasiado
grandes para ser representados por el tipo de dato número.
• Símbolo: es un valor primitivo único e inmutable.
• Nulo: representa la ausencia intencional de cualquier valor, un valor
nulo o «vacío».
• Objeto: representa una colección de datos definidos y entidades más
complejas.
• Función: aunque cada constructor de funciones se deriva del
constructor Objeto. Son objetos con la capacidad de ser ejecutables.
• Entero: representa un valor definido en entero
5. -Carácter delimitador de sentencias:

Nuestro carácter delimitar es (punto y coma ) por que basamos


nuestro lenguaje en java

6.Sentencia del lenguaje:

Para ()

Cuando { }

si -entonces- más

7. Estructura de un programa en su lenguaje.

Ejemplo 1 Hecho por Enrique Reyes

Para (i en 1:10){
#Imprimimos la variable i
Imprimir(i)

#Hacemos uso de condicionales si


si(i<5){
imprimir("menor")
}mas{
imprimir("mayor")
}
}
d=0
tiempo(d<=10){
Imprimir("hola")
d=d+1
}
Ejemplo 2 José Arnulfo Morales Lopez
Clase HolaMundo
{
publico estatico vacio menu(argumento de cadena[ ])
{
Sistema.afuera.imprimir(“Hola Mundo”);
}
}

También podría gustarte