Luau, wariant sprawdzający typ języka Lua staje się open source

Ostatnio ogłoszono wydanie pierwszej wersji niezależny od języka programowania Luau, który jest kontynuowany wraz z rozwojem Lua i jest również kompatybilny z poprzednimi wersjami Lua 5.1.

Język Luau to przeznaczony głównie do osadzania silników skryptowych w aplikacjach i ma na celu osiągnięcie wysokiej wydajności i niskiego zużycia zasobów. Kod projektu jest napisany w C++ i jest otwarty na licencji MIT.

Luau rozszerza Lua o możliwości sprawdzania typów i niektóre kompilacje nowe składnie, takie jak literały ciągów. Język jest kompatybilny z poprzednimi wersjami Lua 5.1 i częściowo z nowszymi wersjami. Obsługiwane jest Lua Runtime API, pozwalając Luau na używanie z wcześniej istniejącymi kodami i linkami.

Na dzień dzisiejszy Luau nie jest już nieodłączną częścią platformy Roblox; jest niezależnym językiem open source.

Środowisko wykonawcze języka jest oparte na mocno poprawionym kodzie wykonawczym Lua 5.1, ale interpreter został całkowicie przepisany. Rozwój obejmował kilka nowych technik optymalizacji, które umożliwiły osiągnięcie wyższej wydajności w porównaniu z Lua.

Kiedy Roblox powstał 15 lat temu, wybraliśmy Lua jako język programowania. Lua była mała, szybka, łatwa w integracji i nauce, a przed naszymi programistami otworzyła ogromne możliwości.

Duża część Robloxa została zbudowana na Lua, w tym setki tysięcy linii wewnętrznie opracowanego kodu, który do dziś obsługuje aplikację Roblox i Roblox Studio, oraz miliony doświadczeń stworzonych przez programistów. Dla wielu z nich był to pierwszy język programowania, którego się nauczyli.

Projekt został opracowany przez Roblox i jest używany w kodzie platformy gier i niestandardowych aplikacjach z tej firmy, w tym wydawcy Roblox Studio. Początkowo Luau był rozwijany za zamkniętymi drzwiami, ale ostatecznie zdecydowano się przenieść go do kategorii projektów otwartych w celu dalszego wspólnego rozwoju przy udziale społeczności.

Najważniejsze funkcje:

  • System typu sekwencyjnego, który zajmuje pozycję pośrednią między pisaniem dynamicznym a statycznym. Luau umożliwia pisanie statyczne według potrzeb, określając informacje o typie za pomocą specjalnych adnotacji.
  • ten wbudowane typy „Dowolny”, „zerowy”, „logiczny”, „liczba”, „ciąg” i „wątek”. Jednocześnie zachowana jest również możliwość korzystania z dynamicznego typowania bez wyraźnego definiowania typu zmiennych i funkcji.
  • Obsługa ciągów dosłownych (jak w Lua 5.3)
  • Obsługa wyrażenia „continue”, oprócz istniejącego słowa kluczowego „break”, aby przejść do nowej iteracji pętli.
  • Wsparcie dla operatorów przypisania złożonego
  • Wsparcie dla korzystania z bloki warunkowe „Jeżeli-to-inaczej” w postaci wyrażeń zwracających wartość obliczoną podczas wykonywania bloku. Możesz określić dowolną liczbę instrukcji elseif w bloku.
  • Obecność trybu piaskownicy co pozwala na uruchamianie niezaufanego kodu. Ta funkcja może służyć do organizowania własnego kodu i kodu napisanego przez innego programistę, na przykład bibliotek innych firm, których nie można zagwarantować, aby działały obok siebie.
  • Ograniczenie biblioteki standardowej, z której usunięto funkcje mogące potencjalnie stwarzać problemy z bezpieczeństwem. Na przykład biblioteki „io” (dostęp do plików i procesów startowych), „pakiet” (dostęp do plików i ładowania modułów), „os” (funkcje dostępu do plików i zmiany zmiennych środowiskowych zostały usunięte), „Debugowanie” (niezabezpieczone obsługa pamięci), "dofile" i "loadfile" (dostęp do systemu plików).
  • Zapewnij narzędzia do statycznej analizy kodu, wykrywania błędów (Linter) i walidacji użycia typów.
  • Analizator, interpreter kodu bajtowego i wysokowydajny zastrzeżony kompilator.
  • Luau nie obsługuje jeszcze kompilacji JIT, ale twierdzi się, że interpreter Luau jest w niektórych sytuacjach porównywalny pod względem wydajności do LuaJIT.

W końcu jeśli chcesz dowiedzieć się więcej na ten tematmożesz sprawdzić szczegóły W poniższym linku.


Zostaw swój komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *

*

*

  1. Odpowiedzialny za dane: Miguel Ángel Gatón
  2. Cel danych: kontrola spamu, zarządzanie komentarzami.
  3. Legitymacja: Twoja zgoda
  4. Przekazywanie danych: Dane nie będą przekazywane stronom trzecim, z wyjątkiem obowiązku prawnego.
  5. Przechowywanie danych: baza danych hostowana przez Occentus Networks (UE)
  6. Prawa: w dowolnym momencie możesz ograniczyć, odzyskać i usunąć swoje dane.