martes, 2 de marzo de 2010

unidad1



1­.- ¿En que se basa el modelo de jonn vonn newman?

Observó que la torpeza de la aritmética decimal en serie utilizada por la ENIAC, con cada dígito representado por diez bulbos (uno encendido y nueve apagados), podía reemplazarse usando aritmética binaria paralela.

Su diseño básico, ahora conocido como una Máquina de Von Neumann, se usó en la EDSAC para la primera computadora que almacenaba el programa, y constituye todavía la base para la mayoría de las computadoras digitales, casi medio siglo después. Este diseño y la máquina IAS, construida en colaboración con Herman Goldstine, ha tenido una influencia tan grande.

La Máquina de Von Neumann tenía cinco partes básicas: la memoria, la unidad aritmética-lógica, la unidad de control del programa y los equipos de entrada y salida.

COMPONENTES:
La Memoria: Constaba de 4096 palabras, cada una con 40 bits (0 o 1).
* Cada palabra podía contener dos instrucciones de 20 bits o un número entero de 39 bits y su signo.
* Las instrucciones tenían 8 bits dedicados a señalar el tipo de la misma y 12 bits para especificar alguna de las 4096 palabras de la memoria.
Unidad de Control: Determina cual es la siguiente instrucción a ejecutar y se la pasa al ALU.
ALU (Aritmetic Logic Unit): La Unidad Aritmética Lógica, es el taller donde se ejecutan las instrucciones.
Acumulador: 40 bits que sirven para:
* Recibir datos de entrada.
* Enviar datos a la salida.
* Guardar el resultado de la última operación.

2.- ¿Cuales son los lenguajes formales y sus características principales?

Un lenguaje formal es un lenguaje cuyos símbolos primitivos y reglas para unir esos símbolos están formalmente especificados.[1] Al conjunto de los símbolos primitivos se le llama el alfabeto (o vocabulario) del lenguaje, y al conjunto de las reglas se lo llama la gramática formal (o sintaxis). A una cadena de símbolos formada de acuerdo a la gramática se la llama una fórmula bien formada (o palabra) del lenguaje.





Las características de los lenguajes formales son las siguientes:
 1. Se desarrollan de una teoría preestablecida.
 2. Componente semántico mínimo.
 3. Posibilidad de incrementar el componente semántico de acuerdo con la teoría a formalizar.
  4. La sintaxis produce oraciones no ambiguas.
 5. La importancia del rol de los números.
 6. Completa formalización y por esto, el potencial de la construcción computacional.
3.- ¿Que son los editores y para que sirven?





Editor o editorial, persona o empresa que publica libros, revistas, o que difunde cualquier tipo de información etc.










4.- ¿Que son los editores de carácter?



El editor para caracteres es A[w], siendo w el ancho del campo medido en caracteres. Si omitimos w, la longitud de los datos se tomará como el ancho del campo.



En la entrada, sea long la longitud de los datos que leemos. Si w es mayor que long, los caracteres después de la posición long también son leídos. Si w es menor que long, a la entrada le añadiremos espacios en blanco por la derecha.




En la salida, si w es mayor que long, se añaden espacios en blanco por la izquierda. Si w es menor que long, los caracteres antes de la posición w aparecerán en la salida.



5.- ¿Que son los editores de línea?


Editores De Línea
Algunos de lo primeros editores de línea simulaban el mundo de las tarjetas perforadas, ya que permitían operaciones con secuencias numeradas de líneas, a imagen de las tarjetas de 80 caracteres, en una sola línea o en varias.














6.- ¿Qué son los editores de pantalla?




Un editor de pantalla completa es aquel editor que nos permite ver el documento que estamos escribiendo a medida que lo hacemos, en contraposición a un editor de líneas, que sólo nos permite ver la línea que estamos editando. Actualmente, la inmensa mayoría de los editores que existen son de pantalla completa, por lo que a los más jóvenes les puede sonar extraña la idea de un editor de líneas. Ejemplos de este tipo tenemos en el ed, sed y el edlin, que venía con el DOS hasta la versión 4.00.





7.- ¿Que son los lenguajes de programación?

Un lenguaje de programación es un idioma artificial diseñado para expresar computaciones que pueden ser llevadas a cabo por máquinas como las computadoras. Pueden usarse para crear programas que controlen el comportamiento físico y lógico de una máquina, para expresar algoritmos con precisión, o como modo de comunicación humana.[1] Está formado de un conjunto de símbolos y reglas sintácticas y semánticas que definen su estructura y el significado de sus elementos y expresiones. Al proceso por el cual se escribe, se prueba, se depura, se compila y se mantiene el código fuente de un programa informático se le llama programación





8.- ¿Cuales son los lenguajes de alto nivel?

Los lenguajes de programación de alto nivel se caracterizan por expresar los algoritmos de una manera adecuada a la capacidad cognitiva humana, en lugar de a la capacidad ejecutora de las máquinas.


En los primeros lenguajes de alto nivel la limitación era que se orientaban a un área específica y sus instrucciones requerían de una sintaxis predefinida. Se clasifican como lenguajes procedimentales.



Otra limitación de los lenguajes de alto nivel es que se requiere de ciertos conocimientos de programación para realizar las secuencias de instrucciones lógicas. Los lenguajes de muy alto nivel se crearon para que el usuario común pudiese solucionar tal problema de procesamiento de datos de una manera más fácil y rápida.



Por esta razón, a finales de los años 1950 surgió un nuevo tipo de lenguajes de programación que evitaba estos inconvenientes, a costa de ceder un poco en las ventajas. Estos lenguajes se llaman "de tercera generación" o "de alto nivel", en contraposición a los "de bajo nivel" o "de nivel próximo a la máquina".

Ventajas
La programación en un lenguaje de alto nivel tiene ciertas ventajas:
Genera un código más sencillo y comprensible.

Escribir un código válido para diversas máquinas y, posiblemente, sistemas operativos.

Inconvenientes
Reducción de velocidad al ceder el trabajo de bajo nivel a la máquina.

Algunos requieren que la máquina cliente posea una determinada plataforma.

9.- ¿Cuales son los de intermedio nivel?



Lenguaje de medio nivel es un lenguaje de programación informática como el lenguaje C, que se encuentran entre los lenguajes de alto nivel y los lenguajes de bajo nivel.


Suelen ser clasificados muchas veces de alto nivel, pero permiten ciertos manejos de bajo nivel. Son precisos para ciertas aplicaciones como la creación de sistemas operativos, ya que permiten un manejo abstracto (independiente de la máquina, a diferencia del ensamblador), pero sin perder mucho del poder y eficiencia que tienen los lenguajes de bajo nivel.


Una característica distintiva, por ejemplo, que convierte a C en un lenguaje de medio nivel y al Pascal en un lenguaje de alto nivel es que en el primero es posible manejar las letras como si fueran números (en Pascal no), y por el contrario en Pascal es posible concatenar las cadenas de caracteres con el operador suma y copiarlas con la asignación (en C es el usuario el responsable de llamar a las funciones correspondientes).

Una de las características mas peculiares del lenguaje de programación C; es el uso de “apuntadores”, los cuales son muy útiles en la implementación de algoritmos como Listas ligadas, Tablas Hash y algoritmos de búsqueda y ordenamiento que para otros lenguajes de programación (como Java por ejemplo) les suele ser un poco más complicado implementar.


10.- ¿Cuales son los de bajo nivel?

Un lenguaje de programación de bajo nivel es el que proporciona poca o ninguna abstracción del microprocesador de un ordenador. Consecuentemente es fácilmente trasladado a lenguaje de máquina.

La palabra "bajo" no implica que el lenguaje sea inferior a un lenguaje de alto nivel; se refiere a la reducida abstracción entre el lenguaje y el hardware.








11.-Menciona los tipos de compiladores


Un compilador es un programa informático que traduce un programa escrito en un lenguaje de programación a otro lenguaje de programación, generando un programa equivalente que la máquina será capaz de interpretar. Usualmente el segundo lenguaje es lenguaje de máquina, pero también puede ser simplemente texto. Este proceso de traducción se conoce como compilación.[1]



Un compilador es un programa que permite traducir el código fuente de un programa en lenguaje de alto nivel, a otro lenguaje de nivel inferior (típicamente lenguaje de máquina). De esta manera un programador puede diseñar un programa en un lenguaje mucho más cercano a como piensa un ser humano, para luego compilarlo a un programa más manejable por una computadora.

Esta taxonomía de los tipos de compiladores no es excluyente, por lo que puede haber compiladores que se adscriban a varias categorías:

Compiladores cruzados: generan código para un sistema distinto del que están funcionando.
Compiladores optimizadores: realizan cambios en el código para mejorar su eficiencia, pero manteniendo la funcionalidad del programa original.

Compiladores de una sola pasada: generan el código máquina a partir de una única lectura del código fuente. Compiladores de varias pasadas: necesitan leer el código fuente varias veces antes de poder producir el código máquina.

Compiladores JIT (Just In Time): forman parte de un intérprete y compilan partes del código según se necesitan.

Pauta de creación de un compilador: En las primeras épocas de la informática, el software de los compiladores era considerado como uno de los más complejos existentes.
Los primeros compiladores se realizaron programándolos directamente en lenguaje máquina o en ensamblador. Una vez que se dispone de un compilador, se pueden escribir nuevas versiones del compilador (u otros compiladores distintos) en el lenguaje que compila ese compilador.
Actualmente existen herramientas que facilitan la tarea de escribir compiladores ó intérpretes informáticos. Estas herramientas permiten generar el esqueleto del analizador sintáctico a partir de una definición formal del lenguaje de partida, especificada normalmente mediante una gramática formal y barata, dejando únicamente al programador del compilador la tarea de programar las acciones semánticas asociadas.


12.-Menciona los tipos de intérpretes



En ciencias de la computación, intérprete o interpretador es un programa informático capaz de analizar y ejecutar otros programas, escritos en un lenguaje de alto nivel. Los intérpretes se diferencian de los compiladores en que mientras estos traducen un programa desde su descripción en un lenguaje de programación al código de máquina del sistema, los primeros (los intérpretes) sólo realizan la traducción a medida que sea necesaria, típicamente, instrucción por instrucción, y normalmente no guardan el resultado de dicha traducción.


Usando un intérprete, un solo archivo fuente puede producir resultados iguales incluso en sistemas sumamente diferentes (ej. una PC y un PlayStation 3). Usando un compilador, un solo archivo fuente puede producir resultados iguales solo si es compilado a distintos ejecutables específicos a cada sistema.

Los programas interpretados suelen ser más lentos que los compilados debido a la necesidad de traducir el programa mientras se ejecuta, pero a cambio son más flexibles como entornos de programación y depuración (lo que se traduce, por ejemplo, en una mayor facilidad para reemplazar partes enteras del programa o añadir módulos completamente nuevos), y permiten ofrecer al programa interpretado un entorno no dependiente de la máquina donde se ejecuta el intérprete, sino del propio intérprete (lo que se conoce comúnmente como máquina virtual).

Para mejorar el desempeño, algunas implementaciones de programación de lenguajes de programación pueden interpretar o compilar el código fuente original en una más compacta forma intermedia y después traducir eso al código de máquina (ej. Perl, Python, MATLAB, y Ruby). Algunos aceptan los archivos fuente guardados en esta representación intermedia (ej. Python, UCSD Pascal y Java).

Comparando su actuación con la de un ser humano, un compilador equivale a un traductor profesional que, a partir de un texto, prepara otro independiente traducido a otra lengua, mientras que un intérprete corresponde al intérprete humano, que traduce de viva voz las palabras que oye, sin dejar constancia por escrito.


En la actualidad, uno de los entornos más comunes de uso de los intérpretes informáticos es Internet, debido a la posibilidad que estos tienen de ejecutarse independientemente de la plataforma.


13.-¿cual es la diferencia entre un interprete y un compilador?



INTERPRETE: Es un programa que lee línea a línea un programa escrito en un lenguaje; en lenguaje fuente y lo va traduciendo a un código intermedio, para ejecutarlo.


COMPILADOR: Es un programa que lee totalmente un programa escrito en un lenguaje; el lenguaje fuente, y lo traduce a un programa equivalente a otro lenguaje, lenguaje objeto.


A grandes rasgos un compilador es un programa que lee un programa escrito es un lenguaje, el lenguaje fuente, y lo traduce a un programa equivalente en otro lenguaje, el lenguaje objeto. Como parte importante de este proceso de traducción, el compilador informa a su usuario de la presencia de errores en el programa fuente.












No hay comentarios:

Publicar un comentario