Język SimpleLang

Autorzy: Kacper Kilianek, Agata Biernacka

WSTĘP

Język został napisany w ramach projektu z przedmiotu Języki formalne i kompilatory. Do analizy składnowej wykorzystano ANTLR, czyli narzędzie do generowania analizatorów składniowych. Jest on odpowiedzialny za interpretację gramatyki, tworzenie parsera, lexera oraz drzewa wyprowadzenia AST. Za kompilację drzewa wyprowadzenia do postaci kodu maszynowego i dalszą optymalizację odpowiada LLVM.

ETAP 1.

Język pozwala na tworzenie prostych programów z rozszerzeniem sl. Umożliwa tworzenie zmiennych, wykonywanie operacji arytmetycznych na zmiennych oraz posiada zaimplementowane podstawowe metody wejścia i wyjścia. W razie problemów język posiada rozbudowany modułu wskazywania błędów podczas analizy leksykalno-składniowej.

Zmienne

Język wspiera 3 typy zmiennych:

  • int - typ całkowity
  • real - typ zmiennoprzecinkowy
  • long - próba typu 64bitowego
  • bool - typ logiczny (działa!)

Język wspiera również podstawowe operacje algebraiczne:

  • "+" - dodawanie
  • "-" - odejmowanie
  • "*" - mnożenie
  • "/" - dzielenie

Możliwe są 3 główne operacje na zmiennych:

  • deklaracja
  • deklaracja z przypisaniem
  • przypisanie

Składnia wymienionych operacji:

// deklaracja
<typ> <nazwa zmiennej>
// deklaracja z przypisaniem
<typ> <nazwa zmiennej> = <wartość>
// przypisanie
<nazwa zmiennej> = <wartość>

Przykładowy kod:

int z = 4
z = z + 2 * 3 - 3
real a
a = 1.1 * 1.1 + 5.4 / 2.7

Funkcje wbudowane

Dostępne są 2 funkcje wbudowane:

  • print() - odpowiadający za wypisywanie wartości zmiennych
  • read() - odpowiadający za wczytywanie wartości zmiennych

Funkcja print

Funkcja pozwala na wypisywanie wartości zmiennych typu int, real, bool oraz ich odpowiedników tablicowych (pojedyńcze elementy).

Składnia wywołania funkcji:

print(<zmienna wypisywana>)

Funkcja read

Funkcja pozwala na wpisywanie wartości zmiennych wprowadzony przez użytkownika typu int, real, bool.

Składnia wywołania funkcji:

read(<zmienna wpisywana>)