C++ Applications 2015年3月30日更新 这里有一个有关系统、应用程序和库的列表,列表中的全部或者大部分代码用C++编写,当然,该列表并不全面。即使我如何努力,我也不能列举一个含有 1000个主要由C++编写的程序列表,但是这里的列表可能包含我听说过程序之中的第1000个。这是一个包括系统、应用程序和库的列表,读者可能熟悉其中的一些,新手可能有个概念C++能做什么,或者我仅仅觉得它很“酷”。 这里有一个链接 我(Bjarne Stroustrup)不能保证该列表的完全准确,但是我相信它是准确的,我信任那些发给我例子的人,不过我个人并没有见到源代码。我宁愿C++风格的代码,而不是大部分代码用C编写却尽力避免列出C或者C程序而称谓C++。列表中很多细节的描述来自开发人员和用户而不是我。 该列表的组织形式实在有点说不过去。我把那些明显和一个公司有关的应用程序列在该公司名下,但是有一些系统没有用这样的组织方式。 我并不知道列表中所有的缩写都什么意思。我也的确列出了一些C++的应用,即使他们依赖于C++的扩展,我欣赏更多的例子--尤其主要的应用。如果你发给我一个有URL地址的例子会更好一点。我并没有列出某些应用、系统或者库,除非我认为他们会让很多人感兴趣--我并不想尝试给出一个很完整的列表。我不会列出一种尚没有得到广泛应用的软件(抱歉)。这个列表意味着主要的应用,但在包含新产品方面则不太全面。我并不想表示“公平”,比如给出某个应用而不是某特定领域的所有产品--该列表试图给出一个整体印象,而不是帮助你选择某个产品。我尽量少重新描述某个产品,但会删除那些明显的广告性用语。 请注意我并不常看各项,有些可能有些陈旧了,方便时请发给我更新。 感谢发给我例子的诸位朋友,欢迎给出更多的例子和纠正错误。 其他人的列表: 明显跟一个组织相关的应用: - 12D Solutions: 计算机辅助系统,用于勘察、民用工程等等。
- Adobe Systems: 所有主要的应用用C++开发:
- Photoshop & ImageReady,
- Illustrator,
- Acrobat,
- InDesign,
- GoLive,
- Frame (大部分C, 一些C++)
- Alias|Wavefront: Maya. Maya 自从开发出来以后一直用于制作电影特效, 包括星球大战前传I,蜘蛛侠,指环王,精灵鼠小弟等。“我爱三维动画”。
- Amadeus: 正在运行中最大的欧洲非军用数据中心 (每秒超过5000个交易,连接20万个终端,24/7负载)大多数开发用C++语言。所有基于Unix服务器的应用全部用C++开发,例如:
- Amazon.com: 大型电子商务应用软件。
- Apple: OS X 操作系统使用很多语言开发,但是几个重要的部分用C++开发的。两个比较诱人的部分分别是,
- 搜索器(Finder)
- IOKit设备驱动 (IOKit 是内核里面仅有使用C++的地方)
还有, - AppleWorks
- iPod用户接口(Pixo应用框架用C++写的)
- 成千上万的Macintosh应用程序估计半数以上用C++开发的。
- Frameworks: 有3个广泛使用的Macintosh应用框架工程用C++开发,分别是Apple's MacApp(一些MacApp应用), Symantec's Think Class Libraries和 Metrowerks' PowerPlant。还有一些比较小(市场份额)的框架已经开发出来。
- Amdocs: 主要的电信账单模块(Enabler)完全用C++编写。他们是世界上头号电信商业支持系统销售商。
- Arium: 资源点;Intel和ARM系统硬件调试和仿真(包括多处理器系统)。
- AT&T: 美国最大的电信供应商。
- Autodesk: 在CAD领域有很多重要应用。
- BeOS: 一个多处理器多媒体个人操作系统。
- BigFix, Inc.: BigFix 是一个用来发布技术支持信息的通信系统。很多公司用它做技术支持支持硬件和软件,例如Autodesk和eMachines. 所有的BigFix 产品都用C++开发。
- Bloomberg: 为投资者提供实时的金融信息。
- Cabot Communications: 便携式游戏机和数字电视软件 (包括ISO MHEG-5)。
- Caldera: 系统管理软件的OpenWBEM的WBEM标准开源实现 (www.openwbem.com)。用了较多的C++98标准特性,是我见过的除了标准团体外用C++98特性最多的。
- callas Software: PDF文件的分析、纠错和优化软件,有pdfInspektor, Acrobat Preflight以及其他插件。
- CERN: 数据分析-尤其用于大规模高能物理实验-使用了ROOT工具集和库。
- Clang and LLVM clang: LLVM一个C语言家族的前端,所有的LLVM工具和库用C++编写,疯狂使用STL。
- Codemill:
- SuperDoc: 一种掌上操作系统文件阅读器,能显著的平滑字体。
- SecurityContext: 一种 Win32 COM组件,用来简化当前线程的上下文安全查询。
- Map: 一种Win32 COM 组件用于COM变量数据类型线程安全映射(类似于std::map那样),例如:用于IIS网络应用程序的数据缓存。
- Code Synthesis Tools: 提供XSD, 一种用于C++的XML 数据捆绑产生器,支持内存内和流对象处理模型。XSD 用可移植性好的C++编写,用了很多的C++编译器编译。XSD广泛用于电信、金融、高性能计算以及集成电路设计。
- Coverity: C/C++静态源代码分析工具,用于查找Linux的bug。
- CoWare: 系统/芯片规范。
- Credit Agricole Indosuez Cheuvreux: 欧洲证券交易市场订单跟踪软件,全部用C++编写。
- Dantz Development Corporation: Retrospect用于备份Windows的软件。
- D-Cubed: 用于几何约束解决、动作模拟、碰撞检测、隐藏线消除和形态管理的组件,重点是精确性和速度,在CAD领域获得了广泛应用 (例如 CATIA, SolidWorks, AutoCAD, NX, SolidEdge)。
- D E Shaw: 金融分析和贸易软件。
- Digiquant: Internet网络管理系统(IMS), IP网络基础设施软件服务. 一些AAA服务器拓展, 服务准备, 引擎标定, 和端口服务,用C++编写。
- Dassault Systems: Catia v5,很领先的CAD软件, 在此之上,近年来所有的空中客车 (A380, ...),还有波音787的软件都在用它。全部用C++编写,使用了 STL。
- Doxygen: 一种文档生成工具。
- Dutch ministry of transport, public works, and water management: 浪涌屏障控制。BOS控制系统的保护屏障Maeslant使得Rotterdam免受洪灾。该项极高极高级安全系统(按照IEC 61508,最高的安全级别)使用C++, Z和PROMELA 编写。这里有一些漂亮的图片。
- Efficient Networks: (Siemens的子公司)出售量超过800万套,它的PPPoE 用户端软件用于Macintosh, Windows and Linux系统。新的Macintosh 上开发全部用C++,Windows上开发用的C/C++。下面这些产品用C++开发:
- EnterNet: PPPoE 用户端驱动和应用设置
- Tango Qualifier:用户环境预攫取预测
- Tango Installer:向导型安装器
- Tango Access: PPPoE用户端驱动和应用设置
- Tango Support:用户层网络诊断工具
- Ericsson:
- TelORB–面向对象的分布式操作系统
- 分布式RAM数据库, TSP应用的基础
- 服务器平台
- TDMA-CDMA HLR
- GSM-TDMA-CDMA移动网关
- AAA服务器
C++被用于编写硬实时系统在无线基站中控制无线电波。 - Facebook: 几个高性能高可靠性的组件。
- FASTprotocol: 一个用于金融交易的协议,有很多实现,其中包括Quickfast (开源) 和用于俄罗斯贸易系统的FIX/FAST .
- FlightGear: 一种开源飞行模拟器,使用JSBSim,飞行动态数学模型之一,用于FlightGear以及其它模拟器。
- Geant4: 粒子干涉模拟,用于高能物理、核物理试验,太空和医疗应用的工具箱。Geant4 工程世界范围内100多位科学家合作,进行10余次试验,分别在欧洲、俄罗斯、日本、加拿大和美国。涉及到几所国内和国际的机构和组织参与。整个软件全部用C++编写,已经开发了面向对象方法和工具。源代码大约500K行,包含了一个相当广集合的实现,有顶尖水准的电磁和格点强子物理交互算法和理论模型。
- GCC GCC现在用C++作为实现语言了[2012-08-14] ,GNU编译器集合包含了C,C++,Objective-C,Fortran,Java,Ada和Go,以及这些语言的库(libstdc++, libgcj,...)。
- Google: 网络搜索引擎等。
- Haiku OS: 系统的主要部分(包括内核的绝大部分) 用 C++编写。它是BeOS停止开发后的继任者。
- Havoc: 实时的物理用特效以及游戏。"Havok, 跟Guinness类似,爱尔兰制作。"
- HP: 下面是很小一部分关于HP的C++应用:
- C, C++, Fortran90 HP IA64 平台编译器和连接器 (这些加起来会超过1百万行C++源代码).
- SAM (HP的系统管理应用)
- 一些HP-UX的网络库
- Java虚拟机核心
- Openview的一部分
- Non-stop XML语法分析器 (来自最初的compaq)
- IBM:
- OS/400.
- K42: 一种高性能开源的一般性操作系统内核,用于缓存耦合多处理器。
- Image Systems: TrackEye 和TEMA, 世界上领先的动作分析程序(基于数字图形处理)。被大多数汽车厂商用于碰撞效果测试的分析。也被汽车和飞行器厂商用于新模型的性能,“简而言之用于高速系列”。
- Intel:
- Intuit: Quicken (个人理财软件)
- ILOG: 在ILOG上, C++编写的库用于:
- 图形. 该库用来编写可移植性GUI和高级图行机制
- 优化. 该库用来编写受限编程和/或单一算法
- 规则. 该库用来编写规则引擎处理突发事件
下面是一些已知的客户: 克莱斯勒,法国电力,CENA,北电网络,SAP,阿尔卡特公司,雷诺,Manugistics,Communaut urbaine(里昂交通管制),Parc科技有限公司,巴克莱全球投资(BGI),TLC(运输,Informatik,与物流,GmbH咨询)Deutsche Bahn子公司,国防部的联合作战支援空运中心(JOSAC),Telefonica,思科,尼桑,浦项制铁,索尼银行, isMobile ,美国西南航空公司, Novient ,沃达丰商贸通,Sabre Holdings公司,法国电信,爱立信公司,德国电信,朗讯科技,MCI WorldCom,西门子,First Union Home Equity Bank,巴恩,惠普, Adonix ,Peugeot, ARINC,McHugh. - KLA-Tencor: 半导体制造系统。
- Looksmart主要用C++编写. 所有有关搜索和浏览网页的产品用C++编写,每天的用户超过5百万。
- Lockheed-Martin Aero: F-16和F-35战斗机的关键任务软件。还有更多。
- MAN B&W Diesel A/S: Purveyers 引擎用于大型和巨型轮船(例如货柜船和油轮)。
- 两个巨大的柴油机(超过10万马力)电子控制燃料注入系统和排气阀控制系统。中等规模的严格实时嵌入式系统,完全24/7分布式容错恢复。除了几百行汇编,其余全部用高质量的C++代码编写。
- 发动机和船板机器的几个巨大的支撑系统全部用C++编写。
- 几个内部的高级商业应用,用于发动机设计和设计信息存储。
- Medimage: 所有产品,从医疗图像显示系统到从一个机器到其他机器通信服务软件,通信用不论用modem还是TCP/IP都用C++编写。该产品支持的平台有Mac OS和Windows。
- Mentor Graphics: 从20世纪80年代开始Mentor Graphics应用程序开发开始使用C++,包括:
- Calibre: 软件用于IC物理验证、生产和解析
- Formal Pro:正式验证等同检查器,能运行几百万网关ASIC和IC
- FastScan: ASIC 和IC的自动测试模式生成工具
- FlexTest: 优化测试涵盖的测试模式产生
- TestKompress: 减少ATE内存和时间消耗的工具集
- MachTA/PA:高速、精确、大容量晶体管电路模拟,用于DSM和混合信号IC设计时间能量分析
- Metrowerks是一个软件开发工具大名鼎鼎的供应商。CodeWarrior 集成开发环境(IDE), RAD插件和PowerPlant以及对象类库全部用C++编写,网站上列举了一个很酷的应用,例如: 3D映像,实时网络会议,卫星控制技术。
- Microsoft: 一般而言微软的产品都带有不同程度的VC++色彩 (使用老版本将自动导致安全检查失败),下面列出一些:
- Windows XP, Vista, Win7, Win8, Win8.1, Win10
- Windows NT(NT4 and 2000)
- Windows 9x(95, 98, Me)
- Microsoft Office(Word, Excel, Access, PowerPoint, Outlook)
- Internet Explorer(包括Outlook Express)
- Visual Studio (Visual C++, Visual Basic, Visual FoxPro) (Visual Studio的一些部分,诸如和.NET框架一起装配的基类库用C#编写,但是C#编译器用C++编写)
- Exchange
- SQL
还有一些”微型”产品,例如: - FrontPage
- Money
- Picture It
- Project
- Z3: 一个高性能定理证明器,来自微软的开源软件。
- 所有的游戏.
- mIRC: 聊天. "用户超过一百万"。
- MongoDB: 个开源的数据库,广泛用于网络应用的后台存储,像大企业Viacom和 Disney都在用。
- Morgan Stanley: 它的金融模型的一个大块。
- Mozilla: Firefox浏览器和Thunderbird客户邮件(开源)。
- MySQL: MySQL服务器(大约25万行C++代码)和MySQL聚簇集,它是世界上最出名的开源数据库。
- NASA: 很多项目,包括
- The National Census Bureau of Israel主要用C++来开发, 一些组件内嵌了SQL。每月几百万的交易,从出生到死亡的注册、日常生活、护照保险、签证等等,用于8百万国民和外国工人。
- Netopia:
- Timbuktu Pro–Macintosh和Windows的远程控制, 文件交换以及辅助工具. Timbuktu Pro大约有1千万个结点,5百家公司的70%资金用它周转。这些年来Mac版本获得了很多嘉奖,Windows 版本获得了2002年度世界级PC世界大奖。
- netOctopus --Macintosh 和Windows基于网络的系统管理。"4千站点 ... 每个站点大约安装了150个agent (管理系统),这就有60万个系统".
- eSite–几个网页公司为广告客户提供的网站服务器平台。
- eCare–基于网络的客户支持。Macintosh和Windows客户端用C++编写。
- Nokia: [Chipset译注: 诺基亚被微软收购]
- 移动通信无线基站/网络网桥: FlexiGGSN (网关GPRS支撑结点)和FlexiSGSN (服务器GPRS支撑结点)。
- MSC/HLR
- QT and Qt Creator: 图形GUI,用于很多设备[Chipset译注: Qt是个编程用图形开发库,Qt Creator是个软件开发的图形化IDE]。
- N-series的大多数软件(和其它"智能电话")。
- HotSpot Java虚拟机用C++编写(这是一个技术领先的性能换代产品,用来取代用C编写的传统虚拟机。)
- Sun公司编译器的主要部分用C++编写, 尤其是C++ 前端、Fortran 95前端的一部分和SPARC后端。
- 为了匹配和稳定的需要,Solaris操作系统的一部分用C++编写, 但外接口看起来像C。
- OpenOffice"开源Office系列": "[...] 整个技术基于平台无关的特性。不足10%的代码平台相关,它们作为一个抽象层服务于上层软件组件,由于C++编译器在主要平台上都有,C++就作为了实现它的语言。这就使得the OpenOffice.org technology可以用于不同的平台上" "[...] 这是一个主要用C++实现的复杂应用,部署了模板和异常处理,支持独立的语言捆绑,基于架构的分布式组件。
- Symbian OS: rationale: "[...]从内核到外,用C++编写了所有代码。这是世界上蜂窝电话最流行的操作系统之一。[Chipset译注:曾称霸10年的手机系统Symbian伴随着诺基亚公司的衰退而没落,目前Symbian手机系统市场占有率已经很低]
- Thomson Reuters: Eikon是一款金融专业者的桌面旗舰产品。主要用C++开发 (有些部分用了 C#)。大约4百万行代码。
- UIQ Technology: UIQ, 一个移动电话的开源软件用户接口平台,世界上顶尖手机厂商在使用它,用于Symbian系统的手机上。UIQ 3用于索尼爱立信子M600, P990和W950。
- Karlsruhe大学: L4Ka: pistachio, 一个微内核纯用C++实现[Chipset译注:L4是微内核系统里的一种,最初由一个德国工程师用汇编写的,后来衍生出很多版本,有的用C编写,有的用C++编写,另外一个比较出名的可能是fiasco,也用C++编写]。
- Vestel Electronics: 机顶盒和数字电视软件。
- Vodaphone: 移动电话基础设施,包括服务和计费。
- wxWidgets (正式一点称为wxWindows): 跨平台widget集合/工具箱 (开源)。
- WAM!NET: "传输管理器" ISDN和TCP/IP为基础的数据传输软件, 正式的名字是4-Sight ISDN 管理器–集成了ISDN 支持,使用软件可以连接WAM!NET的托管广域网。
- ZeroC: 提供ICE, 一个用C++映射的分布式OO计算基础设施。ICE用可移植性好的C++编写,用很多C++编译器编译。ICE用于游戏和大批量的训练模拟。
应用领域和应用程序并不跟单个组织明显相关的有: - CDE桌面(很多UNIX系统的标准桌面)用C++编写。
- 计算几何: CGAL开源项目, 计算几何算法库, 提供艺术几何数据结构状态和算法。主要设计目标是高性能、健壮性和灵活性。为了完成后者设计目标,设计者使用泛型编程理念,使得CGAL看起来感觉象STL。商业上的支持者是GeometryFactory。
- CORBA ORBs: MICO, omniORB, Orbix, TAO。
- 游戏: 末日三引擎,塞拉利昂在线:Birthright,Hellfire,Football Pro, Bullrider I和II ,Trophy Bear, Kings Quest,Antara,霍伊尔纸牌游戏套件,SWAT,还有很多...Blizzard: 星际争霸,星际争霸:母巢之战,暗黑一,暗黑破坏神II :毁灭之王,魔兽争霸III ,魔兽世界。Quicksilver:上海第二王朝,上海麻将麻将要点,Starfleet Command, Invictus ,PBS's Heritage:文明与犹太人,Master of Orion III, CS-XII,微软:所有游戏。EA:视频游戏引擎。Byond: 一个世界级开发平台。
- 图形交互界面:
- Virtual Harlem(Illinois 大学项目,在Chicago和Central Missouri州立大学)它是一个学习环境,允许学生经历19世纪二三十年代的Harlem Renaissance作为文化旅行。Virtual Harlem 建立在高级的VR称为Yggdrasil的脚本框架上。Yggdrasil用C++编写,使用其他C++库和框架。
- KDE,Linux上用C++编写的桌面。K Desktop Environment,是一个强大的开源图形桌面环境,用于Unix工作站上。它是Linux桌面环境的旗舰产品。它包含了300种用C++编写的不同的包,包括一个Office族、一个浏览器、开发工具、游戏以及多媒体应用。
- 一种主要的弹道导弹防御系统用C++编写。
- 电话系统: 我认为很容易找到用非C++语言编写的系统,但是至少在欧洲这里:
- C++是Alcatel 传输系统唯一的开发语言, 既用于网络管理 (用ILog Views),也用于真正的传输设备上。FWIW, 德国主要的传输结点(法兰克福, 柏林, 慕尼黑以及德国北部的另一个地方,我认为) 100%用C++编写. 在德国,所有跨越不同的区域的电话呼叫都经过这些中的某部机器。
- T-Mobile(德国最大的蜂窝电话操作器)用C++编写了计费系统和多数的WAP端口--动态分配IP地址等。
放下这些暂且不说, 任何人在德国使用电话就要依赖于C++编写的代码--有很多用户呢:-)。那怎么才算一个用户?德国的主电话传输结点用C++编写(我十分确信法国也如此)。我不相信在该国家谁不用电话--这能算8千万(算上法国有1亿4千万)C++使用者吗?
|
|
| 日 | 一 | 二 | 三 | 四 | 五 | 六 |
---|
26 | 27 | 28 | 29 | 30 | 31 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 1 | 2 | 3 | 4 | 5 | 6 |
|
常用链接
留言簿(2)
随笔分类(99)
收藏夹(2)
主页
最新评论
![](/images/xml.gif)
|
|