Watcom C/C++ (actualmente Open Watcom C/C++ ) es un producto de entorno de desarrollo integrado (IDE) de Watcom International Corporation para los lenguajes de programación C , C++ y Fortran . Watcom C/C++ era un producto comercial hasta que se suspendió y luego se lanzó bajo la licencia pública Sybase Open Watcom como Open Watcom C/C++. Cuenta con herramientas para desarrollar y depurar código para sistemas operativos DOS , OS/2 , Windows y Linux , que se basan en procesadores compatibles 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 beta 2.0 bifurcada que admite hosts de 64 bits (Windows y Linux), un editor de texto integrado, un sistema de compilación de 2 fases y la versión DOS admite nombres de archivos largos (LFN). [4]
Open Watcom Wiki tiene una historia completa. [5] [3]
La Open Source Initiative ha aprobado la licencia como código abierto , pero Debian , Fedora y la Free Software Foundation la han rechazado porque "requiere que usted publique el código fuente públicamente cada vez que "implemente" el software cubierto, y "implementar" está definido. incluir muchos tipos de uso privado." [9]
El compilador puede funcionar 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 orientación a Linux [10] y sistemas operativos BSD modernos (por ejemplo, FreeBSD ), que se ejecutan en x86 , PowerPC y otros procesadores.
El código es portátil y, como muchos otros proyectos de compiladores de código abierto, como GCC o LCC, el backend del compilador (generador de código) es reorientable.
A mediados de la década de 1990, algunos de los juegos de computadora para 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 el BIOS . [13]
El desarrollo actual para FreeDOS requiere que todo el código fuente 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 del inicio de la biblioteca DOS CRT de 16 bits con WASM . [18]
La sintaxis de Open Watcom admite muchas convenciones [ ¿cuáles? ] introducido por otros compiladores, como 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++ compatible con el estándar a menudo se compilará con el compilador 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 sólo a través del modificador de línea de comandos no documentado "-za99". Se han incluido tres características de C99 como extensión C90 desde la versión anterior a la versión 1.0: comentarios de estilo C++ (//), miembros de matriz flexibles y coma final permitida en la declaración de enumeración. [19]
El compilador actualmente no admite ningún nuevo [ ¿cuándo? ] características principales de C11 , aunque la biblioteca C incluye funciones "Safe C". Se especifica en ISO/IEC TR 24731-1 [20] [21] y se conoce como "Interfaces de verificación de límites (Anexo K)" en C11. Algunos ejemplos de nombres de funciones son strcpy_s(), memcpy_s(), printf_s(). [22] Esta biblioteca se lanzó junto con Open Watcom 1.5 en abril de 2006.
Código abierto modificado Watcom C/C++ DOS de 16 bits ..\STARTUP\DOS\CSTRT086.ASM