<P> Multiple lines of the same computer program may be simultaneously executed using threads . Multithreading processors are optimized to execute multiple threads efficiently . </P> <P> A computer program in execution is normally treated as being different from the data the program operates on . However, in some cases, this distinction is blurred when a computer program modifies itself . The modified computer program is subsequently executed as part of the same program . Self - modifying code is possible for programs written in machine code, assembly language, Lisp, C, COBOL, PL / 1, and Prolog . </P> <P> Computer programs may be categorized along functional lines . The main functional categories are application software and system software . System software includes the operating system which couples computer hardware with application software . The purpose of the operating system is to provide an environment in which application software executes in a convenient and efficient manner . In addition to the operating system, system software includes embedded programs, boot programs, and micro programs . Application software designed for end users have a user interface . Application software not designed for the end user includes middleware, which couples one application with another . Application software also includes utility programs . The distinction between system software and application software is under debate . </P> <P> There are many types of application software: </P>

Computers need two types of programs in order. what are these programs called