Comprehensive and Detailed Explanation From Exact Extract:
Object-oriented languages are defined by their use of objects, which combine data (attributes) and operations (methods) to model real-world entities. According to foundational programming principles, this encapsulation of data and behavior is a hallmark of OOP languages.
Option A: "Supports creating programs as items that have data plus operations." This is correct. OOP languages (e.g., C++, Java, Python) organize programs into objects, where each object contains data (fields or attributes) and operations (methods). For example, a Car object might have data like speed and methods like accelerate().
Option B: "Supports creating programs as a set of functions." This is incorrect. This describes functional or procedural languages (e.g., C, Haskell), where programs are structured as functions or procedures, not objects.
Option C: "Requires a compiler to translate to machine code." This is incorrect. Not all OOP languages require compilation to machine code (e.g., Python is interpreted). Compilation is a characteristic of some languages (e.g., C++, Java), not a defining feature of OOP.
Option D: "Can be run on any machine that has an interpreter." This is incorrect. While some OOP languages (e.g., Python) are interpreted, others (e.g., C++) are compiled. Interpretability is not specific to OOP.
Certiport Scripting and Programming Foundations Study Guide (Section on Object-Oriented Programming).
Java Documentation: “Defining Classes” (https://docs.oracle.com/javase/tutorial/java/javaOO/).
W3Schools: “Python Classes and Objects” (https://www.w3schools.com/python/python_classes.asp).