Pętlik to mały język programowania, którego składnię opisuje gramatyka z symbolem początkowym Program:

Program → CiągInstrukcji
CiągInstrukcji → ε | CiągInstrukcji Instrukcja
Instrukcja → Zwiększ | Powtarzaj
Zwiększ → Zmienna
Powtarzaj → '(' Zmienna CiągInstrukcji ')'
Zmienna → 'a' | ... | 'z'

Instrukcje::

  • Zwiększ: równoważna instrukcji ++zmienna języka C.
  • Powtarzaj: równoważna instrukcji języka C:
    while (zmienna > 0) {
        --zmienna;
        ...
    }
    

Projekt składa się z dwóch części:

  1. Kompilatora optymalizującego, generującego kod na maszynę wirtualną.
  2. Interpretera kodu tej maszyny.

Instrukcje maszynowe:

  • INC Zmienna: zwiększ o jeden wartość zmiennej Zmienna.
  • ADD Zmienna0 Zmienna1: dodaj do zmiennej Zmienna0 wartość zmiennej Zmienna1.
  • CLR Zmienna: wyzeruj zmienną Zmienna.
  • JMP Adres: skocz do instrukcji o adresie Adres.
  • DJZ Zmienna Adres: jeśli Zmienna ma wartość 0 to skocz do instrukcji o adresie Adres, w przeciwnym przypadku zmniejsz o jeden wartość zmiennej Zmienna.
  • HLT: zakończ wykonywanie programu.

Program wypisuje wartości zmiennych oraz wykonuje program w języku Pętlik.

Kod źródłowy