2do Parcial

EXAMEN "A"

C / PASCAL PARALELO:

La Programación en paralelo es:

  • Operación simultánea de elementos dentro de un sistema
  • El Hardware de bajo nivel ha sido paralelo por muchos años. Tradicionalmente este paralelismo está oculto del usuario.
  • Las máquinas que permiten que el utilizador se aproveche de paralelismo se refieren normalmente como máquinas paralelas, para distinguir configuraciones convencionales.

Una computadora paralela es un juego de procesadores que pueden trabajar para resolver un problema computacional de manera cooperativa. Las computadoras paralelas son interesantes porque nos ofrecen el potencial para concentrar recursos computacionales como los procesadores, memoria, ancho de banda de I/O, en problemas computacionales importantes.  

El paralelismo a veces se ha visto como una subarea rara y exótica de la informática, interesante pero de relevancia pequeña para la mayoría de los programadores. El paralelismo está volviéndose oblicuo pero la programación en paralelo está convirtiéndose en el centro de la iniciativa de la programación.

Los lenguajes Pascal© y C™ son clasificados como lenguajes de programación Procedimental o Procedural, y por esto las funciones en estos lenguajes tiene una importancia mayor que los datos. Estos lenguajes se construyen a partir de diagramas de flujo de datos, que muestran el flujo de datos a través de un sistema, dentro y fuera de las funciones ( o procedimientos).

Mediante la evaluacion individual de sus caracteristicas de lenguaje C y el lenguaje PASCAL,se puede crear un paralelo entre ellos.

EIFFEL:

Programa orientado a objetos, lenguaje desarrollado por Bertrand Meyer para Software Interactivo que Diseña Inc., Goleta, CA, (www.eiffel.com). Corre en DOS, OS/2 y la mayoría las plataformas de UNIX. El compilador de Eiffel genera codigo C que puede modificarse y compilarse con un copilador de C.

G ++:

Software, simboliza las peculiaridades más destacadas de esta solución informática para empresas: Uno es ser un sistema para la automatización de la Gestión Administrativa Empresarial y otro soportar la adición (de ahí + + ), de tantos módulos como precise cada empresa, tanto diseñados por nosotros como estándares, como a medida para el cliente: Contabilidad, Recursos Humanos, Liquidación de Haberes, Intranet, Business to Business, Business to Consumer, etc...

JAVA:

“Java” surgió en 1991 cuando un grupo de ingenieros de Sun Microsystems trataron de diseñar un nuevo lenguaje de programación destinado a electrodomésticos. La reducida potencia de cálculo y memoria de los electrodomésticos llevó a desarrollar un lenguaje sencillo capaz de generar código de tamaño muy reducido.

Debido a la existencia de distintos tipos de CPUs y a los continuos cambios, era importante conseguir una herramienta independiente del tipo de CPU utilizada. Desarrollan un código “neutro” que no depende del tipo de electrodoméstico, el cual se ejecuta sobre una “máquina hipotética o virtual” denominada Java Virtual Machine (JVM). Es la JVM quien interpreta el código neutro convirtiéndolo a código particular de la CPU utilizada. Esto permitía lo que luego se ha convertido en el principal lema del lenguaje: “Write Once, Run Everywhere”.

A pesar de los esfuerzos realizados por sus creadores, ninguna empresa de electrodomésticos se interesó por el nuevo lenguaje. Java, como lenguaje de programación para computadores, se introdujo a finales de 1995. La clave fue la incorporación de un intérprete Java en el programa Netscape Navigator, versión 2.0, produciendo una verdadera revolución en Internet. Java 1.1 apareció a principios de 1997, mejorando sustancialmente la primera versión del lenguaje. Al programar en Java no se parte de cero. Cualquier aplicación que se desarrolle “cuelga” (o se apoya, según como se quiera ver) en un gran número de clases preexistentes. Algunas de ellas las ha podido hacer el propio usuario, otras pueden ser comerciales, pero siempre hay un número muy importante de clases que forman parte del propio lenguaje (el API o Application Programming Interface de Java). Java incorpora muchos aspectos que en cualquier otro lenguaje son extensiones propiedad de empresas de software o fabricantes de ordenadores (threads, ejecución remota,

componentes, seguridad, acceso a bases de datos, etc.). Por eso es un lenguaje ideal para aprender la informática moderna, porque incorpora todos estos conceptos de un modo estándar, mucho más sencillo y claro que con las citadas extensiones de otros lenguajes. Esto es consecuencia de haber sido diseñado más recientemente y por un único equipo.

El principal objetivo del lenguaje Java es llegar a ser el “nexo universal” que conecte a los usuarios con la información, esté ésta situada en el ordenador local, en un servidor de Web, en una base de datos o en cualquier otro lugar. Java es un lenguaje muy completo (se está convirtiendo en un macro-lenguaje: Java 1.0 tenía 12 packages; Java 1.1 tenía 23 y Java 1.2 tiene 59). En cierta forma casi todo depende de casi todo.

La compañía Sun describe el lenguaje Java como “simple, orientado a objetos, distribuido, interpretado, robusto, seguro, de arquitectura neutra, portable, de altas prestaciones, multitarea y dinámico”. Además de una serie de halagos por parte de Sun hacia su propia criatura, el hecho es que todo ello describe bastante bien el lenguaje Java.

Los programas desarrollados en Java presentan diversas ventajas frente a los desarrollados en  otros lenguajes como C/C++. La ejecución de programas en Java tiene muchas posibilidades: ejecución como aplicación independiente (Stand-alone Application), ejecución como applet, ejecución como servlet, etc.. Un applet es una aplicación especial que se ejecuta dentro de un navegador o browser (por ejemplo Netscape Navigator o Internet Explorer) al cargar una página HTML desde un servidor Web. El applet se descarga desde el servidor y no requiere instalación en la computadoradonde se encuentra el browser. Un servlet es una aplicación sin interface gráfica que se ejecuta en un servidor de Internet. La ejecución como aplicación independiente es análoga a los programas desarrollados con otros lenguajes.

Además de incorporar la ejecución como Applet, Java permite fácilmente el desarrollo tanto de arquitecturas cliente-servidor como de aplicaciones distribuidas, consistentes en crear aplicaciones capaces de conectarse a otros ordenadores y ejecutar tareas en varios ordenadores simultáneamente, repartiendo por lo tanto el trabajo. Aunque también otros lenguajes de programación permiten crear aplicaciones de este tipo, Java incorpora en su propio API estas funcionalidades.

Entorno de Desarrollo de Java:

Existen distintos programas comerciales que permiten desarrollar código Java. La compañía Sun, creadora de Java, distribuye gratuitamente el Java(tm) Development Kit (JDK). Se trata de un conjunto de programas y librerías que permiten desarrollar, compilar y ejecutar programas en Java. Incorpora además la posibilidad de ejecutar parcialmente el programa, deteniendo la ejecución en el punto deseado y estudiando en cada momento el valor de cada una de las variables (es el denominado Debugger). Cualquier programador con un mínimo de experiencia sabe que una parte muy importante (muchas veces la mayor parte) del tiempo destinado a la elaboración de un programa se destina a la detección y corrección de errores. Existe también una versión reducida del JDK, denominada JRE (Java Runtime Environment) destinada únicamente a ejecutar código Java (no permite compilar).

Los IDEs (Integrated Development Environment), tal y como su nombre indica, son entornos de desarrollo integrados. En un mismo programa es posible escribir el código Java, compilarlo y ejecutarlo sin tener que cambiar de aplicación. Algunos incluyen una herramienta para realizar Debug gráficamente, frente a la versión que incorpora el JDK basada en la utilización de una consola (denominada habitualmente ventana de comandos de MS-DOS, en Windows NT/95/98) bastante difícil y pesada de utilizar. Estos entornos integrados permiten desarrollar las aplicaciones de forma mucho más rápida, incorporando en muchos casos librerías con componentes ya desarrollados, los cuales se incorporan al proyecto o programa. Como inconvenientes se pueden señalar algunos fallos de compatibilidad entre plataformas y ficheros resultantes de mayor tamaño que los basados en clases estándar.

Compilador de Java:

Se trata de una de las herramientas de desarrollo incluidas en el JDK. Realiza un análisis de sintaxis del código escrito en los ficheros fuente de Java (con extensión *.java). Si no encuentra errores en el código genera los ficheros compilados (con extensión *.class). En otro caso muestra la línea o líneas erróneas. En el JDK de Sun dicho compilador se llama javac.exe. Tiene numerosas opciones, algunas de las cuales varían de una versión a otra. Se aconseja consultar la documentación de la versión del JDK utilizada para obtener una información detallada de las distintas posibilidades.

La Java Virtual Machine:

Tal y como se ha comentado al comienzo del capítulo, la existencia de distintos tipos de procesadores y ordenadores llevó a los ingenieros de Sun a la conclusión de que era muy importante conseguir un software que no dependiera del tipo de procesador utilizado. Se plantea la necesidad de conseguir un código capaz de ejecutarse en cualquier tipo de máquina. Una vez compilado no debería ser necesaria ninguna modificación por el hecho de cambiar de procesador o de ejecutarlo en otra máquina. La clave consistió en desarrollar un código “neutro” el cual estuviera preparado para ser ejecutado sobre una “máquina hipotética o virtual”, denominada Java Virtual Machine (JVM). Es esta JVM quien interpreta este código neutro convirtiéndolo a código particular de la CPU o chip utilizada. Se evita tener que realizar un programa diferente para cada CPU o plataforma. La JVM es el intérprete de Java. Ejecuta los “bytecodes” (ficheros compilados con extensión *.class) creados por el compilador de Java (javac.exe). Tiene numerosas opciones entre las que destaca la posibilidad de utilizar el denominado JIT (Just-In-Time Compiler), que puede mejorar entre 10 y 20 veces la velocidad de ejecución de un programa.

Las variables PATH y CLASSPATH:

El desarrollo y ejecución de aplicaciones en Java exige que las herramientas para compilar (javac.exe) y ejecutar (java.exe) se encuentren accesibles. La computadora, desde una ventana de comandos de MS-DOS, sólo es capaz de ejecutar los programas que se encuentran en los directorios indicados en la variable PATH del ordenador. Si se desea compilar o ejecutar código en Java en estos casos el directorio donde se encuentran estos programas (java.exe y javac.exe) deberán encontrarse en el PATH. Tecleando set PATH en una ventana de comandos de MS-DOS se muestran los nombres de directorios incluidos en dicha variable de entorno. Java tiliza además una nueva variable de entorno denominada CLASSPATH, la cual determina dónde buscar tanto las clases o librerías de Java (el API de Java) como otras clases de usuario.

La variable CLASSPATH puede incluir la ruta de directorios o ficheros *.zip o *.jar en los que se encuentren los ficheros *.class. En el caso de los ficheros *.zip hay que indicar que los ficheros en él incluidos no deben estar comprimidos. En el caso de archivos *.jar existe una herramienta (jar.exe), incorporada en el JDK, que permite generar estos ficheros a partir de los archivos compilados *.class. Los ficheros *.jar son archivos comprimidos y por lo tanto ocupan menos espacio que los archivos *.class por separado o que el fichero *.zip equivalente. Una forma general de indicar estas dos variables es crear un fichero batch de MS-DOS (*.bat) donde se indiquen los valores de dichas variables. Cada vez que se abra una ventana de MS-DOS será necesario ejecutar este fichero *.bat para asignar adecuadamente estos valores. Un posible fichero llamado jdk117.bat, podría ser como sigue:

set JAVAPATH=C:\jdk1.1.7

set PATH=.;%JAVAPATH%\bin;%PATH%

set CLASSPATH=.\;%JAVAPATH%\lib\classes.zip;%CLASSPATH%

lo cual sería válido en el caso de que el JDK estuviera situado en el directorio C:\jdk1.1.7.

Si no se desea tener que ejecutar este fichero cada vez que se abre una consola de MS-DOS es necesario indicar estos cambios de forma “permanente”. La forma de hacerlo difiere entre Windows 95/98 y Windows NT. En Windows 95/98 es necesario modificar el fichero Autoexec.bat situado en C:\, añadiendo las líneas antes mencionadas. Una vez rearrancado la computadora estarán presentes en cualquier consola de MS-DOS que se cree. La modificación al fichero Autoexec.bat en Windows 95/98 será la siguiente:

set JAVAPATH=C:\jdk1.1.7

set PATH=.;%JAVAPATH%\bin;%PATH%

set CLASSPATH=

En el caso de utilizar Windows NT se añadirá la variable PATH en el cuadro de diálogo que se abre con Start -> Settings -> Control Panel -> System -> Environment -> User Variables for NombreUsuario:

También es posible utilizar la opción –classpath en el momento de llamar al compilador javac.exe o al intérprete java.exe. Los ficheros *.jar deben ponerse con el nombre completo en el CLASSPATH: no basta poner el PATH o directorio en el que se encuentra. Por ejemplo, si se desea compilar y ejecutar el fichero ContieneMain.java, y éste necesitara la librería de clases G:\MyProject\OtherClasses.jar, además de las incluidas en el CLASSPATH, la forma de compilar y ejecutar sería:

javac -classpath .\;G:\MyProject\OtherClasses.jar ContieneMain.java

java -classpath .\;G:\MyProject\OtherClasses.jar ContieneMain

Cuando un fichero filename.java se compila y en ese directorio existe ya unfichero filename.class, se comparan las fechas de los dos ficheros. Si el fichero filename.java es más antiguo que el filename.class no se produce un nuevo fichero filename.class. Esto sólo es válido para ficheros *.class que se corresponden con una clase public

Estructura General de un Programa en Java:

En el lenguaje Java. Aparece una clase que contiene el programa principal (aquel que contiene la función main()) y algunas clases de usuario (las específicas de la aplicación que se está desarrollando) que son utilizadas por el programa principal. Los ficheros fuente tienen la extensión *.java, mientras que los ficheros compilados tienen la extensión *.class.

Un fichero fuente (*.java) puede contener más de una clase, pero sólo una puede ser public. El nombre del fichero fuente debe coincidir con el de la clase public (con la extensión *.java). Si por ejemplo en un fichero aparece la declaración (public class MiClase {...}) entonces el nombre del fichero deberá ser MiClase.java. Es importante que coincidan mayúsculas y minúsculas ya que MiClase.java y miclase.java serían clases diferentes para Java. Si la clase no es public, no es necesario que su nombre coincida con el del fichero. Una clase puede ser public o package (default), pero no private o protected. Estos conceptos se explican posteriormente.De ordinario una aplicación está constituida por varios ficheros *.class. Cada clase realiza unas funciones particulares, permitiendo construir las aplicaciones con gran modularidad e independencia entre clases.

La aplicación se ejecuta por medio del nombre de la clase que contiene la función main() (sin la extensión *.class). Las clases de Java se agrupan en packages, que son librerías de clases. Si las clases no se definen como pertenecientes a un package, se utiliza un package por defecto (default) que es el directorio activo.

MP3 PLAYERS:

El MP3 es un formato de compresión de audio (Mpeg Layer III ) que consigue un ratio de compresión de 1:11 sin pérdida de calidad apreciable.Esto significa que en un CD-R puedes grabar unos 11 CD-Audio (unas 150 canciones).

Para poder escuchar las canciones se hace a través de la computadora, con un programa reproductor de MP3 llamados "Mp3 Players" .Algunos de estos reproductores para Pc son el WinAmp, el Sonique, el Kjofol, el Wplay, o el Unreal Player.

En la siguiente tabla se tiene lo que se tarda en crear cada tipo de archivo y cuanto ocupan en el disco duro. Hay que tener en cuenta que estos datos están referidos para un archivo MP3 de calidad CD y realizado con un AMD K6 200 MMX con CD-Rom IDE 20X.La extracción está realizada con el WinDAC, mientras que la compresión está realizada con el Mp3Compressor:

Duración Canción

Tiempo empleado para pasarla a WAV

Espacio empleado por el archivo WAV

Tiempo empleado para comprimir WAV a MP3

Espacio ocupado por el archivo MP3

3 min 21 sg

2min 5 sg

33.8 Mb

4 min 28 sg

3.06 Mb

Si realizamos la extracción con un CD-Rom preparado para extracción digital a 36X usando el WinDAC y para comprimir usamos el Electronic Cosmo's MPEG Suite, obtenemos las siguientes cifras:

Duración Canción

Tiempo empleado para pasarla a WAV

Espacio empleado por el archivo WAV

Tiempo empleado para comprimir WAV a MP3

Espacio ocupado por el archivo MP3

3 min 21 sg

1min 5 sg

33.8 Mb

2 min 05 sg

3.06 Mb

OPEN GL:

Es un estándar gráfico empleado en estaciones de trabajo y sistemas de diseño asistido por el ordenador que también se utiliza en PCs. Open GL ha sido parte de OS/2 desde la aparición de Warp 4, pero el soporte de hardware para Open GL ha aparecido recientemente. Muchos fabricantes de tarjetas de vídeo han incorporado Open GL por hardware en sus tarjetas, y esta tecnología tienen una buena oportunidad para onvertirse en el API estándar para los juegos en Windows 9x. Puesto que IBM acaba de publicar el kit necesario para que los desarrolladores de controladores de dispositivos añadan Open GL por hardware a sus controladores, y dado que la cantidad de productos OS/2 que lo usan es relativamente pequeña, puede pasar un tiempo antes de que veamos alguna consecuencia de esto.

PYTHON:

Lenguaje orientado a objetos semejante a Tcl y Perl que ha ganado a popularidad por su sintaxis y la clara legibilidad del código. Python es relativamente fácil de aprender y es portátil, esto significa que sus declaraciones se pueden interpretar en varios sistemas operativos, inclusive sistemas basados en UNIX, Mac OS, MS-DOS, OS/2, y varias versiones de Microsoft Windows. Python fue creado por Guido van Rossum, un residente de Holanda, cuyo grupo favorito de comedia en ese tiempo era el "Monty Python's Flying Circus".

El código fuente está libremente disponible y abierto para la modificación y reuso. Python en la actualidad tiene un número significativo de usuarios .Una característica notable del Python es la "indentación" de su código que permite una facilidad para su lectura. El Python ofrece "dynamic data types", "ready-made classes", e interfaces a muchas llamadas del sistema y bibliotecas. Se puede extender, usando el lenguaje C o C++.

TCL/TK:

TCL (Tool Command Language) es un lenguaje de programación interpretado y multiplataforma. Fue creado por John K. Ousterhout y su equipo de la Universidad de California, pero actualmente es desarrollado por Sun Microsystems Laboratories ( en concreto por su gupo SunScript, que lidera el propio Ousterhout). Tcl es un lenguaje de comandos, cuyo intérprete recibe el nombre de tclsh (tclsh80 para Tcl/Tk 8.0), que tiene como una de sus principales características la gran facilidad con la que se pueden implementar funciones en C/C++ que pasan a ser nuevas instrucciones del intérprete. Es decir, se pueden embeber aplicaciones en C/C++ dentro del propio intérprete de Tcl; de esta forma es posible obtener nuevas versiones de Tcl, denominadas extensiones, que no dejan de ser otra cosa que intérpretes que aunan a los comandos originales de Tcl nuevos comandos escritos en C/C++.

Tk es un toolkit para la programación bajo Windows. Inicialmente fue diseñado para el sistema X window, pero actualmente ha sido migrado a otros sitemas, entre ellos Windows 95 y NT. Tk provee un conjunto de comandos Tcl que permiten manipular widgets. Un widget es una ventana del interface gráfico que presenta un aspecto particular y una determinada utilidad. Entre los widgets se encuentran botones, barras de scroll, menús, y ventanas de texto. Tk también proporciona un widget de próposito general para el dibujo, denominado canvas, en el que pueden ser creados líneas, circulos, cuadrados, bitmaps, etc.

CONCLUSIONES

el poder investigar a cerca de estos temas a ayudado a incrementar demaciado mi conocimiento en muchos aspectos, el poder saber que pascal y C son lenguajes de programacion que pueden funcionar en paralelo, he incluso interactuar el uno con el otro se me a hecho muy interesante, asi mismo de la existencia de lenguajes de programacion como Tcl/tk,Python e Eiffel del cual no tenia yo ni la mas minima nocion de su existencia, sin embargo ahora se que esta basado en lC y que se aplica como lenguaje orientado objetas para trabajar sobre una plataforma unix. Asi pues tambien he desarrollado una pequeña investigacion sobre el formato mp3, que se especializa en archivos de audio para erproduccion en las pc. tambien optuve informacion del Open GL, que es un es un estandar grafico con plataforma en estaciones de trabajo desde el OS/2.

 

Desarrolle una investigacion sobre lenguaje Java, ya que de el si tenia conocimiento un poco mas amplio, he tenido un poco de experiencia en su manejo y se me hacen muy interesantes sus alcances, lo que si no sabia, ni tenia la menor idea es de sus origenes, los cuales se me hicieron a decir verdad algo chusco, fue diseñado en un principio para el control de aparatos electrodomesticos, sin embargo al ver fallido su intento le encontraron un mejor desarrollo en internet, con una orientacion hacia objetos.

REFERENCIAS

http://webopedia.internet.com/TERM/

http://www.lawebdelprogramador.com/diccionario/

http://www.noticiasmp3.com/intro.html

http://www.eidoslatam.com/

www.eiffel.com

http://www.etsimo.uniovi.es/pub/tcl/

http://www.aldeamac.com/links/mp3/

http://lafaq.espaweb.com/manuales/programacion.htm

http://sesic.sep.gob.mx/basemin/biblioteca/manuales.htm

inicio
Hosted by www.Geocities.ws

1