Programacion de sistemas
Un analizador léxico o analizador lexicográfico (en inglés scanner) es 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. Estos tokens sirven para una posterior etapa del proceso de traducción, siendo la entrada para el analizador sintáctico (en inglésparser).
El analizador léxico es un autómata finito determinista que reconoce el lenguaje generado por las expresiones regulares correspondientes a las unidades sintácticas del lenguaje.
¿Que es un buffer?
Un buffer aplicado al área de informática y afines; es un espacio de memoria, de un determinado numero de bytes, en el que se almacenan datos para evitar que el programa o recurso que losrequiere, ya sea hardware o software, se quede en algún momento sin datos. Para explicar esto de manera mas clara haremos uso de la siguiente metáfora. Un buffer es como tener dinero en el banco (buffer), un trabajo (entrada) y unos gastos fijos (salida). Si tienes un trabajo inestable, mientras tengas ciertos ahorros, puedes mantener tus gastos fijos sin problemas, e ir ingresando dinerocuando puedas según vas trabajando. Si los ahorros son pequeños, enseguida que no tengas trabajo, no vas a poder meter los gastos fijos. De la misma forma si escuchas música en Internet y tu programa de audio usa un buffer pequeño, en cuanto que haya alguna interrupción en la descarga, notarás cortes de sonido, ya que faltara información. Es el caso como se maneja con youtube donde el video se cargatemporalmente mientras se empieza a llenar el indicador rojo, cuando el recorrido del video llega hasta donde el buffer tiene datos, se detiene porque no encuentra más datos a leer.
Manejo de Buffers
Se hace uso de los buffers para poder agilizar el trabajo de un sistema, el manejo de buffers es esencial para realizar el análisis de grandes programas de mejor manera. Para esto se ocuparan dospunteros o apuntadores, uno al carácter actual y otro al inicio.
Beneficios de utilizar buffers
* cuando se desea leer una información, se lee un bloque de información en el que aparece.
* la modificación de un dato se realiza sobre el buffer, que posteriormente debe ser enviado al dispositivo de almacenamiento.
* la utilización de la técnica de buffers permite reducir el número deaccesos a memoria secundaria.
* el manejo de buffers por parte del administrador de ficheros permite reducir el número de accesos a memoria secundaria. –
* se puede determinar el número de buffer a utilizar dependiendo el entorno del sistema.
* utilización de un buffer para escritura y otro para lectura, donde cada uno lee un bloque en cada operación.
* utilización de ambosbloques para lecturas y escrituras de modo alternado.
* la gestión de estos buffers es realizada por el administrador de ficheros, aunque el usuario puede controlar el número debuffers.
* si todos los buffers están ocupados, se debe vaciar uno de ellos para posibilitar una lectura. Para esto se utiliza el algoritmo lru, es decir, se vacía el buffer menos recientemente utilizado.
Comoya vimos se pueden emplear diferentes esquemas para el manejo de buffers, pero siempre recordando que cada esquema que vamos a emplear debe aplicarse y tomar en cuenta los parámetros con los que cuenta el sistema. Para que sea más eficiente su uso.
Por ejemplo se puede utilizar un buffer dividido en dos partes de n caracteres cada una. Se leen n caracteres de entrada en cada mitad del buffer conun orden de lectura del sistema, en vez de invocar cada lectura de carácter de entrada. Si quedan menos de n caracteres en la entrada, entonces se lee un carácter especial eof en el buffer después de los caracteres de entrada.
Buffer de entrada en dos mitades
E = m * | c * * 2 eof |
Delantero
Comienzo lexema
Es decir eof marca el final del archivo fuente y es distinto a...
Regístrate para leer el documento completo.