5

Click here to load reader

Comparacion Lenguajes de Programacion

Embed Size (px)

Citation preview

Page 1: Comparacion Lenguajes de Programacion

COMPARACION LENGUAJES DE PROGRAMACION

PRESENTADO POR:

CESAR ARMANDO PARRA GARRIDO

2220101005

PRESENTADO A:

CARLOS DIAZ

UNIVERSIDAD DE IBAGUE

ARQUITECTURA DE COMPUTADORES

IBAGUE

Page 2: Comparacion Lenguajes de Programacion

Java Java es un lenguaje de programación que está soportado por dos elementos fundamentales: el compilador y la máquina virtual. El compilador, encargado de traducir los programas a un formato capaz de ser entendido por el ordenador que debe ejecutarlo, es un elemento común con cualquier lenguaje de programación. La máquina virtual Java (“el ordenador encargado de ejecutar” los programas traducidos por el compilador) aporta nuevas características al modelo de programación del lenguaje. Utilizando como fuente uno de los primeros artículos sobre Java, escrito por su creador, podemos decir que las principales características de Java son que se trata de un lenguaje:

• Simple • Orientado a objetos • Distribuido • Robusto • Seguro • Arquitecturalmente neutro • Portable • Concurrente • Dinámico • Interpretado • De alto rendimiento

Manejo De Memoria En Java no se programa con punteros, porque Java siempre utiliza punteros explícitos (direcciones de memoria). En Java “todo son punteros”, en otras palabras. En el lenguaje, aspectos como los punteros se eliminan para prevenir el acceso ilegal a la memoria. Por otro lado, el código Java pasa muchos tests antes de ser ejecutado por la máquina virtual. El código pasa a través de un verificador de bytecodes que comprueba el formato de los fragmentos de código y aplica un probador de teoremas para detectar fragmentos de código ilegal, como por ejemplo accesos no autorizados a las zonas de memoria de los objetos o intentos de cambio del tipo de algún objeto. Si los bytecodes pasan la verificación sin producir un mensaje de error, la máquina virtual se ha asegurado de que:

• El código no produce desbordamientos de operandos en la pila • El tipo de los parámetros de todos los códigos de operación son conocidos y correctos • No ha ocurrido ninguna conversión ilegal de datos • El acceso a los campos de los objetos es legal

Page 3: Comparacion Lenguajes de Programacion

C++ C++ es un lenguaje de programación orientado a objetos. Se suele decir que es un lenguaje híbrido, ya que permite la programación estructurada. La política del diseño de C++ heredó de C el siguiente axioma: "el programador sabe lo que hace". Con esto se deja en claro que el programador tiene el control total de lo que está haciendo, permitiendo una máxima eficiencia al no incorporar verificación de errores en tiempo de ejecución. Otro axioma es "lo que no se conoce no hace daño". Con esto se apunta a que el código generado por los compiladores del lenguaje no deben incluir una sobrecarga de recursos computacionales, minimizando la implementación de recursos tales como el polimorfismo y la expansión de patrones. Es un lenguaje de nivel intermedio, pudiéndose utilizar tanto para escribir software de bajo nivel, como drivers y componentes de sistemas operativos, como para el desarrollo rápido de aplicaciones, según el marco de trabajo con el que se disponga, como VCL de Borland C++ Builder. Los compiladores de C++ generan código nativo con un alto grado de optimización en memoria y velocidad, lo que lo convierte en uno de los lenguajes más eficientes. A través de los patrones de clase y de funciones, los templates, el lenguaje apoya el desarrollo de clases genéricas con parámetros de tipo y de tamaño. Este recurso es la base de la Biblioteca de Patrones Estándar, STL, que contiene una gran cantidad de patrones de clase contenedor, como mapas, conjuntos, pilas y colas, y una amplia variedad de algoritmos que pueden especializarse para tipos de datos provistos por el usuario. STL es parte del estándar C++. Manejo De Memoria Cuando el compilador encuentra la declaración de una variable, le asigna una dirección en memoria en la que se almacenarán los valores que sucesivamente se le asignen a esa variable. El operador & antepuesto al nombre de una variable retorna el valor de la dirección inicial de memoria donde el compilador almacenó o almacenará el valor de la variable. Para acceder al valor que se encuentra en la dirección apuntada por un puntero se debe "dereferenciar" el puntero colocando * delante del mismo. Por estos motivos se suele denominar a & el operador de referencia y a * el operador de indirección.

Page 4: Comparacion Lenguajes de Programacion

C# C# conocido como C sharp es un lenguaje de programación orientado a objetos desarrollado y estandarizado por Microsoft como parte de su plataforma .NET, es uno de los lenguajes de programación diseñados para la infraestructura de lenguaje común. C# fue creado por el danés Anders Hejlsberg que diseño también los lenguajes Turbo Pascal y Delphi. Su sintaxis básica deriva de C++ y utiliza el modelo de objetos de la plataforma .NET, similar al de Java, aunque incluye mejoras derivadas de otros lenguajes. Características

• El lenguaje es muy sencillo • Incluye un amplio soporte de estructuras, componentes, programación orientada a objetos,

manipulación de errores, recolección de basura, etc. • Las clases en C# pueden heredar de un padre pero puede implementar varias interfaces. • C# también provee soporte para estructuras, un concepto el cual ha cambiado

significantemente desde C++. • C# provee características de componentes orientados, como propiedades, eventos y • atributos. • Ahorro tiempo en la programación ya que tiene una librería de clases muy completa y bien

diseñada. • El manejo de errores está basado en excepciones. • C# soporta todas las características propias del paradigma de programación orientada a

objetos: encapsulación, herencia y polimorfismo. Manejo De Memoria En C# para mantener la seguridad de tipos y la seguridad no se admite las operaciones con punteros de manera determinada, para ello se usa la palabra clave unsafe para definir un contexto no seguro para usar los punteros. En el Common Language Runtime (CLR) se refieren al código no seguro como código no comprobable lo cual no necesariamente significa que es peligroso sino que su seguridad no se puede comprobar por el CLR, básicamente la diferencia entre el código “unmanaged” y código definido como “unsafe” es que el primero corre fuera del CLR mientras que el “unsafe” tiene permiso del CLR para acceder directamente a la memoria. Es importante tomar en cuenta que el hecho de que sea código unsafe deja al programador toda la responsabilidad del código dejándolo a cargo de garantizar que no introduce riesgos de seguridad ni errores de punteros. Es importante tomar en cuenta ciertos detalles sobre el código no seguro:

• Debe compilarse con la opción /unsafe Para establecer esta opción del compilador en el entorno de desarrollo de Visual Studio:

• Abra la página Propiedades del proyecto. • Haga clic en la página de propiedades Generar. • Active la casilla de verificación Permitir código no seguro. • La opción /unsafe del compilador permite compilar el código que utiliza la palabra

clave unsafe. • Para compilar in.cs en modo no seguro, ejecute: csc /unsafe in.cs • Se pueden definir como no seguros los métodos, tipos y bloques de código.

Page 5: Comparacion Lenguajes de Programacion

PERL La estructura completa de Perl deriva ampliamente del lenguaje C. Perl es un lenguaje imperativo, con variables, expresiones, asignaciones, bloques de código delimitados por llaves, estructuras de control y subrutinas. Existen varias características acerca de Perl que son importantes de rescatar, las cuales se mencionan a continuación:

1. Es fácil de usar, aunque es difícil de aprender. Cuando se ha programado en Perl por varias horas, Perl se va a ir haciendo cada vez más fácil de implementar.

2. Existen muy pocas cosas que no se pueden hacer con este lenguaje, por lo que se le puede considerar como un lenguaje que no tiene fronteras.

3. Es rápido de crear, ya que no posee funciones que, aunque sean bastante interesantes, hagan disminuir la velocidad de desarrollo de una aplicación del lenguaje.

4. El lenguaje es feo, siendo esta una de las principales razones para su difícil aprendizaje, aunque esto se compensa con el poder de alcance del lenguaje. Es por eso que el camello es el logotipo del lenguaje, ya que aunque es feo, siempre trabaja fuerte aún en condiciones complicadas.

5. Se puede utilizar en varios entornos, como puede ser Windows 95, OS/2, Linux, entre muchos otros, sin realizar cambios de código, siendo únicamente necesario la introducción del interprete Perl correspondiente a cada sistema operativo.

6. Tiene características que soportan una variedad de paradigmas de programación, como la estructural, funcional y la orientada a objetos.

7. Tiene incorporado un poderoso sistema de procesamiento de texto y una enorme colección de módulos disponibles.

8. Ofrece una ayuda en línea desde la consola de comandos. Por ejemplo, para obtener ayuda sobre la función print, se debe de escribir en una ventana MSDOS: perldoc –f print.

9. Se ejecuta desde la línea de comandos de una ventana del sistema operativo. 10. Es un lenguaje case-sensitive, lo cual hace referencia a la propiedad de un texto para presentarse en

mayúsculas o en minúsculas. Manejo De Memoria Perl accede a los archivos de tipo ASCII por medio de punteros a archivos. Estos se referencian mediante variables y constituyen el enlace entre el script y el archivo consultado. Se utilizarán mayúsculas para representar estas variables a fin de no equivocarse con otras variables. Los archivos se consultan mediante la rutina open que admite dos argumentos, un puntero de archivo y un nombre de archivo: open(PUNTERO, "modo de acceso + nombre de archivo"); El argumento de open que representa el nombre de archivo puede tener cualquiera de los prefijos que se muestran en la siguiente tabla, estos prefijos indican el modo de acceso al archivo (si no se pone ningún prefijo es que se toma el modo de acceso por defecto que es el de lectura):