• set of programming tools that allow programmers to develop specialized computer applications and adapt them to various operating systems (usually includes an editor, linker, compiler, etc.)