{{위키데이터 속성 추적}}
{{소프트웨어 정보
|이름=오픈 왓콤 C/C++
|logo=Watcom logo.png
|screenshot= 
|caption= 
|collapsible= 
|author=[[왓콤]]
|developer=[[사이베이스]], [[SciTech Software]]
|released={{시작 날짜와 나이|2003|01|08|br=yes}}
|latest_release_version=1.9
|latest release version=1.9
|latest_release_date={{시작 날짜와 나이|2010|06|02|br=yes}}
|latest release date={{시작 날짜와 나이|2010|06|02|br=yes}}
|latest_preview_version=2.0
|latest preview version=2.0
|latest_preview_date={{시작 날짜와 나이|2015|04|02|br=yes}}
|latest preview date={{시작 날짜와 나이|2015|04|02|br=yes}}
|programming language=[[C (프로그래밍 언어)|C]], [[C++]], [[FORTRAN]]
|size=66–84 MB
|platform=[[IA-32]], [[x86-64]]
|language =
|genre=[[통합 개발 환경]]
|license=[[사이베이스 오픈 왓콤 공개 허가서]] 버전 1.0
|website={{URL|openwatcom.org}}
}}

'''왓콤 C/C++'''(Watcom C/C++, 현재는 '''오픈 왓콤 C/C++''')은 [[왓콤 국제 기업]]의 [[C (프로그래밍 언어)|C]], [[C++]], [[포트란|Fortran]] [[프로그래밍 언어]]용 [[통합 개발 환경]] (IDE)제품이다. 왓콤 C/C++은  단종될 때까지 상업적인 제품이었으며, 이후에는 오픈 왓콤 C/C++이라는 이름으로 [[프리웨어]]로 출시되었다. [[x86]], [[IA-32]], [[x86-64]] 호환하는 프로세서를 기반으로 하는 [[MS-DOS]], [[OS/2]], [[마이크로소프트 윈도우|윈도우]], [[리눅스]] [[운영 체계|운영 체제]]용 코드를 [[개발]]하고 [[디버깅]]하기 위한 도구를 제공한다.

==역사==
[[사이베이스|사이베이스]]에서는 더 이상 판매하지는 않지만, 왓콤 C/C ++ 컴파일러와 왓콤 [[포트란]] 컴파일러는 ''오픈 왓콤'' 꾸러미로 무료로 제공된다.

2005년 12월의 오픈 왓콤 C/C++ 1.4 버전 출시판은 NT 또는 OS/2 호스트 플랫폼에서 지원되는 리눅스 x86을 실험 대상으로 도입했다. 버려진 [[QNX]] 버전에 대한 코드가 있지만 컴파일에 필요한 라이브러리를 오픈 소스로 공개 할 수 없다.{{출처|날짜=2018-03-03}}

안정화 버전 1.9는 2010년 6월 출시되었다.<ref>{{웹 인용|url=http://www.openwatcom.org/index.php/Main_Page#Latest_Release_.28June_2010.29|title=Latest Release (June 2010) - Open Watcom|publisher=OpenWatcom.org wiki|확인날짜=2015년 3월 17일|보존url=https://web.archive.org/web/20150317091931/http://www.openwatcom.org/index.php/Main_Page#Latest_Release_.28June_2010.29|보존날짜=2015년 3월 17일|url-status=dead}}</ref>

64 비트 호스트 (윈도우즈 및 리눅스), 내장 텍스트 편집기, 2 단계 구축 체제 및 긴 파일 이름 (LFN)을 지원하는 도스 버전을 지원하는 분기 버전 2.0 베타가 출시되었다.

=== 출시 이력 ===
''오픈 왓콤 위키''에는 포괄적인 기록<ref name="hist"/>이 있다.

{| class="wikitable"
! 날짜 || 제품명 || 참고
|-
| 1984 || S/370용 워털루 C ||
|-
| 1985 || || 현재 코드 생성기 코드베이스 작업 시작됨.
|-
| 1988 || Watcom C 6.0 ||
* 도스 호스트 및 대상 전용
* 디버거 및 전체 [[런타임 라이브러리]] 세트가 포함
* 당시 다른 컴파일러 보다 우수한 코드 생성됨
* Watcom C 6.5 버전에는 마이크로소프트 그래픽 라이브러리와 유사한 그래픽 라이브러리가 포함
|-
| 1989 || Watcom C 7.0 ||
|-
| 1989 || Watcom C 7.0/386 ||
* 첫 번째 32 비트 버전, 도스 호스트 및 대상 전용
* [[Phar Lap (company)|Phar Lap]] [[도스 확장자|DOS 확장자]]를 지원
* [[링커]] 나 [[디버거]]와 함께 제공되지 않음
|-
| 1990 || Watcom C 8.0 ||
|-
| 1990 || Watcom C 8.0/386 ||
* [[링커 (컴퓨팅)|링커]], 사서, [[디버거]], [[프로파일링 (컴퓨터 프로그래밍)|프로파일러]]가 추가됨

|-
| 1991 || Watcom C 8.5 ||
|-
| 1991 || Watcom C 8.5/386 ||
* [[DOS/4G|DOS/4GW]]와 함께 제공됨
* [[윈도우 3.0|윈도우즈 3.0]] 지원함(Win386 확장자)
* [[유니코드]] 지원
* [[OS/2]] 호스트 실행 파일 추가됨
|-
| 1992 || Watcom C 9.0 ||
|-
| 1992 || Watcom C 9.0/386 ||
* OS/2 2.0 호스트와 대상 지원
* [[인텔 80486|486]] 최적화
* 기반 포인터 지원
|-
| ||Watcom C 9.01/386 ||
* [[윈도우 3.1x|윈도우즈 3.1]] 지원
|-
| 1993 || Watcom C/C++ 9.5 ||
|-
| 1993 || Watcom C/C++ 9.5/386 ||
* C++ 컴파일러가 추가됨
* [[P5 (마이크로아키텍처)|펜티엄]] 최적화
* [[윈도우 NT|윈도우즈 NT]] 호스트와 대상을 지원
|-
| 1994 || Watcom C/C++ 10.0 ||
* [[마이크로소프트 파운데이션 클래스 라이브러리|MFC]] 포함됨
* [[전처리된 헤더]] 지원
* 16 비트와 32 비트 도구가 한 꾸러미로 합쳐짐
* 디버거를 다시 설계함
* C++ 클래스 브라우저를 추가함
* 윈도우즈 자원 편집기 추가됨
* 윈도우즈 및 OS/2용 그래픽 [[통합 개발 환경|IDE]]
|-
| 1995 || Watcom C/C++ 10.5 ||
* OS/2와 [[윈도우 API|Win32]]에서 기본 C++ 예외처리
* [[윈도우 95|Windows 95]] 및 [[윈도우 NT 3.5|NT 3.5]] 지원
* [[인터넷 프로토콜 스위트|TCP/IP]] 원격 디버깅
|-
| 1996 || Watcom C/C++ 10.6 ||
* C에서 [[구조화된 예외처리]]
* [[마이크로소프트|Microsoft]] 컴파일러와의 호환성 향상됨
|-
| 1997 || Watcom C/C++ 11.0 ||
* C++ 컴파일러에서 ''[[이름공간|네임스페이스]]'', [[런타임 타입 정보|RTTI]], 새로운 형식의 [[형 변환|캐스트]]를 지원
* 64 비트 정수형 지원
* 라이브러리의 멀티바이트 문자 지원
* 증분 링크 지원
* 링커와 사서에서 COFF 와 [[ELF 파일 형식|ELF]] 목적 파일 지원
* Microsoft 유사 도구 추가
* [[동적 링크 라이브러리|DLL]] 이 더나은 IDE 통합용 도구를 기반으로함
|-
| 1998 || Watcom C/C++ 11.0B ||
|-
| 1999 || || 사이베이스가 Watcom C/C++ 11.0 용 [[수명종료]]를 통지
|-
| 2000 || || 사이베이스가 왓콤 도구의 오픈 소스화를 발표
|-
| 2001-09-27 || Watcom C/C++ 11.0c Beta ||
|-
| 2002-12-21 || Watcom C/C++ 11.0c ||
|-
| 2003-01-28 || Open Watcom 1.0 ||
|-
| 2003-08-12 || Open Watcom 1.1 ||
|-
| 2004-01-07 || Open Watcom 1.2 ||
|-
| 2004-08-03 || Open Watcom 1.3 ||
|-
| 2005-12-14 || Open Watcom 1.4 ||
|-
| 2006-04-26 || Open Watcom 1.5 ||
|-
| 2006-12-15 || Open Watcom 1.6 ||
|-
| 2007-08-18 || Open Watcom 1.7 ||
|-
| 2007-10-23 || Open Watcom 1.7a ||
|-
| 2009-02-21 || Open Watcom 1.8 ||
|-
| 2010-06-02 || Open Watcom 1.9 || '''현재의 공식 버전'''
|-
| 2015-04-02 || Open Watcom 2.0 Beta || 깃허브 V2 [[포크 (소프트웨어 개발)|분기판]]이다. 오픈 왓콤이 64 비트 호스트 (윈도우즈 및 리눅스), 자원 컴파일러 및 자원 편집기 지원 WIN64 실행 파일, 내장 텍스트 편집기, 2 단계 빌드 시스템, 도구의 도스 버전은 [[긴 파일 이름]] (LFN), 다양한 수정 사항을 지원한다.<ref name="release20150402">[https://open-watcom.github.io/open-watcom/ List of main differences of v1.9 to v2.0 Beta.]</ref>
|}

==허가서==
[[오픈 소스 이니셔티브]]는 [[오픈 소스]]로 허가서를 승인했지만 [[데비안]], [[페도라 (운영 체제)|페도라]] 및 [[자유 소프트웨어 재단]]은 "해당 소프트웨어를 "배포"할 때마다 소스 코드를 공개적으로 게시해야 하며 "배포"에는 많은 종류의 비공개 사용이 포함되도록 정의되어있다."<ref>{{웹 인용|last1=Free Software Foundation|title=Various Licenses and Comments about Them|url=https://www.gnu.org/licenses/license-list.html#Watcom|website=GNU Operating System|accessdate=Dec 23, 2014}}</ref>

==설계==
컴파일러는 도스 ([[MS-DOS]], [[FreeDOS]]), [[OS/2]], [[윈도우즈]], [[리눅스]] [[운영체제]]에서 작동하고 실행 가능 코드를 생성 할 수 있다. [[Novell NetWare]]용 [[NLM]] 대상도 지원한다. [[x86]], [[파워PC|PowerPC]]및 기타 프로세서에서 실행되는 [[리눅스]] 및 현대의 [[BSD]] (예: [[FreeBSD]]) 운영 체제로 대상을 확장하는 작업이 진행 중이다.

이 코드는 이식성이 있으며 [[GCC]] 또는 [[LCC]]와 같은 다른 많은 오픈 소스 컴파일러 프로젝트와 마찬가지로 컴파일러 백엔드 (코드 생성기)는 대상을 다시 지정할 수 있다.

==사용==
1990년대 중반에 ''[[둠 (1993년 비디오 게임)|둠]]'',<ref name="hist">[http://openwatcom.com/index.php/History History - Open Watcom] {{웨이백|url=http://openwatcom.com/index.php/History |date=20061020193317 }}. OpenWatcom.com wiki.</ref> ''[[디센트 (비디오 게임)|디센트]]'',<ref name="hist" /> ''[[듀크 뉴켐 3D]]'',<ref name="hist" />, 와 ''라이즈 오브 더 트라이어드''<ref name="rott">{{웹 인용|url=http://legacy.3drealms.com/faq/rottfaq30.txt|제목=RotT was written in Watcom C++ v10.0 with the Rational Systems DOS/4GW extender}}</ref>와 같은 기술적으로 야심적인 [[MS-DOS]] [[컴퓨터 게임]] 중 일부는 왓콤 컴파일러 와 [[DOS/4G|DOS/4GW]] [[보호 모드|보호 모드 확장자]]를 사용하는 ROTT와 같은 왓콤 C/C++를 사용하여 제작되었다.

2015년에 [[복고풍 도시 난동]]을 [[MS-DOS]]로 이식하는 데 사용되었다.<ref>{{웹 인용|url=http://www.gamasutra.com/view/news/248019/How_5_years_of_burning_ambition_brought_Retro_City_Rampage_to_DOS.php|제목=How 5 years of burning ambition brought Retro City Rampage to DOS|출판사=Gamasutra}}</ref>

[[바이오스]]를 컴파일 하기 위해 [[버추얼 박스]]가 사용된다.<ref>{{웹 인용|url=https://www.virtualbox.org/ticket/12011|제목=#12011 (Compiling BIOS requires Open Watcom compiler)? Oracle VM VirtualBox|웹사이트=www.virtualbox.org|확인날짜=2017-06-17}}</ref>

==변형==
[[GitHub|깃허브]]<ref>{{웹 인용|url=https://github.com/open-watcom|title=Open Watcom V2 Fork Project on GitHub}}</ref>에는 오픈 왓콤 V2의 비공식 [[Fork (software development)|포크]]<ref>{{웹 인용|url=https://open-watcom.github.io/open-watcom/|title=Open Watcom V2 Fork}}</ref>가 있다. 16 비트 도스 <abbr title="C RunTime">CRT</abbr> 라이브러리 시작의 변형이 [[Open Watcom Assembler|WASM]]으로 작성되었다.<ref>{{웹 인용|url=http://purl.net/xyzzy/dos/pcdosasm.htm#td|title=pcdosasm.zip archive|quote=Modified Open Watcom C/C++ DOS 16-bit ..\STARTUP\DOS\CSTRT086.ASM code|date=2010-07-27|accessdate=2014-02-10}}</ref>

== 호환성 ==
오픈 왓콤의 구문은 [[마이크로소프트]]것과 [[볼랜드]]것과 같은 다른 컴파일러가 도입한 여러 가지 규칙을 지원한다. 예를 들어 "asm"태그의 앞에 오는 밑줄의 수와 관련된 다른 규칙을 포함한다. 표준 호환 C 또는 C++가 아닌 다른 컴파일러 용으로 작성된 코드는 종종 Watcom 컴파일러로 컴파일된다.

컴파일러는 C89/C90 표준을 기본적으로 지원한다.

오픈 왓콤은 [[C99]] 표준과의 부분 호환성을 지원한다. 가장 일반적으로 사용되는 표준 부분을 구현한다. 그러나 문서화되지 않은 명령 줄 스위치 "-za99"를 통해서만 사용할 수 있다. 3 가지 C99 기능은 pre-v1.0 : C ++ 스타일 주석 (//), 유연한 배열 멤버, 열거 형 선언에 허용되는 후행 쉼표로 C90 확장으로 번들되었다.<ref>{{웹 인용|url=http://openwatcom.org/index.php/C99_Compliance |title=C99 compliance in Open Watcom |accessdate=25 September 2015 |url-status=dead |archiveurl=https://web.archive.org/web/20150503232909/http://openwatcom.org/index.php/C99_Compliance |archivedate=May 3, 2015 }}</ref>

컴파일러는 현재 새로운 주요 [[C11 (C standard revision)|C11]] 기능을 지원하지 않지만, C 라이브러리에는 "Safe C"기능이 포함되어 있다. 이는 C11의 "경계 검사 인터페이스 (Annex K)"로 알려진 ISO/IEC TR 24731-1<ref>[http://www.open-std.org/jtc1/sc22/wg14/www/docs/n1225.pdf ISO/IEC TR 24731-1; Extension to the C Library, Part 1: Bounds-checking interfaces.]</ref><ref name="N1969">[http://www.open-std.org/jtc1/sc22/wg14/www/docs/n1969.htm WG14 N1969 ? "Updated Field Experience With Annex K ? Bounds Checking Interfaces", Carlos O'Donell, Martin Sebor]</ref>에 명시되어있다. 일부 함수 이름 예제는 strcpy_s(), memcpy_s(), printf_s()이다.<ref>[https://web.archive.org/web/20150503192244/http://openwatcom.org/index.php/Safer_C_Library Open Watcom Safer C Library]</ref> 이 라이브러리는 2006년 4월에 오픈 왓콤 1.5와 함께 출시되었다.

== 참고 사항 ==
* [[오픈 왓콤 어셈블러]]

== 각주 ==
{{각주|30em}}

== 외부 링크 ==
* {{공식 웹사이트|openwatcom.org|Open Watcom}}, 공식 사이트, ({{웹 인용 |url=http://www.openwatcom.org/index.php/Main_Page |제목=보관된 사본 |확인날짜=2018-03-01 |보존url=https://web.archive.org/web/20150317091931/http://www.openwatcom.org/index.php/Main_Page |보존날짜=2015-03-17 |url-status=dead }})
* [ftp://ftp.openwatcom.org/pub/ 오픈 왓콤 V1.9 실행파일 내려받기]{{깨진 링크|url=ftp://ftp.openwatcom.org/pub/ }}
* {{깃허브|open-watcom/open-watcom-v2|오픈 왓콤 V2 분기판}}
* [http://sourceforge.net/projects/openwatcom/files/current-build/ 오픈 왓콤 V2 분기판 실행파일 내려받기]
* {{웹 인용|url=http://www.azillionmonkeys.com/qed/watfaq.shtml|제목=The WATCOM C/C++ Programmer’s FAQ|성=Paul Hsieh.|날짜=May 8, 2005|확인날짜=Oct 7, 2008}}
* {{저널 인용|저자=Rick Grehan|제목=Watcom C/C++ Gets a New Face|url=http://byte.com/art/9410/sec12/art5.htm|archiveurl=https://web.archive.org/web/19970712221411/http://www.byte.com/art/9410/sec12/art5.htm|archivedate=1997-07-12 |journal=BYTE |date=October 1994 |page=111|volume=19|issue=10|accessdate=2011-05-14}}

{{C 프로그래밍 언어}}
{{통합 개발 환경}}

[[분류:C++ 컴파일러]]
[[분류:C 컴파일러]]