Skip to content

Wprowadzenie do języka Avocado

Czym jest Avocado

Avocado to imperatywny język programowania o charakterze proceduralnym, zaprojektowany z myślą o prostocie, czytelności oraz szybkim przyswajaniu podstaw programowania. Łączy klasyczne podejście znane z języków takich jak Pascal i C z nowoczesnym podejściem do narzędzi i ekosystemu.

Język pełni jednocześnie rolę:

  • języka edukacyjnego,
  • języka skryptowego,
  • warstwy abstrakcji nad niższym poziomem (transpilacja).

Paradygmat i model wykonania

Avocado opiera się na modelu imperatywnym - instrukcje wykonywane są sekwencyjnie, krok po kroku. Programista bezpośrednio kontroluje przepływ programu poprzez: * przypisania zmiennych, * instrukcje warunkowe, * pętle, * wywołania procedur i funkcji.

Model ten odpowiada klasycznemu podejściu: najpierw wykonaj A → potem B → jeśli warunek C → wykonaj D.

Struktura programu

Programy w Avocado są organizowane w:

  • procedury (procedura / procedure),
  • funkcje (funkcja / function),
  • blok główny (główny / main).

Każdy blok zawiera zestaw instrukcji wykonywanych w określonej kolejności. Podejście to wspiera modularność i czytelność kodu.

Blok główny programu

Każdy program musi zawierać blok główny (main / główny), od którego rozpoczyna się wykonanie programu.

Blok główny:

  • nie jest procedurą,
  • stanowi punkt wejścia,
  • kończy się słowem end. (z kropką).

/ polska składnia /

główny

wywołaj_inną_procedurę

koniec.

/ angielska składnia /

main

call_other_procedure

end.

Struktura blokowa i kontrola przepływu

Avocado wykorzystuje klasyczne konstrukcje programowania strukturalnego:

  • bloki: początek ... koniec / start ... end
  • instrukcje warunkowe: jeżeli ... wtedy ... inaczej / if ... then ... else
  • pętle:
  • dla / for
  • dopóki / while

Te elementy stanowią fundament czytelnego i przewidywalnego kodu.

Dwujęzyczna składnia

Jedną z kluczowych cech języka Avocado jest pełne wsparcie dla składni polskiej i angielskiej.

Możliwości:

  • używanie polskich słów kluczowych (jeżeli, dopóki, procedura),
  • używanie angielskich odpowiedników (if, while, procedure),
  • opcjonalne użycie znaków diakrytycznych (jeżeli / jezeli),
  • możliwość mieszania składni (choć zalecana jest spójność w projekcie).

Zasada: składnia ma być wygodna dla programisty.

Aktualny zakres języka

Obecna wersja Avocado:

  • koncentruje się na programowaniu proceduralnym,
  • nie zawiera jeszcze mechanizmów programowania obiektowego (OOP),
  • rozwijana jest w kierunku rozszerzeń systemowych i frameworków.

Wykonywanie i kompilacja

Avocado wykorzystuje własny proces przetwarzania kodu źródłowego, który przekształca program w wydajną formę wykonywalną.

Proces ten obejmuje:

  • analizę składniową i semantyczną,
  • walidację kodu,
  • optymalizację,
  • generowanie kodu wykonywalnego.

Dzięki temu:

  • programy działają szybko i przewidywalnie,
  • środowisko zachowuje pełną kontrolę nad procesem kompilacji,
  • możliwy jest dalszy rozwój backendów (np. WebAssembly).

Kierunek rozwoju

Architektura Avocado została zaprojektowana w sposób umożliwiający rozwój wielu backendów wykonania. Aktualne kierunki obejmują:

  • natywny kod wykonywalny,
  • WebAssembly (w tym generowanie formatu WAT),
  • lekkie środowiska uruchomieniowe.

Takie podejście pozwala zachować niezależność technologii oraz elastyczność wdrożeń.

Ekosystem frameworków

Avocado nie jest tylko językiem - to cały ekosystem narzędzi i frameworków:

Avoraiser - GUI (desktop)

Framework do budowy natywnych aplikacji desktopowych: * oparty o WinAPI, * nastawiony na wydajność, * bez ciężkich zależności, * kontrola niskopoziomowa UI

AvocadoNet - sieć / backend

Framework do komunikacji sieciowej i backendu:

  • obsługa protokołów,
  • komunikacja klient-serwer,
  • budowa usług sieciowych,
  • fundament pod aplikacje backendowe.

Avorender - aplikacje webowe

Framework do tworzenia aplikacji webowych:

  • warstwa frontend/web,
  • integracja z generowanym kodem,
  • kierunek: lekki runtime + renderowanie.