Bracket Language v1.2.0
The Comprehensive Native & Metaprogramming Update
Wersja 1.2.0 to przełomowy moment dla Bracket Language. Z prostego ewaluatora skryptów, projekt wyewoluował w pełnoprawne, dynamiczne środowisko programistyczne. Zapewnia teraz wsparcie dla zaawansowanych struktur danych, bezpiecznej obsługi błędów oraz hermetycznej komunikacji z natywnym kodem C++.
Kluczowe Funkcje i Możliwości Języka
Zaawansowane Struktury Danych: Pełne, natywne wsparcie dla Tablic definiowanych nawiasami klamrowymi { ... } oraz Słowników/Map definiowanych nawiasami kwadratowymi [ ... ]. Wbudowane komendy get, set oraz push pozwalają na swobodne odczytywanie i modyfikowanie struktur w pamięci.
- Bezpieczna Obsługa Błędów (
try-catch): Awarie nie kończą już działania programu. Zaimplementowano konstrukcję(try blok_glowny zmienna_bledu handler), która bezpiecznie przechwytuje wyjątki (np. wyjście poza zakres tablicy, brak pliku) i przekazuje treść błędu do wskazanego bloku ratunkowego. - Natywna Interoperacyjność z C/C++ (
native_include): Prawdziwa rewolucja w wydajności. Bracket potrafi otwierać skompilowane biblioteki współdzielone (.so) za pomocą systemowego API (dlopen/dlsym) i uruchamiać wysokowydajny kod C++ (w tym biblioteki graficzne, takie jak X11) bezpośrednio ze skryptu! - System Modułów i Bibliotek (
include): Język obsługuje dzielenie kodu na wiele plików.bl. Moduł importowania zawiera wbudowane zabezpieczenia przed nieskończonymi cyklami (działa jakinclude_once), co pozwala na tworzenie rozbudowanej biblioteki standardowej. - Metaprogramowanie (
macro&eval): Wprowadzono lispowe podejście do modyfikacji kodu. Komendaevalpozwala na uruchamianie ciągów znaków jako kodu Bracket, a funkcje typumacroprzechwytują surowy tekst z argumentów, pozwalając na manipulowanie logiką zanim zostanie ona wyewaluowana. - Interakcja z Systemem (I/O): Język jest gotowy do tworzenia narzędzi automatyzujących. Posiada komendy do odczytu i zapisu plików (
read,write), pobierania danych z klawiatury (input), generowania liczb losowych (random), a nawet wywoływania komend powłoki systemowej (sys).
🛠 Zmiany pod maską (Silnik i Wydajność)
-
Bezpieczeństwo Środowiska (
const): Dodano słowo kluczoweconstdo deklarowania zmiennych stałych, blokując możliwość przypadkowego nadpisania kluczowych danych przez komendędefczyset. - Nowy system domknięć (Lexical Scoping): Całkowicie przebudowano architekturę zarządzania pamięcią (Environment). Interpreter wykorzystuje teraz strukturę wskaźników nadrzędnych (parent-pointers), eliminując kosztowne kopiowanie całych map.
-
Błyskawiczna Rekurencja: Dzięki zoptymalizowanemu środowisku, wywołania rekurencyjne działają w czasie
$O(1)$ dla alokacji pamięci. Programy przestały "wyciekać", a obciążające algorytmy matematyczne działają stabilnie.