Latest Entries »

manual para agregar librerias jgap al netbeans 6.9.1

ejemplo de aplicacion  en la moneda de ecuador

salida del ejemplo

Creative Commons License
This work is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 3.0 Unported License.

Algoritmos Geneticos

MAPA CONCEPTUAL DE LOS ALGORITMOS GENETICOS

Licencia de Creative Commons
Algoritmos AGeneticos by https://israelp86.wordpress.com/2011/07/03/algoritmos-geneticos/ is licensed under a Creative Commons Reconocimiento 3.0 Unported License.
Creado a partir de la obra en www.israelp86.wordpress.com.

QUIPUX SISTEMA DE GESTION DOCUMENTAL UNL

Quipux es un sistema de gestión documental. El sistema fue modificado a partir del sistema de gestión documental ORFEO, el cual utiliza tecnologías y estándares abiertos. La Subsecretaria de Informática del Ecuador efectuó modificaciones a la versión original adaptándolas a las necesidades de gestión documental de las entidades de la Administración Pública Central. Su uso se ha difundido en el Estado Ecuatoriano. La Comunidad Quipux es una asociación de personas que han hecho causa común para fomentar el desarrollo social y económico alrededor de Quipux.

Gestiona la documentación digital o impresa al interior de una entidad, entre entidades y la enviada por la ciudadanía a las instituciones. la funcionalidad general del sistema: Permite el registro, control, circulación y ordenación de los documentos digitales o físicos que se envían y reciben en una organización.

funcionalidades de QUIPUX:

  • Creación, envío, recepción, almacenamiento, recuperación y clasificación de memorandos, oficios, circulares y anexos.
  • Creación compartida de documentos. Flujo de documentos conforme al orgánico regular.
  • Acceso al sistema de usuarios internos y externos (ciudadanos) a los documentos de una institución.
  • Reportes estadísticos de documentos creados y enviados, tramitados, pendientes, archivados y reasignados.
  • Seguridad y auditoría a través de usuarios, perfiles ya archivos de auditoría.
  • Firma digital de documentos generados.
  • Recepción en línea de documentos generados en el sistema y de documentos impresos registrados.

ORGANIZACION

  • Organizacion del arcHivo digital
  • Organizacion del archivo fisico
  • Codificacion documental
  • Administracion Interna de usuarios
  • Entrega de comprobamtes a ciudadanos.
  • Uso de codigo de barras para documentacion.

ARQUITECTURA DE QUIPUX


VENTAJAS DE QUIPUX:

  • Ahorro de espacio físico para almacenamiento de documentos
  • Disminución del riesgo de la perdidas por incendios, robos, inundaciones, otros.
  • Conservación intacta de los documentos a lo largo del tiempo.
  • Búsqueda de documentos definiendo criterios de acceso de forma flexible y fácil
  • Consulta simultanea de varios lectores
  • Reproducción y envío de documentos obviando el traslado físico
  • Inviolabilidad de la información a través de mecanismos de seguridad digital
  • Minimización de tiempos de distribución y consulta
  • Ahorro de recursos físicos y económicos para gestionar los documentos
  • Disminución de impresión de documentos

ENLACES:

QUIPUX MANUAL

VIDEOTUTORIAL DE QUIPUX

FUENTE

QUIPUX

MOTOR DE INFERENCIA

MOTOR DE INFERENCIA

El Motor de Inferencias (MI) es un programa de control cuya función es seleccionar las reglas posibles a satisfacer el problema,para alcanzar una solucion o conclusion determinada y para ello se vale de ciertas estrategias de control sistemáticas o de estrategias heurísticas.

REGLAS DE INFERENCIA

La mayoria de los sitemas expertos almacenan su conocimiento en forma de reglas de inferencia: si esto, entonces eso, si eso entonces aquello otro, Tambien las reglas de inferencia permiten relacionar hechos o situaciones del mundo real para deducir otros hechos que en principio no son evidentes sin la utilizacion de dichas reglas.

Por ejemplo, si la premisa de una regla es cierta, entonces la conclusión de la regla debe ser también cierta. Los datos iniciales se incrementan incorporando las nuevas conclusiones.

Entre las principales reglas  tenemos :

  • Modus Ponendo Ponens: es quizás la regla de inferencia mas comúnmente utilizada. Se utiliza para obtener conclusiones simples. En ella, se examina la premisa de la regla, y si es cierta, la conclusión pasa a formar parte del conocimiento. Como ilustración, supongamos que tenemos la regla, “Si A es cierto, entonces B es cierto” y que sabemos además que A es cierto. La regla Modus Ponens concluye que B es cierto. Esta regla de inferencia, que parece trivial, debido a su familiaridad, es la base de un gran número de sistemas expertos.

MODUS PONENDO PONENS (PP)

p → q             “Si llueve, entonces las calles se mojan”        (premisa)

p                   “Llueve”                                                    (premisa)

__________________________________________________

q                      “Luego, las calles se mojan”                         (conclusión)

El condicional o implicación es aquella operación que establece entre dos enunciados una relación de causa-efecto. La regla ‘ponendo ponens’ significa, “afirmando afirmo” y en un condicional establece, que si el antecedente (primer término, en este caso p) se afirma, necesariamente se afirma el consecuente (segundo término, en este caso q).

  • Modus  Tollendo Tollens: se utiliza también para obtener conclusiones simples. En este caso se examina la conclusión y si es falsa, se concluye que la premisa también es falsa. Por ejemplo, supongamos de nuevo que se tiene la regla, “Si A es cierto, entonces B es cierto” pero se sabe que B es falso. Entonces, utilizando la regla Modus Ponens no se puede obtener ninguna conclusión, pero la regla Modus Tollens concluye que A es falso.

MODUS TOLLENDO TOLLENS (TT)

‘Tollendo tollens’ significa “negando, niego”, y se refiere a una propiedad inversa de los condicionales, a los que nos referíamos en primer lugar.

p → q             “Si llueve, entonces las calles se mojan”

¬q                      “Las calles no se mojan”

__________________________________________________

¬p                      “Luego, no llueve”

Si de un condicional, aparece como premisa el consecuente negado (el efecto), eso nos conduce a negar el antecedente (la causa), puesto que si un efecto no se da, su causa no ha podido darse.

ENLACES:

REGLAS DE INFERENCIA1

REGLAS DE INFERENCIA2

MOTOR DE INFERENCIA

FUENTES:

http://www.juntadeandalucia.es/averroes/emilioprados/filosof/Logica/Reglas%20de%20inferencia.htm

http://www.mitecnologico.com/Main/InferenciaLogica

http://www.webelectronica.com.ar/news27/nota06.htm

SISTEMA EXPERTO VIH

SISTEMA EXPERTO VIH


El sida (acrónimo de síndrome de inmunodeficiencia adquirida) es una enfermedad que afecta a los humanos infectados por el VIH. Se dice que una persona padece de sida cuando su organismo, debido a la inmunodeficiencia provocada por el VIH, no es capaz de ofrecer una respuesta inmune adecuada contra las infecciones.

SINTOMAS DEL VIH:

Algunas personas muestran síntomas de alguna enfermedad en las siguientes 6 semanas posteriores a la infección con el VIH. Estos síntomas son:

  • Fiebre que dura mas de un mes
  • Diarrea que dura mas de un mes
  • Dolor de cabeza
  • Glándulas inflamadas
  • Perdida de peso
  • Infeccion por herpes
  • Dolor de garganta

El sistema experto VIH realiza de acuerdo a los sintomas que tiene un paciente se diagnosticara si presenta el virus del VIH o no.

BASE DEL CONOCIMIENTO

TABLA DE OBJETOS DEL SISTEMA EXPERTO

INTERFAZ DEL  SISTEMA EXPERTO VIH


Reglas:

regla 1

Si tiene relacione sexuales sin proteccion y

tiene infeccion por herpes  y

perdida de peso    y

dolor de cabeza     y

Glandulas inflamadas    y

Diarrea mas de un mes     y

Fiebre mas de un mes       y

Dolor de Garganta

Entonces

Tiene VIH  realize un examen de sangre y un examen de ELISA para mayor seguridad.

regla 2

Si tiene relacione sexuales sin proteccion y

tiene infeccion por herpes     y

perdida de peso

Entonces

No tiene VIH pero tiene que ir al medico.

regla3

Si Tiene dolor de cabeza     y

Glandulas inflamadas       y

Fiebre     y

Dolor de Garganta

Entonces

Tiene Sintomas de la Gripe consulte al medico

LINKS

Cod_sist_epx_vih

Sist_exp_vih.jar

 

ARQUITECTURA DE UN SISTEMAS EXPERTO

La arquitectura de un sistema experto: esta basada en una entrada de datos realizada por el usuario a fin de efectuar la oportuna consulta. Las entradas no solamente están compuestas de estas consultas. El aprendizaje del sistema y las condiciones especificas del problema a tratar también han de encontrarse en la entrada.

Junto a ello, se encuentra la administración del sistema, compuesta por un interfaz encargado del manejo de la sintaxis del lenguaje y de la maquina de inferencias, que se encarga de efectuar la búsqueda en la base de conocimientos y en la base de datos. Por ultimo, se tienen los resultados.

La Arquitectura de un Sistema Experto esta basado en conocimientos que se componen de:

Base de Conocimiento:

 

Un SE posee el conocimiento del experto humano convenientemente formalizado y estructurado; esto es lo que se conoce como Base de conocimiento. Está constituido por la descripción de los objetos y las relaciones entre ellos, así como de casos particulares y excepciones. Algunos sistemas basados en el conocimiento incluyen metaconocimiento o conocimiento sobre el conocimiento, es decir, la capacidad para buscar en la base de conocimiento y abordar la resolución del problema de una manera inteligente usando diferentes estrategias para la resolución con sus condiciones particulares de aplicación. Es decir se trata de definir criterios mediante los cuales el sistema decide la estrategia de búsqueda a utilizar en función de unos datos iniciales. El conocimiento se puede representar mediante cálculo de predicados, listas, objetos, redes semánticas y/o reglas de producción. De todas ellas, las dos formas más usuales son las reglas de producción y los objetos. En cualquier caso, la elección de las técnicas de representación a utilizar dependerán del tipo de problema a resolver.

•Motor de Inferencia:

También llamado intérprete de reglas, es un módulo que se encarga de las operaciones de búsqueda y selección de las reglas a utilizar en el proceso de razonamiento. Por ejemplo, al tratar de probar una hipótesis dada, el motor de inferencia irá disparando reglas que irán deduciendo nuevos hechos hasta la aprobación o rechazo de la hipótesis objetivo.

•Base de Hechos:

Se trata de una memoria temporal auxiliar que almacena los datos del usuario, datos iniciales del problema, y los resultados intermedios obtenidos a lo largo del proceso de resolución. A través de ella se puede saber no sólo el estado actual del sistema sino también cómo se llegó a él. Como ya se ha mencionado antes, es conveniente que esta información se maneje con bases de datos relacionales, en lugar de utilizar un sistema particular de almacenamiento.

•Interfaz de Usuario:

Todo sistema dispone de una interfaz de usuario, que gobierna el diálogo entre el sistema y el usuario. Para el desarrollo de estas interfaces algunas herramientas de desarrollo incorporan generadores de interfaz de usuario o bien se utilizan herramientas de desarrollo de interfaces gráficas existentes en el mercado.

Otros módulos que forman parte de este tipo de herramientas son los siguientes:

•Módulo de comunicaciones:

En la actualidad la mayoría de los sistemas basados en el conocimiento no viven aislados sino que interactúan con otros sistemas por lo que son capaces de interactuar no solamente con el experto sino con estos sistemas, para poder recoger información o consultar bases de datos.

•Módulo de explicaciones:

Es una utilidad importante en la etapa de desarrollo ya que aporta una ayuda considerable al ingeniero del conocimiento para refinar el funcionamiento del motor de inferencia, y al experto a la hora de construir y verificar la coherencia de la base de conocimiento. Sirve para explicar al usuario tanto las reglas usadas como el conocimiento aplicado en la resolución de un determinado problema.

•Módulo de adquisición de conocimiento:

Este módulo permite al ingeniero del conocimiento, y/o experto, la construcción de la base de conocimiento de una forma sencilla, así como disponer de una herramienta de ayuda para actualizar la base de conocimiento cuando sea necesario.

Si bien estos módulos no existen en todos los sistemas basados expertos, o bien están desarrollados o implementados de maneras diferentes, la función que desempeñan es muy interesante en el desarrollo de estos sistemas. Así, el motor de inferencia y las interfaces, que incluyen la interfaz de usuario, el módulo de explicaciones y el módulo de adquisición del conocimiento, forman el esqueleto o sistema esencial, y que, separadas de las bases de conocimiento y de hechos, constituyen una herramienta software para el desarrollo de los sistemas basados en el conocimiento (shells).

ENLACES:

SISTEMAS EXPERTOS

REFERENCIAS:

http://capacitacionjava.blogspot.com/2010/09/sistemas-expertos-arquitectura-basica.html

http://www.depi.itch.edu.mx/apacheco/ai/definic.htm

 

SISTEMAS EXPERTOS

Aparecen en la decada de  los 60, Son programas que se basan en el conocimiento y tratan de imitar el razonamiento de un experto para resolver un problema de un tópico definido.

Su comportamiento se basa generalmente en reglas, es decir, se basa en conocimientos previamente definidos, y mediante estos conocimientos, los SE son capaces de tomar decisiones.

DIFERENCIAS ENTRE CICLO DE UN SISTEMA TRADICIONAL Y UN SISTEMA EXPERTO

SISTEMA CLASICO Y SISTEMA EXPERTO

PRIMEROS SISTEMAS ESPERTOS

 

REFERENCIAS:

http://html.rincondelvago.com/sistemas-expertos_1.html

Haz clic para acceder a SISTEMAS_EXPERTOS.pdf

http://www.ucm.es/info/eurotheo/diccionario/S/sistemas_expertos.htm

Deep Blue

DEEP BLUE

Deep Blue (Azul Profundo), fue un ordenador de IBM que jugaba ajedrez.


Se remonta a los años 1985, cuando el estudiante Feng-hsiung Hsu comenzó a desarrollar un jugador de ajedrez computarizado llamado «Chiptest», pero el proyecto propiamente tal comenzó en 1989, IBM.

Así, el equipo que se formó en IBM pasó a denominarse The Deep Blue Team y enfrento este problema con un clásico dilema de investigación de cómo desarrollar un jugador de ajedrez computarizado que testeara a los mejores campeones en esta disciplina del mundo.

Al pasar los años, el grupo diseño un procesador específico para ajedrez que es capaz de examinar y evaluar entre doscientas y trescientas posiciones por segundo.
Este chip se instalo en el computador Powerparallel SP de IBM para incrementar sus capacidades de búsqueda en miles de escenarios más.

Deep Blue fue el primer ordenador que venció a un Campeón del Mundo vigente, Garry Kasparov. Esto ocurrió el 10 de febrero de 1996, en una memorable partida. Sin embargo, Kasparov ganó 3 y empató 2 de las siguientes partidas, derrotando a Deep Blue por 4-2. El encuentro concluyó el 17 de febrero de 1996

Deep Blue fue mejorando y jugó de nuevo contra Kasparov en mayo de 1997, ganando el encuentro a 6 partidas por 3’5-2’5, lo que lo convirtió en el primer ordenador en derrotar a un campeón del mundo vigente, en un encuentro con ritmo de juego de torneo estándar. El encuentro concluyó el 11 de mayo.

El ruso Garry Kasparov, para muchos el mejor ajedrecista de todos los tiempos, justificó su derrota ante Deep Blue -3 ½ a 2 ½- por el miedo que le causa esa maquina. «Es verdad, me asusta que una computadora juegue con un nivel superior a todos los ordenadores y al de casi todos los hombres».

Deep Blue triunfó también en Wall Street. Mientras sigue la controversia por la derrota de Kasparov, en Nueva York las acciones de IBM alcanzo su récord.

VIDEO DEEP BLUE

WEKA

WEKA es una plataforma de software para aprendizaje automático y minería de datos escrito en Java y desarrollado en la Universidad de Waikato. Weka es un software libre distribuido bajo licencia GNU-GPL.

El paquete Weka contiene una colección de herramientas de visualización y algoritmos para análisis de datos y modelado predictivo, unidos a una interfaz gráfica de usuario para acceder fácilmente a sus funcionalidades. La versión original de Weka fue un front-end en TCL/TK para modelar algoritmos implementados en otros lenguajes de programación, más unas utilidades para preprocesamiento de datos desarrolladas en C para hacer experimentos de aprendizaje automático. Esta versión original se diseñó inicialmente como herramienta para analizar datos procedentes del dominio de la agricultura, pero la versión más reciente basada en Java (WEKA 3), que empezó a desarrollarse en 1997, se utiliza en muchas y muy diferentes áreas, en particular con finalidades docentes y de investigación.

ENLACES:

WEKATUT

MANUAL DE WEKA

PAGINAWEKA

 

 

SISTEMAS EXPERTOS

SISTEMAS EXPERTOS

Es una aplicación informática capaz de solucionar un conjunto de problemas que exigen un gran conocimiento sobre un determinado tema. Un sistema experto es un conjunto de programas que, sobre una base de conocimientos, posee información de uno o más expertos en un área específica. Se puede entender como una rama de la inteligencia artificial, donde el poder de resolución de un problema en un programa de computadora viene del conocimiento de un dominio específico. Estos sistemas imitan las actividades de un humano para resolver problemas de distinta índole (no necesariamente tiene que ser de inteligencia artificial). También se dice que un SE se basa en el conocimiento declarativo (hechos sobre objetos, situaciones) y el conocimiento de control (información sobre el seguimiento de una acción).

Para que un sistema experto sea herramienta efectiva, los usuarios deben interactuar de una forma fácil, reuniendo dos capacidades para poder cumplirlo:

  1. Explicar sus razonamientos o base del conocimiento: los sistemas expertos se deben realizar siguiendo ciertas reglas o pasos comprensibles de manera que se pueda generar la explicación para cada una de estas reglas, que a la vez se basan en hechos.
  2. Adquisición de nuevos conocimientos o integrador del sistema: son mecanismos de razonamiento que sirven para modificar los conocimientos anteriores. Sobre la base de lo anterior se puede decir que los sistemas expertos son el producto de investigaciones en el campo de la inteligencia artificial ya que ésta no intenta sustituir a los expertos humanos, sino que se desea ayudarlos a realizar con más rapidez y eficacia todas las tareas que realiza.

ARQUITECTURA BÁSICA DE LOS SISTEMAS EXPERTOS

Base de conocimientos. Es la parte del sistema experto que contiene el conocimiento sobre el dominio. hay que obtener el conocimiento del experto y codificarlo en la base de conocimientos. Una forma clásica de representar el conocimiento en un sistema experto son lar reglas. Una regla es una estructura condicional que relaciona lógicamente la información contenida en la parte del antecedente con otra información contenida en la parte del consecuente.

Base de hechos (Memoria de trabajo). Contiene los hechos sobre un problema que se han descubierto durante una consulta. Durante una consulta con el sistema experto, el usuario introduce la información del problema actual en la base de hechos. El sistema empareja esta información con el conocimiento disponible en la base de conocimientos para deducir nuevos hechos.

Motor de inferencia. El sistema experto modela el proceso de razonamiento humano con un módulo conocido como el motor de inferencia. Dicho motor de inferencia trabaja con la información contenida en la base de conocimientos y la base de hechos para deducir nuevos hechos. Contrasta los hechos particulares de la base de hechos con el conocimiento contenido en la base de conocimientos para obtener conclusiones acerca del problema.

Subsistema de explicación. Una característica de los sistemas expertos es su habilidad para explicar su razonamiento. Usando el módulo del subsistema de explicación, un sistema experto puede proporcionar una explicación al usuario de por qué está haciendo una pregunta y cómo ha llegado a una conclusión. Este módulo proporciona beneficios tanto al diseñador del sistema como al usuario. El diseñador puede usarlo para detectar errores y el usuario se beneficia de la transparencia del sistema.

Interfaz de usuario. La interacción entre un sistema experto y un usuario se realiza en lenguaje natural. También es altamente interactiva y sigue el patrón de la conversación entre seres humanos. Para conducir este proceso de manera aceptable para el usuario es especialmente importante el diseño del interfaz de usuario. Un requerimiento básico del interfaz es la habilidad de hacer preguntas. Para obtener información fiable del usuario hay que poner especial cuidado en el diseño de las cuestiones. Esto puede requerir diseñar el interfaz usando menús o gráficos.

ÁREAS DE APLICACIÓN DE LOS S.E.

Los SE se aplican a una gran diversidad de campos y/o áreas. A continuación se listan algunas de las principales:

Militar Informática Telecomunicaciones
Química Derecho Aeronáutica
Geología Arqueología Agricultura
Electrónica Educación
Medicina Industria Finanzas y Gestión

VENTAJAS

Estos programas proporcionan la capacidad de trabajar con grandes cantidades de información, que son de los grandes problemas que enfrenta el analista humano que puede afectar negativamente a la toma de decisiones pues el analista humano puede depurar datos que no considere relevantes, mientras un SE debido a su gran velocidad de proceso analiza toda la información incluyendo las no útiles para de esta manera aportar una decisión más sólida.

LIMITACIONES

Es evidente que para actualizar se necesita de reprogramación de estos (tal vez este sea una de sus limitaciones más acentuadas) otra de sus limitaciones puede ser el elevado costo en dinero y tiempo, además que estos programas son poco flexibles a cambios y de difícil acceso a información no estructurada.

Debido a la escasez de expertos humanos en determinadas áreas, los SE pueden almacenar su conocimiento para cuando sea necesario poder aplicarlo. Así mismo los SE pueden ser utilizados por personas no especializadas para resolver problemas. Además si una persona utiliza con frecuencia un SE aprenderá de el.

Por otra parte la inteligencia artificial no ha podido desarrollar sistemas que sean capaces de resolver problemas de manera general, de aplicar el sentido común para resolver situaciones complejas ni de controlar situaciones ambiguas.

El futuro de los SE da vueltas por la cabeza de cada persona, siempre que el campo elegido tenga la necesidad y/o presencia de un experto para la obtención de cualquier tipo de beneficio.

ENLACES:

Sistemas Expertos

BIBLIOGRAFIA:

http://www.google.com/search?hl=es&biw=1440&bih=663&defl=es&q=define:Sistema+experto&sa=X&ei=UQ95Tb2EGNKN0QG3hqTaAw&ved=0CBUQkAE

http://www.monografias.com/trabajos16/sistemas-expertos/sistemas-expertos.shtml

http://es.wikipedia.org/wiki/Sistema_experto


CONSTRUCCION DE UNA CALCULADORA UTILIZANDO UN ANALIZADOR LEXICO, SINTACTICO Y SEMANTICO

Declaracion del Lenguaje: Un lenguaje es un conjunto de cadenas.

Ej.- {1, 12, 123, 1234, 12345, 12346} es un lenguaje sobre el alfabeto de los dígitos.

Lenguaje de la Calculadora:

n=[0-9] NUMEROS

p=[“.”]PUNTO

AUTOMATA FINITO NO DETERMINISTA

EXPRESION REGULAR

(ɛ)(n+|n*p n+)

ANALIZADOR LEXICO

El analizador léxico (scanner), lee un texto fuente y lo transforma en una secuencia ordenada de elementos léxicamente válidos. Un caracter o conjunto de estos que constituya un componente léxico se llama lexema (token). Como componentes léxicos consideramos: palabras reservadas, separadores, operadores, identificadores, constantes y signos de puntuación.

ANALIZADOR LEXICO DE LA CALCULADORA

TOKENS

NUMEROS: [0..9]

OPERADORES: “+”,”-”,”*”,”/”,”^”

PARENTESIS: “(“,”)”

SEPARADOR: ;

ASIGNACION: =

EJEMPLO: (10+6/2^2)=4;

TOKENS

LEXEMAS

PARENTESIS (
NUMEROS 10
OPERADORES +
NUMEROS 6
OPERADORES /
NUMEROS 2
OPERADORES ^
NUMEROS 2
PARENTESIS )
ASIGNACION =
NUMEROS 14
SEPARADOR ;

ANALIZADOR SINTACTICO

Es la fase del analizador que se encarga de chequear la secuencia de tokens que representa al texto de entrada, en base a una gramática dada. En caso de que el programa de entrada sea válido, suministra el árbol sintáctico que lo reconoce en base a una representación computacional. Este árbol es el punto de partida de la fase posterior de la etapa de análisis: el analizador semántico.

ANALIZADOR SINTACTICO DE LA CALCULADORA

Gramatica: {VT, VN, R, S}

G={VT,VN,R,S} GRAMATICA

VT={ “0..9”,”(“,”)”,”;”,”+”,”=”,”-”,”*”,”/”,” ^”,} VALORES TERMINALES

VN= {Exp , Num, AP,CP,Sep,Asig, termino, elemento} VALORES NO TERMINALES

S=Exp

REGLAS GRAMATICALES:

S=AP Exp +Termino CP Asig num Sep|AP Exp – Termino CP Asig num Sep |AP Exp / Termino CP Asig num Sep |AP Exp * Termino CP Asig num Sep |AP Exp ^Termino CP Asig num Sep | Termino |elemento

Termino= Termino + elemento | Termino – elemento |Termino * elemento|Termino / elemento|Termino ^ elemento|elemento

elemento=  num

num = 0..9

Asig = =

Sep = ;

Ejemplo: analizis sintáctico por la izquierda.

(10+6/2^2);

ANALIZADOR SEMANTICO

Esta fase revisa el árbol sintáctico junto con los atributos y la tabla de símbolos para tratar de encontrar errores semánticos. Para todo esto se analizan los operadores y operandos de expresiones y proposiciones. Finalmente reúne la información necesaria sobre los tipos de datos para la fase posterior de generación de código. El componente más importante del análisis semántico es la verificación de tipos. Aquí, el compilador verifica si los operandos de cada operador son compatibles según la especificación del lenguaje fuente.

GRAMATICA DIRIGIDA POR LA SINTAXIS

Las gramáticas Dirigidas por la sintaxis son gramáticas  a las que se añaden atributos y reglas de evaluación de atributos (funciones/reglas semánticas).

Cada símbolo tiene un conjunto de atributos asociados:

  • Atributo: una cadena, número, tipo, posición de memoria, etc
  • NombredeSímbolo.NombredeAtributo

ANALIZADOR SEMANTICO DE LA CALCULADORA

REGLAS SEMANTICAS

PRODUCCION

REGLAS SEMANTICAS

L=Elem Imprime(Elem.val)
Elem= Exp / Ter Elem.val=Exp.val / Ter.val
Exp = Ter Exp.val=Ter.val
Ter = Ter + Elem Ter.val= Ter.val + Elem.val
Ter = Elem Ter.val = Elem.val
Elem = num Elem.val = num.valex
Ter = Ter ^ Elem Ter.val = Ter.val ^ Elem.val

Ejemplo: (10+6/2^2)=4