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.