کامپایلر یک برنامه کامپیوتری است که کد منبع نوشته شده در یک زبان برنامه نویسی را به کد ماشینی که می تواند توسط کامپیوتر اجرا شود ترجمه می کند. کد ماشین معمولاً به شکل کدهای باینری (یعنی 0 و 1) است که می تواند مستقیماً توسط واحد پردازش مرکزی رایانه (CPU) اجرا شود. کامپایلر از فرآیند تبدیل کد منبع سطح بالا به کد ماشین مراقبت می کند، که زبان سطح پایینی است که کامپیوتر می تواند آن را بفهمد.
لینکر یک برنامه کامپیوتری است که یک یا چند فایل شی تولید شده توسط کامپایلر را می گیرد و آنها را در یک فایل اجرایی ترکیب می کند. فایل شی فایلی است که حاوی کد ماشین و اطلاعات دیگری مانند داده ها و نمادها است. پیوند دهنده این فایل های شی را با هم ترکیب می کند و هر گونه ارجاع بین آنها را حل می کند، مانند فراخوانی تابع یا تخصیص متغیرها. پیوند دهنده همچنین هرگونه ارجاع خارجی به کتابخانه ها، مانند کتابخانه های ریاضی یا کتابخانه های سیستم را حل می کند. خروجی نهایی لینکر یک فایل اجرایی است که می تواند بر روی کامپیوتر اجرا شود.
به طور خلاصه، کامپایلرها برنامههای رایانهای هستند که کد منبع را به کد ماشین ترجمه میکنند، در حالی که لینککنندهها برنامههای رایانهای هستند که فایلهای شی را ترکیب میکنند و ارجاعها را بین آنها حل میکنند تا یک فایل اجرایی تولید کنند که میتواند بر روی رایانه اجرا شود.