diff --git a/user-guide/modules/ROOT/nav.adoc b/user-guide/modules/ROOT/nav.adoc index bc550263..abf637af 100644 --- a/user-guide/modules/ROOT/nav.adoc +++ b/user-guide/modules/ROOT/nav.adoc @@ -43,7 +43,9 @@ Official repository: https://github.com/boostorg/website-v2-docs ** xref:boost-history.adoc[] ** xref:in-memoriam-beman-dawes.adoc[] -* xref:resources.adoc[] +* Resources +** xref:resources.adoc[] +** xref:glossary.adoc[] * Reference ** xref:library-naming.adoc[] diff --git a/user-guide/modules/ROOT/pages/faq.adoc b/user-guide/modules/ROOT/pages/faq.adoc index 4143fa43..be3980a0 100644 --- a/user-guide/modules/ROOT/pages/faq.adoc +++ b/user-guide/modules/ROOT/pages/faq.adoc @@ -769,5 +769,6 @@ This function can now be used to sort arrays of any type (that supports the `<` * xref:contributor-guide:ROOT:contributors-faq.adoc[Contributor Guide FAQ] * xref:explore-the-content.adoc[] +* xref:glossary.adoc[] * xref:resources.adoc[] diff --git a/user-guide/modules/ROOT/pages/glossary.adoc b/user-guide/modules/ROOT/pages/glossary.adoc new file mode 100644 index 00000000..f6a459f7 --- /dev/null +++ b/user-guide/modules/ROOT/pages/glossary.adoc @@ -0,0 +1,255 @@ +//// +Copyright (c) 2024 The C++ Alliance, Inc. (https://cppalliance.org) + +Distributed under the Boost Software License, Version 1.0. (See accompanying +file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) + +Official repository: https://github.com/boostorg/website-v2-docs +//// += Glossary + +You will find a myriad of jargon, acronyms and product or tool names used both in technical documentation and social media discussion of the Boost pass:[C++]Libraries and pass:[C++] development in general. This section contains descriptions of the most common. + +[[contents]] +== Contents +[width="50%",stripes=odd,frame=none] +|=== +| <> | <> | <> | <> | <> | <> | <> | <> | <> | <> | <> | <> | <> +| <> | <> | <

> | <> | <> | <> | <> | <> | <> | <> | <> | <> | <> +|=== + +== A + +*ABI* : Application Binary Interface + +*ADL* : Argument-Dependent Lookup + +*AFAICT* : _As Far As I Can Tell_ + +*ASIO* : Asynchronous Input/Output (refer to boost:asio[]). + +== B + +*BFS* : Breadth-First Search + +*Bikeshedding* or *BS* : _Focusing on trivial issues_ + +*BTW* : _By The Way_ + +== C + +*CICD (CI/CD)* : Continuous Integration and Continuous Deployment (or Delivery). CI refers to the practice of automatically integrating code changes into a shared repository, where each change is verified by automated builds and tests. CD extends this process to automatically deploy or deliver new code to production environments. Refer to xref:contributor-guide:ROOT:testing/continuous-integration.adoc[Contributor Guide: Continuous Integration]. + +*CRTP* : Curiously Recurring Template Pattern + +== D + +*DDS* : Data Distribution Service + +*DFS* : Depth-First Search + +*DLL* : Dynamic Link Library + +*Drone* : A continuous integration (CI) and delivery platform that automates the build, test, and deploy stages of a software pipeline. It is container-based and integrates with various version control systems, supporting multiple languages and environments. Refer to xref:contributor-guide:ROOT:testing/continuous-integration.adoc[Contributor Guide: Continuous Integration]. + +*DRY* : _Don't Repeat Yourself_ + +== E + +*EVP* : + +* Used in cryptography, particularly in OpenSSL, where EVP stands for _Envelope_. It is used to refer to high-level cryptographic functions in the OpenSSL library, such as encryption, hashing, and signing. pass:[C++] programs using OpenSSL for cryptographic operations might use the EVP APIs. + +* Enhanced Vector Processing : in high-performance computing contexts, EVP might refer to techniques that leverage vectorization or SIMD (Single Instruction, Multiple Data) for improving computational performance. It relates to libraries or frameworks that optimize algorithms using vectorized processing. + +== F + +*FIFO* : First In, First Out + +*FOMO* : _Fear Of Missing Out_ + +*FPU* : Floating Point Unit + +*FSM* : Finite State Machine + +*FUD* : _Fear, Uncertainty, and Doubt_ + +*FWIW* : _For What It's Worth_ + +== G + +*GCC* : GNU Compiler Collection - a popular open-source compiler that supports pass:[C++], and it is frequently mentioned in discussions about toolchains, performance optimizations, and cross-platform development. + +*GIL* : Generic Image Library - boost:gil[] is a library designed for image processing, offering a flexible way to manipulate and process images. + +== H + +*HSM* : Hierarchical State Machine - used in designing state machines in software development, often in real-time systems or simulations. + +*HRT* : High-Resolution Timer - a high-resolution timing mechanisms used in pass:[C++] for precise measurements of time, especially in performance profiling and real-time systems. + +== I + +*IDEs* : Integrated Development Environments + +*IMO* or *IMHO* : _In My (Honest or Humble) Opinion_ + +*IOW* : _In Other Words_ + + +== J + +*JNI* : Java Native Interface - a framework that allows pass:[C++] code to interact with Java code. JNI is relevant when integrating pass:[C++] components into Java applications, especially in cross-language development. + +*JIT* : Just-In-Time (Compilation) - while JIT compilation is more commonly associated with languages like JavaScript or Java, it is occasionally discussed in the context of pass:[C++] when talking about optimization techniques, runtime compilation, or performance-critical applications. Some pass:[C++] libraries (e.g., LLVM) support JIT compilation features. + +== K + +*KISS* : _Keep It Simple, Stupid_ + +== L + +*LGTM* : _Looks Good To Me_ + +*LIFO* : Last In, First Out + +*LOL* : _Laughing Out Loud_ + +*LSP* : Liskov Substitution Principle - states that objects of a derived class should be able to replace objects of the base class without affecting the correctness of the program, ensuring that a subclass can stand in for its superclass without altering expected behavior. + +== M + +*MVP* : Model-View-Presenter + +*MDS* : + +* Meltdown Data Sampling : in the context of system security and CPU vulnerabilities, MDS refers to a family of side-channel attacks that target weaknesses in modern CPU architectures. These attacks can potentially leak sensitive data through speculative execution flaws, similar to vulnerabilities like Meltdown and Spectre. + +* Modular Design Structure : sometimes used to describe a software design methodology in which systems are broken down into modules, allowing for separation of concerns and better maintainability. + +* Multiple Data Streams : a more abstract term, refers to scenarios where an application handles multiple data streams simultaneously, possibly in a parallel or distributed environment. + +== N + +*NDA* : Non-Disclosure Agreement + +*NTTP* : Non-Type Template Parameter + +== O + +*OOB* : Out of Bounds (or Out of Band) + +*OOP* : Object-Oriented Programming + +== P + +*PIMPL* : Pointer to IMPLementation (or the "Cheshire Cat" idiom) + +*POD* : _Plain Old Data_ + +*POSIX* : Portable Operating System Interface + +*PR* : Pull Request + +== Q + +*QML* : Qt Meta Language - a declarative language used in conjunction with Qt for designing user interfaces. QML is commonly referenced in pass:[C++] discussions related to UI development in Qt. + +*QOI* : Quite OK Image format - a relatively new image file format that aims to provide lossless image compression with a focus on simplicity and speed, sometimes used in performance-critical applications dealing with image processing. + +*QoS* : Quality of Service - a concept that often appears in networking discussions, especially when pass:[C++] programs deal with real-time communications, distributed systems, or systems requiring specific performance guarantees. + +*Qt* : This is a widely-used pass:[C++] framework for cross-platform GUI applications. While not an acronym, it's often capitalized as Qt in discussions. Qt is known for its rich set of libraries and tools to develop not only graphical applications but also applications that require network handling, file I/O, and more. + +== R + +*RAII* : Resource Acquisition Is Initialization + +*RPC* : Remote Procedure Call + +*RTFM* : _Read The Fine (or Friendly) Manual_ + +*RTTI* : Run-Time Type Information + +== S + +*SFINAE* : _Substitution Failure Is Not An Error_ + +*SOLID* : Single Responsibility, Open/Closed, Liskov Substitution, Interface Segregation, Dependency Inversion (Design principles) + +*STL* : Standard Template Library + +== T + +*TCO* : Tail Call Optimization + +*TCP* : Transmission Control Protocol + +*TDD* : Test-Driven Development + +*Test Matrix* : A test matrix is a table used to define and track test cases, inputs, and environments, such as various operating systems, compilers, and hardware platforms. Each row represents a test scenario or feature, while the columns represent variations like software versions or hardware setups. Refer to xref:contributor-guide:ROOT:testing/boost-test-matrix.adoc[Contributor Guide: Test Matrix]. + +*TLS* : Thread-Local Storage + +*TL;DR* : _Too Long; Didn't Read_ + +== U + +*UB* : Undefined Behavior + +*UDP* : User Datagram Protocol + +*UTC* : Coordinated Universal Time + +== V + +*VALA* : Vector Arithmetic Logic Array - a specialized hardware design or computation technique, but in some performance-critical pass:[C++] applications, vector arithmetic and optimization may be discussed in a similar context. + +*VFS* : Virtual File System - abstract file system operations across multiple platforms might implement or make use of a VFS layer. This allows consistent file I/O behavior regardless of the underlying file system. + +*VLA* : Variable Length Array - although pass:[C++] does not officially support VLAs in the standard, some compilers provide support as an extension. VLAs allow the length of an array to be determined at runtime. + +*VoIP* : Voice over Internet Protocol - in networking libraries or real-time communication systems, VoIP is often discussed when implementing features for voice transmission over IP networks. + +*VR* : Virtual Reality - in game programming, simulations, or graphics-intensive applications, VR is often mentioned in discussions. pass:[C++] is commonly used for developing VR engines and related tools. + +*VTable* : Virtual Table - a mechanism used in pass:[C++] to support dynamic (runtime) polymorphism through virtual functions. Discussions involving inheritance and object-oriented programming often reference vtables. + +== W + +*WowBadger* : TBD + +*WRT* : _With Respect To_ + +== X + +*XSS* : Cross-Site Scripting - a security vulnerability where malicious scripts are injected into websites. + +== Y + +*YAGNI* : _You Aren't Gonna Need It_ + +== Z + +*ZALGO* : refers to a form of distorted or "corrupted" text, and while this is more of a meme in the programming community, it comes up when discussing character encoding or text rendering in pass:[C++]. + +*ZF* : Zero-Fill - zero-filling memory, often done for security reasons or to initialize data in pass:[C++] programs. + +*ZFP* : Compressed Floating-Point Arrays - ZFP is a pass:[C++] library for compressed floating-point arrays, often used in scientific computing or simulations requiring efficient memory usage. + +*Zlib* : Zlib Compression Library - a widely-used compression library in pass:[C++] for data compression and decompression. + +*ZMQ* : ZeroMQ - a high-performance asynchronous messaging library that can be used in pass:[C++] for concurrent programming and networking applications. + +*Z-order* or *Z-ordering* : Refers to the drawing order of objects in 2D or 3D space. This is relevant in pass:[C++] game development or graphical applications when managing layers of objects. + +== See Also + +* xref:faq.adoc[] +* xref:resources.adoc[] + + + + + +