Quark

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. Освен това вторият е мултиплатформен.

Дарий Топузов от 10В клас

снимка 1 от проект Quark
снимка 2 от проект Quark
снимка 3 от проект Quark
снимка 4 от проект Quark
снимка 5 от проект Quark