Entradas

Mostrando las entradas de octubre, 2019

Clasificación de los Compiladores

El programa compilador traduce las instrucciones en un lenguaje de alto nivel a instrucciones que la computadora puede interpretar y ejecutar. Para cada lenguaje de programación se requiere un compilador separado. El compilador traduce todo el programa antes de ejecutarlo. Los compiladores son, pues, programas de traducción insertados en la memoria por el sistema operativo para convertir programas de cómputo en pulsaciones electrónicas ejecutables (lenguaje de máquina). Tipos compiladores: Una sola pasada:  examina el código fuente una vez, generando el código o programa objeto Pasadas múltiples:  requieren pasos intermedios para producir un código en otro lenguaje, y una pasada final para producir y optimizar el código producido durante los pasos anteriores. Optimación:  lee un código fuente, lo analiza y descubre errores potenciales sin ejecutar el programa. Compiladores incrementales:  generan un código objeto instrucción por instrucción (en vez de hacerlo ...

Traductores: Ensambladores, compiladores e intérpretes

  Ensambladores:  son los encargados de transformar o traducir los programas escritos en ensamblador a su equivalente en código maquina o binario para que pueda ser ejecutado por la CPU. Este fue el primer lenguaje de programación que tradujo el lenguaje maquina a un lenguaje más natural para el ser humano. Con todo esto podemos decir que el lenguaje ensamblador es un lenguaje de programación de bajo nivel que se utiliza para escribir programas para computadoras, es la representación más directa del código máquina comprensible por los programadores. El lenguaje ensamblador se usó para la creación de programas en el pasado, actualmente se usa muy poco. Únicamente cuando se requiere un control directo del hardware o se quiere conseguir rendimientos poco comunes de los equipos. Un programa escrito con el lenguaje ensamblador seguirá los siguientes pasos: este programa tiene una serie de instrucciones que contienen las órdenes a seguir para llevar a cabo una acción. Todas...

TEORIA DE LA COMPUTACION

La teoría de la computación es una rama de la matemática y la computación que centra su interés en las limitaciones y capacidades fundamentales de las computadoras. Específicamente esta teoría busca modelos matemáticos que formalizan el concepto de hacer un cómputo (cuenta o cálculo) y la clasificación de problemas. Teoría de autómatas Esta teoría provee modelos matemáticos que formalizan el concepto de computadora o algoritmo de manera suficientemente simplificada y general para que se puedan analizar sus capacidades y limitaciones. Algunos de estos modelos juegan un papel central en varias aplicaciones de las ciencias de la computación, incluyendo procesamiento de texto, compiladores, diseño de hardware e inteligencia artificial. Teoría de la computabilidad Esta teoría explora los límites de la posibilidad de solucionar problemas mediante algoritmos. Gran parte de las ciencias computacionales están dedicadas a resolver problemas de forma algorítmica, de manera que e...

Sistema En Escaleras

Imagen
SISTEMAS EN ESCALERA EJEMPLOS DE SISTEMAS EN ESCALERA La programación de tipo “escalera" consiste en cierta secuencia lógica de instrucciones, o contactos. De este modo, el estado de cada uno de los elementos, o contactos, de los sistemas electro-mecánicos, contacto-relé, se utilizan para identificar el control de las máquinas y/o procesos. La condición real de los contactos del sistema electro-mecánico es reemplazado por una secuencia lógica. Pueden utilizarse todos los bits de las áreas direccionables de un determinado PLC como un elemento separado del control del sistema (contacto), siempre que se encuentre de acuerdo con el sistema de direccionamiento empleado.  El siguiente diagrama muestra un ejemplo de contactos y diagrama lógico con su escalera equivalente (peldaños): 1. Estados de la entrada: a. Examinar si está cerrado (XCI), si la entrada del dispositivo esta como ON, cerrada, entonces el bit correspondiente de la memoria de datos o ...

Plc's

programmable logic controller Un controlador lógico programable, más conocido por sus siglas en inglés PLC (programmable logic controller) o por autómata programable, es una computadora utilizada en la ingeniería automática o automatización industrial, para automatizar procesos electromecánicos, tales como el control de la maquinaria de la fábrica en líneas de montaje o atracciones mecánicas. Los PLC son utilizados en muchas industrias y máquinas. A diferencia de las computadoras de propósito general, el PLC está diseñado para múltiples señales de entrada y de salida, rangos de temperatura ampliados, inmunidad al ruido eléctrico y resistencia a la vibración y al impacto. Los programas para el control de funcionamiento de la máquina se suelen almacenar en baterías, copia de seguridad o en memorias no volátiles. Un PLC es un ejemplo de un sistema de tiempo real, donde los resultados de salida deben ser producidos en respuesta a las condiciones de entrada dentro de un tiempo limi...

Maquina Turing II

Imagen
Máquina de Turing Cíclicas o iterativos Elementos:                 Q=(0,1,A,B)                  =(a,b,B)   entrada  à  cinta                 M=|x,R)    graba  à   memoria                 SP=|R) ∆ (a,B) (b,B) (a,a) (a,b) (B,a) (b,b) (B,B) (b,b) 0 (A,R) (B,R) ᶿ ᶿ ᶿ ᶿ (1, ᴫ) ᶿ A ᶿ ᶿ (A,R) ᶿ (1,ᴫ) ᶿ ᶿ ᶿ B ᶿ ᶿ ᶿ (A,R) ᶿ (B, ᴫ) ᶿ (1, ᴫ) 1 ᶿ ᶿ ᶿ ᶿ ᶿ ᶿ ᶿ ᶿ Expresiones: aB bB                ...

Máquina de Turing

Imagen
Turing Alan Mathison Turing, OBE, fue un matemático, lógico, científico de la computación, criptógrafo, filósofo, biólogo teórico, maratoniano y corredor de ultradistancia británico. ​​​​​ Es considerado uno de los padres de la ciencia de la computación y precursor de la informática moderna. DISEÑAR UNA MAQUINA DE TURING QUE CALCULA EL NUMERO CONSECUTIVO DE UN NUMERO DADO EN BINARIO Si el número es par, su último bit es 0. La máquina sólo tiene que cambiar este 0 por un 1. Si el número es impar, su último bit es 1. En este caso, se tiene que cambiar por 0’s todos los 1’s seguidos que haya escritos de derecha a izquierda hasta llegar al primer 0, que se cambia por un 1. Si no hay ningún 0, entonces se tiene que añadir un 1 delante del número (añadir un bit). Es decir, escribir un 1 en la casilla en blanco (B) a la izquierda del número. Vamos a considerar tres estados: q0,q1,q2q0,q1,q2 ·              ...

Programa 1

import java.util.HashMap; import java.util.Map; public class Contabilizador {     private Map<String, Long> ocurrencias; //Map porque son... UNICODE!     public Contabilizador() {         ocurrencias = new HashMap<String, Long>();     }     public void contabiliza(String linea) {         for(int i=0;i<linea.length();i++) {             if(null == ocurrencias.get(""+linea.charAt(i))) {                 ocurrencias.put(""+linea.charAt(i),1L);             }else {                 Long valor = ocurrencias.get(""+linea.charAt(i));                 valor++;                 ocurrencias.put(""+linea.charAt(i),valor);             }       ...

Programa 2

import java.util.LinkedList; import java.util.List; import java.util.Scanner; public class Automatas2 {     private static void generador(String origen, String tempo,             List<String> salida) {         String tmp = new String(tempo), org = "";         if (origen.length() == 0) {             salida.add(tmp);             return;         }         for (int i = 0; i < origen.length(); i++) {             tmp = tempo.concat(origen.substring(i, i + 1));             org = origen.substring(0, i);             if (i < (origen.length() + 1)) {                 org = org.concat(origen.substring(i + 1,                      ...