 Better Code: Contractsclients more uses are legal strict rules for clients more uses are bugs postcondition fewer guarantees to clients more implementer flexibility© 2023 Adobe. All Rights Reserved. What's in a “strong strict rules for clients more uses are bugs postcondition fewer guarantees to clients more implementer flexibility more guarantees to clients less implementer flexibility© 2023 Adobe. All Rights Reserved strict rules for clients more uses are bugs postcondition fewer guarantees to clients more implementer flexibility more guarantees to clients less implementer flexibility© 2023 Adobe. All Rights Reserved0 码力 | 204 页 | 4.46 MB | 6 月前3 Better Code: Contractsclients more uses are legal strict rules for clients more uses are bugs postcondition fewer guarantees to clients more implementer flexibility© 2023 Adobe. All Rights Reserved. What's in a “strong strict rules for clients more uses are bugs postcondition fewer guarantees to clients more implementer flexibility more guarantees to clients less implementer flexibility© 2023 Adobe. All Rights Reserved strict rules for clients more uses are bugs postcondition fewer guarantees to clients more implementer flexibility more guarantees to clients less implementer flexibility© 2023 Adobe. All Rights Reserved0 码力 | 204 页 | 4.46 MB | 6 月前3
 Back to Basics: ExceptionsException Handling When to Use Exceptions (And When Not) How to Use Exceptions The Exception Safety Guarantees How to Write Exception-Safe Code How to Refactor Non-Exception-Safe CodeContent 4 The Exception Exception Handling When to Use Exceptions (And When Not) How to Use Exceptions The Exception Safety Guarantees How to Write Exception-Safe Code How to Refactor Non-Exception-Safe CodeWhy Another Talk on Exception Exception Handling When to Use Exceptions (And When Not) How to Use Exceptions The Exception Safety Guarantees How to Write Exception-Safe Code How to Refactor Non-Exception-Safe CodeHow Do Exceptions Work0 码力 | 111 页 | 4.87 MB | 6 月前3 Back to Basics: ExceptionsException Handling When to Use Exceptions (And When Not) How to Use Exceptions The Exception Safety Guarantees How to Write Exception-Safe Code How to Refactor Non-Exception-Safe CodeContent 4 The Exception Exception Handling When to Use Exceptions (And When Not) How to Use Exceptions The Exception Safety Guarantees How to Write Exception-Safe Code How to Refactor Non-Exception-Safe CodeWhy Another Talk on Exception Exception Handling When to Use Exceptions (And When Not) How to Use Exceptions The Exception Safety Guarantees How to Write Exception-Safe Code How to Refactor Non-Exception-Safe CodeHow Do Exceptions Work0 码力 | 111 页 | 4.87 MB | 6 月前3
 The Roles of Symmetry And Orthogonality In Design(Is all about “Guarantees”) • System/Subsystem Design (Defines API boundaries and behavior) • Implementation details (e.g., “lock-free” and “wait-free” algorithms provide guarantees for system-wide (Is all about “Guarantees”) • System/Subsystem Design (Defines API boundaries and behavior) • Implementation details (e.g., “lock-free” and “wait-free” algorithms provide guarantees for system-wide (Is all about “Guarantees”) • System/Subsystem Design (Defines API boundaries and behavior) • Implementation details (e.g., “lock-free” and “wait-free” algorithms provide guarantees for system-wide0 码力 | 151 页 | 3.20 MB | 6 月前3 The Roles of Symmetry And Orthogonality In Design(Is all about “Guarantees”) • System/Subsystem Design (Defines API boundaries and behavior) • Implementation details (e.g., “lock-free” and “wait-free” algorithms provide guarantees for system-wide (Is all about “Guarantees”) • System/Subsystem Design (Defines API boundaries and behavior) • Implementation details (e.g., “lock-free” and “wait-free” algorithms provide guarantees for system-wide (Is all about “Guarantees”) • System/Subsystem Design (Defines API boundaries and behavior) • Implementation details (e.g., “lock-free” and “wait-free” algorithms provide guarantees for system-wide0 码力 | 151 页 | 3.20 MB | 6 月前3
 Back to Basics: Classic 9STLof the component space • Semantically based interoperability guarantees • Efficient • No penalty for generality • Complexity guarantees at the interface level • Natural • C/C++ machine model and programming of the component space • Semantically based interoperability guarantees • Efficient • No penalty for generality • Complexity guarantees at the interface level • Natural • C/C++ machine model and programming Basics: Classic STL Copyright © 2021 Bob Steagall Complexity and Interfaces • STL makes complexity guarantees by specifying interfaces and requirements • Containers provide support for • Adding / removing0 码力 | 75 页 | 603.36 KB | 6 月前3 Back to Basics: Classic 9STLof the component space • Semantically based interoperability guarantees • Efficient • No penalty for generality • Complexity guarantees at the interface level • Natural • C/C++ machine model and programming of the component space • Semantically based interoperability guarantees • Efficient • No penalty for generality • Complexity guarantees at the interface level • Natural • C/C++ machine model and programming Basics: Classic STL Copyright © 2021 Bob Steagall Complexity and Interfaces • STL makes complexity guarantees by specifying interfaces and requirements • Containers provide support for • Adding / removing0 码力 | 75 页 | 603.36 KB | 6 月前3
 Delivering safe C++here? • We can write good C++ • Too many developers don’t • Guidelines are not enough, we need guarantees • We can (and do) use static analyzers but we need standards • Alternatives: We can 1. Change offering guarantees is supported • The set of guarantees is open • A set of fundamental guarantees are standard • There are rules for composing code fragments supporting different guarantees • The set set of guarantees assumed by and provided by a unit of code is stated in the code Stroustrup - C++ safety -CppCon - October 2023 62Many notions of safety • Logic errors: perfectly legal constructs that0 码力 | 74 页 | 2.72 MB | 6 月前3 Delivering safe C++here? • We can write good C++ • Too many developers don’t • Guidelines are not enough, we need guarantees • We can (and do) use static analyzers but we need standards • Alternatives: We can 1. Change offering guarantees is supported • The set of guarantees is open • A set of fundamental guarantees are standard • There are rules for composing code fragments supporting different guarantees • The set set of guarantees assumed by and provided by a unit of code is stated in the code Stroustrup - C++ safety -CppCon - October 2023 62Many notions of safety • Logic errors: perfectly legal constructs that0 码力 | 74 页 | 2.72 MB | 6 月前3
 Constructing Generic AlgorithmsAm I using any standard algorithms? Which concept(s) do they require? also informs complexity guarantees, maybe different for different concepts 30 . 1ITERATOR CONCEPT QUESTIONS ITERATOR CONCEPT QUESTIONS Am I using any standard algorithms? Which concept(s) do they require? also informs complexity guarantees, maybe different for different concepts 2. Do I look at an element after moving past it? 30 Am I using any standard algorithms? Which concept(s) do they require? also informs complexity guarantees, maybe different for different concepts 2. Do I look at an element after moving past it? 3. Do0 码力 | 145 页 | 8.44 MB | 6 月前3 Constructing Generic AlgorithmsAm I using any standard algorithms? Which concept(s) do they require? also informs complexity guarantees, maybe different for different concepts 30 . 1ITERATOR CONCEPT QUESTIONS ITERATOR CONCEPT QUESTIONS Am I using any standard algorithms? Which concept(s) do they require? also informs complexity guarantees, maybe different for different concepts 2. Do I look at an element after moving past it? 30 Am I using any standard algorithms? Which concept(s) do they require? also informs complexity guarantees, maybe different for different concepts 2. Do I look at an element after moving past it? 3. Do0 码力 | 145 页 | 8.44 MB | 6 月前3
 When Lock-Free Still Isn't Enough: An Introduction to Wait-Free Programming and Concurrency TechniquesHow to guess about performance • We’ll do some benchmarks too I promise10 Progress guarantees • Progress guarantees are a way to theoretically categorize concurrent algorithms: Daniel Anderson -- danielanderson makes progress): At any given time, at least one thread is making progress on its operation • Guarantees system-wide throughput. Some operations are always completing, but individual operations are never algorithm’s progress guarantees, and use these progress guarantees to guide the design of your algorithm • Then benchmark it Daniel Anderson -- danielanderson.net Progress guarantees • Useful theoretical0 码力 | 33 页 | 817.96 KB | 6 月前3 When Lock-Free Still Isn't Enough: An Introduction to Wait-Free Programming and Concurrency TechniquesHow to guess about performance • We’ll do some benchmarks too I promise10 Progress guarantees • Progress guarantees are a way to theoretically categorize concurrent algorithms: Daniel Anderson -- danielanderson makes progress): At any given time, at least one thread is making progress on its operation • Guarantees system-wide throughput. Some operations are always completing, but individual operations are never algorithm’s progress guarantees, and use these progress guarantees to guide the design of your algorithm • Then benchmark it Daniel Anderson -- danielanderson.net Progress guarantees • Useful theoretical0 码力 | 33 页 | 817.96 KB | 6 月前3
 Class Layoutportable way—the layout of a complex C++ class.  Wouldn’t it be nice to have some standard layout guarantees? Just wait… 23 Copyright © 2020 by Stephen C. Dewhurst and Daniel Saks 22 23Class Layout Copyright be sure that each UART member has the proper offset within the structure?  C++ provides layout guarantees only for standard-layout types…  A standard‐layout type is essentially a C type:  a scalar type defined in C++11.  The 2003 Standard didn’t mention standard-layout types — it describes layout guarantees in terms of POD types.  POD stands for “Plain Old Data.” I kid you not. (There’s also a POF.)0 码力 | 51 页 | 461.37 KB | 6 月前3 Class Layoutportable way—the layout of a complex C++ class.  Wouldn’t it be nice to have some standard layout guarantees? Just wait… 23 Copyright © 2020 by Stephen C. Dewhurst and Daniel Saks 22 23Class Layout Copyright be sure that each UART member has the proper offset within the structure?  C++ provides layout guarantees only for standard-layout types…  A standard‐layout type is essentially a C type:  a scalar type defined in C++11.  The 2003 Standard didn’t mention standard-layout types — it describes layout guarantees in terms of POD types.  POD stands for “Plain Old Data.” I kid you not. (There’s also a POF.)0 码力 | 51 页 | 461.37 KB | 6 月前3
 Implementing C++ Modules: Lessons Learned, Lessons Abandoned10x compile-time speed up ▪ The One Definition Rule is your friend – Named modules provide ODR guarantees, by design – Header files and header units require (expensive) incomplete ODR checks, and demand 2021 6The Global Module ▪ Everything we used to do before Modules – Merry mess ▪ Provide no ODR guarantees – Responsibility of the programmer ▪ Complete ODR check nearly impossible with conventional tools (module linkage) – Interface provenance: ▪ Weak ownership – good ▪ Strong ownership – better ▪ ODR guarantees – An entity is owned by exactly one module – Reachability, instead of “redeclaration” ▪ Allows0 码力 | 53 页 | 1.33 MB | 6 月前3 Implementing C++ Modules: Lessons Learned, Lessons Abandoned10x compile-time speed up ▪ The One Definition Rule is your friend – Named modules provide ODR guarantees, by design – Header files and header units require (expensive) incomplete ODR checks, and demand 2021 6The Global Module ▪ Everything we used to do before Modules – Merry mess ▪ Provide no ODR guarantees – Responsibility of the programmer ▪ Complete ODR check nearly impossible with conventional tools (module linkage) – Interface provenance: ▪ Weak ownership – good ▪ Strong ownership – better ▪ ODR guarantees – An entity is owned by exactly one module – Reachability, instead of “redeclaration” ▪ Allows0 码力 | 53 页 | 1.33 MB | 6 月前3
 Peering Forward: C++'s Next Decadeautonomous vehicles/weapons Programming language safety (incl. memory safety) static and dynamic guarantees about program correctness helps both the others — [more on this in section 3]23 The actual problem: Dos Reis) pro·file /ˈprōˌfīl/ noun a name for a set of rules enforced at compile time, that guarantees the absence of a class of defects, and the programmer can enable for a volume of code Profiles safety profiles checks guarantees less undefined behavior37 more compile-time programming consteval reflection generation more safety profiles checks guarantees less undefined behavior38390 码力 | 84 页 | 6.21 MB | 6 月前3 Peering Forward: C++'s Next Decadeautonomous vehicles/weapons Programming language safety (incl. memory safety) static and dynamic guarantees about program correctness helps both the others — [more on this in section 3]23 The actual problem: Dos Reis) pro·file /ˈprōˌfīl/ noun a name for a set of rules enforced at compile time, that guarantees the absence of a class of defects, and the programmer can enable for a volume of code Profiles safety profiles checks guarantees less undefined behavior37 more compile-time programming consteval reflection generation more safety profiles checks guarantees less undefined behavior38390 码力 | 84 页 | 6.21 MB | 6 月前3
共 115 条
- 1
- 2
- 3
- 4
- 5
- 6
- 12
相关搜索词














