कम्पाइलर एक कंप्यूटर प्रोग्राम है जो एक प्रोग्रामिंग भाषा को याने कंप्यूटर कोड को दूसरी भाषा में ट्रांसलेट करता है। कंपाइलर जो कुछ कंप्यूटर आर्किटेक्चर के लिए मशीन कोड में कुछ उच्च-स्तरीय प्रोग्रामिंग भाषा (जैसे जावा) में लिखे गए स्रोत प्रोग्राम का अनुवाद करता है। उत्पन्न मशीन कोड को बाद में हर बार अलग-अलग डेटा के खिलाफ कई बार निष्पादित किया जा सकता है।
औपचारिक रूप से, संकलन के आउटपुट को ऑब्जेक्ट कोड या कभी-कभी ऑब्जेक्ट मॉड्यूल कहा जाता है। ऑब्जेक्ट कोड मशीन कोड है जो प्रोसेसर एक बार में एक निर्देश कर सकता है। एक पारंपरिक प्रोसेसर ऑब्जेक्ट कोड को निष्पादित करने के तरीके के कारण कंपाइलरों की आवश्यकता होती है।
कम्पाइलर में भी कई अलग अलग प्रकार होते है, जो भिन्न प्रकार के उपयोगों के रूप में आउटपुट देता है। एक कंपाइलर जो एक कंप्यूटर पर चल सकता है जिसका सीपीयू या ऑपरेटिंग सिस्टम उस पर अलग होता है जिस पर वह कोड चलाता है जिसे क्रॉस-कंपाइलर कहा जाता है।
साधारण कम्पाइलर एक कंप्यूटर के लिए कोड निष्पादित करता है। पर क्रॉस कम्पाइलर में ऐसा नहीं है। यह किसी अन्य प्लेटफॉर्म के लिए निष्पादन योग्य कोड बनाने में सक्षम है। क्रॉस कंपाइलर वे कंपाइलर हैं जो एक कंप्यूटर पर निष्पादित होते हैं और ऑब्जेक्ट कोड उत्पन्न करते हैं जो विभिन्न प्लेटफॉर्म पर निष्पादित कर सकते हैं, जैसे मैक ओएस और एंड्रॉइड प्लेटफॉर्म पर
एक डिकंपाइलर एक प्रोग्रामिंग टूल है जो एक निष्पादन योग्य प्रोग्राम या लौ-लेवल या फिर मशीन भाषा को सॉफ्टवेयर प्रोग्रामर्स के लिए समजने योग्य बनाने के लिए उसे परिवर्तित करता है।
एक ट्रांसपॉन्सर, जिसे सोर्स-टू-सोर्स कंपाइलर या ट्रांसपाइलर भी कहा जाता है, एक विशेष प्रकार का कंपाइलर है जो प्रोग्राम के सोर्स कोड को दूसरी भाषा में परिवर्तित करता है। यह प्रोग्रामिंग भाषा के पुराने वर्जन में लिखे गए प्रोग्राम को भी संसाधित कर सकता है, इसे उसी भाषा के नए वर्जन में परिवर्तित कर सकता है।