Actividad 2 UNIDAD 1

Actividad 2. Diseñar y seleccionar información sobre la construcción de un analizador semántico. Se compone de un conjun

Views 364 Downloads 6 File size 81KB

Report DMCA / Copyright

DOWNLOAD FILE

Recommend stories

Citation preview

Actividad 2. Diseñar y seleccionar información sobre la construcción de un analizador semántico. Se compone de un conjunto de rutinas independientes, llamadas por los analizadores morfológico y sintáctico. El análisis semántico utiliza como entrada el árbol sintáctico detectado por el análisis sintáctico para comprobar restricciones de tipo y otras limitaciones semánticas y preparar la generación de código. En compiladores de un solo paso, las llamadas a las rutinas semánticas se realizan directamente desde el analizador sintáctico y son dichas rutinas las que llaman al generador de código. El instrumento más utilizado para conseguirlo es la gramática de atributos. En compiladores de dos o más pasos, el análisis semántico se realiza independientemente de la generación de código, pasándose información a través de un archivo intermedio, que normalmente contiene información sobre el árbol sintáctico en forma lineal izada (para facilitar su manejo y hacer posible su almacenamiento en memoria auxiliar). En cualquier caso, las rutinas semánticas suelen hacer uso de una pila (la pila semántica) que contiene la información semántica asociada a los operando (y a veces a los operadores) en forma de registros semánticos.

Programa utilizado: using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Text.RegularExpressions; namespace cadena_expresion { class Program { static void Main(string[] args) { analizaFichero(); } static public void analizaFichero() { string[] Cadenas= {"Aplastar","Haragan","Encargado","Seleccion"}; string sexpresion; Console.Write("Escribir expresion: ");

sexpresion = Console.ReadLine(); foreach (string s in Cadenas) { //System.Console.Write("{0,24}", s); if (Regex.IsMatch(s, sexpresion)) { System.Console.WriteLine("Existe coincidencia '{0}' en: '{1}'", sexpresion, s); } else { System.Console.WriteLine("No existe coincidencia '{0}' en: '{1}'", sexpresion, s); } Console.ReadLine(); } } } } Primer ejemplo:

En este primer ejemplo, se toman 4 palabras en las cuales mediante un reconocimiento, el programa indica si la vocal “a” se encuentra en las cadenas predefinidas, de no existe coincidencia como en el caso de la cuarta cadena, se nos indicara que no existe coincidencia de dicha expresión en la cadena.

Ejemplo 2:

En este caso la expresión no obtuvo coincidencia en ninguna de las cadenas. Ejemplo 3:

En este caso la expresión o fue hallada en dos de tres cadenas.