Is a system for executing computer programs. There are two general approaches to programming language implementation: interpretation and compilation.