Professional Documents
Culture Documents
EN EL ESTADO DE CAMPECHE
QUINTO SEMESTRE
PROGRAMACION DE SISTEMAS
ANALIZADOR LEXICO
GRUPO: 5A
CALKINI, CAMPECHE
INTRODUCCION
La muchos de los lenguajes de programación, fueron creados para resolver ciertos problemas
orientados a un área en específico. Muchos lenguajes de programación son muy buenos en la
resolución de ciertas problemáticas, mas también son menos eficientes en otras aéreas.
Esta es una de las razones por la que hoy en día existen muchos lenguajes de programación,
muchos de ellos creados por alguna necesidad, y otros creados solamente por gusto de su creador.
Existen dos tipos de lenguajes, los de alto nivel que son mas entendibles para las personas, y los de
bajo nivel que son mas entendibles para las maquinas.
Este lenguaje tiene un cierto parecido con el lenguaje Java, una ventaja o desventaja es que sigue
cierta estructura para programar.
DESCRIPCION DEL LENGUAJE
Lenguaje de Programación
SRMD
¿Qué ES SRMD?
TIPOS DE DATOS
Los tipos de datos soportados por este lenguaje son los siguientes:
Estos tipos de datos pertenecen a las palabras reservadas del lenguaje por lo que no
pueden ser usadas para definir variable o métodos.
VARIABLES
Globales: estas se definen en un apartado especial que veremos más adelante, conocido
como variables. Al ser declaradas de manera global podrán ser usadas en cualquier parte
del programa.
Locales: estas son las variables que se definen e inicializan en el interior de algún método
en específico, pudiendo ser usada solo en el interior del método donde fue declarada.
Los nombres de las variables en este lenguaje podrán ser definidas por cualquier letra de
a-z, y caracteres numéricos (1, 2, 3, 4….etc.). Las únicas restricciones al momento de crear
una variable son:
Una variable no podrá empezar con un carácter numérico
Todas las variables solo podrán ser escritas con letras minúsculas
Una variable no podrá tener el nombre de una palabra reservada.
INICIALIZACION DE VARIABLES
EXPLICITAMENTE IMPLICITAMENTE
var=90; x=10;
var=x;
OPERADORES ARITMETICOS
Las operaciones aritméticas que este lenguaje puede soportar, son las básicas, suma,
resta, división y multiplicación. Son definidas por los siguientes operadores.
También es posible hacer alguna operación de más de dos números o variables enteras o
racionales. Poniendo prioridad con los paréntesis ().
var=(10+8)-x;
Si se quiere hacer una operación con un número negativo, se pondrá el número negativo
entre paréntesis.
var =5-(-4);
Esto solo se hace cuando el numero negativo es explicito, es decir que si está implícito
dentro de una variable, no es necesario hacer esto.
OPERADORES RELACIONALES
OPERADORES LOGICOS
Los operadores lógicos se utilizan para construir expresiones lógicas, combinando valores
lógicos (verdadero y/o falso) o los resultados de los operadores relacionales. Los
operadores lógicos soportados por SMRD son los siguientes:
Esta estructura permite ejecutar un conjunto de sentencias en función del valor que tenga
la expresión de comparación (se ejecuta si la expresión de comparación tiene valor
verdadero).Tiene la siguiente forma:
si [expresión de comparación]:
Operaciones o sentencias
:fin;
Los puntos : sirven para agrupar en un bloque las sentencias que se han de ejecutar,
siempre son necesarios; y al final se termina con la palabra reservada fin y ;
BIFURCACION SI SINO
si [expresión de comparación]:
Operaciones o sentencias
: sino :
: fin;
BUCLE MIENTRAS
Un bucle se utiliza para realizar un proceso repetidas veces. El código incluido entre los
puntos : : , se ejecutara mientras se cumpla unas determinadas condiciones. En este bucle
hay que prestar atención a los bucles infinitos, hecho que ocurre cuando la condición de
finalizar el bucle (expresión booleana) no llega a cumplirse nunca.
Sentencias y operaciones
:
PALABRAS RESERVADAS
Estas son las palabras exclusivas del lenguaje por lo que no podrán ser usadas como
nombres de variables, métodos, o nombres de proyecto.
si entradadat
sino salidadat
mientras declarar
fin invocar
entero resolución
racional tipo
cadena
boleano
variables
proyecto
principal
CARACTERES VALIDOS
Los caracteres validos son todas las letras de a-z, todos números del cero al nueve, y
caracteres especiales del programa: #,$,{,},+,-,*,:,|,<,>,=,y,o,(,),?,[,],!,°,%
COMENTARIOS
Los comentarios son tremendamente útiles para poder entender el código utilizado,
facilitando de este modo su entendimiento, y futuras revisiones y correcciones. La forma
de definir comentarios es de la siguiente forma:
{ Aquí van los comentarios, y estos no afectan a las líneas de código de programación, son ignoradas por el compilador
}
ENTRADA Y SALIDA DE DATOS
También es posible ingresar datos mediante la consola, e imprimir datos, mediante las
sentencias entradadat() y salidadat(). Esta es su forma de uso:
Si se quiere dar un salto de línea después de imprimir, se agrega antes del punto y coma,
el signo $.Ejemplo:
DECLARACION DE UN PROYECTO
:
LA PALABRAS RESERVADA VARIABLES, RESOLUCION, PRINCIPAL
En el interior de proyecto según la estructura del lenguaje, habrá tres apartados los cuales
son:
En este apartado, se declararan todas las variables globales que han de usarse en el
programa. Las variables declaradas en este apartado serán absolutas o globales, y podrán
usarse en todo el programa, excepto en el apartado principal. Estas variables pueden o no
ser inicializadas en este apartado.
Ej. variables:
En este apartado se declararan los métodos con sus respectivos parámetros y operaciones
que realizan cada uno de ellos. Más no se ejecutaran hasta que sean invocados en el
apartado principal.
Ej. resolución:
Ej. principal:
:
METODOS
Declarar Métodos
Los métodos son funciones definidas dentro de un proyecto, los nombres de los métodos
pueden estar conformados por letras de la a-z y números, no pudiendo haber un número
al inicio del nombre del método. Un método se crea de la siguiente forma:
Operaciones y sentencias
La palabra declarar, es una palabra necesaria siempre al declarar un método. Dentro del
paréntesis se esta indicando que ese método recibirá dos parámetros, y los guardara en
las respectivas variable x y cd. Aunque los métodos pudieran resivir un solo parámetro o
ninguno. Entre los dos puntos (: :), se programaran las operaciones y sentencias
necesarias.
Invocar Métodos
Una vez de haber declarado un método, para poder usarlo, y hacer las operaciones que
están declaradas en el, se necesitara invocarlo de la siguiente manera (Del ejemplo
anterior):
invocar nombre1metodo(14|#cadena#);
Como se puede observar para invocar un método es necesario primero poner la palabra
reservada invocar seguido del nombre del método que se va a invocar y entre los
paréntesis poner los parámetro requeridos por el método; y al final se cierra la sentencia
con punto y coma(;).
ESTRUCTURA DEL LENGUAJE
proyecto NombreProyecto:
variables:
En este apartado, se declaran las variables globales que se usaran, pueden inicializarse
aquí mismo, o en otra parte del código del programa.
resolución:
principal:
:
EJEMPLO DE CODIGO DE SRMD
proyecto HolaMundoaritmetico:
variables:
resolución:
declarar imprimirholamundo():
salidadat(cadena)$;
declarar sumarnumeros():
resultado=numero1+numero2;
salidadat(resultado);
principal:
imprimirholamundo();
sumarnumeros();
:
AUTOMATA DEL LENGUAJE
CONCLUCIONES
En el caso del analizador léxico algo que es muy necesario para poder empezar a validar el
lenguaje, son las expresiones regulares pues estas son el patrón de los indicadores y palabras que
puedes usar en tu lenguaje. La otra parte muy importante del analizador léxico es el autómata
general del lenguaje, que por medio de este aceptamos o rechazamos palabras del nuestro
lenguaje.
La gramática generadora es otra parte esencial para la validación del lenguaje, pero interviene mas
en el caso de los otros dos tipos de análisis, y en el léxico casi no interviene.
En conclusión el analizador léxico, es el que va a aceptar los tokens validos para guardarlos en la
tabla de símbolos y posteriormente darle esta información al analizador sintáctico. Otra de sus
funciones es ignorar los espacios, tabulaciones, y símbolos no validos.
BIBLIOGRAFIA