Watcom C/C++ (actualmente Open Watcom C/C++ ) es un entorno de desarrollo integrado (IDE) de Watcom International Corporation para los lenguajes de programación C , C++ y Fortran . Watcom C/C++ fue un producto comercial hasta que se discontinuó y luego se lanzó bajo la licencia pública Sybase Open Watcom como Open Watcom C/C++. Incluye herramientas para desarrollar y depurar código para los sistemas operativos DOS , OS/2 , Windows y Linux , que se basan en procesadores compatibles con x86 de 16 bits , IA-32 de 32 bits o x86-64 de 64 bits .
Aunque Sybase ya no los vende comercialmente , el compilador Watcom C/C++ y el compilador Watcom Fortran están disponibles de forma gratuita como el paquete Open Watcom .
La versión estable 1.9 se lanzó en junio de 2010. [2] [3]
Se lanzó una versión bifurcada 2.0 beta que admite hosts de 64 bits (Windows y Linux), editor de texto incorporado, sistema de compilación de 2 fases y la versión DOS admite nombres de archivo largos (LFN). [4]
El Wiki de Open Watcom tiene una historia completa. [5] [3]
La Iniciativa de Código Abierto ha aprobado la licencia como de código abierto , pero Debian , Fedora y la Free Software Foundation la han rechazado porque "requiere que publiques el código fuente públicamente siempre que "implementes" el software cubierto, y "implementar" se define para incluir muchos tipos de uso privado". [9]
El compilador puede operarse desde los sistemas operativos DOS , OS/2 , Windows y Linux y generar código ejecutable para ellos . También admite destinos NLM para Novell NetWare . Se está trabajando para ampliar la capacidad de destino a Linux [10] y a los sistemas operativos BSD modernos (por ejemplo, FreeBSD ), que se ejecutan en procesadores x86 , PowerPC y otros.
El código es portable y, como muchos otros proyectos de compiladores de código abierto como GCC o LCC, el backend del compilador (generador de código) es redireccionable.
A mediados de la década de 1990, algunos de los juegos de computadora DOS técnicamente más ambiciosos , como Doom , [5] Descent , [5] Duke Nukem 3D , [5] Rise of the Triad , [11] y Tomb Raider se crearon utilizando Watcom C/C++ usando el extensor de modo protegido DOS/4GW con el compilador Watcom.
Se utilizó para portar el juego Retro City Rampage a DOS en 2015. [12]
VirtualBox lo utiliza para compilar la BIOS . [13]
El desarrollo actual de FreeDOS requiere que todo el código fuente de C sea compilable por Open Watcom C. [14]
Open Watcom es el compilador recomendado para el desarrollo de aplicaciones y controladores para el sistema operativo ArcaOS basado en OS/2 . [15]
Hay una bifurcación no oficial [16] de Open Watcom V2 en GitHub . [17] Se creó una variante de la biblioteca CRT DOS de 16 bits con WASM . [18]
La sintaxis de Open Watcom admite muchas convenciones [ ¿cuáles? ] introducidas por otros compiladores, como los de Microsoft y Borland , incluidas diferentes convenciones [ ¿cuáles? ] con respecto (por ejemplo) al número de guiones bajos iniciales en la etiqueta "asm". El código escrito específicamente para otro compilador en lugar de C o C++ que cumpla con los estándares a menudo se compilará con el compilador de Watcom.
El compilador admite los estándares C89/C90 de forma predeterminada.
Open Watcom admite compatibilidad parcial con el estándar C99 . Implementa las partes más utilizadas del estándar. Sin embargo, se habilitan únicamente a través del modificador de línea de comandos no documentado "-za99". Tres características de C99 se han incluido como extensión de C90 desde versiones anteriores a la v1.0: comentarios de estilo C++ (//), miembros de matriz flexibles, se permite la coma final en la declaración de enumeración. [19]
Actualmente, el compilador no admite ninguna característica nueva [ ¿cuándo? ] de C11 , aunque la biblioteca C sí incluye funciones de "Safe C". Se especifica en ISO/IEC TR 24731-1 [20] [21] y se conoce como "Bounds-checking interfaces (Anexo K)" en C11. Algunos ejemplos de nombres de funciones son strcpy_s(), memcpy_s(), printf_s(). [22] Esta biblioteca se publicó junto con Open Watcom 1.5 en abril de 2006.
En una reseña de febrero de 1989 sobre la optimización de compiladores de C, BYTE elogió la "velocidad de ejecución sin igual" de Watcom C 6.5 y señaló que era el más compatible con ANSI C. La revista recomendó: "Si la velocidad es absolutamente crítica y la compatibilidad con OS/2 no lo es, elija Watcom". [23]
\STARTUP\DOS\CSTRT086.ASM de Open Watcom C/C++ DOS de 16 bits modificado