| Artículos | 01 NOV 1996

Compiladores de C/C++ de 32 bits

Tags: Histórico
Borland Development Suite 5.0, Microsoft Visual C++ 4.2, Optima++, Symantec C++ 7.2 y Watcom C++ 10.6
Jorge Pascual.

Los nuevos compiladores C/C++ aprovechan todas las funciones de los sistemas operativos de 32 bits, así como las nuevas posibilidades de programación para Internet.

Desde que apareciera Windows 95, ya hace un año, se está produciendo una metamorfosis que culminará con la única existencia de aplicaciones de 32 bits. Esta transformación se ve reforzada con la entrada en escena de Windows NT 4.0. Todo parece indicar que se está dando el paso definitivo para erradicar las aplicaciones de 16 bits y conseguir que, de una vez por todas, se aproveche de forma eficiente el hardware de nuestros ordenadores. Aunque en algunas ocasiones se tiende a asociar 32 bits con Windows 95 o Windows NT, lo cierto es que 32 bits también se pueden utilizar desde el viejo MS-DOS, aunque en la mente de todos está la inminente desaparición del legendario sistema operativo.

En la presente comparativa hemos cogido todos los compiladores que son capaces de aprovechar las ventajas de los nuevos sistemas operativos y los hemos sometido a un riguroso test. A la hora de realizar la comparativa se han tenido en cuenta fundamentalmente las capacidades del compilador para aprovechar todos los recursos disponibles, así como las facilidades que brinda al programador a la hora de realizar un proyecto. Aspectos como la creación de programas para utilizar en Internet o el manejo de las nuevas APIs de acceso directo al hardware se han examinado y comentado.

Antes de comenzar con la comparativa conviene que demos un repaso a los aspectos más destacados que hacen diferentes a los compiladores de C/C++. Para un programador experto, la introducción siguiente puede parecer un poco superflua, pero todos los nuevos programadores encontrarán las ideas y conceptos básicos para saber elegir su herramienta de desarrollo C/C++.

Formas de programación

Hasta hace unos años, y en concreto, hasta la entrada de Windows como sistema operativo estandarizado, únicamente conocíamos una forma de programar. Sin embargo, con la aparición de entornos gráficos y las ventajas que eso conlleva, se dieron nuevas formas de programación. Actualmente podemos distinguir dos formas bien distintas de realizar programas: programación clásica y programación visual. Ambas formas incluyen la ya habitual programación orientada a objetos. La gran diferencia existente entre un tipo de programación y el otro es que, mientras que en la programación clásica el programador ha de componer la aplicación completa mediante las correspondientes líneas de programa, en la programación visual podemos realizar el esqueleto de la aplicación mediante el ratón sin ser necesario introducir una sola línea de código fuente. Este tipo de programación ha tenido una fuerte implantación en lenguajes como Basic con la aparición de Microsoft Visual Basic, más tarde se extendió al Pascal con la entrada en escena de Delphi. Sin embargo, en C/C++ este tipo de compiladores no se había implantado. Es con la aparición de Windows 95 cuando aparece el primer compilador visual de C/C++: Optima++ de PowerSoft. Aunque Microsoft Visual C/C++ incorpora el vocablo "visual" en el nombre, se trata de un compilador tradicional y no hace uso de la programación visual. Solamente Optima++ está específicamente destinado a la programación visual, el resto son compiladores clásicos aunque alguno de ellos utiliza herramientas visuales complementarias para facilitar el trabajo del programador.

MFC frente a OWL

Para los principiantes en la programación Windows, es necesario aclarar qué quieren decir las siglas MFC y OWL. Cuando nos introducimos en la programación en entornos Windows tenemos una única forma de hacerlo, que es utilizando directamente el SDK de Windows y utilizando las funciones API que posee. Esto se realiza mediante un programa en C normal que importa las distintas funciones de los distintos módulos del sistema operativo, como el Kernel, GDI, etc. Sin embargo, puesto que la mayor parte de los compiladores soportan la programación en torno a objetos, podíamos pensar en encapsular todo el API de Windows en una librería orientada a objetos y así aprovechar las características de este tipo de programación, tales como la reutilización del código, la herencia, polimorfismo, etc.

La idea en principio puede ser muy buena, sin embargo, la realización de la misma no es nada sencilla, ya no por su complejidad, sino más bien por lo laborioso del problema. Sin embargo, compañías de la talla de Microsoft y Borland no podían olvidarse de este detalle y ambas empresas optaron por realizar unas librerías que aglutinasen las diferentes APIs del sistema operativo. El resultado de esto fue la aparición de las Microsoft Fundation Classes (MFC) y la Object Windows Library (OWL). Ambas librerías facilitan en gran medida la programación en Windows y además hacen que el código sea mucho más portable, ya que las compañías poseen las mismas librerías para diferentes plataformas, como Macintosh, OS/2, etc.

Cuando nos planteamos la realización de un programa caemos en la disyuntiva de qué librería utilizar: ¿OWL o MFC? Esta pregunta no tiene una respuesta clara puesto que habrá que ponderar muchos factores a la hora de decidirse por una o por otra. En principio, MFC es soportada por la mayor parte de los compiladores, incluyendo Watcom C++, Symantec C++ y, por supuesto, Microsoft Visual C++. Hasta la versión 4.5 Borland únicamente compilaba OWL, pero en la versión 5.0 de su compilador ya se ha introducido la capacidad de compilar MFC. De este modo se puede afirmar que MFC es la librería estándar por excelencia. Además debemos de tener en cuenta que Microsoft es el primero en conocer las nuevas características de los sistemas operativos Windows (no en vano es el fabricante de los mismos), eso quiere decir que las MFC serán las librerías que primero soporten las nuevas ventajas que se vayan incorporando. OWL por su lado mantiene una gran similitud con las librerías utilizadas en sus compiladores de Pascal, por lo que para las personas que migren de un lenguaje a otro la opción que menos les costará asimilar serán las OWL. Además, los programadores que ya tengan realizadas ciertas rutinas con versiones anteriores de Borland, desde la 3.1 hasta la 4.5, podrán seguir utilizándolas sin ningún coste en tiempo adicional.

Algunos rumores que circularon por diferentes revistas especializadas americanas aseguraban que Borland iba a abandonar la tecnología OWL, pero una nota en el WEB de Borland venía a desmentir rotundamente este rumor. Esto no tendría demasiada importancia si no estuviera en juego la reutilización del código de muchos programadores, que pueden ver como para seguir actualizando sus programas deben de transformar su código en otro tipo de tecnología como las MFC. Aunque el desmentido es rotundo, no podemos olvidar que Borland en su versión 5.0 ya compila MFC y, en la siguiente versión que se anuncia del compilador además de compilar las librerías de Microsoft también las licenciará. Quizás éste sea el primer paso en su abandono de las OWL, pero en cualquier caso, no pensamos que Borland vaya a dejar en la estacada a muchos de sus programadores y lo normal será que sigan coexistiendo ambas librerías.

Depuradores

Todos sabemos que nadie hace programas sin errores. Los errores pueden ser de mayor o menor envergadura, pero lo cierto es que si el proyecto ocupa unos cuantos folios, la probabilidad de cometer algún tipo de error es altísima. Los depuradores (debuggers) son una herramienta imprescindible a la hora de poder detectar un cierto tipo de errores. Si bien casi todos los errores de sintaxis son detectados en tiempo de compilación por el compilador, los errores de diseño o los errores algorítmicos son imposibles de detectar antes de ejecutar el programa. Con el depurador tenemos el programa bajo nuestro control, de forma que podremos seguir paso a paso el

Contenidos recomendados...

Comentar
Para comentar, es necesario iniciar sesión
Se muestran 0 comentarios
X

Uso de cookies

Esta web utiliza cookies técnicas, de personalización y análisis, propias y de terceros, para facilitarle la navegación de forma anónima y analizar estadísticas del uso de la web. Consideramos que si continúa navegando, acepta su uso. Obtener más información