2. Objetivos.
Conocer las principales aplicaciones de los Autómatas programables, su
estructura y su funcionalidad interna.
Saber el funcionamiento de los analizadores sintáctico.
Emplear estructuras aritméticas.
Conectar los autómatas programables en el funcionamiento junto a los
analizadores sintáctico.
3. Autómatas programables.
• El autómata es la primera maquina con lenguaje, es decir, un
calculador lógico cuyo juego de instrucciones se orienta hacia
los sistemas de evolución secuencial. Hay que apreciar que,
cada vez mas, la universalidad de los ordenadores tiende a
desaparecer, el futuro parece abrirse hacia esta nueva clase de
dispositivos: maquina para proceso de señales, para la gestión
de base de datos.
• El autómata programable es, pues, en este sentido un
precursor y constituye para los automatistas un esbozo de la
maquina ideal.
4. • Origen de los autómatas programables.
• Los autómatas programables aparecieron en los Estados Unidos de
América en los años de1969-1970, y mas particularmente en el sector de la
industria del automóvil, fueron empleados en Europa alrededor de dos años
después. Su fecha de creación coincide, pues, con el comienzo de la era del
microprocesador y con la generalización de la lógica cableada modular.
5. Estructura de un automata programable.
• Un dispositivo de alimentacion que proporciona la transformacion de la
energia electrica suministrada por la red de alimentación en las tensiones
continuas exigidas por los componentes electronicos.
• Una tarjeta de interface de entrada y salida para la transformacion y
adaptacion de las señales electricas procedentes de captadores hacia el
automata (cambio de nivel de tension, aislamiento, filtrado) y
reciprocamente, de las señales que van desde el automata hacia los
actuadores.
6. Aplicaciones.
• El autómata programable puede
utilizarse de forma aislada o
insertado en un sistema de
control de procesos distribuido
y ello, en instalaciones tan
variadas como cervecerías,
panaderías, fundiciones,
refinerías, teleféricos o
instalaciones de calefacción.
7. Ejemplo:
Se trata de un circuito
combinado serie-paralelo
que cuando se cumplan las
posibles combinaciones de
las tres entradas actuaran
sobre una salida, en este
caso una bobina.
8. Ejercicio:
Se trata de un circuito combinado
serie-paralelo que cuando se
cumplan las posibles
combinaciones de las seis entradas
actuaran sobre una salida, en este
caso una bobina.
9. Analizador Sintáctico.
• Un analizador sintáctico (o parser) es una de las partes de un compilador
que transforma su entrada en un árbol de derivación.
• El análisis sintáctico convierte el texto de entrada en otras estructuras
(comúnmente árboles), que son más útiles para el posterior análisis y
capturan la jerarquía implícita de la entrada. Un analizador léxico crea
tokens de una secuencia de caracteres de entrada y son estos tokens los
que son procesados por el analizador sintáctico para construir la
estructura de datos.
10. • Es la fase del analizador que se encarga de
chequear el texto de entrada en base a una
gramática dada. Y en caso de que el
programa de entrada sea válido, suministra
el árbol sintáctico que lo reconoce.
• En teoría, se supone que la salida del
analizador sintáctico es alguna
representación del árbol sintáctico que
reconoce la secuencia de tokens
suministrada por el analizador léxico.
11. • En la práctica, el analizador sintáctico también hace:
• • Acceder a la tabla de símbolos (para hacer parte del trabajo del analizador
semántico).
• • Chequeo de tipos ( del analizador semántico).
• • Generar código intermedio.
• • Generar errores cuando se producen.
• En definitiva, realiza casi todas las operaciones de la compilación. Este método de
trabajo da lugar a los métodos de compilación dirigidos por sintaxis.
12. Expresiones Aritméticas
• El computador puede realizar cálculos además de mostrar datos por pantalla.
• ➲ Son expresiones analíticas que no contiene más funciones que aquellas que pueden
calcularse con las operaciones del álgebra, a saber:
• ● Suma ● Resta
• ● Multiplicación ● División
• Las gramáticas libres de contexto son útiles para describir expresiones aritméticas que
tengan una anidación arbitraria de paréntesis balanceados y estructuras de bloque en
los lenguajes de programación.
13. Operadores Aritméticos
• Operación Operador Expresión Expresión en C
• Suma + A + 3 A + 3
• Resta - A – 3 A – 3
• Multiplicación x A x 3 A * 3
• División / A ÷ 3 A / 3
• Resto % A % 3
• Incremento ++ A + 1 A++ ó ++A
• Decremento -- A – 1 A-- ó --A
14. Formato de las Expresiones
• ➲ Las expresiones Aritméticas se utilizan en sentencias con el siguiente formato:
• variable = expresión;
• Siendo (=) el mecanismo para asignar valores .
• ➲ variable: localidad de memoria referenciada por un nombre bien definido
• ➲ expresión: expresión aritmética
• ➲ Se evalúa la expresión aritmética y el resultado es almacenado en la variable,
permitiendo que la sentencia de asignación modifique el contenido de una
variable.
15. Reglas de los Operando
• ➲ Si todos los operando en una expresión son enteros entonces el resultado es
entero
• ➲ Si alguno de los operando es real entonces el resultado es real
• ➲ Si la expresión evaluada da como resultado un número entero y se le asigna a una
variable real, entonces el resultado se convertirá antes a real antes de almacenarlo en
la variable
• ➲ Si la expresión evaluada da como resultado un número real y se le asigna a una
variable entero, entonces el resultado se convertirá antes a entero antes de
almacenarlo en la variable
16. Nivel de Precedencia
• ➲ Los delimitadores paréntesis () son utilizados para darle mayor nivel de
precedencia a las expresiones.
• ➲ Es decir, las expresiones entre paréntesis son evaluadas primero.
• ➲ Ejemplo:
• (x + y + z) * (v + w)
• R1 = x + y R2 = R1 + z
• R3 = v + w R4 = R2 * R3
17. Ejemplo
• Léxico={0,…,9,+,-,*,%,(,),=}.
• ORACIÓN REGLA NO APLICADA RAZÓN
• 1/9 Léxico ““/” no es el símbolo para dividir el el correcto es “%”
(1+9)*3) Sintaxis Los paréntesis no están balanceados
(0%0)-(3+4) Semántica División con cero
3+4=8 Semántica La igualdad es falsa
•
18. Ejercicios
• Construir un Autómata que me reconozca la ley de expresiones aritméticas es decir
que me acepte un numero, un operador aritmético (-,+,*,/) y un numero, siendo
estos números pertenecientes al conjunto del de números enteros del 0-4.
• Construir un autómata que me acepte la igualdad en suma de los números enteros
del 0-3, siempre que los números que realicen estas combinaciones estén en el
conjunto. Aceptando la siguiente característica: numero=numero+numero
No importa si el numero se repite, lo que debe tener claro es que la igualdad
de dicho numero es la igualdad real en suma.
Un autómata programable es un aparato electrónico programable por un usuario automatista y destinado a gobernar, dentro de un entorno industrial, maquinas o procesos lógicos secuenciales.
Los automatas programables son equipos electronicos de cableado interno independiente del proceso a controlar (hardware). Un automata programable se adapta a la maquina o instalacion a controlar mediante un programa que defina la evolucion de las operaciones que se desea (software) y de un cableado directo entre los elementos de entrada y salidad del automata.
Una tarjeta procesadora: es el cerebro del automata programable. Lee e interpreta las instrucciones que constituyen el programa grabado en la memoria y deduce las operaciones a realizar.
Una tarjeta de memoria: contiene los componentes electronicos que permiten memorizar el programa, los datos (señales de entrada) y los accionadores (señales de salida).
Un token o también llamado componente léxico es una cadena de caracteres que tiene un significado coherente en cierto lenguaje de programación. Ejemplos de tókenes podrían ser palabras clave (if, else, while, int, ...),
La semántica corresponde al significado asociado a las estructuras formales (sintaxis) del lenguaje. ... Es por tanto la fase posterior a la de análisis sintáctico y la última dentro del proceso de síntesis de un lenguaje de programación.
Un analizador léxico y/o analizador lexicográfico (en inglés scanner) es la primera fase de un compilador consistente 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. Estos tokens sirven para una posterior etapa del proceso de traducción, siendo la entrada para el analizador sintáctico (en inglés par