domingo, 4 de septiembre de 2011

tipos de lenguaje

Lenguaje VHDL


 

VHDL es el acrónimo que representa la combinación de VHSIC y HDL, donde VHSIC es el acrónimo de Very High Speed Integrated Circuit y HDL es a su vez el acrónimo de Hardware Description Language.
Es un lenguaje definido por el IEEE (Institute of Electrical and Electronics Engineers) (ANSI/IEEE 1076-1993) usado por ingenieros para describir circuitos digitales. Otros métodos para diseñar circuitos son la captura de esquemas (con herramientas CAD) y los diagramas de bloques, pero éstos no son prácticos en diseños complejos. Otros lenguajes para el mismo propósito son Verilog y ABEL.
Aunque puede ser usado de forma general para describir cualquier circuito se usa principalmente para programar PLD (Programable Logic Device - Dispositivo Lógico Programable), FPGA (Field Programmable Gate Array), ASIC y similares.
Dentro del VHDL hay varias formas con las que podemos diseñar el mismo circuito y es tarea del diseñador elegir la más apropiada.
  • Funcional: Describimos la forma en que se comporta el circuito. Esta es la forma que más se parece a los lenguajes de software ya que la descripción es secuencial. Estas sentencias secuenciales se encuentran dentro de los llamados procesos en VHDL. Los procesos son ejecutados en paralelo entre sí, y en paralelo con asignaciones concurrentes de señales y con las instancias a otros componentes.
  • Flujo de datos: describe asignaciones concurrentes (en paralelo) de señales.
  • Estructural: se describe el circuito con instancias de componentes. Estas instancias forman un diseño de jerarquía superior, al conectar los puertos de estas instancias con las señales internas del circuito, o con puertos del circuito de jerarquía superior.
  • Mixta: combinación de todas o algunas de las anteriores.

Lenguaje ABEL



ABEL es una marca registrada de Data I/O Corporation y es el acrónimo de Advanced Boolean Expression Language, permite implementar diseños lógicos en dispositivos lógicos programables. Puede ser utilizado para programar cualquier tipo de PLD y, por tanto, es un lenguaje independiente del dispositivo. El lenguaje ABEL se ejecuta en un computador conectado a un programador de dispositivos, independiente del lenguaje, en el que se inserta el PLD.
Un lenguaje de programación PLD está respaldado por un procesador de lenguaje PLD denominado compilador. La tarea del compilador es traducir un archivo de texto escrito en el lenguaje en un patrón de fusibles para el PLD físico. Aún cuando la mayoría de los PLD pueden programarse físicamente sólo con expresiones de suma de productos, lenguajes como ABEL permiten que las ecuaciones PLD se escriban casi en cualquier formato; el compilador manipula algebraicamente y minimiza las ecuaciones para ajuste, si es posible, dentro de la estructura PLD disponible.
ABEL proporciona tres (3) diferentes formatos para describir e introducir un diseño lógico desde el teclado de un computador; los cuales corresponden a: ecuaciones, tablas de verdad y diagramas de estado. Las ecuaciones y las tablas de verdad se usan en los diseños lógicos combinacionales; mientras que los diagramas de estado, así como los otros dos formatos, se pueden utilizar para el diseño de lógica secuencial (máquinas de estado).
Una vez que se ha introducido el diseño lógico, se puede simular su funcionamiento utilizando vectores de prueba para asegurarse que no existan errores en el diseño. Básicamente, una sección de vectores de prueba enumera todos los posibles valores de entrada y los correspondientes valores de salida. El software, esencialmente, ejercita el diseño lógico para asegurarse de que trabaja como se esperaba, tomando todas las posibles combinaciones de entrada y comprobando los resultados de salida.
El proceso software que convierte la descripción del circuito en formato de ecuaciones, tablas de verdad o diagramas de estado, en el fichero JEDEC estándar requerido para programar un PLD se denomina síntesis lógica. Usualmente, la síntesis lógica incluye la optimización y la minimización del diseño.
Números
Los números pueden estar en cuatro diferentes bases: binario, octal, decimal y hexadecimal. La base predeterminada es la decimal. Se usan los siguientes símbolos (mayúsculas o minúsculas permitidos) para especificar la base. Cuando no se usan símbolos se asume que se usa la base decimal. Se puede cambiar la base con la directiva “Radix” como se explicará en el próxima sección:

BASE NAMEBASESymbol.
Binary2^b
Octal8^o
Decimal10^d (default)
Hexadecimal16^h
Ejemplo:
Specified in ABELDecimal Value
3535
^h3553
^b1015



Lenguaje C


C es un lenguaje de programación creado en 1972 por Dennis M. Ritchie en los Laboratorios Bell como evolución del anterior lenguaje B, a su vez basado en BCPL.

Al igual que B, es un lenguaje orientado a la implementación de Sistemas Operativos, concretamente Unix. C es apreciado por la eficiencia del código que produce y es el lenguaje de programación más popular para crear software de sistemas, aunque también se utiliza para crear aplicaciones.

Se trata de un lenguaje débilmente tipificado de medio nivel pero con muchas características de bajo nivel. Dispone de las estructuras típicas de los lenguajes de alto nivel pero, a su vez, dispone de construcciones del lenguaje que permiten un control a muy bajo nivel. Los compiladores suelen ofrecer extensiones al lenguaje que posibilitan mezclar código en ensamblador con código C o acceder directamente a memoria o dispositivos periféricos.

La primera estandarización del lenguaje C fue en ANSI, con el estándar X3.159-1989. El lenguaje que define este estándar fue conocido vulgarmente como ANSI C. Posteriormente, en 1990, fue ratificado como estándar ISO (ISO/IEC 9899:1990). La adopción de este estándar es muy amplia por lo que, si los programas creados lo siguen, el código es portátil entre plataformas y/o arquitecturas.

Propiedades
  • Un núcleo del lenguaje simple, con funcionalidades añadidas importantes, como funciones matemáticas y de manejo de archivos, proporcionadas por bibliotecas.
  • Es un lenguaje muy flexible que permite programar con múltiples estilos. Uno de los más empleados es el estructurado "no llevado al extremo" (permitiendo ciertas licencias de ruptura).
  • Un sistema de tipos que impide operaciones sin sentido.
  • Usa un lenguaje de preprocesado, el preprocesador de C, para tareas como definir macros e incluir múltiples archivos de código fuente.
  • Acceso a memoria de bajo nivel mediante el uso de punteros.
  • Interrupciones al procesador con uniones.
  • Un conjunto reducido de palabras clave.
  • Por defecto, el paso de parámetros a una función se realiza por valor. El paso por referencia se consigue pasando explícitamente a las funciones las direcciones de memoria de dichos parámetros.
  • Punteros a funciones y variables estáticas, que permiten una forma rudimentaria de encapsulado y polimorfismo.
  • Tipos de datos agregados (struct) que permiten que datos relacionados (como un empleado, que tiene un id, un nombre y un salario) se combinen y se manipulen como un todo (en una única variable "empleado").
[editar] Carencias
Aunque la lista de las características útiles de las que carece C es larga, este factor ha sido importante para su aceptación, porque escribir rápidamente nuevos compiladores para nuevas plataformas, mantiene lo que realmente hace el programa bajo el control directo del programador, y permite implementar la solución más natural para cada plataforma. Ésta es la causa de que a menudo C sea más eficiente que otros lenguajes. Típicamente, sólo la programación cuidadosa en lenguaje ensamblador produce un código más rápido, pues da control total sobre la máquina, aunque los avances en los compiladores de C y la complejidad creciente de los microprocesadores modernos han reducido gradualmente esta diferencia.
En algunos casos, una característica inexistente puede aproximarse. Por ejemplo, la implementación original de C++ consistía en un preprocesador que traducía código fuente C++ a C. La mayoría de las funciones orientadas a objetos incluyen un puntero especial, que normalmente recibe el nombre "this", que se refiere al objeto al que pertenece la función. Mediante el paso de este puntero como un argumento de función, esta funcionalidad puede desempeñarse en C. 

Lenguaje PLC
Los controladores lógicos programables o PLC (Programmable Logic Controller en sus siglas en inglés) son dispositivos electrónicos muy usados en automatización industrial.


Como su mismo nombre lo indica, se ha diseñado para programar y controlar procesos secuenciales en tiempo real. Por lo general, es posible encontrar este tipo de equipos en ambientes industriales.
Los PLC sirven para realizar automatismos, se puede ingresar un programa en su disco de almacenamiento, y con un microprocesador integrado, corre el programa, se tiene que saber que hay infinidades de tipos de PLC, los cuales tienen diferentes propiedades, que ayudan a facilitar ciertas tareas para las cuales se los diseñan.
Para que un PLC logre cumplir con su función de controlar, es necesario programarlo con cierta información acerca de los procesos que se quiere secuenciar. Esta información es recibida por captadores, que gracias al programa lógico interno, logran implementarla a través de los accionadores de la instalación.
Un PLC es un equipo comúnmente utilizado en maquinarias industriales de fabricación de plástico, en máquinas de embalajes, entre otras; en fin, son posibles de encontrar en todas aquellas maquinarias que necesitan controlar procesos secuenciales, así como también, en aquellas que realizan maniobras de instalación, señalización y control.
Dentro de las funciones que un PLC puede cumplir se encuentran operaciones como las de detección y de mando, en las que se elaboran y envían datos de acción a los pre-accionadores y accionadores. Además cumplen la importante función de programación, pudiendo introducir, crear y modificar las aplicaciones del programa.
Dentro de las ventajas que estos equipos poseen se encuentra que, gracias a ellos, es posible ahorrar tiempo en la elaboración de proyectos, pudiendo realizar modificaciones sin costos adicionales. Por otra parte, son de tamaño reducido y mantenimiento de bajo costo, además permiten ahorrar dinero en mano de obra y la posibilidad de controlar más de una máquina con el mismo equipo. Sin embargo, y como sucede en todos los casos, los controladores lógicos programables, o PLC’s, presentan ciertas desventajas como es la necesidad de contar con técnicos calificados y adiestrados específicamente para ocuparse de su buen funcionamiento.

No hay comentarios:

Publicar un comentario en la entrada