Quark е компилиран език за програмиране.
Написан е на C, flex, bison, X86 assembly и LLVM assembly. Главната му цел е да служи като "ядро" на бъдещи езици за програмиране, които по-лесно да надграждат върху него. Поради това компилаторът му е изцяло модулен, което позволява бързи и ефективни промени и добавки към езика. Всеки един от компонентите му е независим от всички останали и позволява да бъде променян, премахван или дори заменян.
Структурата на компилатора на Quark е, както следва:
1. Скенер - "сканира" подадения файл и структурира последователността от символи в токени (думите на езика).
2. Парсер (Синтактичен анализатор) - анализира токените, проверява за синтактични грешки и създава специална структура от данни, наречена Абстрактно Синтактично Дърво (АСД).
3. Семантичен анализатор - анализира АСД, прилага проверки за обхвата на променливите чрез символна таблица (реализирана чрез стак от хаш таблици) и осъществява проверки на типовете.
4. Оптимизатор - прилага оптимизации от високо ниво и превръща АСД в Междинна Репрезентация (МР) от високо ниво.
5. Генератор на код - генерира assembly инструкции от МР. Най-точно генераторите на код са два, един за X86 assembly и един за LLVM assembly. Първият има бърз compile-time, но бавен run-time, а вторият - бавен compile-time, но бърз run-time. Освен това вторият е мултиплатформен.