Ir al contenido principal

Entradas

Mostrando las entradas de junio, 2011

Interprete simple con Java CUP y JFLEX

En este post presento un interprete muy simple que puede ser usado como base para la construcción de algo mas complejo, la idea fundamental en ese, es ayudar a comprender el funcionamiento de Java CUP, un generador de analizadores sintácticos LALR para Java y JFLEX un generador de analizadores léxicos basados en tabla también para Java. El interprete consiste en una aplicación por consola que recibe como parámetro el path del archivo que se desea interpretar, y simplemente ejecuta las instrucciones del archivo en forma secuencial. El lenguaje permite describir operaciones matemáticas, en notación polaca usando la sintaxis siguiente: push 10 : para ingresar un numero a la pila print :  para extraer un numero de la pila y mostrarlo en pantalla add: suma los dos números mas arriba de la pila sub: resta los dos números mas arriba de la pila mult: multiplicación de los dos números mas arriba en la pila div: división de los dos números mas arriba en la pila Un ejemplo de arch

Memoria Dinámica en Java, Pila estructura de datos LIFO

Esta aplicación incluye una implementacion básica de una pila (stack) de enteros en Java utilizando memoria dinámica, una de las estructuras de datos mas utilizadas, las operaciones incluidas son pop para sacar el primer elemento de la pila, push para agregar elementos a la pila, top para obtener el valor del tope de la pila sin sacar el elemento, y size para saber el numero de elementos en la pila. Codigo fuente en Oracle JDeveloper 11g

Carga de datos a Oracle 10g desde archivo csv usando SQL*Loader

El proceso de carga de datos desde archivos de texto a base de datos es un elemento fundamental en la manipulación de información, puede darse como parte de la migración de un sistema o como parte de un proceso de integración entre sistemas, el conjunto de scripts que acompañan a este post demuestran como crear un usuario en el dbms, luego como crear un grupo de roles con permisos restringidos y la creación de otros usuarios apegados a dichos roles, ademas el proceso de carga de datos utilizando SQL*Loader a una tabla temporal, luego la ejecución de un script para crear el modelo entidad relación para estructurar los datos y finalmente la ejecución de un script que rellena el modelo entidad relación a partir de los datos almacenados en la tabla temporal. Los scripts son archivos por lotes de windows (bat), la única configuración necesaria es editar los scripts para configurar la contraseña del usuario SYS para las acciones que requieren privilegios. Descargar scripts + datos

Analizador Lexico en Java usando JFlex

Esta entrada tiene como objetivo mostrar una forma simple de utilizar JFlex en Windows para generar analizadores léxicos que luego pueden ser utilizados en aplicaciones de Java, se incluye una guía en pdf que muestra los pasos necesarios para construir un proyecto en JDeveloper 11g, desarrollar el archivo de especificación del analizador lexico que luego es utilizado por el ejecutable de JFlex para generar el código fuente del analizador lexico (por defecto Yylex.java), luego se crea código de prueba en una aplicación mínima de Java (solo método main) en donde se crea un objeto de la clase del analizador lexico y luego se utiliza para analizar un archivo simple de prueba, token por token mostrando el tipo de cada token (identificador, codigo). archivos necesarios (proyecto de JDeveloper, guia en pdf)

Analizador Lexico C# hecho a mano

Este ejemplo muestra como implementar un analizador léxico simple en C#, usando el DFA como base para construir el autómata en código. El lenguaje que reconoce el analizador léxico esta formado por los elementos básicos de una calculadora de números naturales, los operadores básicos, +, -, /, * ademas detecta y reporta errores léxicos y también espacios en blanco (\t,\n,\r, )  Proyecto original en Visual Studio 2008

Analizador Lexico con Lex y C++ en Linux

Este programa fue desarrollado como practica en el curso de compiladores 1, era la primera etapa de desarrollo para el proyecto del curso, consiste en  implementar un analizador léxico, usando el generador de analizadores lex  y como IDE KDevelop, el lenguaje consiste en unos cuantos tokens para algunas operaciones con matrices, así que es muy simple y puede ser muy util como base, o para entender la forma de usar los analizadores generados con lex e integrarlos a proyectos de KDevelop. Descargar Codigo Fuente

ADC (Analog-to-digital converter)

Este circuito demuestra como utilizar un ADC  genérico de 8 bits con un sensor simulado por una resistencia variable, este sensor puede ser un foto resistor ( fotorresistencia ) o un sensor termico ( termistor ) o cualquier otro sensor que se comporte como una resistencia variable. La siguiente etapa del circuito divide el rango de valores de 8 bits (0-255) en tres rangos BAJO, MEDIO, ALTO que corresponden a las tres salidas del circuito en ese orden. Estas salidas pueden ser utilizadas para activar o desactivar otros dispositivos en reacción del sensor. El ADC usado en el circuito corresponde con la pieza física ADC0408 y los comparadores son 7485 Circuito original en NI Multisim 10 descargar

Comunicar 3 Redes Diferentes Usando Rutas Estáticas

Este vídeo muestra como configurar tres routers cisco en Packet Tracer 5.2 para comunicar tres redes distintas usando rutas estáticas, las redes que se desea comunicar son 192.168.1.0/24, 192.168.2.0/24, 192.168.3.0/24. Ademas se configuran enlaces seriales entre los routers. Descargar Archivo original en Packet Tracer 5.2

Barra de Herramientas con Imagenes en Java

en este ejemplo se muestra la forma de crear una barra de herramientas que posee imágenes en cada una de las opciones. es decir un JButton con su correspondiente ImageIcon para hacerlo grafico. JToolBar ademas implementa automáticamente la funcionalidad de re acomodar la barra en cualquier área de nuestro formulario. Descargar Codigo Fuente

Imagen en la Barra de Titulo, JFrame

Este ejemplo muestra un método muy simple que permite colocar un icono al lado de la barra de Titulo de un JFrame y también como icono de la barra de tareas para identificar a nuestra aplicación. El método de la clase JFrame setIconImage , pero para poder usar este método necesitamos tener cargada la Imagen en memoria, para esto utilizamos la clase ImageIO y su método estático "read", todo esto previamente implementado en otro ejemplo " como cargar imágenes desde un archivo jar " por lo que este nuevo ejemplo solo agrega una linea al constructor del JFrame para configurar el icono. Codigo Importante InputStream imgStream = ImageLoader . class . getResourceAsStream ( "imgA.jpg" ) ; BufferedImage temp = ImageIO . read ( imgStream ) ; a . setImagen ( temp ) ; c . setImagen ( temp ) ; imgStream = ImageLoader . class . getResourceAsStream ( "imgB.jpg" ) ;

JButton con Imagen

Este ejemplo muestra como colocar una imagen en un JButton usando la clase ImageIcon, se incluye la posibilidad de ajustar el tamaño de la imagen al momento de cargarla, y de cargar la imagen desde el archivo JAR utilizando Class.getResource(), se incluye el proyecto original en JDeveloper 11g, también el archivo JAR ejecutable. Codigo fuente y JAR ejecutable

JFrame/JPanel con Imagen de Fondo

Este ejemplo muestra como colocar una imagen de fondo en un JFrame o JPanel, se usa una clase personalizada que implementa la interface Border de Java Swing, el ejemplo carga una imagen desde el archivo JAR usando el metodo Class.getResource(), ademas de ImageIO.read(). Codigo fuente y archivo JAR ejecutable

Base de Datos Embebida Apache Derby

Es una necesidad común la de almacenar datos de forma local de manera persistente, es decir almacenar información que sobrevive al tiempo de vida de los procesos, este ejemplo muestra el uso del motor de bases de datos relacional Apache Derby, totalmente escrito en java y utilizable como librería en nuestras aplicaciones, Derby tiene la característica que permite trabajar en modo "embebido", es decir sin contar con un "servidor" de bases de datos al cual conectarse, todo esto mientras cumple con JDBC y nos permite ejecutar SQL sobre nuestros datos. basicamente Derby permite crear una base de datos en el sistema de archivos normal, como una carpeta, y acceder con todo el poder de un motor de base de datos relacional a dichos datos, estructurados, de forma transaccional etc. puede resultar muy efectivo cuando la complejidad de los datos que almacenamos aumenta, de forma que los archivos de texto plano o xml consumen demasiado esfuerzo en mantener coherente el form

Hoja de Calculo en Java

Aplicación simple en Java que implementa una hoja de calculo a un nivel muy basico, permite copiar, cortar y pegar, ademas de modificar el formato de cada celda, como el color de fondo y el color de la fuente, ademas permite seleccionar grupos de celdas, tambien implementa la función guardar y abrir, usando serializacion. Descargar proyecto original en JDeveloper 11g

Memoria Dinámica en Java, Cola estructura de datos FIFO

Esta aplicación incluye una implementacion básica de una cola (queue) de enteros en Java utilizando memoria dinámica, una de las estructuras de datos mas utilizadas, las operaciones incluidas son enqueue para agregar elementos a la cola, dequeue para sacar elementos de la cola, top para obtener el valor del tope de la cola sin sacar el elemento, y size para saber el numero de elementos en la cola. Codigo fuente en Oracle JDeveloper 11g

Timer o Contador 0-100 con 74191 en Cascada

Este circuito demuestra como utilizar 3 contadores 74191 para construir un circuito en cascada que cuenta de 0 a 100 en hexadecimal, el circuito consta de una señal de entrada S para iniciar o reiniciar los contadores, y una señal de salida F que sirve para detectar cuando la cuenta ha terminado, una vez el valor 100h es alcanzado los contadores permanecen en dicho valor, hasta que sean reiniciados con la entrada S, los contadores 74191 constan de entradas para carga paralela, y salida para detectar el valor máximo y mínimo ademas de la posibilidad de contar en ambos sentidos ( up/down ), este circuito tambien puede ser usado como timer de disparo, configurando el numero de pasos, y conociendo la frecuencia del reloj para causar un retardo de cierta cantidad de tiempo. Archivo original en Ni Multisim 10

Generar PDF desde Java usando iText

este pequeño ejemplo muestra como importar las librearías de iText en un proyecto de JDeveloper para luego generar un archivo PDF muy simple, con dos párrafos de texto, la necesidad de utilizar un formato como el PDF  se justifica con la necesidad de generar documentos independientes de la plataforma, por ejemplo en el caso de la impresión de documentos pre formateados como facturas o comprobantes. Descargar Código Fuente

Contadores de 3 bits up/down sincronos con flip flop JK en modo T

Estos circuitos muestran el diseño de un contador de 3 bits en modo sincrono (todos los flip flops reciben la misma señal de reloj), los flip flops son JK 7476 configurados en modo T (J y K unidas), ambas versiones ascendente y descendente varian unicamente en que la salida para el contador ascendente utiliza la salida Q de los flip flops, y en el descendente la salida Q' (Q negada) Descargar Archivo  Original en NI Multisim 10 Version Ascendente Descarga Archivo Original en NI Multisim 10 Version Descendente