TAREA: ESTRUCTURA DE DATOS

DEFINIR:
a) PROGRAMA DE COMPUTADORA:
Un programa es un conjunto de instrucciones que controlan (dirigen) a una
computadora; más formalmente, un programa de computadora es un conjunto de
introducciones internas utilizadas para ejecutarse en una computadora y que
produzca un resultado concreto. Otro término para un programa o conjunto de
programas es software; ambos términos se utilizan indistintamente. El proceso de
escribir un programa, o software, se denomina programación y el conjunto de
instrucciones que se pueden utilizar para construir un programa se denomina
lenguaje de programación. Así pues, los lenguajes utilizados para escribir
programas de computadoras son los lenguajes de programación y programadores son
los escritores y diseñadores de programas.
b)PROGRMACION
La programación
Después que se ha diseñado y pensado como resolver el problema en papel, se
debe comenzar el proceso de introducir el programa en un archivo en el disco duro
de la computadora. La introducción y modificación de su programa en un archivo se
hace utilizando un simple editor de texto o un editor especializado que hace la tarea
de escribir un programa una tarea muy fácil.
El programa que se introduzca en el editor, estará escrito en Java o C++ o
cualquier otro, pero ni C++ ni Java son lenguajes máquina, muy al contrario, como ya
se mencionó, son lenguajes de alto nivel diseñados para hacer más fácil la
programación que utilizando el lenguaje máquina. Pero a la vez, una computadora no
entiende los lenguajes de alto nivel. En consecuencia, un programa escrito en un
lenguaje de alto nivel debe ser traducido a un lenguaj que la máquina pueda
comprender. Los lenguajes que la computadora puede comprender (más o menos
directamente) son los lenguajes de bajo nivel. La traducción de un programa escrito
en un lenguaje de alto nivel, como C++ o Java, a un lenguaje que pueda entender la

computadora se hace mediante otro programa conocido como compilador.
c) LENGUAJE DE PROGRAMACIÓN 
Los Lenguajes de Programación
Los lenguajes de programación sirven para escribir programas que permiten la
comunicación persona/máquina.
El propósito de un lenguaje de programación es permitir a las personas
comunicarse con una computadora. Los lenguajes de las personas y los lenguajes de
la máquina son muy diferentes, ya que las características y posibilidades de las
personas y de las máquinas son muy diferentes. Los lenguajes de programación
permiten a las personas escribir en un lenguaje que sea más apropiado a las
características humanas y se puedan traducir al lenguaje máquina de diferentes
tipos de máquinas.
Los principales tipos de lenguajes utilizados:
➢ lenguajes máquina
• instrucciones binarias (ceros y unos)
• sólo la máquina puede entenderlo
➢ lenguajes de bajo nivel (assembler)
• instrucciones nemotécnicas a las binarias
• pueden entenderlo las personas
➢ lenguajes de alto nivel

• instrucciones en lenguaje fácil de leer por las personas
d)LENGUAJE DE ALTO NIVEL
Lenguaje de programación de alto nivel es un tipo de lenguaje de programación que permite al programador escribir programas (algoritmos) que son más o menos independientes de un tipo particular de computadora (del hardware). Estos lenguajes son considerados de alto nivel porque son más parecidos al lenguaje natural humano y más lejanos al lenguaje de las máquinas. En otras palabras, utilizan una fuerte abstracción de los detalles de la computadora.

En contraste, los lenguajes ensamblador (lenguajes de bajo nivel) son considerados lenguajes de bajo nivel porque están muy cerca al lenguaje que manejan las máquinas.

La principal ventaja de los lenguajes de alto nivel sobre los de bajo nivel es que son más fáciles de leer, escribir y mantener por humanos. Al final, los programas escritos en alto nivel deben ser traducidos en un lenguaje máquina específico empleando un compilador o un intérprete. De esta manera pueden ser ejecutados por una máquina específica.

El primer lenguaje de programación de alto nivel diseñado para computadoras fue Plankalkül (1948), creado por Konrad Zuse (1910-1995). De todas maneras no fue implementado en su momento.

En tanto el primer lenguaje de programación de alto nivel ampliamente distribuido fue Fortran, un desarrollo de IBM que apareció por primera vez en 1957. En tanto el lenguaje Algol, definido en 1958 y 1960, introdujo nuevos conceptos como recursión, funciones anidadas, muchos conceptos de programación estructurada, etc. En esa época Cobol también introdujo registros y Lisp introdujo abstracción lambda.
fuente: http://www.alegsa.com.ar/Dic/lenguaje_de_programacion_de_alto_nivel.php
e)LENGUAJE MAQUINA 
El lenguaje de máquina o código máquina es el sistema de códigos directamente interpretable por un circuito microprogramable, como el microprocesador de una computadora o el microcontrolador de un autómata. Este lenguaje está compuesto por un conjunto de instrucciones que determinan acciones a ser tomadas por la máquina. Un programa consiste en una cadena de estas instrucciones más un conjunto de datos sobre el cual se trabaja. Estas instrucciones son normalmente ejecutadas en secuencia, con eventuales cambios de flujo causados por el propio programa o eventos externos. El lenguaje de máquina es específico de la arquitectura de la máquina, aunque el conjunto de instrucciones disponibles pueda ser similar entre arquitecturas distintas.
Los circuitos microprogramables son digitales, lo que significa que trabajan con dos únicos niveles de tensión. Dichos niveles, por abstracción, se simbolizan con los números 0 y 1, por eso el lenguaje de máquina sólo utiliza dichos signos. Esto permite el empleo de las teorías del álgebra booleana y del sistema binario en el diseño de este tipo de circuitos y en su programación.
Claude Elwood Shannon, en su libro Analysis of Relay and Switching Circuits, y con sus experiencias en redes de conmutación, sentó las bases para la aplicación del álgebra de Boole a las redes de conmutación. Una red de conmutación es un circuito de interruptores eléctricos que al cumplir ciertas combinaciones booleanas con las variables de entrada, define el estado de la salida. Este concepto es el núcleo de las puertas lógicas, las cuales son, por su parte, los ladrillos con que se construyen sistemas lógicos cada vez más complejos. Shannon utilizaba el relé como dispositivo físico de conmutación en sus redes, dado que el relé, a igual que una lámpara eléctrica, posee dos estados: activado (encendido) o desactivado (apagado).
fuente: https://es.wikipedia.org/wiki/Lenguaje_de_m%C3%A1quina
f) LENGUAJE  ENSAMBLADOR 
Los lenguajes de bajo nivel que la computadora puede entender directamente se conocen como lenguajes ensamblador o lenguajes máquina. En realidad, aunque son
muy similares y en ocasiones se les considera sinónimos, tienen algunas pequeñas diferencias. El lenguaje que la computadora puede comprender directamente es el
lenguaje máquina. El lenguaje ensamblador es casi la misma cosa, pero necesita un paso adicional para que la traducción pueda ser entendida por la máquina. Si un
compilador traduce su programa de alto nivel a algún lenguaje de bajo nivel, no es exactamente lenguaje de máquina, se necesita una pequeña traducción adicional antes de ser ejecutado, pero normalmente este proceso suele ser automático y no es problema.
g) COMPILADOR 



¿Qué es un compilador y cómo funciona?


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 un código intermedio (bytecode), o 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.

¿Cómo funciona?

El proceso de traducción se compone internamente de varias etapas o fases, que realizan distintas operaciones lógicas. Es útil pensar en estas fases como en piezas separadas dentro del traductor, y pueden en realidad escribirse como operaciones codificadas separadamente aunque en la práctica a menudo se integren juntas.
fuente: http://michelletorres.mx/que-es-un-compilador-y-como-funciona/
h)INTERPRETE
Intérprete (informática). 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. PerlPythonMATLAB, y Ruby). Algunos aceptan los archivos fuente guardados en esta representación intermedia (ej. PythonUCSD 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.
2. Averigua y enumera los diferentes tipos de lenguajes de programación
utilizados a lo largo de las diferentes generaciones de computadoras.


Con el paso del tiempo y la continua evolución de las computadoras, los lenguajes de programación han ido cambiando y mejorando de acuerdo a las necesidades tanto de programadores como de las máquinas en general, dejando consigo una gran variedad de lenguajes y códigos que seguramente nadie conoce en su totalidad.
Si nos ponemos en la tarea de investigar un poco sobre la historia de los lenguajes de programación seguro encontraremos datos sorprendentes, como por ejemplo el hecho de que el primer lenguaje de computadora apareció hace mas de 100 años y fue escrito por una mujer, Ada Lovelace quien es considerada como la primera programadora tras haber escrito la manipulación de los símbolos para una máquina de Charles Babbage que aún no había sido construida.
Los lenguajes de programación al principio eran muy difíciles de entender pues estaban desarrollados para ser entendidos directamente por las maquinas (lenguajes de bajo nivel) y eran muy pocas las personas que se dedicaban a programar en ese entonces, pero con el paso del tiempo se han hecho cada vez mas amigables y gracias al uso de compiladores e interpretes se ha podido llevar la programación a un nivel mas humano (lenguajes de alto nivel) facilitando el proceso de desarrollo de software.

En la historia de los lenguajes de programación podemos destacar también el hecho de que se han derivado varios tipos de lenguajes a partir de los primeros, así como otros detalles que podemos apreciar en la siguiente linea de tiempo:
§  1843: Ada Lovelace desarrolla el primer lenguaje de programación cuando escribió un algoritmo para la máquina analítica de Charles Babbage.
§  1957 – Fortran: (“The IBM Mathematical Formula Translating System”): Un lenguaje de programación de alto nivel de propósito general. Para cálculo numérico y científico (como alternativa al lenguaje ensamblador). Es el lenguaje de programación más antiguo que se utiliza hoy en día.
§  1958 – Lisp: (“List Processor”) Utilizado para la notación matemática y temas de ciencias de la computación.
§  1959 – Cobol: (“Common Business-Oriented Language) Usado principalmente para la informática empresarial. Es el primer lenguaje de programación que se demandan por el Departamento de Defensa de EE.UU..
§  1964 – BASIC: (“Beginner’s All-purpose Symbolic Instruction Code”) Diseñado para la simplicidad. Su popularidad explotó a mediados de los años 70 con los computadores personales.
§  1970 – Pascal: (En honor al matemático/físico francés Blaise Pascal) Utilizado para la enseñanza de la programación estructurada y estructuración de datos.
§  1972 – Lenguaje C: (Basado en un lenguaje anterior llamado “B”) Creado para sistemas Unix. Muchos de lenguajes de programación más populares del mundo son derivados de el, entre ellos tenemos C#, Java, JavaScript, Perl, PHP y Python.
§  1980 – Ada: (En honor a Ada Lovelace): Es derivado del Pascal. Contratado por el Departamento de Defensa de los EE.UU. en 1977 para el desarrollo de sistemas de software grandes.
§  1983 – C++: (“C con clases”; ++ es el operador de incremento en “C”) Es una extensión de lenguaje C, con mejoras tales como clases, funciones virtuales y plantillas.
§  1983 – Objective-C: (Extensión de “C” orientada a objetos) Ampliación de C, se adiciona la funcionalidad de paso de mensajes basado en el lenguaje Smalltalk.
§  1987 – Perl: Creado para el procesamiento de informes en sistemas Unix. Hoy en día es conocido por su gran potencia y versatilidad.
§  1991 – Python: Creado para apoyar una variedad de estilos de programación y hacerlo divertido de usar.
§  1993 – Ruby: Una lenguaje influenciado por Perl, Ada, Lisp, Smalltalk, etc. Diseñado para la programación productiva y agradable.
§  1995 – Java: Hecho para un proyecto de televisión interactiva. Funciona multiplataforma. Es el segundo lenguaje más popular (detrás de lenguaje C).
§  1995 – PHP: (“Personal Home Page”) Usado para la creación de páginas web dinámicas.
§  1995 – JavaScript: Creado para ampliar la funcionalidad de las páginas web, permite utilizar formularios de presentación/validación, interactividad, animaciones, seguimiento de la actividad del usuario, etc..
Ahora con la siguiente infografía podemos ampliar un poco mejor la información anterior, además de poder detallar en qué son usados los diferentes lenguajes programación y quiénes han sido los creadores de cada uno de ellos, entre otros datos interesantes.
fuente: https://www.maestrodelacomputacion.net/historia-de-los-lenguajes-de-programacion/



3. Averigua y describe las características más sobresalientes de Java.
Son describe al lenguaje Java de la siguiente manera:
  • Simple
  • Orientado a Objetos
  • Tipado estáticamente
  • Distribuido
  • Interpretado
  • Robusto
  • Seguro
  • de Arquitectura Neutral
  • Multihilo
  • con Recolector de basura (Garbage Collector)
  • Portable
  • de Alto Rendimiento: sobre todo con la aparición de hardware especializado y mejor software
  • Dinámico
Son admite que lo dicho anteriormente son un montón de halagos por su parte, pero el hecho es que todas esas características pueden servir para describir el lenguaje. Todas ellas son importantes, sin embargo cabe destacar tres, que son las que han proporcionado tanto interés por el lenguaje: la portabilidad, el hecho de que sea de arquitectura neutral y su simplicidad. Java ofrece toda la funcionalidad de los lenguajes potentes, pero sin las características menos usadas y más confusas de éstos.
Java elimina muchas de las características de otros lenguajes como C++, para mantener reducidas especificaciones del lenguaje y añadir características muy útiles como el recolector de basura. No es necesario preocuparse de liberar memoria, el recolector se encarga de eliminar la memoria asignada. Gracias al recolector, sólo te tienes que preocupar de crear los objetos relevantes de tu sistema ya que él se encarga de destruirlos en caso de no ser reutilizados.
Java reduce en un 50% los errores más comunes de programación con lenguajes como C y C++. Entre las características más "indeseables" de C++ que se han evitado en el diseño de Java destacan: ficheros de cabecera, aritmética de punteros, sobrecarga de operadores, estructuras, uniones, conversión implícita de tipos, clases base virtual, pre-procesador
4. ¿Crees que influye el conocimiento del hardware en la formación del
aprendizaje de la programación?
Desde mi punto de vista es importante el conocimiento del hadware en la progrmacion ya que debemos tener en cuenta del funcionamiento de estos para poder resolver un problema o basarnos de estos para la ejecucion de programas, como leectores de barras, faciales, de huellas etc..
5. Haz una lista de sistemas operativos que conozcas.
  • Windows:
  • MacOS:
  • Linux
  • Android
  • Solari



No hay comentarios:

Publicar un comentario