CPSC 421 OOP Final Exam Crossword III
Across
- 2. For low-level functionality with a function, Inversion of Control is often referred to as a _____
- 10. A program may do this due to improperly-used resources
- 12. All the advantages of lambdas to std::function, without the _____ disadvantage
- 15. In RAII, the resource is deallocated in the ______
- 16. A programming language paradigm where algorithms are written in terms of types to-be-specified-later and then instantiated when needed for specific types of the parameters is _____ _____
- 18. A type of resource (two words)
- 19. Keyword for a type template parameter
- 21. As with the Fibonacci example, it is possible to write ______ templates
- 24. The size of the impact of the NPM package left-pad is primarily due to _____ updates
- 25. Lambda functions with an empty capture, i.e., "[]", can be passed to _____ _______
- 26. std::optional can be used on any ____ type (non-pointer)
- 27. A C++ template is how std::_____() works
- 28. A resource must be properly ____ before use
- 29. Libraries with very specific usage, e.g., CLI11, have a _____ risk level
- 30. A dependency risk is that _____ fixes of the dependency may stop
- 32. The lambda function: [](const void* e1, const void* e2)->int { /* ... */ } is an example of an ____ comparison
- 33. The "single biggest, most critical vulnerability of the last decade" is in the package _____
- 35. In the YAMLParser IoC, many of the methods became _____
- 36. Minimizing dependencies is minimizing _____
- 38. Loosely-coupled modules allow us to easily _____ individual parts
- 39. Coupling has a significant effect on the _____ of a system
- 41. What the R in RAII stands for
- 44. In the YAMLParser IoC example, the only method in YAMLParser that the DockerReport calls
- 46. Multiplicity in UML primarily refers to _____ in a C++ class
- 51. In the real world, have someone with the responsibility to _____ the current state of each dependency
- 52. The abbreviation for Inversion of Control
- 53. One alternative to a smart pointer is to create a custom C++ _____
- 54. Loosely-coupled modules allow us to easily _____ individual parts
- 55. Template _________ do not have to be types
- 59. A type of resource
- 61. A C++ smart pointer that is in the standard
- 65. Each _____ is a concern
- 67. The client passes a flag or command that explicitly controls what the called code is doing is _____ coupling
- 69. Function often cannot be _____ close to where they are used
- 72. The std::optional completely replaces using _____ for optional single value attributes
- 73. Client code passes parameters via a non-private data format is _____ coupling
- 75. One use case for std::optional is for an _____ return
- 79. All software is built using other _____
- 80. The lambda function: [](char& c) { c = std::toupper(c); } uses an ____ parameter
- 82. Multivalued multiplicities are ______ in C++
- 84. A char* can have ____ states
- 85. For good design, _____ dependencies
- 87. For good design, _____ the use of dependencies as much as possible
- 88. A recurring construct to fix a commonly occurring problem (two words)
- 91. The compiler can _____ lambda functions in template
- 92. Special-purpose libraries, e.g., libarchive, have a _____ risk level
- 96. In good design, dependencies are _____ and minimized as much as possible
- 99. A function pointer is slightly _____ than a direct call
- 100. Template parameters do not have to be ____
- 102. Inversion of Control inverts _____ of the control flow of the program
- 104. Tightly-coupled modules lose a lot of _____
- 106. Both multiplicities [0..1] and [0..*] are ______
- 107. A type of initialization where we wait to allocate until right before it is needed
- 108. A lambda function is also known as an _____ function
- 109. Keyword to declare a C++ template
- 111. Standard libraries of the programming language, e.g., C++ standard libraries, have a _____ _____ risk level
- 112. Function pointers as a handler can only use lambda's with _____ capture
- 113. Both multiplicities [1] and [0..1] are ____ ____
- 115. _______ as a handler has no limits but is very slow
- 116. From a template function the compiler will ______ a separate function for each type
- 118. Similar to much _____-_____ programming
- 119. A resource must be properly ____ before use
- 120. A resource must be properly _____ after use
- 121. With C++ templates as extension points, we get a lot of _____
- 122. A solution introduced in c++17 is ______
- 123. For a function pointer, the function must be ______ before it is passed
Down
- 1. A type of resource
- 3. Loosely-coupled modules are easier to _____ separately
- 4. In the Template Function Extension, the name of the type for the compare function is _____
- 5. When a module directly references the content of another module, is _____ coupling
- 6. In the Template Class Extension, we create the processor with Process<_____(compare)>
- 7. A C function for sorting that uses a function pointer for comparison
- 8. Related to a programming idiom
- 9. Inline lambda functions create several _____ issues
- 11. C++ templates replaces the need for _____ types (one variable can store many different types of data)
- 13. Tightly-coupled modules can be more _____
- 14. Inversion of Control is essential for _____
- 17. A problem with resources such as memory when we lose all access to them
- 20. A low degree of coupling is _____ coupled
- 22. Instead of your code calling a function/method, you _____ parts of your code
- 23. Originated from Church's lambda _______
- 25. A dependency risk is that _____ development of the dependency may stop
- 31. In RAII, the resource is typically allocated in the _____
- 34. A dependency risk is that the dependency may become _____
- 36. The [] in the lambda expression [](int n1, int n2)->bool {}
- 37. A dependency risk is that _____ fixes of the dependency may stop
- 40. Both multiplicities [1] and [1..*] are ______
- 42. C++ _____ as a handler has no limits and is extremely fast
- 43. For good design, minimize the _____ of where the dependency is used in a project
- 45. C++ templates as extension points allow the use of _____ in lambda functions
- 47. One module only passes the data required by another module is _____ coupling
- 48. The lambda function: [](int n1, int n2)->bool { return n1 < n2; } is an example of a ____ comparison
- 49. A resource must be properly ____ before use
- 50. All template instantiation is done at ______ time
- 56. A std::string can have ____ states
- 57. A special kind of coupling, _____ coupling, is between a derived and base class
- 58. _____ _____ as a handler is limited to free functions
- 60. What the second I in RAII stands for
- 62. The lambda function: [](char c) { std::cout << c; } uses an __ parameter
- 63. _____ dependencies are dependencies on the code that we (or our team) write
- 64. Use of other software means that we are _____ on that software to work, work correctly, and be available for a given timeframe
- 66. Functions exchange data using global data instead of arguments is _____ coupling
- 68. What the A in RAII stands for
- 70. Lambda functions are very efficient and very _____
- 71. A type of free (deallocation) performed more than once on the same allocation
- 74. A type of pointer that follows RAII
- 76. The -> in the lambda expression [](int n1, int n2)->bool {}
- 77. The {} in the lambda expression [](int n1, int n2)->bool {}
- 78. One module passes more data than needed to another module is _____ coupling
- 79. Lambda functions passed to std::function parameters are very _____
- 81. Classes with zero to minimal coupling are _____
- 83. Code is (potentially) _____
- 86. To tell the difference between a std::string that does not have a value versus a std::string with an empty string, we could use a ____, but it is not a great solution.
- 89. The goal of coupling is to _____ external interaction
- 90. Naming things is good when we have a good name, but a _____ when we don't
- 93. Broad, external libraries, e.g., Boost, have a _____ risk level
- 94. How we can reset a std::optional back to an empty state
- 95. The capture and _____ _____ are very important
- 97. Coupling is an _____ measure
- 98. The std::optional allows for ____ loading/allocation
- 101. Both multiplicities [1..*] and [*] are ______
- 103. A high degree of coupling is _____ coupled
- 104. Using C++ Template with lambda functions is very _____
- 105. For good design, favor _____ (.cpp) over interface (.hpp)
- 110. The () in the lambda expression [](int n1, int n2)->bool {}
- 114. _____ dependencies are dependencies on code we (or our team) did not write
- 117. The null state of char* has the value _____