找回密码
 立即注册→加入我们

QQ登录

只需一步,快速开始

搜索
热搜: 下载 VB C 实现 编写
查看: 6301|回复: 1

【编译器】OpenWatcom:支持DOS并且优化很牛逼的C语言编译器

[复制链接]
发表于 2015-3-29 03:13:43 | 显示全部楼层 |阅读模式

欢迎访问技术宅的结界,请注册或者登录吧。

您需要 登录 才可以下载或查看,没有账号?立即注册→加入我们

×
OpenWatcom是一款DOS时代就有的C语言编译器,比起Turbo C++ 3.0来,OpenWatcom 1.9作为一款C语言编译器在DOS下的表现令人满意,虽然编译速度稍慢,但是优化做得非常好。它能自动将短函数进行内联处理,根据情况可以省略一些函数的栈帧,同时根据需求的处理器平台进行指令集优化和浮点指令集优化。编译出来的C语言程序和Turbo C++ 3.0编译出来的程序相比有明显的速度提升。

OpenWatcom官网:
www.openwatcom.org

现在OpenWatcom能运行的平台有:DOS,Linux,OS/2,Windows
它能编译的目标平台有:DOS(纯16位实模式,或者32位保护模式),Linux,OS/2,Windows
你可以通过设置编译命令开关来指定你要面向的目标处理器平台,比如8086、286、386、486、586等。可以编译为各种中间文件格式,比如DOS的obj、Linux的elf以及MSVC的COFF,甚至还能编译出RAW——你甚至可以使用它编译MBR或者DBR指令。

优化的方式也很多,比如根据用户函数的尺寸进行内联处理,按情况省略栈帧,进行循环优化和循环展开优化,对数学函数进行内联处理(比如将sqrt函数直接编译成fsqrt指令等),根据流水线需求将指令位置进行调整等。

用户还能根据自己的需求对每个段的段名、段组、各个段寄存器的使用方式等进行调整,以迎合特殊需求。支持的调用约定也十分多,从最基本的_cdecl到_stdcall、_fastcall、_pascal、_fortran、_syscall等都有支持。由此可见你可以使用它编写多种语言组合的程序。它自己使用的调用约定是_watcall。

编译产生的obj还能根据需求插入精确到行的调试信息。对于浮点数的支持,从模拟浮点数,到286、386、486、586等各个平台针对的浮点数处理方式优化,再到混合模拟浮点数与高级CPU浮点数指令的混合做到既能用上高级浮点数又能兼容低级处理器的特殊浮点数优化方式,可以保证程序的兼容性达到很高的值。

目前我使用过的DOS下的C语言编译器有Turbo C++ 3.0,OpenWatcom 1.9,DJGPP。其中的DJGPP其实是编译成32位指令。它并不能产生8086实模式指令。因此不能用于操作系统的编写。不过随着UEFI引导模式的普及,也许对16位指令集的支持将不再需要了吧。

FTP页面:
ftp://ftp.openwatcom.org/
下载地址:
ftp://ftp.openwatcom.org/open-watcom-c-dos-1.9.exe
如果速度慢可以访问这个地址:
http://mirrors.go-parts.com/openwatcom//open-watcom-c-dos-1.9.exe
论坛备用下载地址:
链接:http://pan.baidu.com/s/1o6wXSCE(访问密码:w5fn)

本帖被以下淘专辑推荐:

回复

使用道具 举报

发表于 2016-1-25 05:28:09 | 显示全部楼层
天哪!我今天突然回想起A5的这篇帖子。
然后我看到了“open”!open!
watcom把整个编译器开源了!
watcom C/C++是20世纪90年代目标代码可执行效率最为牛逼的编译器!
是用来写dos和nt3.1下游戏的程序员必备编译器。
因为没有合适的framework和ide被ms的vc杀掉了。
然而不幸的是watcom开源了整个编译器。
同样被ms搞死的是bl turbo basic,我记得后来成了power basic。
turbo basic编译效率等于turbo c,无人能敌。最终还是被ms搞死。
pb现在半死不活,看来是不打算开发64位basic编译器了。
问题是pb开源了也没用,没人会去用ddt库写界面了。
一个bill gates把多少人逼到失业的gate。
来到ms的大门(gates)先付账单(bill)
回复 赞! 靠!

使用道具 举报

本版积分规则

QQ|Archiver|小黑屋|技术宅的结界 ( 滇ICP备16008837号 )|网站地图

GMT+8, 2024-11-21 20:24 , Processed in 0.038875 second(s), 26 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表