c++编译器(c++之父Bjarne Stroustrup)
来自: c++之父Bjarne Stroustrup的主页 https://www.stroustrup.com/
关于c++ 历史可以看下: https://www.cnblogs.com/aozhejin/p/16357916.html
I designed and implemented the C++ programming language. To make C++ a stable and up-to-date base for real-world software development, I have stuck with its ISO standards effort for 30+ years (so far).
- A Tour of C++ (2nd edition) (a brief - 240 page - tour of the C++ Programming language and its standard library for experienced programmers)
- The C++ Programming Language (4th edition) (an exhaustive description of the C++ Programming language, its standard library, and fundamental techniques for experienced programmers)
- Programming: Principles and Practice using C++ (2nd edition) (a programming text book aimed at beginners who want eventually to become professionals)
- The Design and Evolution of C++ (a book presenting the rationale and design criteria for C++ and its evolution up until 1994).
- Research and popular papers
- Technical reports and proposals for the ISO C++ Standard
- Videos
- Interviews
- Biographical material,
补充:
最早的C++代码都是用cfront转成C代码然后用C编译器编译的.
cfront是C++的编译器(当时称为“C with classes”) 于1983年,由Bjarne Stroustrup开发
参看:cfront https://www.cnblogs.com/aozhejin/p/16357916.html
他在WG21工作组上的论文举例:
https://www.open-std.org/JTC1/SC22/WG21/docs/papers/2013/ 页面CTRL+F上面搜索 "Bjarne Stroustrup" 就会出现他提交的论文。
来自: https://www.stroustrup.com/C++.html
The C++ Programming Language
Modified October 19, 2021
C++ is a general-purpose programming language with a bias towards systems programming that
C++是一种通用编程语言,偏向于系统编程
- is a better C
- supports data abstraction
- supports object-oriented programming
- supports generic programming.
Or, in other words: C++ is a language for defining and using light-weight abstractions. It has significant strengths in areas where hardware must be handled effectively and there are significant complexity to cope with. This includes many resource constrained systems and much foundational and infrastructure code.
Or, in other words: C++ is a language for defining and using light-weight abstractions. It has significant strengths in areas where hardware must be handled effectively and there are significant complexity to cope with. This includes many resource constrained systems and much foundational and infrastructure code.
翻译:
I (Bjarne Stroustrup) am the designer and original implementor of C++. You can find the language, the techniques for using it, and the techniques for implementing it described in my books,
我(bjarnestroustrup)是C++的设计者和最初的实现者。你可以在我的书中找到语言、使用技巧和实现技巧,
my papers, in hundreds of books by others, and thousands of papers by others. There are far too many to list. Try a bookstore or a library. Answers to many questions about C++ can be found in
我的论文,数百本别人的书,数千篇别人的论文。要列出的太多了。试试书店或图书馆。有关C++的许多问题的答案可以在中找到
- my FAQ,
- my C++ Style and Technique FAQ
- my C++ glossary, and
- some interviews that I have given.
- The isocpp website of The C++ Foundation.
Topics:
- Learning and teaching C++
- How to write good modern C++
- The ISO C++ standard
- Applications, compilers, etc.
- Embedded systems
- Libraries, etc.
- C++ GUI libraries and tools
- C++ design and history
- General resources
- Videos
- Collections of articles
- Related
- The ISO C++ Standard: C++ is standardized by ISO (The International Standards Organization) in collaboration with national standards organizations, such as ANSI (The American National Standards Institute), BSI (The British Standards Institute), and DIN (The German national standards organization). The original C++ standard was issued in 1998, a minor revison in 2003, and a major update, C++11, was issued in September 2011. After that, C++14, C++17, and C++20 were delivered according to a new ambitious 3-year schedule. The curent standard, a major revision, was published in 2020: C++20.
- The of The C++ Foundation's site for information about ISO C++ standards activities. Updated regularly.
- holds a draft standard. Note that this is most certainly not a tutorial. You can get the official final version from the ISO or NIST for cash. You are unlikely to need that unless you are a compiler implementer or a historian maintaining an archieve.
- The ISO C++ standards committee (WG21) maintains an official site with information about the current state of the standards effort. "More than you ever wanted to know about the work on the C++ standard."
- My view of what C++17 should be from April 2015. Note that I don't always get what I want and that I'm quite aggressive about the improvement of C++. C++20 is pretty close to that "vision", though.
- My book The Design and Evolution of C++ describes the early standards process and many of the design decisions made
- My book The C++ Programming Language (Fourth Edition) describes C++ as defined by the ISO standard.
- How to write good modern C++: Much C++ code is writting in achaic styles, missing out on elegance, safety and performance. This is avoidable.
- A paper of how to write guaranteed type and resource safe C++.
- A set of guidelines for writing good, modern, efficient C++ on Github.
- A Tour of C++ (second edition): a short book (240 pages) providing an overview of C++17 with a few key facilities from C++20. It is aimed at people who can program, but might have a 1990s view of C++.
- Applications, compilers, etc.:
- A list of interesting C++ applications. I welcome suggestions for additions.
- A list of major industry applications and tools with evolution paths by Vincent Lextrait.
- An incomplete list of C++ compilers.
- Hans-J. Boehm's site for C and C++ garbage collection and a couple of sites offering collectors based on his work (University of Tokyo, geodesic.com).
- Test suites are available for C++. For example: Plumhall and Perennial.
- Libraries, etc.:
- An extensive list of current C++ libraries from C++.org.
- A list of available C++ libraries known as the C++ libraries FAQ.
- Boost.org: A repository for libraries meant to work well with the C++ standard library.
- STLab: a collection of peer-reviewed and portable C++ source libraries, leveraging and extending both the C++ Standard Library and the Boost Libraries. That page also contains links to Adobe open source libraries, such as the Generic Image Library GIL.
- From cppreference.com: A list of open-source C++ libraries.
- High-performance numerical libraries provide excellent tests for interesting new programming techniques: The Object-Oriented Numerics Page is a list of libraries, projects, and mailing lists. Notably ROOT from CERN. These libraries, and many more, are available for downloading.
- C++ design and history:
- 2006-2020: Thriving in a crowded and changing world: C++ 2006–2020.
- 1991-2006: Evolving a language in and for the real world: C++ 1991-2006.
- 1979-1991: A History of C++: 1979-1991.
- A more comprenensive book: The Design and Evolution of C++.
- The Computer History Museum's site for early C++ sources (code, documentation, papers, etc.).
- An old, but unfortunately not completely irrelevant, net posting answering some unfair criticisms of C++. I wrote this in 1994. I had hoped that our field would mature so that uninformed flames would become rare; I was naive.
- C++ GUI libraries and toolkits:
- Embedded systems:
- A confence paper on the basic ideas of using C++ in embedded systems.
- JSF++: The JSF air vehicle C++ coding standards.
- The ISO C++ committee's TR on performance. Very dated.
- Embedded systems programming is not just a niche concern: I cover it in Chapter 25 of my textbook Programming: Principles and Practice using C++.
- FAQs:
- isocpp.org's "Super FAQ". It is generally to be preferred over the other FAQs
- My FAQ.
- My C++ Style and Technique FAQ.
- My C++0x FAQ.
- Marshall Cline's C++ FAQ.
- C++ Standards FAQ containing many valuable links (including some to implementations of the standard library).
- The learn.c-c++ newsgroup FAQ presents much information of use for C and/or C++ novices.
- Learning and teaching C++:
- My beginner's programming text book Programming: Principles and Practice using C++.
- A Tour of C++: a short book (190 pages) providing an overview of C++ as it is in 2015. Aimed at people who can program, but might have a 1990s view of C++.
- A list of resources for people learning C++ from The Cambridge University Engineering Department.
- An extensive collection of book reviews can be found on the ACCU (The Association of C and C++ Users) site.
- General resources:
- ACCU; a C++ community site maintained by "The Association of C and C++ Users." In particular, it holds the CVU and Overload magazines.
- A C++ idioms list.
- Collections of articles:
- Herb Sutter's collection of articles focussing on how to learn and use Standard C++ in a modern style.
- Kevlin Henneys' collection of thought provoking and useful articles about good C++ design and style.
- Artima's C++ source has a collection of C++ articles, columns, etc.
- Videos:C++: an invisible foundation
- . A short talk plus a Q&A with the ACM student chapter at Hacettepe University in Ankara, Turkey. February 2021.
- A short introduction to the aims and status of modern C++. Arhus University, Computer Science Department seminar. October 2020.
- The Beauty and Power of "Primitive" C++. Cppcon 2020 Opening Keynote. September 2020.
- The continuing evolution of C++. University Carlos III Madrid CS department. January 2019.
- Concepts: The future of generic programming (the future is here). University Carlos III Madrid CS department. January 2019.
- No littering!. Talk to Madrid C++ users groups. January 2019.
- Steve Carroll for Channel-9: An interview with Bjarne Stroustrup and Gabriel Dos Reis at CppCon 2018 about concepts, modules, and the essentials for language evolution. And the story of the good ship Vasa. Channel-9 copy. September 2018.
- What C++ is and what it will become. Opening keynote at Meeting C++. Berlin. November 2016.
- "Concepts" explained in 12 minutes. Meeting C++. Berlin. November 2016.
- The Driving Force Behind C++" An 18-minute TEDx talk in Shanghai. October 2016.
- Two talks at Budapest Technical University. A talk by my colleague Abel Sinkovic on debugging metaprograms followed by one by me on type- and resource-safe C++. Abel's talk should be compulsory watching for people who claim that we don't urgently need concepts. May 2016.
- C++ Today. An semi-technical talk to Churchill College Computer Society. Churchill is my Cambridge College. 36 minutes. May 2016.
- Oral History of Bjarne Stroustrup. For the Computer History Museum 2 hours. with transcript. September 2015.
- Object-oriented programming without inheritance. ECOOP'15 Keynote. Prague. July 2015.
- A video interview about Cppcon and the C++ core guidelines. September 2015.
- Writig good C++14. My Cppcon 2015 keynote. September 2015.
- All the talks (incl. mine) from CppCon 2015. That's about 100 quality talks. September 2015.
- Make simple tasks simple. My Cppcon 2014 keynote. September 2014.
- All the talks (incl. mine) from CppCon 2014. That's about 100 quality talks. September 2014.
- An online "Event" and Q&A. August 2014.
- Lang.Next'14 Keynote: What -- if anything -- have we learned from C++? A 68 minute talk incl. Q&A.
- GoingNative'13 Keynote: The Essence of C++: With Examples in C++84, C++98, C++11, and C++14. A 96 minute talk incl. Q&A.
- An interview about Software Development for Infrastructure.
- GoingNative'12 Keynote: C++11 Style. A 90 minute talk incl. Q&A.
- An AT&T Tech Channel presentation of my work and its impact from their Tech Icons series.
- A talk on C++0x at CERN, September 2009.
- The ACM HOPL-iii HOPL-iii videos (incl. mine). June 2007.
- A C++0x talk given at University of Waterloo. Google, NYC. August 2007.
- A talk on C++0x initializer lists given at Google, Mountainview. February 2007.
- Several videos, audio recordings, and transcripts of talks, panels, and interviews from Dr. Dobb's Technetcast archieves.
- Alex Stepanov (the father of the STL) on the importance of Mathematics in Programming.
- A 1994 lecture: The Design of C++ (also known as "The flying goose talk" What happend was that I was supposed to use a teleprompter, which I hated, so when it broke down a third way into the talk, I could not see the slides or any notes; I was flying blind. The last two thirds of the talk was done without props, completely from memory. When I couldn't think of what to say next, I pulled the string on the goose to gain time). Put up by the Computer History Museum.
- Related:
- Dennis Ritchie's homepage con taining lots of interesting information about the history of C, Unix, and (AT&T) Bell Lab's computer science research center (where C++ was born).
- The Computer History Museum's Software Preservation Group's collection of C++ sources currently focusing on the early years. Contributions are most welcome (see the site for details).
When I list a site it is because I found some interesting information there, not because I wanted to endorse a product. All the major software suppliers have C++ related information on their sites. If you feel that I ought to add a site, feel free to tell me what and why.
下面内容来自Bjarne Stroustrup的: https://www.stroustrup.com/compilers.html
关于C++ compilers的不完整列表
I (Bjarne Stroustrup) am often asked to recommend a C++ compiler. However, I don't make recommendations; that would be too much like taking sides in commercial wars. Also, I don't know every C++ compiler; there are simply too many "out there".
我(bjarnestroustrup)经常被要求推荐一个C++编译器。然而,我不会提出建议;这太像在商业战争中偏袒一方了。而且,我不知道每一个C++编译器;“外面”实在太多了。
I recommend that people take Standard conformance very seriously when considering a compiler. If you can, avoid any compiler that doesn't closely approximate the ISO standard or fails to supply a solid implementation of the standard library. The recent releases from all the major C++ vendors do that.
我建议人们在考虑编译器时要认真对待标准一致性。如果可以,请避免任何与ISO标准不太接近或无法提供标准库的可靠实现的编译器。所有主要C++供应商的最新版本都是这样做的。
Most of these compilers are embedded in frameworks of software development tools and libraries. These frameworks, environments, and libraries can be most helpful, but do remember that their use can lock you into a single vendor and that some uses have significant run-time performance implications.
大多数编译器都嵌入在软件开发工具和库的框架中。这些框架、环境和库可能非常有用,但请记住,它们的使用可能会将您锁定在一个供应商中,并且某些使用会对运行时性能产生重大影响。
When looking for C++ on the web, you find that much of the information is "hidden" under various product names. In fact, I had more luck finding C++ compilers using google.com than by going directly to vendors that I knew sold them. Here, I have chosen to list C++ implementations simply by the name of their provider, ignoring marketing labels.
在web上查找C++时,您会发现许多信息都“隐藏”在各种产品名称下。事实上,我更幸运的是使用google.com查找C++编译器。而不是直接去找我认识的卖家。在这里,我选择仅按提供者的名称列出C++实现,而忽略了营销标签。
一些可以免费下载的编译器(在尝试商业使用之前,请检查其条件/许可证):
- Apple C++. Xcode. It also comes with OS X on the developer tools CD.
- Bloodshed Dev-C++. A GCC-based (Mingw) IDE.
- Clang C++. A relatively very active development associated with the analysis and code generation framework, LLVM.
- Cygwin (GNU C++)
- Mentor Graphics - Lite edition. Sourcery CodeBench.
- MINGW - "Minimalist GNU for Windows". Another GCC version for Windows including a free (non-GPL) w32api.
- GNU CC source
- IBM C++ for IBM power, System Z, Bluegene, and Cell.
- Intel C++ and many supporting tool
- Microsoft Visual C++.
- Oracle C++.
一些需要付费的编译器(有些允许在试用期免费下载):
- Embarcadero C++
- Edison Design Group C++ Front End - used by many C++ compiler suppliers
- Green Hills C++ for many embedded systems platforms
- HP C++
- Intel C++ for Windows, Linux, and some embedded systems.
- Mentor Graphics Sourcery CodeBench An extensive "Workbench" for many embedded systems platforms.
- Microsoft C++
- Paradigm C++, for x86 embedded systems
- The Portland Group C++ (parallelization and GPUs)
- WindRiver's Diab C++ used in many embedded systems.
It is impossible for me to keep this list complete and up-to-date. The C++ world is just too large and too much new is happening. Apologies to those suppliers who I failed to list, I know there are some, and please, if you have a link that you think ought to be listed here, send me a message: bs at cs dot tamu dot edu. Again: I just list compilers, I don't endorse them. Also, there can be no one compiler that is best for everyone, people's needs differ too much for that.
我不可能保存这份最新而且完整的清单。C++世界太大了,有太多的新事物正在发生。向那些我没有列出的供应商道歉,我知道有一些供应商,如果你有一个你认为应该在这里列出的链接,
请给我发一条消息:bs at cs dot tamu dot edu。再说一遍:我只是列出编译器,我不认可它们。而且,不可能有一个编译器对每个人都是最好的,因为人们的需求差异太大。
其它的C++编译器列表:
- Compilers.net: A list of free C and C++ compilers.
A filter to improve error messages from many compilers see STLfilt.
网站的一些内容介绍:
| c++之父 Bjarne Stroustrup的网站 | https://www.stroustrup.com/ |
| c++看Bjarne Stroustrup 是怎么阐述的 | https://www.stroustrup.com/C++.html |
| https://www.stroustrup.com/papers.html (论文) | |
| https://www.stroustrup.com/new_learning.pdf (学习c++) | |
| A Perspective on ISO C++ | https://www.stroustrup.com/std96.pdf |
| c++历史 | https://www.stroustrup.com/hopl2.pdf |
| 怎么写c++扩展的建议 | https://www.stroustrup.com/how-to-write-a-proposal.pdf |
| The C++ Programming Language第1版本 | https://www.stroustrup.com/1st.html |
| 第1版本序言 | https://www.stroustrup.com/1st_pref.html |
| The C++ Programming Language (Second Edition)-第2版本的快速教程 | https://www.stroustrup.com/2nd.html |
| c++ 第二版序言 | https://www.stroustrup.com/2nd_pref.html |
| c++的演变状态 | https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2142.html |
| WG21工作组首页 | http://www.open-std.org/jtc1/sc22/wg21 |
| 关于Bjarne Stroustrup在 WG21组 上发表的论文 | https://www.stroustrup.com/WG21.html |
| P2410r0. 2021-07-12. | http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2021/p2410r0.pdf |
| P2411r0. 2021-07-12 | http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2021/p2411r0.pdf |
| P2412r0. 2021-07-12 | http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2021/p2412r0.pdf |
| P2317R0. 2021-02-14 | http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2021/p2317r0.pdf |
| P2000R1. 2020-01-13. | http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2020/p2000r2.pdf |
| P1962R0. 2019-11-18 | http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2019/p1962r0.pdf |
| P1947r0. 2019-11-18 | http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2019/p1947r0.pdf |
| P939r4. 2019-10-07 | http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2019/p2000r0.pdf |
| P1711R0. 2019-6-17 | http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2019/p1711r0.pdf |
| P1491R0. 2019-02-14 | http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2019/p1491r0.pdf |
| P1428R0. 2019-01-18 | http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2019/p1428r0.pdf |
| P1408R0. 2019-01-21 | http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2019/p1408r0.pdf |
| P0939R2. 2019-01-21 | http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2019/p0939r2.pdf |
| P0939R1. 2018-11-20. | http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p1373r0.pdf |
| P0939R1. 2018-10-08 | http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p0939r1.pdf |
| P1141R0. 2018-06-23 | http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p1141r0.html |
| ..... | |
| C++教程(第二版) | https://www.stroustrup.com/tour2.html |
| 不完整的编译器列表 | https://www.stroustrup.com/compilers.html |
| C++ Programming Language (4th Edition) | https://www.stroustrup.com/4th.html |
| 第四版本的序言 | https://www.stroustrup.com/4thPreface.pdf |
| 第4版的练习 | https://www.stroustrup.com/4thExercises.pdf |
| Programming -- Principles and Practice Using C++ | https://www.stroustrup.com/programming.html |
|
C++编程语言(第三版和特别版) |
https://www.stroustrup.com/3rd.html |
|
About The C++ Programming Language (3rd Edition) |
https://www.stroustrup.com/about_3rd.html |
|
The C++ Programming Language, Third Edition序言 |
https://www.stroustrup.com/3rd_pref.html |
|
The C++ Programming Language, Third Edition |
https://www.stroustrup.com/3rd_tbl.html |
|
第3版本的长目录 |
https://www.stroustrup.com/3rd_long_tbl.html |
|
"The C++ Programming Language"第3版本的代码样例 |
https://www.stroustrup.com/3rd_code.html |
|
编程——C++语言的原理与实践 |
https://www.stroustrup.com/programming1.html |
|
Bjarne Stroustrup写的书 |
https://www.stroustrup.com/books.html |
|
The Design and Evolution of C++(书) |
https://www.stroustrup.com/dne.html |
|
C++语言的设计与发展之序言 |
https://www.stroustrup.com/dne_pref.pdf |
| https://www.stroustrup.com/dne_notes.pdf | |
| C++ in 2005 | https://www.stroustrup.com/DnE2005.pdf |
|
c++的专业术语 |
https://www.stroustrup.com/glossary.html |
| https://www.stroustrup.com/covers.html | |
| Bjarne Stroustrup的出版物 | https://www.stroustrup.com/papers.html |
| Bjarne Stroustrup的访谈 | |
| https://www.stroustrup.com/interviews.html | |
| https://www.stroustrup.com/From-C-to-Cpp-bs.pdf | |
| A conversation with Bjarne Stroustrup, Gillies lecturer and inventor of C++ | https://www.stroustrup.com/gillies.htm |
| Modern C++ Style | https://www.artima.com/articles/modern-c-style |
| Bjarne Stroustrup的视频采访 | |
| https://www.stroustrup.com/videos.html | |
| The Design of C++0x(视频) | https://mediastream.cern.ch/MediaArchive/Video/Public/Conferences/2009/67017/67017-0600-kbps-maxH-360-25-fps-audio-128-kbps-48-kHz-stereo.mp4 |
| Bjarne Stroustrup 在big think上的视频讲座列表页(2011年的采访) | https://bigthink.com/people/bjarnestroustrup/ |
| https://bigthink.com/videos/advice-for-c-developers/ | |
| https://bigthink.com/videos/how-to-code-like-bjarne-stroustrup/ | |
| https://bigthink.com/videos/how-c-combats-global-warming/ | |
| https://bigthink.com/videos/the-5-programming-languages-you-need-to-know/ | |
| https://bigthink.com/videos/there-will-be-a-unified-programming-language/ | |
| https://bigthink.com/videos/why-the-programming-language-c-is-obsolete/ | |
| https://techchannel.att.com/play-video.cfm/2011/3/7/Tech-Icons-Bjarne-Stroustrup | |
| Why I created C++(视频) 描述:在20世纪70年代末,Stroustrup将“类”的思想应用到C编程语言中,创建了一种新的语言,它允许进行高级抽象,但效率高且接近硬件。 |
https://bigthink.com/videos/why-i-created-c/ |
| what inspired you to create c++? (big think的采访视频) 描述: 与C++创建者的对话 |
https://bigthink.com/videos/big-think-interview-with-bjarne-stroustrup/ |
| The Design of C++0x (视频) | http://cdsweb.cern.ch/record/1204845?ln=en |
c++第二个版本已被翻译成了多个版本.

浙公网安备 33010602011771号