traducen de un lenguaje a otro. Un compilador toma como su entrada un programa escrito en lenguaje fuente y produce un programa equivalente escrito en lenguaje objeto.
Generalmente al lenguaje fuente se le asocia como lenguaje de alto nivel, mientras al lenguaje objeto se le conoce como cdigo objeto (cdigo de maquina) escrito especficamente para una maquina objeto. A lo largo del proceso de traduccin el compilador debe informar la presencia de errores en el lenguaje fuente. Disear y desarrollar un compilador, no es tarea fcil, y quizs pocos profesionales de la computacin se vean involucrados en esta tarea. No obstante, los compiladores se utilizan en casi todas las formas de la computacin y cualquiera involucrado en esta rea debera conocer la organizacin y el funcionamiento bsico de un compilador.
FASES DE UN COMPILADOR Un compilador se compone internamente de varias etapas, o fases, que realizan operaciones lgicas. Es til pensar en estas fases como piezas separadas dentro del compilador, y pueden en realidad escribirse como operaciones codificadas separadamente aunque en la prctica a menudo se integran.
Analizador Lxico: lee la secuencia de caracteres de izquierda a derecha del programa fuente y agrupa las secuencias de caracteres en unidades con significado propio (componentes lxicos o tokens en ingles). Las palabras claves son: identificadores, operadores, constantes numricas, signos de puntuacin como separadores de sentencias, llaves, parntesis, entre otros, son diversas clasificaciones de componentes lxicos. La estructura lxica la modelaremos mediante expresiones regulares. Por ejemplo la siguiente instruccin en cdigo C: a [indice] = 4 + 2
Anlisis Sintctico: determina si la secuencia de componentes lxicos sigue la sintaxis del lenguaje y obtiene la estructura jerrquica del programa en forma de rbol, donde los nodos son las construcciones de alto nivel del lenguaje. Se determinan las relaciones estructurales entre los componentes lxicos, esto es semejante a realizar el anlisis gramatical sobre una frase en lenguaje natural. La estructura sintctica la definiremos mediante las gramticas independientes del contexto.
Como ejemplo consideremos la lnea de cdigo C anterior. Representa un elemento estructural denominado expresin, la cual es una expresin de asignacin compuesta de una expresin de subndice a la izquierda y una expresin aritmtica a la derecha (rbol de anlisis gramatical).
Anlisis Semntico: realiza las comprobaciones necesarias sobre el rbol sintctico para determinar el correcto significado del programa. Las tareas bsicas a realizar son: La verificacin e inferencia de tipos en asignaciones y expresiones, la declaracin del tipo de variables y funciones antes de su uso, el correcto uso de operadores, el mbito de las variables y la correcta llamada a funciones. Nos limitaremos al anlisis semntico esttico (en tiempo de compilacin), donde es necesario hacer uso de la Tabla de smbolos, como estructura de datos para almacenar informacin sobre los identificadores que van surgiendo a lo largo del programa. El anlisis semntico suele agregar atributos (como tipos de datos) a la estructura del rbol semntico.
Generacin y Optimizacin de Cdigo Intermedio: la optimizacin consiste en la calibracin del rbol sintctico donde ya no aparecen construcciones de alto nivel. Generando un cdigo mejorado, ya no estructurado, ms fcil de traducir directamente a cdigo ensamblador o mquina, compuesto de un cdigo de tres direcciones (cada instruccin tiene un operador, y la direccin de dos operndoos y un lugar donde guardar el resultado), tambin conocida como cdigo intermedio. La etapa de optimizacin slo dependen del lenguaje fuente (y no de la mquina), se busca principalmente: eliminar sub- expresiones comunes, identificar cdigo muerto, sustituir operaciones aritmticas, clculo previo de constantes, variables de induccin, propagacin de copias o cdigo inalcanzable. Suele ser una fase lenta y compleja.
Generacin de Cdigo Objeto: toma como entrada la representacin intermedia y genera el cdigo objeto. La optimizacin depende de la mquina, es necesario conocer el conjunto de instrucciones, la representacin de los datos (nmero de bytes), modos de direccionamiento, nmero y propsito de registros, jerarqua de memoria, encauzamientos, entre otros. Suelen implementarse a mano, y son complejos porque la generacin de un buen cdigo objeto requiere la consideracin de muchos casos particulares. Tambin se est investigando la creacin de generadores de cdigo automticos. a idea es automticamente hacer corresponder una representacin intermedia a plantillas de instrucciones objeto. Permitiendo generar fcilmente el cdigo objeto para una nueva mquina objeto, cambiando el conjunto de plantillas. Por ejemplo GNU GCC posee plantillas para mas de 10 arquitecturas ms habituales de ordenadores.
Tabla de Smbolos: Es una estructura tipo diccionario con operaciones de insercin, borrado y bsqueda, que almacena informacin sobre los smbolos que van apareciendo a lo largo del programa como son: los identificadores (variables y funciones), etiquetas, tipos definidos por el usuario (arreglos, registros, entre otro.) Adems almacena el tipo de dato, mtodo de paso de parmetros, tipo de retorno y de argumentos de una funcin, el mbito de referencia de identificadores y la direccin de memoria. Interacciona tanto con el analizador lxico, sintctico y semntico que introducen informacin conforme se procesa la entrada. La fase de generacin de cdigo y optimizacin tambin la usan.
Gestor De Errores: detecta e informa de errores que se produzcan durante la fase de anlisis. Debe generar mensajes significativos y reanudar la traduccin. Encuentra errores: en tiempo de compilacin: errores lxicos (ortogrficos), sintcticos (construcciones incorrectas) y semnticos (por ejemplo errores de tipo), en tiempo de ejecucin: direccionamiento de vectores fuera de rango, divisiones por cero, entre otros; de especificacin/diseo: compilan correctamente pero no realizan lo que el programador desea. Se trataran slo errores estticos (en tiempo de compilacin). Respecto a los errores en tiempo de ejecucin, es necesario que el traductor genere cdigo para la comprobacin de errores especficos, su adecuado tratamiento y los mecanismos de tratamiento de excepciones para que el programa se contine ejecutando. ESTRUCTURAS DE DATOS EMPLEADAS
Componentes Lxicos: estructura tipo registro con dos campos, componente lxico representado por una enumeracin y el lexema con una cadena de caracteres.
rbol Sintctico: es una representacin de rbol de la estructura sin tctica abstracta del cdigo fuente escrito en cierto lenguaje de programacin. Cada nodo del rbol denota una construccin que ocurre en el cdigo fuente.
Tabla de Smbolos: contiene informacin sobre los identificadores, funciones, variables, mbito de referencia de identificadores, constantes numricas y literales, tipos de datos, o incluso la direccin de memoria (tabla Hash).
Cdigo intermedio: se implementa como una lista de registros, donde cada registro tiene cuatro campos (operador, la direccin de los operndoos y del resultado). Es eficiente para mover cdigo para el proceso de optimizacin posterior.
AGRUPAMIENTO DE FASES En el modelo de anlisis y sntesis las operaciones del compilador que analizan el programa fuente y calculan sus propiedades se clasifican como anlisis del compilador, mientras que las operaciones involucradas con la traduccin a cdigo objeto se conoce como sntesis del compilador.
1. Etapa de Anlisis:
Anlisis lxico Anlisis Sintctico Anlisis Semntica
2. Etapa de Sntesis:
Optimizacin y generacin de cdigo intermedio Generacin de cdigo objeto La intencin de separar las etapas de anlisis y sntesis, es principalmente para realizar mantenimientos y actualizaciones eficientes.
DEFINICIN DE OSCILADOR Un oscilador es un sistema capaz de crear perturbaciones o cambios peridicos en un medio, ya sea un medio material (sonido) o un campo electromagntico (ondas de radio, microondas, infrarrojo, luz visible, rayos X, rayos gamma, rayos csmicos). En electrnica un oscilador es un circuito que es capaz de convertir la corriente continua en una corriente que vara de forma peridica en el tiempo (corriente peridica); estas oscilaciones pueden ser senoidales, cuadradas, triangulares, etc., dependiendo de la forma que tenga la onda producida. Un oscilador de onda cuadrada suele denominarse multivibrador. Por lo general, se les llama osciladores slo a los que funcionan en base al principio de oscilacin natural que se constituyen por una bobina L (inductancia) y un condensador C (Capacitancia), mientras que a los dems se le asignan nombres especiales. Un oscilador electrnico es fundamentalmente un amplificador cuya seal de entrada se toma de su propia salida a travs de un circuito de realimentacin.
PARMETROS DEL OSCILADOR Frecuencia: es la frecuencia del modo fundamental
Margen de sintona, para los de frecuencia ajustable, es el rango de ajuste
Potencia de salida y rendimiento. El rendimiento es el cociente entre la potencia de la seal de salida y la potencia de alimentacin que consume
Nivel de armnicos: potencia del armnico referida a la potencia del fundamental, en dB.
Pulling: variacin de frecuencia del oscilador al variar la carga
Pushing: variacin de frecuencia del oscilador al variar la tensin de alimentacin
Deriva con la temperatura: variacin de frecuencia del oscilador al variar la temperatura Ruido de fase o derivas instantneas de la frecuencia Estabilidad de la frecuencia a largo plazo, durante la vida del oscilador
TIPOS DE OSCILADORES El tipo de oscilador depender de la precisin, velocidad y potencia que requiramos; por otro lado, el coste tambin es una aspecto a tener en cuenta a la hora de elegir un oscilador u otro. Podemos hacer uso de 4 tipos diferentes de osciladores:
1. Oscilador tipo "XT" (XTal) para frecuencias no mayores de 4 Mhz.
2. Oscilador tipo "LP" (Low Power) para frecuencias entre 32 y 200 Khz.Este oscilador es igual que el anterior, con la diferencia de que el PIC trabaja de una manera distinta. Este modo est destinado para trabajar con un cristal de menor frecuencia, que, como consecuencia, har que el PIC consuma menos corriente.
3. Oscilador tipo "HS" (High Speed) para frecuencias comprendidas entre 4 y 20 MHz.Habremos de usar esta configuracin cuando usemos cristales mayores de 4 MHz. La conexin es la misma que la de un cristal normal, a no ser que usemos un circuito oscilador como el relatado unas lneas ms abajo, en la seccin de Otras configuracin
4. Oscilador tipo "RC" (Resistor/Capacitor) para frecuencias no mayores de 5.5 Mhz. Por ltimo tenemos el oscilador tipo RC que es el ms econmico por que tan solo se utiliza un condensador no polarizado y una resistencia. Este tipo de oscilador proporciona una estabilidad mediocre en la frecuencia generada y podr ser utilizado para aquellos proyectos que no requieran precisin.
CMO FUNCIONA UN OSCILADOR? Los osciladores son importantes en muchos tipos diferentes de equipos electrnicos. Por ejemplo, un reloj de cuarzo usa un oscilador de cuarzo para mantener un seguimiento de la hora que es. Un radio transmisor AM usa un oscilador para crear la onda portadora para la estacin, y la radio receptora AM usa un oscilador especial llamado resonador para poder sintonizar. Existen osciladores en ordenadores, detectores de metales, o incluso en ciertos tipos de armamento. Para entender como funcionan los osciladores en formato electrnico, es aconsejable ver ejemplos del mundo real, lo cual podremos ver a continuacin.
CONCEPTOS BSICOS Uno de los osciladores ms comnmente usados es el pndulo de un reloj. Si empujas un pndulo para que empiece a moverse, oscilar hacia delante a una cierta frecuencia, y a continuacin volver haca atrs de nuevo y as sucesivamente varias veces por segundo. La longitud del pndulo es el principal factor que controla la frecuencia. Para que algo oscile, la energa debe ir adelante y atrs en dos formas. Por ejemplo, en un pndulo, la energa se mueve entre la energa potencial y la energa cintica. Cuando el pndulo est en uno de los puntos finales de su viaje, su energa es toda potencial y est preparada para caer. Cuando est en la mitad de su ciclo, toda esa energa potencial se convierte en energa cintica, y el pndulo se est moviendo lo ms rpido que puede. Segn el pndulo se mueve al final de su movimiento, toda esa energa cintica se vuelve a convertir en energa potencial. Este movimiento de energa entre las dos formas es lo que causa la oscilacin. Eventualmente, cualquier oscilador fsico se para de mover debido a la friccin. Para mantenerlo, se debe aadir un poco de energa en cada ciclo. En un pndulo de reloj, la energa que mantiene al pndulo movindose es el muelle. Recibe un pequeo empuje en cada vuelta para compensar la energa que pierde debido a la friccin. Un oscilador electrnico trabaja sobre el mismo principio.
OSCILADORES ELECTRNICOS La energa se debe mover entre dos formas continuamente para que un oscilador funcione correctamente. Puedes crear un simple oscilador conectando juntos un capacitador y un inductor. Estos dos dispositivos tienen la capacidad de almacenar energa. Un capacitador almacena energa en la forma de un campo electroesttico, mientras que un inductor usa un campo magntico. Si cargas el capacitador con una batera, y luego insertas el inductor en el mismo circuito en el que se encuentra el capacitador, ocurrir que: El capacitador empezar a descargarse a travs del inductor. Segn lo haga, el inductor crear un campo magntico. Una vez que el capacitador se descarga, el inductor intentar mantener la corriente movindose por el circuito lo cual cargar el otro extremo del capacitador. Una vez que el campo del inductor desaparece, el capacitador volver a estar cargado (pero con distinta polaridad), por lo que se descargar de nuevo por el inductor. Esta oscilacin continuar hasta que el circuito se quede sin energa debido a la resistencia del cable. Oscilar a una frecuencia que depender del tamao del inductor y el capacitador.
AMPLIFICADORES Son circuitos integrados con un nivel de componentes y estructura interna complicada por lo que los vamos a estudiar desde fuera como cajas negras. La alimentacin del circuito se realiza por medio de dos fuentes de alimentacin (alimentacin simtrica); el terminal de referencia de tensiones (masa) no est conectado directamente al amplificador operacional. La referencia de tensiones debe realizarse a travs de elementos externos al operacional tales como resistencias. Tienen dos entradas la - que se denomina inversora y la + que se denomina no inversora y una salida Vo. Se alimentan a travs de dos terminales uno con tensin positiva +V y otro con tensin negativa -V. Adicionalmente pueden tener otros terminales especficos para compensacin de frecuencia, correccin de derivas de corriente continua entre otros. Se encuentran integrados de forma que en una pastilla puede haber 1, 2 4 OP (amplificadores operacionales). En el caso de 4 el nmero de patillas mnimo es 3x4(I/O)+2(alim)=14. Los amplificadores operacionales, tambin llamados Op Amp por sus siglas en ingls, son dispositivos electrnicos capaces de realizar una gran cantidad de funciones dentro de un circuito electrnico , dependiendo de la como se coloque dentro del mismo. El amplificador operacional posee 5 patas, las cuales poseen distintas funciones:
Terminal Descripcin - input Entrada Inversora + input Entrada no inversora Output Salida +Vss Alimentacin Positiva -Vss Alimentacin Negativa En los amplificadores operacionales se cumplen algunas condiciones: La impedancia entre las entradas inversora y no inversora es infinita, por lo que no hay corriente de entrada. La diferencia de potencial entre las terminales inversora y no inversora es, o debe ser nula. No hay corriente entrando o saliendo de las patas inversora y no inversora. Con dichas condiciones basta para conocer el funcionamiento de los amplificadores operacionales. El smbolo del amplificador operacional es el de un tringulo en cuya base de colocan las patas inversora y no inversora. En el vrtice superior se coloca la salida. En los lados del tringulo se colocan las entradas del voltaje que se necesita para hacer efectiva la amplificacin.
USOS DEL AMPLIFICADOR OPERACIONAL Como su nombre lo indica, el amplificador operacional es un dispositivo que puede aumentar cualquier tipo de seal, sea de voltaje o de corriente, de corriente alterna o de corriente directa. Ahora vamos a ver como es que se da este proceso y las diferentes configuraciones con las que puede trabajar este dispositivo.
ALIMENTACION DEL AMPLIFICADOR OPERACIONAL Al menos es necesario aplicar una fuente de alimentacin continua, pudiendo ser las dos fuentes de tensin iguales pero de signo contrario respecto a masa (alimentacin simtrica), o diferentes (alimentacin asimtrica). La seleccin de los valores de tensin de alimentacin y el tipo de alimentacin depende de la aplicacin en la que deba trabajar. Las dos alimentaciones representan los lmites del Departamento de Ingeniera de la Informacin y Comunicaciones. Las dos alimentaciones representan los lmites del rango de valores posibles de la tensin de salida del amplificador operacional, es decir, nunca la salida podr alcanzar el valor de tensin dado por la fuente de alimentacin. Se debe tener en cuenta que muchas veces no se muestran explcitamente las conexiones con las fuentes de alimentacin en los esquemas de circuitos electrnicos.
TIPOS DE AMPLIFICADORES
Amplificadores de sonido: Los amplificadores de sonido, de uso comn en radios, televisiones y grabadoras de cintas, suelen funcionar a frecuencias entre 2 y 20 kiloherz (1 kHz = 1.000 ciclos por segundo). Amplifican la seal elctrica que, a continuacin, se convierte en sonido con un altavoz. Los amplificadores operativos, incorporados en circuitos integrados y formados por amplificadores lineales multifsicos acoplados a la corriente continua, son muy populares como amplificadores de sonido.
Amplificadores de vdeo: Los amplificadores de vdeo se utilizan principalmente para seales con un rango de frecuencias de hasta 6 megaherz (1 MHz = 1 milln de ciclos por segundo). La seal generada por el amplificador se convierte en la informacin visual por ejemplo la que aparece en la pantalla de televisin, y la amplitud de seal regula el brillo de los puntos que forman la imagen. Para realizar esta funcin, un amplificador de vdeo debe funcionar en una banda ancha y amplificar de igual manera todas las seales, con baja distorsin.
Amplificadores de radiofrecuencia: Estos amplificadores aumentan el nivel de seal de los sistemas de comunicaciones de radio o televisin. Por lo general, sus frecuencias van desde 100 kHz hasta 1 gigaherz (1 GHz = 1.000 millones de ciclos por segundo), y pueden llegar incluso al rango de frecuencias de microondas.
Repblica Bolivariana de Venezuela Ministerio del Popular para la Educacin Superior Convenio Uni-Ojeda Cabimas-Zulia