knowledge station
ISC. Arturo Castellanos con la finalidad de retroalimentar los conocimientos de cada persona y asi poder complementar nuestras ideas en la rama de la informatica e ingenieria en sistemas computacionales. EL CONOCIMIENTO ES PODER
domingo, 28 de agosto de 2011
jueves, 25 de agosto de 2011
Intelgencia Artificial
También se distinguen varios tipos de procesos válidos para obtener resultados racionales, que determinan el tipo de agente inteligente. De más simples a más complejos, los cinco principales tipos de procesos son:
- Ejecución de una respuesta predeterminada por cada entrada (análogas a actos reflejos en seres vivos).
- Búsqueda del estado requerido en el conjunto de los estados producidos por las acciones posibles.
- Algoritmos genéticos (análogo al proceso de evolución de las cadenas de ADN).
- Redes neuronales artificiales (análogo al funcionamiento físico del cerebro de animales y humanos).
- Razonamiento mediante una lógica formal (análogo al pensamiento abstracto humano).
También existen distintos tipos de percepciones y acciones, pueden ser obtenidas y producidas, respectivamente por sensores físicos y sensores mecánicos en máquinas, pulsos eléctricos u ópticos en computadoras, tanto como por entradas y salidas de bits de un software y su entorno software.
Varios ejemplos se encuentran en el área de control de sistemas, planificación automática, la habilidad de responder a diagnósticos y a consultas de los consumidores, reconocimiento de escritura, reconocimiento del habla y reconocimiento de patrones. Los sistemas de IA actualmente son parte de la rutina en campos como economía, medicina, ingeniería y la milicia, y se ha usado en gran variedad de aplicaciones de software, juegos de estrategia como ajedrez de computador y otros videojuegos.
miércoles, 24 de agosto de 2011
Topologías Básicas de interconexión
La disposición Física de los nodos en una interconexión( interconexión es la conexión física y lógica entre dos o más redes de telecomunicaciones. Su objetivo es facilitar que los usuarios de cualquier operador se puedan comunicar con los usuarios de los demás operadores, y dar acceso a los servicios ofrecidos por las distintas redes).

miércoles, 20 de abril de 2011
1. Traductores Bajo Nivel
Un traductor es cualquier programa que toma como entrada un texto escrito en un lenguaje, llamado fuente y da como salida otro texto en un lenguaje, denominado objeto.
En el caso de que el lenguaje fuente sea un lenguaje de programación de alto nivel y el objeto sea un lenguaje de bajo nivel (ensamblador o código de máquina), a dicho traductor se le denomina compilador. Un ensamblador es un compilador cuyo lenguaje fuente es el lenguaje ensamblador. Un intérprete no genera un programa equivalente, sino que toma una sentencia del programa fuente en un
lenguaje de alto nivel y la traduce al código equivalente y al mismo tiempo lo ejecuta. Históricamente, con la escasez de memoria de los primeros ordenadores, se puso de moda el uso de intérpretes frente a los compiladores, pues el programa fuente sin traducir y el intérprete juntos daban una ocupación de memoria menor que la resultante de los compiladores. Por ello los primeros ordenadores personales iban siempre acompañados de un intérprete de BASIC (Spectrum, Commodore VIC-20, PC XT de IBM, etc.). La mejor información sobre los errores por parte del compilador así como una mayor velocidad de ejecución del código resultante hizo que poco a poco se impusieran los compiladores. Hoy en día, y con el problema de la memoria prácticamente resuelto, se puede hablar de un gran
predominio de los compiladores frente a los intérpretes, aunque intérpretes como los incluidos en los navegadores de Internet para interpretar el código JVM de Java son la gran excepción.
Ventajas de compilar frente a interpretar:
Se compila una vez, se ejecuta n veces.
En bucles, la compilación genera código equivalente al bucle, pero interpretándolo se traduce tantas veces una línea como veces se repite el bucle.
El compilador tiene una visión global del programa, por lo que la información
Ventajas del intérprete frente al compilador:
Un intérprete necesita menos memoria que un compilador. En principio eran más abundantes dado que los ordenadores tenían poca memoria.
Permiten una mayor interactividad con el código en tiempo de desarrollo.
Un compilador no es un programa que funciona de manera aislada, sino que necesita de otros programas para conseguir su objetivo: obtener un programa ejecutable a partir de un programa fuente en un lenguaje de alto nivel. Algunos de esos programas son el preprocesador, el linker, el depurador y el ensamblador. El preprocesador se ocupa (dependiendo del lenguaje) de incluir ficheros, expandir
macros, eliminar comentarios, y otras tareas similares. El linker se encarga de construir el fichero ejecutable añadiendo al fichero objeto generado por el compilador las cabeceras necesarias y las funciones de librería utilizadas por el programa fuente. El depurador permite, si el compilador ha generado adecuadamente el programa objeto, seguir paso a paso la ejecución de un programa. Finalmente, muchos compiladores, en vez de generar código objeto, generan un programa en lenguaje ensamblador que debe después convertirse en un ejecutable mediante un programa ensamblador.
1.1 Ensamblador
Características
- El código escrito en lenguaje ensamblador posee una cierta dificultad de ser entendido ya que su estructura se acerca al lenguaje máquina, es decir, es un lenguaje de bajo nivel.
- El lenguaje ensamblador es difícilmente portable, es decir, un código escrito para un microprocesador, puede necesitar ser modificado, para poder ser usado en otra máquina distinta. Al cambiar a una máquina con arquitectura diferente, generalmente es necesario reescribirlo completamente.
- Los programas hechos, por un programador experto, en lenguaje ensamblador, son generalmente mucho más rápidos y consumen menos recursos del sistema (memoria RAM y ROM.) que el programa equivalente compilado desde un lenguaje de alto nivel. Al programar cuidadosamente en lenguaje ensamblador se pueden crear programas que se ejecutan más rápidamente y ocupan menos espacio que con lenguajes de alto nivel.
- Con el lenguaje ensamblador se tiene un control muy preciso de las tareas realizadas por un microprocesador por lo que se pueden crear segmentos de código difíciles y/o muy ineficientes de programar en un lenguaje de alto nivel, ya que, entre otras cosas, en el lenguaje ensamblador se dispone de instrucciones del CPU que generalmente no están disponibles en los lenguajes de alto nivel.
- También se puede controlar el tiempo en que tarda una rutina en ejecutarse, e impedir que se interrumpa durante su ejecución.
[editar]Programa ensamblador
Típicamente, un programa ensamblador (assembler en inglés) moderno crea código objeto traduciendo instrucciones mnemónicas de lenguaje ensamblador en opcodes, y resolviendo los nombres simbólicos para las localizaciones de memoria y otras entidades.1 El uso de referencias simbólicas es una característica clave del lenguaje ensamblador, evitando tediosos cálculos y actualizaciones manuales de las direcciones después de cada modificación del programa. La mayoría de los ensambladores también incluyen facilidades de macros para realizar sustitución textual - ej. generar cortas secuencias de instrucciones como expansión en línea en vez de llamar a subrutinas.
Los ensambladores son generalmente más simples de escribir que los compiladores para los lenguajes de alto nivel, y han estado disponibles desde los años 1950. Los ensambladores modernos, especialmente para las arquitecturas basadas en RISC, tales como MIPS, Sun SPARC, y HP PA-RISC, así como también para el x86 (-64), optimizan la planificación de instrucciones para explotar la segmentación del CPU eficientemente.
1.2 Pasadas del texto fuente
Numéricos
• Enteros o de punto fijo.
• Punto flotante.
• BCD ( Decimal codificado ó binario).- Los datos BCD comprimidos presentan dos dígitos por byte y los no
comprimidos presentan un dígito por byte.
Caracteres
Unidades de 8 bits que normalmente contienen representaciones ASCII de símbolo.
Datos lógicos
• Byte con o sin signo (8 bits).- El bit 7 es el bit de signo de un byte sin signo.
• Palabra con o sin signo (word-16 bits).- El bit 15 es el bit de signo de una word sin signo
• Doble palabra con o sin signo (dword-32 bits).- El bit 31 es el bit de signo de una dword sin signo
• Cuádruple palabra con o sin signo (qword-64 bits).- El bit 63 es el bit de signo de una qword sin signo
Direcciones
Son una forma de dato. En muchos casos, algún calculo se debe ejecutar sobre la referencia de un operando en una
instrucción para determinar la dirección de la memoria principal o virtual. En este contexto, las direcciones se pueden
considerar como enteros sin signo.
• Desplazamiento.- Son cantidades de 16 o 32 bits que contienen la distancia de la dirección base o la
dirección referenciada.
• Punteros.- Consistentes en selectores de segmento de 16 bits y un desplazamiento de 16 o 32 bits.
Estilo de programación.- Un programa en ensamblador es una serie de instrucciones ejecutables que le dice al
ensamblador que sentencia tiene que ejecutar. Cada sentencia esta compuesta por cuatro campos:
a) Campo nombre.- Se emplea con frecuencia como punto de entrada o regreso. Algunas veces es denominado
campo del rotulo, asigna un nombre simbólico a la dirección del comienzo de memoria real de una instrucción de
ensamblador. Debe comenzar con un carácter alfabético de 31 caracteres máximo.
b) Campo operación.- Contiene un mnemónico de 2 a 6 caracteres normalmente es una abreviatura en ingles, puede
representar una instrucción maquina, una macroinstruccion, o una pseudo-operación.
c) Campo operando.- Contiene la posición o posiciones donde están los datos que van a ser manipulados por la
instrucción de la operación, si la instrucción mide 1 o 2 operandos, están separados de la instrucción por lo menos
de un espacio en blanco, si hay dos operandos estos están separados por una coma.
d) Campo comentario.- Se utiliza para documentar internamente el código, este debe comenzar con un punto y coma
( ; ).
Formato general de una sentencia
[nombre] mnemónico [operando] [; comentario]
Operando destino.- La operación puede producir un resultado.
Operando fuente.- La operación puede involucrar uno o mas operandos fuentes, esto es, operandos que son
entradas para la operación.