欢迎您来到芯片的主页!

Welcome to Chipset's homepage!

C++的应用

C++ Applications

2015330日更新

这里有一个有关系统、应用程序和库的列表,列表中的全部或者大部分代码用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++开发,例如:
    • 汽车预订
    • 客户配置服务
    • 电子订票
    • TCP/IP 前端
  • 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: 资源点;IntelARM系统硬件调试和仿真(包括多处理器系统)
  • AT&T: 美国最大的电信供应商。
    • 1-800 服务
    • 配置系统
    • 网络失败应急系统
  • Autodesk: CAD领域有很多重要应用。
  • BeOS: 一个多处理器多媒体个人操作系统。
  • BigFix, Inc.: BigFix 是一个用来发布技术支持信息的通信系统。很多公司用它做技术支持支持硬件和软件,例如AutodeskeMachines. 所有的BigFix 产品都用C++开发。
  • Bloomberg: 为投资者提供实时的金融信息。
  • Cabot Communications: 便携式游戏机和数字电视软件 (包括ISO MHEG-5)
  • Caldera: 系统管理软件的OpenWBEMWBEM标准开源实现 (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++静态源代码分析工具,用于查找Linuxbug
  • 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++, ZPROMELA 编写。这里有一些漂亮的图片。
  • 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编译器集合包含了CC++Objective-CFortranJavaAdaGo,以及这些语言的库(libstdc++, libgcj,...)
  • Google: 网络搜索引擎等。
  • Haiku OS: 系统的主要部分(包括内核的绝大部分) C++编写。它是BeOS停止开发后的继任者。
  • Havoc: 实时的物理用特效以及游戏。"Havok, Guinness类似,爱尔兰制作。"
  • HP: 下面是很小一部分关于HPC++应用:
    • 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,阿尔卡特公司,雷诺,ManugisticsCommunaut urbaine(里昂交通管制),Parc科技有限公司,巴克莱全球投资(BGI),TLC(运输,Informatik,与物流,GmbH咨询)Deutsche Bahn子公司,国防部的联合作战支援空运中心(JOSAC)Telefonica,思科,尼桑,浦项制铁,索尼银行, isMobile ,美国西南航空公司, Novient ,沃达丰商贸通,Sabre Holdings公司,法国电信,爱立信公司,德国电信,朗讯科技,MCI WorldCom,西门子,First Union Home Equity Bank,巴恩,惠普, Adonix Peugeot ARINCMcHugh.

  • KLA-Tencor: 半导体制造系统。
  • Looksmart主要用C++编写. 所有有关搜索和浏览网页的产品用C++编写,每天的用户超过5百万。
  • Lockheed-Martin Aero: F-16F-35战斗机的关键任务软件。还有更多。
  • MAN B&W Diesel A/S: Purveyers 引擎用于大型和巨型轮船(例如货柜船和油轮)
    • 两个巨大的柴油机(超过10万马力)电子控制燃料注入系统和排气阀控制系统。中等规模的严格实时嵌入式系统,完全24/7分布式容错恢复。除了几百行汇编,其余全部用高质量的C++代码编写。
    • 发动机和船板机器的几个巨大的支撑系统全部用C++编写。
    • 几个内部的高级商业应用,用于发动机设计和设计信息存储。
  • Medimage: 所有产品,从医疗图像显示系统到从一个机器到其他机器通信服务软件,通信用不论用modem还是TCP/IP都用C++编写。该产品支持的平台有Mac OSWindows
  • Mentor Graphics: 20世纪80年代开始Mentor Graphics应用程序开发开始使用C++,包括:
    • Calibre: 软件用于IC物理验证、生产和解析
    • Formal Pro:正式验证等同检查器,能运行几百万网关ASICIC
    • 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: 很多项目,包括
    • JPL (Jet Propulsion Lab, NASA): 火星探测器自动驱动系统(包括场景分析和路由计划)C++上火星了!还有很多地面(即地球上)支持软件。
    • James Webb Telescope詹姆斯韦伯是哈勃望远镜的继承人。
    • 国际空间站的软件的(许多)部分。
  • The National Census Bureau of Israel主要用C++来开发, 一些组件内嵌了SQL。每月几百万的交易,从出生到死亡的注册、日常生活、护照保险、签证等等,用于8百万国民和外国工人。
  • Netopia:
    • Timbuktu Pro–MacintoshWindows的远程控制, 文件交换以及辅助工具. Timbuktu Pro大约有1千万个结点,5百家公司的70%资金用它周转。这些年来Mac版本获得了很多嘉奖,Windows 版本获得了2002年度世界级PC世界大奖。
    • netOctopus --Macintosh Windows基于网络的系统管理。"4千站点 ... 每个站点大约安装了150agent (管理系统),这就有60万个系统".
    • eSite–几个网页公司为广告客户提供的网站服务器平台。
    • eCare–基于网络的客户