Choose the term that matches each description.
allows users to interact with computer hardware and application software.

allows users to complete specific tasks, such as creating a document.

allows programmers to create new applications.