Watcom C/C++ (currently Open Watcom C/C++) is an
integrated development environment
An integrated development environment (IDE) is a software application that provides comprehensive facilities to computer programmers for software development. An IDE normally consists of at least a source code editor, build automation tools ...
(IDE) product from
Watcom International Corporation
Watcom International Corporation was a software company, which was founded in 1981 by Wes Graham and Ian McPhee. Founding staff (Fred Crigger, Jack Schueler and McPhee) were formerly members of Professor Graham's Computer Systems Group at the Uni ...
for the
C,
C++
C++ (pronounced "C plus plus") is a high-level general-purpose programming language created by Danish computer scientist Bjarne Stroustrup as an extension of the C programming language, or "C with Classes". The language has expanded significan ...
, and
Fortran programming language
A programming language is a system of notation for writing computer programs. Most programming languages are text-based formal languages, but they may also be graphical. They are a kind of computer language.
The description of a programming ...
s. Watcom C/C++ was a commercial product until it was discontinued, then released under the
Sybase Open Watcom Public License
The Sybase Open Watcom Public Licence is a software license that has been approved by the Open Source Initiative. It is the licence under which the Open Watcom C/C++ compiler is released.
The license has not been accepted as "free" under the Deb ...
as Open Watcom C/C++. It features tools for
developing and
debugging code for
DOS
DOS is shorthand for the MS-DOS and IBM PC DOS family of operating systems.
DOS may also refer to:
Computing
* Data over signalling (DoS), multiplexing data onto a signalling channel
* Denial-of-service attack (DoS), an attack on a communicat ...
,
OS/2
OS/2 (Operating System/2) is a series of computer operating systems, initially created by Microsoft and IBM under the leadership of IBM software designer Ed Iacobucci. As a result of a feud between the two companies over how to position OS/2 r ...
,
Windows
Windows is a group of several proprietary graphical operating system families developed and marketed by Microsoft. Each family caters to a certain sector of the computing industry. For example, Windows NT for consumers, Windows Server for ser ...
,
Linux
Linux ( or ) is a family of open-source Unix-like operating systems based on the Linux kernel, an operating system kernel first released on September 17, 1991, by Linus Torvalds. Linux is typically packaged as a Linux distribution, w ...
operating systems, which are based upon
x86
x86 (also known as 80x86 or the 8086 family) is a family of complex instruction set computer (CISC) instruction set architectures initially developed by Intel based on the Intel 8086 microprocessor and its 8088 variant. The 8086 was intr ...
,
IA-32
IA-32 (short for "Intel Architecture, 32-bit", commonly called i386) is the 32-bit version of the x86 instruction set architecture, designed by Intel and first implemented in the 80386 microprocessor in 1985. IA-32 is the first incarnation o ...
,
x86-64
x86-64 (also known as x64, x86_64, AMD64, and Intel 64) is a 64-bit version of the x86 instruction set, first released in 1999. It introduced two new modes of operation, 64-bit mode and compatibility mode, along with a new 4-level paging ...
compatible processors.
History
Though no longer sold commercially by
Sybase, the Watcom C/C++ compiler and the Watcom
Fortran compiler have been made available free of charge as the ''Open Watcom'' package.
Stable version 1.9 was released in June 2010.
A
forked version 2.0 beta was released that supports 64-bit hosts (Windows and Linux), built-in text editor, 2-phase build system, and the DOS version supports
long filenames (LFN).
Release history
The ''Open Watcom Wiki'' has a comprehensive history.
License
The
Open Source Initiative
The Open Source Initiative (OSI) is the steward of the Open Source Definition, the set of rules that define open source software. It is a California public-benefit nonprofit corporation,_with_501(c)(3).html" ;"title="110. - 6910./ref> is a type o ...
has approved the license as
open source, but
Debian,
Fedora and the
Free Software Foundation
The Free Software Foundation (FSF) is a 501(c)(3) non-profit organization founded by Richard Stallman on October 4, 1985, to support the free software movement, with the organization's preference for software being distributed under copyleft (" ...
have rejected it because "It requires you to publish the source code publicly whenever you “Deploy” the covered software, and “Deploy” is defined to include many kinds of private use."
Design
The compiler can be operated from, and generate executable code for, the
DOS
DOS is shorthand for the MS-DOS and IBM PC DOS family of operating systems.
DOS may also refer to:
Computing
* Data over signalling (DoS), multiplexing data onto a signalling channel
* Denial-of-service attack (DoS), an attack on a communicat ...
,
OS/2
OS/2 (Operating System/2) is a series of computer operating systems, initially created by Microsoft and IBM under the leadership of IBM software designer Ed Iacobucci. As a result of a feud between the two companies over how to position OS/2 r ...
,
Windows
Windows is a group of several proprietary graphical operating system families developed and marketed by Microsoft. Each family caters to a certain sector of the computing industry. For example, Windows NT for consumers, Windows Server for ser ...
, Linux
operating systems. It also supports
NLM targets for
Novell NetWare
NetWare is a discontinued computer network operating system developed by Novell, Inc. It initially used cooperative multitasking to run various services on a personal computer, using the IPX network protocol.
The original NetWare product in ...
. There is ongoing work to extend the targeting to
Linux
Linux ( or ) is a family of open-source Unix-like operating systems based on the Linux kernel, an operating system kernel first released on September 17, 1991, by Linus Torvalds. Linux is typically packaged as a Linux distribution, w ...
and modern
BSD
The Berkeley Software Distribution or Berkeley Standard Distribution (BSD) is a discontinued operating system based on Research Unix, developed and distributed by the Computer Systems Research Group (CSRG) at the University of California, Berk ...
(e.g.,
FreeBSD) operating systems, running on
x86
x86 (also known as 80x86 or the 8086 family) is a family of complex instruction set computer (CISC) instruction set architectures initially developed by Intel based on the Intel 8086 microprocessor and its 8088 variant. The 8086 was intr ...
,
PowerPC, and other processors.
The code is portable and, like many other open source compiler projects such as
GCC or
LCC the compiler backend (code generator) is retargetable.
Uses
In the mid-1990s some of the most technically ambitious
DOS
DOS is shorthand for the MS-DOS and IBM PC DOS family of operating systems.
DOS may also refer to:
Computing
* Data over signalling (DoS), multiplexing data onto a signalling channel
* Denial-of-service attack (DoS), an attack on a communicat ...
computer games such as ''
Doom
Doom is another name for damnation.
Doom may also refer to:
People
* Doom (professional wrestling), the tag team of Ron Simmons and Butch Reed
* Daniel Doom (born 1934), Belgian cyclist
* Debbie Doom (born 1963), American softball pitcher
* ...
'',
[History - Open Watcom](_blank)
OpenWatcom.com wiki. ''
Descent
Descent may refer to:
As a noun Genealogy and inheritance
* Common descent, concept in evolutionary biology
* Kinship, one of the major concepts of cultural anthropology
**Pedigree chart or family tree
** Ancestry
** Lineal descendant
**Heritag ...
'',
''
Duke Nukem 3D
''Duke Nukem 3D'' is a first-person shooter video game developed by 3D Realms. It is a sequel to the platform games ''Duke Nukem (video game), Duke Nukem'' and ''Duke Nukem II'', published by 3D Realms.
''Duke Nukem 3D'' features the adventures ...
'',
''
Rise of the Triad
''Rise of the Triad: Dark War'' is a first-person shooter video game, developed and published by Apogee Software (now 3D Realms) in 1995. The player can choose one of five different characters to play as, each bearing unique attributes such as ...
'',
and
Tomb Raider
''Tomb Raider'', also known as ''Lara Croft: Tomb Raider'' from 2001 to 2008, is a media franchise that originated with an action-adventure video game series created by British gaming company Core Design. Formerly owned by Eidos Interactive, ...
were built using Watcom C/C++ using the
DOS/4GW
DOS/4G is a 32-bit DOS extender developed by Rational Systems (later Tenberry Software). It allows DOS programs to eliminate the 640 KB conventional memory limit by addressing up to 64 MB of extended memory on Intel 80386 and above machines ...
protected mode extender with the Watcom compiler.
It was used to port the game
Retro City Rampage
''Retro City Rampage'' is an action-adventure game developed by Vblank Entertainment. It is a parody of retro games and 1980s and 1990s pop culture, as well as ''Grand Theft Auto'' and similar games. It was first released for PlayStation 3, Play ...
to DOS in 2015.
It is used by
VirtualBox
Oracle VM VirtualBox (formerly Sun VirtualBox, Sun xVM VirtualBox and Innotek VirtualBox) is a type-2 hypervisor for x86 virtualization developed by Oracle Corporation.
VirtualBox was originally created by Innotek GmbH, which was acquired by S ...
to compile the
BIOS.
Current development for
FreeDOS
FreeDOS (formerly Free-DOS and PD-DOS) is a free software operating system for IBM PC compatible computers. It intends to provide a complete MS-DOS-compatible environment for running legacy software and supporting embedded systems.
FreeDOS can ...
requires that all C source code must be compilable by Open Watcom C.
Open Watcom is the recommended compiler for application and driver development for the OS/2-based
ArcaOS operating system.
Variants
There is an unofficial
fork
In cutlery or kitchenware, a fork (from la, furca 'pitchfork') is a utensil, now usually made of metal, whose long handle terminates in a head that branches into several narrow and often slightly curved tine (structural), tines with which one ...
of Open Watcom V2 on
GitHub
GitHub, Inc. () is an Internet hosting service for software development and version control using Git. It provides the distributed version control of Git plus access control, bug tracking, software feature requests, task management, continu ...
. A variant of the 16bit DOS
CRT library startup was created with
WASM.
Compatibility
Open Watcom's syntax supports many conventions introduced by other compilers, such as
Microsoft
Microsoft Corporation is an American multinational technology corporation producing computer software, consumer electronics, personal computers, and related services headquartered at the Microsoft Redmond campus located in Redmond, Washin ...
's and
Borland's, including differing conventions regarding (for instance) the number of leading underscores on the "asm" tag. Code written specifically for another compiler rather than standard-compliant C or C++ will often compile with the Watcom compiler.
The compiler supports C89/C90 standards by default.
Open Watcom supports partial compatibility with the
C99
C99 (previously known as C9X) is an informal name for ISO/IEC 9899:1999, a past version of the C programming language standard. It extends the previous version ( C90) with new features for the language and the standard library, and helps impl ...
standard. It implements the most commonly used parts of the standard. However, they are enabled only through the undocumented command-line switch "-za99". Three C99 features have been bundled as
C90 Extension since pre-v1.0: C++ style comments (//), flexible array members, trailing comma allowed in enum declaration.
The compiler currently doesn't support any new major
C11 C11, C.XI, C-11 or C.11 may refer to:
Transport
* C-11 Fleetster, a 1920s American light transport aircraft for use of the United States Assistant Secretary of War
* Fokker C.XI, a 1935 Dutch reconnaissance seaplane
* LET C-11, a license-build var ...
features, though the C library does include "Safe C" functions. It is specified in ISO/IEC TR 24731-1
[WG14 N1969 — "Updated Field Experience With Annex K — Bounds Checking Interfaces", Carlos O'Donell, Martin Sebor](_blank)
/ref> and known as "Bounds-checking interfaces (Annex K)" in C11. Some function name examples are strcpy_s(), memcpy_s(), printf_s(). This library was released along with Open Watcom 1.5 in April 2006.
See also
* Open Watcom Assembler
References
Further reading
Watcom C/C++ Gets a New Face
- review in October 1994 BYTE magazine
The WATCOM C/C++ Programmer's FAQ
External links
* Sybase, Inc. pages
Open Watcom
* , official website, ()
*
Open Watcom V1.9 & V2 Fork - installer downloads
on SourceForge
{{CProLang
C (programming language) compilers
C++ compilers
Formerly proprietary software
2003 software