- uses common storage for all or part of a program and also for all or part of the data necessary for the execution of the program
- executes user-written or user-designated programs
- performs user-designated data manipulation,including arithmetic and logic operations