Verse jest nowym językiem programowania, więc jeśli masz doświadczenie w programowaniu, ale widzisz coś, czego nie rozumiesz, zajrzyj do tego słowniczka.
Jeśli nie masz doświadczenia w programowaniu, ten słowniczek również jest dla ciebie. Zamieściliśmy w nim definicje wielu podstawowych pojęć programistycznych. Być może znajdziesz tu odpowiedzi, których szukasz!
Liczby i symbole
A
klasa abstrakcyjna
Jeśli klasa lub metoda klasy ma abstrakcyjny specyfikator, nie można utworzyć instancji tej klasy. Klasa abstrakcyjna jest przeznaczona do używania jako nadklasa, w której niektóre elementy członkowskie są zaimplementowane lub określone, ale nie wszystkie. Nazywana jest również klasą bazową.
abstrakcja
Zasada programowania, zgodnie z którą niepotrzebne szczegóły są ukrywane przed użytkownikiem, który nie musi rozumieć ukrytych zawiłości. Możesz na przykład wrzucić pieniądze do automatu vendingowego i wyciągnąć z niego przekąskę, nie rozumiejąc, jak działa jego mechanizm.
poziom dostępu
Uprawnienia potrzebne do uzyskania dostępu do elementu członkowskiego. Są one określane za pomocą specyfikatora przy elemencie członkowskim.
efekt addytywny
Efekt addytywny to efekt, który można dodać do efektu wyłącznego. Do efektów addytywnych należą
suspends
orazdecides
.
agent
Agent może być zarówno graczem, jak i sztuczną inteligencją (SI).
algorytm
Algorytm jest sekwencją instrukcji napisanych w celu rozwiązania problemu lub wykonania zadania. Można go porównać do przepisu kulinarnego. Gdy piszesz kod, który rozwiązuje problem lub wykonuje zadanie, ten kod jest algorytmem.
alternatywne liczby całkowite
Patrz system szesnastkowy.
wartość dowolna (any)
W Verse występuje specjalny typ,
any
, który jest nadtypem wszystkich typów (co sprawia, że wszystkie inne typy są podtypamiany
). Z tego powodu obsługuje bardzo niewiele operacji, ponieważ wszystkie operacje, które obsługuje, musiałyby być obsługiwane dla wszystkich wartości. Mimo że nie jest często używany, dobrze jest znać ten typ, ponieważ może pojawić się podczas pisania kodu, który generuje błąd. Jest on najczęściej spotykany, gdy wynikiem może być kilka różnych wyrażeń (takich jak różne ścieżkiif
), aany
jest jedynym wspólnym nadtypem między nimi.
API
Interfejs programowania aplikacji (ang. Application Programming Interface, API) to biblioteki zasadniczo pogrupowane w zestawy wywoływalnych funkcji, typów i struktur danych, które pozwalają użytkownikom na dostęp do systemów Unreal i Fortnite oraz interakcję z nimi.
archetyp
Archetyp to instancja klasy, która jest w pełni zdefiniowana za pomocą wartości dla jej pól w klasie.
tworzenie instancji archetypu
Proces tworzenia archetypu. Porównaj z konstruktorem, który również może uruchamiać logikę lub inne funkcje.
argument
Wartość przypisana do parametru w sygnaturze funkcji zmapowanej z wywołania funkcji.
tablica
Tablica to kontener, w którym można przechowywać elementy tego samego typu. Elementy tablicy są uporządkowane w kolejności, w jakiej zostały w niej umieszczone, a dostęp do nich można uzyskać poprzez ich pozycję w tablicy, zwaną ich indeksem.
Tablicę można utworzyć za pomocą słowa kluczowego
array
, po którym następuje{}
. Na przykład:Players : []player = array{Player1, Player2}
Aby dowiedzieć się więcej, patrz Tablica.
wyrażenie przypisania
W Verse wyrażenie przypisania przechowuje wartość w modyfikowalnej lokalizacji, na przykład podczas inicjacji zmiennej lub zmiany wartości zmiennej.
async
Wyrażenie asynchroniczne (async) może wymagać czasu na ocenę, ale nie musi. Wyrażenie asynchroniczne może, ale nie musi, zostać ukończone w bieżącej lub późniejszej aktualizacji symulacji. Funkcje asynchroniczne, które są identyfikowane za pomocą specyfikatora
suspends
, są również nazywane koprocedurami. Wyrażenia asynchroniczne są przeciwieństwem wyrażeń natychmiastowych.
kontekst wyrażenia asynchronicznego
Zakres, w którym dozwolone jest wyrażenie asynchroniczne, takie jak wywołanie koprocedury.
niepodzielne
Pojedyncza, kompletna jednostka kodu, która albo jest całkowicie wykonywana, albo całkowicie kończy się niepowodzeniem, bez przerywania lub obserwacji ze strony innego kodu. Kodu niepodzielnego nie można przerwać. Wszystkie sąsiadujące, natychmiastowe wyrażenia nieasynchroniczne są uważane za niepodzielne – ich kod ma gwarancję nieprzerwanego działania z tą samą aktualizacją i bez wywłaszczenia lub przełączania kontekstu.
atrybut
Atrybut to właściwość lub inna informacja powiązana z identyfikatorami, do której można się odwoływać lub którą można analizować w Verse lub w aplikacji, takiej jak UEFN.
Składnia atrybutu wykorzystuje symbol
@
, po którym następuje słowo kluczowe dla tego atrybutu.
B
szesnastkowy system liczbowy
System heksadecymalny (od heksa-, czyli sześć i decymalny, czyli dziesięć), czasem pisany w skrócie hex, to system liczbowy, w którym podstawą jest liczba 16. Używa się w nim 16 symboli zamiast powszechnie stosowanych 10 symboli w systemie dziesiętnym.
dwukierunkowe
Działające w dwóch kierunkach.
powiązanie
W programowaniu komputerowym powiązanie oznacza utworzenie połączenia między co najmniej dwoma obiektami na określony czas.
wyrażenie block
Wyrażenie block to sposób grupowania wyrażeń jako pojedynczego wyrażenia lub zagnieżdżania bloku kodu. Wyrażenia block zachowują się podobnie do bloków kodu.
ciało
Blok z własnym zakresem, który definiuje podwyrażenia elementu języka, takiego jak ciało funkcji lub ciało pętli. Na przykład ciało funkcji zawiera wyrażenia, które określają działanie funkcji, a wszelkie zmienne zadeklarowane w funkcji są lokalne dla tego ciała funkcji.
wartość logiczna (boolean)
Patrz logika boolowska.
logika boolowska
System logiczny, w którym wyrażona wartość jest prawdziwa (true) lub fałszywa (false) i który jest często używany do określania sterowania przepływem w językach programowania. Został on nazwany imieniem George'a Boole'a (1815–1864), matematyka, który wniósł kluczowy wkład w rozwój logiki i algebry.
W języku Verse typem używanym do reprezentowania wartości true i false jest
logic
. Ta logika boolowska jest realizowana przez wyrażenia zawodne w kontekstach niepowodzenia.
powiązane
Zmienna, na której wykonano operację powiązania. Wszystkie zmienne Verse zostają powiązane natychmiast po ich zdefiniowaniu – nie mogą być w stanie niepowiązanym.
nawias klamrowy
Patrz nawias.
nawias
W Verse nawiasy służą do określania różnych rodzajów informacji w kodzie. Verse używa czterech rodzajów nawiasów. Ich zastosowania są przede wszystkim następujące:
()
nawiasy okrągłe służą do ustawiania parametrów w sygnaturze funkcji i argumentów w wywołaniu funkcji oraz do grupowania wyrażeń, krotek i podklas.[]
nawiasy kwadratowe służą do wywołań funkcji zawodnych, specyfikatorów typu dla tablic i map oraz indeksowania do tablicy.{}
nawiasy klamrowe są wykorzystywane w tworzeniu instancji archetypu, formatowaniu bloku kodu i interpolacji ciągu tekstowego.<>
nawiasy ostrokątne służą do dodawania specyfikatorów do identyfikatorów i funkcji.
wyrażenie branch
Wyrażenie
branch
rozpoczyna blok co najmniej jednego podwyrażenia asynchronicznego. Każde wyrażenie, które po nim następuje, jest wykonywane natychmiast.Aby dowiedzieć się więcej, patrz Współbieżność.
break
Wyrażenie, które "przerywa" bieżące wyrażenie
loop
i wykonuje kolejne wyrażenie po wyrażeniu loop. Aby dowiedzieć się więcej, patrz Loop i break.
bug
Bug (z ang. robak, pluskwa) to błąd w programie komputerowym, który powoduje, że generuje on nieprawidłowy lub nieoczekiwany wynik. Bugi występują w czasie uruchomienia, w przeciwieństwie do błędów kompilatora, które występują w czasie kompilacji Verse. Proces identyfikowania i usuwania tych błędów nazywany jest debugowaniem.
build
Kompilowanie kodu Verse do instrukcji, które komputer może wykonać.
wbudowane
W niektórych językach programowania element wbudowany oznacza element, którego można używać bezpośrednio w języku i jego bibliotekach standardowych.
wbudowany typ
Wbudowanego typu nie można podzielić, w przeciwieństwie do typu złożonego.
C
C++
Popularny język programowania wykorzystywany w wielu różnych zastosowaniach – zwłaszcza w silnikach gier, takich jak Unreal Engine.
pamięć podręczna
Sposób przechowywania danych w celu uzyskania do nich szybszego dostępu.
wywołanie
W programie komputerowym, gdy program wymaga wykonania jakiejś instrukcji, mówi się, że program wywołuje instrukcję. Wywołanie wywołuje (aktywuje) specyficzną funkcję. Wywołania mogą występować, gdy gracz wchodzi w interakcję z obiektami lub w wyniku parametrów czasowych.
graf wywołań
Lista metod w stosie wywołań, z informacjami na temat każdego wywołania, takimi jak czas wykonania, znaczniki czasu i identyfikator funkcji.
stos wywołań
Stos wywołań jest używany przez program do śledzenia wywołań – które funkcje są uruchomione, które zostały zakończone, a które dopiero zostaną wywołane.
anulowane
Stan zadania, które zakończyło się przed ukończeniem.
wyrażenie case
Wyrażenie case może sterować przepływem programu z listy opcji. Aby dowiedzieć się więcej, patrz Case.
Ceil
Operacja matematyczna, która zaokrągla w górę wartość liczby wymiernej do najbliższej liczby całkowitej. Porównaj ten termin z
Floor
.
lista zmian
Sposób śledzenia zmian w pliku w Perforce między plikami lokalnymi, które są przechowywane na twoim komputerze, a plikami, które są przesyłane na serwer i łączone z plikami źródłowymi projektu. Lista zmian jest również nazywana CL (od angielskiego "changelist").
char
Typ danych, który przechowuje pojedynczy znak.
znak
W Verse znak może również odnosić się do pojedynczego elementu typograficznego w ciągu tekstowym.
kodowanie znaków
Kodowanie znaków to mapowanie między znakiem tekstowym a zrozumiałymi dla komputera danymi zwanymi punktem kodowym.
CI/CD
CI/CD to skrót oznaczający ciągłą integrację (continuous integration) i ciągłe dostarczanie (continuous delivery) lub ciągłe wdrażanie (continuous deployment). CI/CD łączy programowanie i aplikacje poprzez automatyzację kompilacji, testowania i wdrażania aplikacji.
klasa
Klasa to szablon do tworzenia obiektów o podobnym zachowaniu i podobnych właściwościach (zmiennych i metodach) i wymaga utworzenia instancji, aby utworzyć obiekt z rzeczywistymi wartościami. Klasy są hierarchiczne, co oznacza, że klasa może dziedziczyć informacje z klasy bazowej (nadklasy) i przekazywać je swoim klasom pochodnym (podklasom). Klasy mogą być niestandardowym typem zdefiniowanym przez użytkownika. Porównaj ten termin z instancją.
kod
Kod, nazywany czasem kodem źródłowym, to instrukcje napisane przez programistę, które mówią programowi, jak ma działać. Kod źródłowy Verse może być odczytany przez programistę, ale nie przez komputer. Zanim komputer będzie mógł odczytać lub wykonać program, musi on zostać przekonwertowany na instrukcje wykonywane przez komputer; jest to tak zwane kompilowanie. Kiedy programista mówi, że koduje, ma na myśli pisanie tych instrukcji.
blok kodu
Blok lub blok kodu to grupa wyrażeń, która wprowadza nowe ciało kodu. Blok kodu może również nie zawierać żadnych wyrażeń, ale zazwyczaj jest to symbol zastępczy, który zostanie wypełniony wyrażeniami w późniejszym czasie.
Bloki kodu następują po identyfikatorze.
Blok kodu w Verse ma trzy możliwe formaty. Wszystkie te formaty są semantycznie takie same pod tym względem, że format nie zmienia tego, co faktycznie robi kod.
Format z odstępami rozpoczyna blok od
:
, a każde wyrażenie występuje w odrębnym wierszu z wcięciem czterech spacji:if (test-arg-block): expression1 expression2
Zauważ, że
if (test-arg-block)
nie jest częścią bloku, ale blok zaczyna się na końcu tego wiersza od:
. Można również użyć znaku;
, aby oddzielić wiele wyrażeń w jednym wierszu:if (test-arg-block): expression1; expression2; expression3
W wielowierszowym formacie z nawiasami klamrowymi, blok jest otoczony przez
{}
(nawiasy klamrowe), a wyrażenia znajdują się w nowych wierszach:if (test-arg-block) { expression1 expression2 }
Podobnie jak w przypadku formatu z odstępami, można również użyć znaku
;
, aby oddzielić wiele wyrażeń w jednym wierszu:if (test-arg-block) { expression1; expression2 }
Trzecim formatem jest jednowierszowy format z nawiasami klamrowymi. Również tutaj blok jest otoczony przez
{}
, ale każde wyrażenie jest oddzielone znakiem;
, a nie umieszczone w nowym wierszu. Zwróć uwagę, że nie trzeba umieszczać nawiasów{}
w osobnych wierszach.if (test-arg-block) {expression1; expression2}
Aby dowiedzieć się więcej, patrz Bloki kodu.
komentarz do kodu
Patrz komentarz.
punkt kodowy
Wartość w przestrzeni kodowej Unicode dla kodowania znaków.
próbka kodu
Samodzielny program, moduł lub klasa, które wykazują co najmniej jedną koncepcję, klasę, funkcję lub inny aspekt języka programowania. Porównaj ten termin z fragmentem kodu.
fragment kodu
Fragment kodu to jego część, często krótka, która zwykle ma na celu zaprezentowanie lub zaimplementowanie określonej koncepcji.
Fragmenty kodu nie są pełnymi, samodzielnymi programami. Fragmenty kodu można kopiować i wklejać do bloków kodu. Porównaj ten termin z próbką kodu.
jednostka kodowa
Minimalna kombinacja bitów, która może reprezentować jednostkę zakodowanego tekstu. UTF-8 wykorzystuje 8-bitową jednostkę kodową.
wymuszenie
Konwersja wartości na inny typ danych. Konwersje typów mogą być dokonywane niejawnie lub jawnie. Konwersja niejawna, zwana również wymuszeniem, jest wykonywana automatycznie.
komentarz
Komentarz napisany przez programistę, wyjaśniający jakąś kwestię związaną z kodem lub powód, dla którego programista zaprogramował coś w dany sposób. Podczas gdy sam kod pokazuje, jak działa program, komentarze są zwykle dodawane w celu wyjaśnienia dlaczego.
Komentarze do kodu mogą pojawiać się w dowolnym miejscu kodu i zaczynają się od
#
. Komentarze do kodu są ignorowane podczas działania programu.Komentarz do pojedynczego wiersza możesz dodać poprzez umieszczenie znaku # na początku wiersza. Znak powrotu na końcu wiersza kończy komentarz.
# W ten sposób komentowany jest pojedynczy wiersz.
Komentarz blokowy w wielu wierszach możesz utworzyć, używając
<#
na początku bloku i #> na jego końcu:<# Możesz tworzyć wielowierszowe komentarze w swoim kodzie, rozpoczynając i kończąc komentarze, jak pokazano w tym przykładzie. #>
Aby poznać inne sposoby dodawania komentarzy do kodu, patrz Skrócony przewodnik po języku Verse.
komentarz
Patrz komentarz do kodu.
często spotykany typ
Typy często spotykane to typy, które są wbudowane i często używane. Do często spotykanych typów należą
any
,comparable
,float
,int
,logic
,rational
orazstring
.
wartość porównania (comparable)
Typ, który określa operatory dla relacji mniejszości, większości itd. Inne typy mogą dziedziczyć z typu
comparable
i wykonywać wyrażenia porównawcze.
wyrażenia porównawcze
W Verse wyrażenia porównawcze występują, gdy porównujesz dwie rzeczy przy użyciu jednego z operatorów nierówności:
<
,>
,<=
,.=
,<>
.
kompilowanie
Konwertowanie programów z języka zrozumiałego dla ludzi na instrukcje wykonywane przez komputer.
czas kompilacji
Gdy kod źródłowy jest konwertowany na instrukcje dla maszyn. Porównaj ten termin z czasem uruchomienia.
kompilator
Oprogramowanie, które konwertuje instrukcje programu zrozumiałe dla człowieka na instrukcje wykonywalne przez komputer, czasami określane mianem parser. Okres, w którym kompilator działa, jest nazywany czasem kompilacji.
błąd kompilatora
Błąd kompilatora jest wynikiem nieprawidłowego użycia kodu wykrytego przez kompilator Verse w czasie kompilacji. Porównaj to z bugami, które występują w czasie uruchomienia.
ukończone
Stan zadania, które zostało ukończone.
typ złożony
Złożony typ danych, czasami nazywany typem kompleksowym lub agregatem, to dowolny typ, który może składać się z pól lub elementów (zwykle nazwanych) typów prostych lub innych typów złożonych. Zwykle ma stałą liczbę pól lub elementów przez cały okres żywotności. Verse używa obecnie następujących typów złożonych: struktura (struct), klasa (class), wyliczenie (enum), interfejs (interface) oraz moduł (module).
computes
Ten efekt wskazuje, że funkcja zwraca te same dane wyjściowe, gdy wielokrotnie otrzymuje te same dane wejściowe.
łączenie
Patrz połączenie.
połączenie
Połączenie ma miejsce, gdy ciąg tekstowy jest dołączany (dodawany) do innego ciągu tekstowego. Do łączenia ciągów tekstowych można użyć operatora +.
klasa konkretna
Klasa z konkretnym specyfikatorem jest sposobem na skonstruowanie instancji klasy z pustym archetypem, co oznacza, że wszystkie pola dla klasy muszą być zdefiniowane z początkową wartością.
współbieżne
Współbieżnymi nazywamy wiele obliczeń, które są wykonywane w tym samym skutecznym okresie. Są to nakładające się na siebie aktualizacje symulacji logicznych, cykle i klatki, nawet jeśli potencjalnie rozłożone w czasie fizycznym, na przykład na pojedynczym procesorze, i niekoniecznie równoległe.
warunek
Warunek jest czymś, co program może sprawdzić i zweryfikować jako true lub false. Wyrażenie warunkowe może ocenić warunek i zwrócić wynik true lub false.
warunkowe
Wyrażenie, które ocenia warunek i wykonuje instrukcje na podstawie wyniku warunku. Przykładowym wyrażeniem warunkowym jest wyrażenie
if
.
stała
Stała to miejsce, w którym przechowywana jest wartość, która nie może ulec zmianie w czasie uruchomienia programu. Nazywana jest stałą, ponieważ ciągle pozostaje taka sama.
Podstawowa składnia stałej to
name : type = value
. Elementname
jest nazwą przypisywaną do stałej (nazywaną identyfikatorem). Znak:
wskazuje, że następuje typ. Znak=
wskazuje, że następna będzie wartość, po czym następuje sama wartość. Na przykład:PlayerSpeed : float = 2.0
To wskazuje, że zmienna PlayerSpeed ma wartość 2.0, reprezentowaną jako wartość dziesiętna, która nie zmienia się podczas działania programu.
Stałe zawsze mają przypisane wartości. Nazwa i typ to deklaracja, a inicjacja to miejsce, w którym ta wartość jest wyrażana.
Porównaj ten termin ze zmienną.
Aby dowiedzieć się więcej, patrz Stałe i zmienne.
ograniczone
Gdy wyrażenie jest ograniczone, ma ustalone limity.
konstruktor
Konstruktor to specjalna funkcja, która tworzy instancję klasy, z którą jest związana. Można go użyć do ustawienia początkowych wartości dla nowego obiektu.
Możesz dodać konstruktora dla klasy, dodając do nazwy funkcji specyfikator
constructor
. Zamiast określać typ zwrotu dla funkcji, przypisuje się jej nazwę klasy, po której następuje inicjacja pól. Klasa może mieć więcej niż jednego konstruktora.
kontener
Kontener to sposób organizacji danych w kodzie. Aby uzyskać więcej informacji, patrz typ kontenera.
typ kontenera
Za pomocą typu kontenera, takiego jako tablica (array), mapa (map), krotka (tuple) i opcja (option), można przechowywać razem wiele wartości.
kontekst
Zakres kodu, który definiuje żywotność różnych elementów języka i ograniczeń. Zwykle jest to zakres pomiędzy początkiem i końcem bloku kodu.
przełączanie kontekstu
Przełączanie kontekstu to proces przechowywania stanu procesu lub wątku, aby można go było przywrócić i wznowić wykonywanie w późniejszym czasie, a następnie przywrócić inny, wcześniej zapisany stan.
umowa z dżinem
Pisanie kodu jest czasami porównywane do zawierania umowy z dżinem pod tym względem, że program będzie dokładnie wykonywał instrukcje, nawet jeśli wynik nie będzie dokładnie taki, jakiego oczekujesz. Patrz też program.
sterowanie przepływem
Kolejność, w jakiej komputer wykonuje instrukcje. Verse ma różne wyrażenia, których można używać do sterowania tym przepływem w programie, takie jak wyrażenia block lub loop.
converges
"Najmniejszy" zestaw efektów. Jest to kod, który gwarantuje uzyskanie wartości w skończonym czasie bez rozbieżności.
koprocedura
Procedura o określonej żywotności, która albo wykonuje pracę w czasie, albo czeka na wystąpienie różnych zdarzeń i stanów, albo kombinację obu. Koprocedura jest synonimem funkcji asynchronicznej.
D
element członkowski danych
Patrz element członkowski.
typ danych
Patrz typ.
debugger
Narzędzie używane do debugowania, w którym na każdym etapie wykonywania możesz zobaczyć stan programu.
debugowanie
Proces znajdowania i naprawiania błędów w kodzie.
decides
Efekt, który wskazuje, że funkcja może zakończyć się niepowodzeniem oraz że wywoływanie tej funkcji jest wyrażeniem zawodnym. Definicje funkcji z efektem decides muszą mieć również efekt transacts, co oznacza, że akcje wykonywane przez tę funkcję mogą zostać wycofane, jakby nigdy nie zostały wykonane, jeśli w dowolnym miejscu funkcji wystąpi niepowodzenie.
wyrażenie decyzji
Wyrażenia decyzji używają operatorów
not
,and
orazor
, aby umożliwić ci sterowanie przepływem decyzji o powodzeniu i niepowodzeniu.
deklaracja
Deklaracja jest wyrażeniem, w którym wprowadzany jest identyfikator wraz z jego typem. Może, ale nie musi być zaimplementowana (używana) i może, ale nie musi mieć przypisaną (zainicjowaną) wartość.
Składnią deklaracji zmiennej jest
var name : type = expression
. Na przykład:var PlayerSpeed : float = 2.0
Ten wiersz kodu wskazuje, że zmienna o nazwie PlayerSpeed ma wartość zmiennoprzecinkową (float).
W tym przykładzie ostatnia część
= 2.0
jest inicjacją, czyli jest oddzielona od deklaracji.
programowanie deklaracyjne
Ten paradygmat programowania w mniejszym stopniu skupia się na wykonywaniu programu krok po kroku, a w większym na pożądanym wyniku końcowym poprzez określenie tego, co ma być zrobione, zamiast jak to zrobić.
deklarowanie
Deklarujesz zmienną lub funkcję, określając jej identyfikator i typ. Porównaj ten termin z inicjowaniem.
defer
Wyrażenie
defer
opóźnia wykonanie kodu do momentu zakończenia bieżącego zakresu. To wyrażenie jest przydatne do zadań związanych z czyszczeniem, takich jak resetowanie zmiennych.
definiowanie
Patrz definicja.
definicja
Definicja ma miejsce, gdy identyfikator jest zaimplementowany lub ma przypisaną wartość, taką jak definicja funkcji lub definicja klasy. Porównaj ten termin z deklaracją.
zależność
Zależność występuje, gdy moduł zależy od innych modułów w zakresie niektórych funkcji.
deterministyczne
System deterministyczny to taki, w którym ten sam stan początkowy lub te same dane wejściowe zawsze dają takie same wyniki.
zniszczenie deterministyczne
Zniszczenie deterministyczne, występujące w niektórych językach programowania, ma miejsce, gdy obiekty są niszczone, kiedy program opuszcza ich zakres.
twórca
W UEFN i Verse użytkownicy są nazywani twórcami. Ten termin obejmuje twórców wysp Fortnite, artystów i architektów.
podsumowanie
Automatycznie wygenerowana lista wszystkich symboli publicznych, takich jak moduły, funkcje, klasy, które zostały przetworzone przez kompilator Verse. Obejmuje również komentarze. Aby sprawdzić, jakie API i funkcje znajdują się w powiązanym module, możesz przeczytać plik podsumowania.
wysłanie
Wysłanie oznacza skierowanie czegoś gdzieś. W Verse może na przykład chodzić o wysłanie wywołania funkcji lub wysłanie zdarzenia do słuchacza.
rozbieżność
Mówi się, że wykonanie programu jest rozbieżne, jeśli nie kończy się zgodnie z oczekiwaniami. Jeśli uzyskuje wartość w skończonym czasie bez rozbieżności, mamy do czynienia ze zbieżnością.
doc
Ogólne pole notatki, które znajdziesz w klasach i funkcjach (ale nie w parametrach funkcji), zawierające przydatne informacje o tym, co robi opisywany element lub jak go używać, i używane do wypełnienia strony tego elementu w odwołaniach do interfejsu API Verse.
domena
Domena to zestaw danych wejściowych akceptowanych przez dany parametr. Jednym ze sposobów określenia domeny jest typ, ale domena jest bardziej rozległa niż typ.
typowanie dynamiczne
W języku programowania z typowaniem dynamicznym zmienne i wyrażenia nie mają przypisanych typów. Oznacza to, że nie można ich sprawdzić przed uruchomieniem. Porównaj ten termin z typowaniem silnym.
E
editable
Atrybut, który można dodać do kodu, aby uwidocznić właściwości w UEFN. Oznaczanie kodu tym atrybutem polega na dodaniu atrybutu
@attribute_name
(w tym przypadku@editable
) przed identyfikatorem pola:@editable PropertyName : type = DefaultValue
Na przykład pole ciągu tekstowego
GreetingMessage
jest edytowalną właściwością z domyślną wartością"Hello, stranger"
:expose_properties := class(creative_device): @editable GreetingMessage : string = "Hello, stranger"
Aby dowiedzieć się więcej na ten temat, patrz Dostosowywanie właściwości urządzenia w edytorze.
efekt
Efekt jest kategorią zachowania, które może wykazywać funkcja.
W poniższym przykładzie kod informuje, że funkcja nosi nazwę
IsCriticalHealth
i przyjmuje wartość liczby całkowitej jako dane wejściowe poprzez parametrHealth
. Następnie informuje, że funkcja wykazuje efektydecides
oraztransacts
, co oznacza, że funkcja jest w kontekście niepowodzenia, a jej działania mogą zostać cofnięte, jeśli funkcja zakończy się niepowodzeniem. Jeśli wartośćHealth
przekazana jako dane wejściowe do funkcji jest większa niż 0.0 i mniejsza lub równa 30.0, funkcja zakończy się powodzeniem. W przeciwnym razie funkcja zakończy się niepowodzeniem, a kontekst, który wywołał funkcję, musi przetworzyć niepowodzenie.IsCriticalHealth(Health : float)<decides><transacts> : void = ((Health > 0.0) && (Health <= 30.0))
Aby dowiedzieć się więcej, patrz Specyfikatory i atrybuty.
hierarchia efektów
Efekt jest kategorią zachowania, które może wykazywać funkcja. Zastosowanie efektów wyłącznych do funkcji ma hierarchię, przy czym efekty znajdujące się wyżej w hierarchii zezwalają przynajmniej na wszystkie zachowania efektów znajdujących się poniżej w hierarchii. Hierarchia wygląda następująco:
Efekt
transacts
obejmuje właściwości efektów znajdujących się niżej w hierarchii, efektvaries
obejmuje efektycomputes
iconverges
, ale nietransacts
, i tak dalej.
element
Pojedyncza część w większej grupie. Na przykład tablica może zawierać różne elementy, które można przechowywać i wykorzystywać indywidualnie.
emoji
Emoji to piktogramy (symbole obrazkowe), które są zwykle prezentowane w kolorowej formie i używane w tekście. Przedstawiają one takie rzeczy jak twarze, pogoda, pojazdy i budynki, jedzenie i picie, zwierzęta i rośliny oraz ikony reprezentujące emocje, uczucia lub czynności. Standard emoji jest ustalany przez Konsorcjum Unicode.
Po angielsku akceptowalną formą liczby mnogiej jest zarówno emoji, jak i emojis, natomiast po polsku słowo to jest nieodmienne. 🤦
pusty blok
Blok kodu niezawierający żadnych wyrażeń nazywany jest pustym blokiem. Puste bloki są zwykle używane tylko jako symbole zastępcze i zostaną później wypełnione kodem.
pusty ciąg tekstowy
Ciąg tekstowy niezawierający żadnych znaków
""
jest nazywany pustym ciągiem tekstowym.
enum
Jest to skrót od angielskiego słowa enumeration (wyliczenie), czyli nazywanie lub sporządzenie listy rzeczy; ten typ w Verse można zastosować do takich elementów, jak dni tygodnia czy kierunki na kompasie.
enum
jest słowem kluczowym.
wyrażenie równości
Z wyrażeniami równości w Verse mamy do czynienia, gdy za pomocą operatora = porównujemy, czy dwie rzeczy są równe.
znak ucieczki
Znakiem ucieczki w Verse jest lewy ukośnik ( \ ), który tworzy sekwencję ucieczki wewnątrz literału ciągu tekstowego. Służy do zmiany znaków kontrolnych, które w przeciwnym razie byłyby interpretowane inaczej. Jeśli na przykład pracujesz z ciągiem tekstowym i chcesz zawrzeć w nim znaki mające predefiniowane zastosowanie, takie jak { }, przed znakiem w ciągu tekstowym musisz dołączyć znak ucieczki "". Dzięki temu
"\\{\\}"
będzie renderowane w tekście jako {}.
zdarzenie
Zdarzenie to akcja lub wystąpienie, które można zidentyfikować. Na przykład urządzenie przycisku ma zdarzenie InteractedWithEvent, które występuje za każdym razem, gdy gracz wchodzi w interakcję z przyciskiem. Za pomocą subskrypcji procedury obsługi zdarzeń zdarzeń możesz zdefiniować zachowanie dla każdego wystąpienia określonego zdarzenia.
efekt wyłączny
Kilka efektów jest uważanych za efekty wyłączne, do których można dodać efekty addytywne, ale których nie można używać z innymi efektami wyłącznymi. Do efektów wyłącznych należą
computes
,varies
itransacts
. Do efektów addytywnych należąsuspends
orazdecides
.
wykonywanie
Uruchamianie programu.
wykonanie
Proces, w którym komputer interpretuje program i wykonuje instrukcje z tego programu.
uwidacznianie
W UEFN właściwość jest uwidaczniana poprzez przypisanie jej w kodzie Verse atrybutu
editable
. Oznacza to, że można edytować uwidocznioną właściwość bezpośrednio w interfejsie UEFN. Patrz też editable.
wyrażenie
Wyrażenie jest najmniejszą jednostką kodu (kombinacją wartości i funkcji), która po ocenie daje wynik.
W poniższym przykładzie użyto wyrażenia
if ... else
, które oznacza, że jeśli wartość spełnia określone kryteria, to dzieje się jedna rzecz, ale jeśli nie, to dzieje się coś innego.if (a > 5): “Big!” else “Small!”
W Verse wszystko jest wyrażeniem – od literałów po wywołania funkcji lub sterowanie przepływem.
Można to porównać do polecenia, które jest niezależną komendą niemającą wartości wynikowej. W Verse wszystko jest wyrażeniem i nie ma rozróżnienia między poleceniami a wyrażeniami, które mogą być oceniane do wartości.
Aby uzyskać więcej szczegółowych informacji, patrz Wyrażenia.
F
f
zakończenie niepowodzeniem
W Verse każdy kod napisany przez użytkownika domyślnie nie może zakończyć się niepowodzeniem. Oznacza to, że zamiast funkcji zwracającej wartości logiczne (boolean) lub opcje, używa on efektu
<decides>
, aby zwrócić wartość, pusty typ danych (void) lub niepowodzenie.
wyrażenie zawodne
Wyrażenie zawodne to wyrażenie, które może zakończyć się powodzeniem i wygenerować wartość lub niepowodzeniem i nie zwrócić żadnej wartości. Przykłady wyrażeń zawodnych obejmują indeksowanie do tablicy, ponieważ nieprawidłowy indeks zakończy się niepowodzeniem, oraz używanie operatorów, takich jak porównywanie dwóch wartości.
niepowodzenie
Niepowodzenie w Verse to coś więcej niż prosta wartość logiczna (boolean). Niepowodzenie napędza przepływ sterowania. Wyrażenie zawodne może zakończyć się powodzeniem i zwrócić wartość lub niepowodzeniem i nie zwrócić żadnej wartości; wyrażenia zawodne są dozwolone tylko w kontekście niepowodzenia, w przeciwieństwie do innych języków programowania, w których przepływ sterowania jest określany za pomocą wartości logicznych (boolean).
kontekst niepowodzenia
Kontekst niepowodzenia to kontekst, w którym dozwolone jest wykonywanie wyrażeń, które mogą zakończyć się niepowodzeniem. Kontekst określa, co się stanie, jeśli wyrażenie zakończy się niepowodzeniem.
pole
Patrz element członkowski.
final
Specyfikator, który może być używany tylko do klas i elementów członkowskich klas:
uruchom i zapomnij
Wyrażenie "uruchom i zapomnij" odnosi się do wyrażenia, w którym nie ma znaczenia, kiedy się zakończy ani czy zakończy się pomyślnie. To niezmiernie rzadka sytuacja.
wartość zmiennoprzecinkowa (float)
Typ matematyczny używany do przechowywania i obsługi liczb zmiennoprzecinkowych. Jest to jeden z trzech głównych typów liczbowych obsługiwanych w Verse, obok liczb całkowitych (int) i liczb wymiernych (rational).
liczba zmiennoprzecinkowa
Termin używany w różnych językach programowania do definiowania zmiennej o wartości ułamkowej lub liczby zawierającej separator dziesiętny, takiej jak 0.5 lub 1.0. Liczby utworzone przy użyciu deklaracji zmiennej float będą miały cyfry po obu stronach separatora dziesiętnego.
Floor
Operacja matematyczna, która zaokrągla w dół wartość liczby wymiernej do najbliższej liczby całkowitej. Porównaj ten termin z
Ceil
.
wyrażenie for
Wyrażenie
for
, czasem nazywane pętlą for, jest tym samym co wyrażenie loop, z tą różnicą, że wyrażeniafor
są ograniczone, co oznacza, że liczba iteracji jest znana przed wykonaniem pętlifor
, a decyzje dotyczące momentu wyjścia z pętli są zautomatyzowane. Aby dowiedzieć się więcej, patrz For.
klatka
Klatka to jeden w pełni wyrenderowany obraz (np. na monitorze komputera lub telewizorze) przedstawiający symulację w danym momencie. Klatka jest czasami używana jako synonim aktualizacji symulacji (lub cyklu), ponieważ jest ona zwykle w kroku, chociaż nowe klatki mogą pojawiać się z inną częstotliwością (częściej lub rzadziej) niż aktualizacja symulacji. Częstotliwość generowania klatek, w skrócie kl./s, to liczba klatek wyświetlanych na sekundę.
funkcja
Funkcja (zwana też procedurą) jest kodem wielokrotnego użytku, który dostarcza instrukcji dotyczących wykonania akcji lub utworzenia wyniku wyjściowego na podstawie danych wejściowych.
Aby zdefiniować funkcję, trzeba podać trzy kluczowe części: unikatową nazwę, typ informacji, jakiej można oczekiwać w wyniku, a także to, co funkcja będzie robić po jej wywołaniu.
Podstawowa składnia funkcji jest następująca:
name() : type = codeblock
-
Name() oraz type rozdzielone dwukropkiem: Jest to sygnatura funkcji, która określa sposób wywoływania i stosowania funkcji, a wartość, jaką musi zwrócić funkcja, odpowiada podanemu typowi. Format jest podobny do sposobu, w jaki tworzy się stałe, z wyjątkiem nawiasu () po nazwie, który imituje sposób wywoływania funkcji w kodzie.
-
Blok kodu funkcji: Określa, co zrobi funkcja, gdy zostanie wywołana przez wprowadzenie
=codeblock
, gdziecodeblock
oznacza dowolną sekwencję składającą się z co najmniej jednego wyrażenia. Każde wywołanie funkcji powoduje wykonanie wyrażeń należących do bloku kodu.
-
wywołanie funkcji
Wyrażenie, które ocenia (lub też wywołuje bądź przywołuje) funkcję. Wywołania funkcji mogą przyjmować dwie formy, w zależności od tego, czy funkcja ma efekt
decides
:FunctionName()
iFunctionName[]
. Typ wyniku wyrażenia wywołania funkcji jest zdefiniowany w sygnaturze funkcji.
sygnatura funkcji
Sygnatura funkcji deklaruje nazwę funkcji (identyfikator) oraz (parametry) danych wejściowych i wyjściowych (wyniku) funkcji. Funkcje Verse mogą również mieć specyfikatory, które określają sposób użycia lub implementacji funkcji.
funkcyjne programowanie logiczne
Połączenie paradygmatów programowania funkcyjnego i logicznego w jednym języku.
programowanie funkcyjne
Typ programowania deklaratywnego, który koncentruje się na użyciu funkcji. Programowanie funkcyjne ma na celu ułatwienie testowania i debugowania poprzez redukcję efektów ubocznych. Przykładem funkcyjnego języka programowania jest Haskell.
przyszłe
Zadanie, którego wykonywanie rozpoczęto, ale które zostało zawieszone bez anulowania. Jest przyszłe, ponieważ zakończy się w pewnym momencie w przyszłości.
G
pętla gry
Pętla gry to kod, który jest uruchamiany w sposób powtarzalny (w pętli), w reakcji na dane wejściowe – zwykle interakcje gracza za pomocą kontrolera lub myszy – w celu aktualizacji stanu gry i dostarczenia danych wyjściowych, które pokazują graczowi, że wpłynął na stan gry, na przykład po naciśnięciu przycisku, który włącza światło. Pętla zwykle kończy się, gdy gra zostanie ukończona, na przykład po osiągnięciu celu przez gracza, lub zakończy się niepowodzeniem, na przykład po upłynięciu czasu przed osiągnięciem celu.
stan gry
Stan gry lub innej symulacji. Składa się ze wszystkich wartości danych, które opisują system. Stan systemu określają wartości stałe i zmienne.
generator
Generator tworzy sekwencję wartości, jedną na raz, i nadaje wartości w sekwencji nazwę.
grupowanie
Akcja polegająca na zamknięciu wyrażenia w nawiasie
()
. To jednoznacznie określa kolejność oceny. Grupowanie może też poprawić czytelność kodu.
H
handler
Procedura obsługi to funkcja, która jest wywoływana w celu zareagowania na powiązane zdarzenie. Jeśli na przykład do zdarzenia przycisku InteractedWithEvent przypiszesz funkcję, za każdym razem, gdy gracz wejdzie w interakcję z tym przyciskiem, zostanie wywołana procedura obsługi zdarzeń przypisana do tego zdarzenia.
system heksadecymalny
W Verse do reprezentowania liczb całkowitych można używać systemu heksadecymalnego (szesnastkowego), zamiast systemu liczb dziesiętnych, w którym podstawą jest 10 symboli. Oznacza to, że wartości szesnastkowe reprezentowane są za pomocą cyfr 0–9 i liter A–F. Na przykład 0x7F to 127, a 0xFACE to 64206.
To alternatywny sposób przedstawiania liczb całkowitych.
hierarchiczne
Coś, co ma wyraźnie określone poziomy lub hierarchie rangi, ważności lub kontroli. Typowe powiązania hierarchiczne to klasa bazowa/pochodna lub nadklasa/podklasa.
I
IDE
Zintegrowane środowisko programistyczne (integrated development environment, IDE) to oprogramowanie zapewniające interfejs użytkownika do tworzenia i debugowania programów.
identyfikator
Identyfikator to nazwa nadawana rzeczom w programie, takim jak zmienne lub funkcje, w celu ich niepowtarzalnej identyfikacji.
wyrażenie if
Za pomocą wyrażenia
if
można decydować o zmianie przepływu programu. Podobnie jak w innych językach programowania, w Verse wyrażenieif
służy do wykonywania warunkowego, jednak w przypadku Verse decyzja jest podejmowana na podstawie spełnienia kryteriów powodzenia lub niepowodzenia zadanych w warunkach.
natychmiastowe
Wyrażenie natychmiastowe dokonuje oceny bez opóźnienia, co oznacza, że ocena zostanie ukończona w ramach bieżącej aktualizacji symulacji.
niemodyfikowalne
Oznacza sytuację, w której po utworzeniu obiektu nie można modyfikować jego stanu. Porównaj ten termin z modyfikowalnym.
programowanie imperatywne
Paradygmat, w którym program jednoznacznie opisuje sposób wykonywania programu, krok po kroku. Przykładem języka programowania imperatywnego jest C.
indeks
Indeks reprezentuje pozycje elementów w sekwencji za pomocą przedstawienia numerycznego. Sekwencja może być listą, ciągiem znaków lub dowolną sekwencją wartości.
Indeksy wykorzystują numerowanie od zera. Oznacza to, że pierwsza pozycja w indeksie to 0, a piąta pozycja to 4.
wnioskowanie
Istnieją sytuacje, w których nie trzeba wyraźnie określać typu, na przykład podczas tworzenia stałej. Na przykład w
MyConstant := 0
typ stałej MyConstant można wywnioskować, ponieważ jest do niej przypisana wartość 0. W takich przypadkach typ jest wywnioskowany.
śródrostek
Format operatora, w którym występują dwa operandy, a operator znajduje się między operandami.
dziedziczenie
W Verse można utworzyć klasę, która stanowi rozszerzenie definicji innej klasy, dodając lub modyfikując pola i metody tej drugiej klasy. Jest to często nazywane podklasowaniem lub dziedziczeniem, ponieważ jedna klasa dziedziczy definicje z drugiej klasy.
inicjowanie
Tworzenie zmiennej polega na określeniu jej identyfikatora i typu, co nazywane jest deklarowaniem zmiennej, oraz przypisaniu wartości do zmiennej, co nazywane jest inicjowaniem.
instancja
Instancja klasy jest obiektem. Instancja przejawia te same zachowania, które są zdefiniowane przez typ klasy, ale z rzeczywistymi wartościami.
tworzenie instancji
Tworzenie instancji lub wartości struktury danych lub typu, takiego jak klasa lub struktura. Patrz też tworzenie instancji archetypu.
liczba całkowita (int)
Typ używany w Verse do przechowywania i obsługi liczb całkowitych, takich jak
1
,-30
czy777
. Wartośćint
może zawierać liczbę dodatnią lub liczbę ujemną (lub zero) i nie zawiera żadnego komponentu ułamkowego. W Verse wartośćint
może zawierać liczbę dodatnią lub liczbę ujemną (lub zero) i nie zawiera żadnego komponentu ułamkowego.
liczba całkowita
Liczba całkowita to pełna liczba (nie ułamkowa), która może przyjmować wartość dodatnią, ujemną lub zerową.
interfejs
Interfejs to typ, który określa zasady interakcji z dowolną klasą implementującą interfejs. Nie można tworzyć instancji interfejsu, jednak klasa może dziedziczyć z interfejsu i implementować jego metody.
klasa wewnętrzna
Klasa oznaczona jako
epic_internal
, co oznacza, że nie można utworzyć własnej instancji tej klasy. Dostęp do wewnętrznego obiektu można uzyskać tylko za pomocą interfejsów API.
interpolacja
Mieszanie nowych wartości, które znajdują się między znanymi wartościami.
interpreter
Program, który analizuje i wykonuje program wiersz po wierszu.
czas przywołania
Czas potrzebny na dokonanie oceny wyrażenia. Natychmiastowe przywołanie w rzeczywistości nie zajmuje w ogóle czasu. Wyrażenie asynchroniczne może zostać ukończone natychmiast lub może być opóźnione.
przywoływanie
Patrz wywołanie.
relacja is-a
Relacja między klasą bazową a klasą pochodną nazywana jest relacją "is-a". Klasa pochodna w relacji is-a dziedziczy z klasy bazowej.
iteracja
Uruchamianie kodu dla każdego elementu sekwencji.
J
K
para klucz-wartość
Gdy klucz jest powiązany z wartością, razem stanowią parę klucz-wartość. Wartość można sprawdzić za pomocą klucza.
słowo kluczowe
Słowa kluczowe to zastrzeżone słowa, które mają specjalne znaczenie dla kompilatora. Przykładowe słowa kluczowe to
for
iclass
. Słów kluczowych nie można używać jako identyfikatorów.
L
żywotność
Patrz czas życia.
czas życia
Czas między utworzeniem obiektu a jego zniszczeniem. Synonimem tego terminu jest żywotność.
literał
Stała wartość w języku programowania Verse, taka jak liczba lub znak. Na przykład 1 jest literałem wyrażonym liczbą całkowitą.
lokalne
Odnosi się do stałej lub zmiennej wewnątrz bloku kodu. Nie można ich używać poza blokiem kodu, w którym zostały utworzone. Patrz też zakres.
ustawienia regionalne
W programowaniu ustawienia regionalne (locale) to zestaw parametrów, które definiują język użytkownika, region i inne aspekty interfejsu użytkownika. W Verse
locale
jest szczególnym typem, który ustawia kontekst, kiedy komunikat (message
) powinien być zlokalizowany, i wpływa na język tekstu i sposób wyświetlania liczb w oparciu o ustawienia regionalne.
wartość logiczna (logic)
Verse wykorzystuje typ
logic
do wprowadzania wartości logicznych (boolean), czyli wartościtrue
lubfalse
. Aby określić sterowanie przepływem, Verse często używa kombinacji kontekstów niepowodzenia i wyrażeń zawodnych, zamiast testowania stanu typulogic
.
programowanie logiczne
Paradygmat programowania, który wykorzystuje logikę boolowską do kontrolowania, w jaki sposób fakty i zasady dotyczące problemów w systemie są reprezentowane lub wyrażane.
pętla (loop)
Wyrażenie
loop
powtarza wyrażenia w swoim bloku kodu. Wyrażenieloop
będzie powtarzać się w nieskończoność, chyba że nastąpi wyjście z pętli (co jest często dopuszczalne w programowaniu współbieżnym). Na przykład:loop: Sleep(1.0) # Sleep(1.0) odczekuje 1 sekundę przed przejściem do następnego wyrażenia. Platform.Hide() Sleep(1.0) # Sleep(1.0) odczekuje 1 sekundę przed przejściem do następnego wyrażenia. Platform.Show() # Pętla uruchamia się ponownie natychmiast, ponownie wywołując Sleep(1.0).
Ten blok kodu powtarza cztery wyrażenia w nieskończoność: odczekaj sekundę, spraw, aby platforma zniknęła, odczekaj kolejną sekundę i spraw, aby platforma pojawiła się ponownie.
Aby zobaczyć przykład zastosowania pętli w tworzeniu gier, patrz Znikająca platforma w pętli.
M
mapa (map)
Mapa jest kontenerem, w którym można przechowywać wartości powiązane z inną wartością, nazywane parami klucz-wartość. Pary klucz-wartość mogą być dowolną kombinacją typów, pod warunkiem że typ klucza jest porównywalny. Elementy mapy są w kolejności, w jakiej pary klucz-wartość zostały w niej umieszczone, a dostęp do nich można uzyskać za pomocą ich unikatowych kluczy. Patrz też typy kontenerów.
wyrażenie matematyczne
W Verse wyrażenie matematyczne to wyrażenie wykorzystujące następujące operatory:
+
,-
,*
lub/
.
element członkowski
Nazwana zmienna lub funkcja, która jest podczęścią złożonej struktury danych (takiej jak klasa Verse, struktura, interfejs lub moduł). Zmienne elementów członkowskich są często określane jako pola, a funkcje elementów członkowskich jako metody.
komunikat (message)
Typ
message
w Verse może zawierać tekst niezależny od ustawień lokalnych. Po zainicjowaniu zmiennejmessage
za pomocą wartościstring
, ten ciąg tekstowy określa domyślny tekst i język komunikatu.
środowisko Metaverse
Stały i globalnie spójny świat 3D w czasie rzeczywistym ze środowiskiem wykonawczym, które wykonuje współbieżny, złożony, współzależny kod napisany przez użytkownika z milionami jednocześnie połączonych użytkowników.
moduł
Moduł w Verse jest niepodzielną jednostką kodu, którą można wielokrotnie rozprowadzać i tworzyć od niej zależności, a z czasem ją rozwijać bez przerywania zależności. Moduł można zaimportować do swojego pliku Verse, aby móc wykorzystać definicje kodu z innych plików Verse.
Aby dowiedzieć się więcej, patrz Moduły i ścieżki.
modyfikowalne
Pojęcie to odnosi się do stanu obiektu, który po utworzeniu nadal można modyfikować. W Verse modyfikowanie jest możliwe tylko w przypadku wskaźników.
Porównaj ten termin z terminem niemodyfikowalne.
mutex
Mutex jest typem prostym synchronizacji, który zapewnia wyłączny dostęp do współdzielonego zasobu przy użyciu tylko jednego wątku. Patrz też wzajemne wykluczanie.
wzajemne wykluczanie
Gdy do tego samego segmentu kodu uzyskuje dostęp więcej niż jeden proces, segment ten nazywany jest sekcją krytyczną. Wzajemne wykluczanie to sposób na zapewnienie, że żadne dwa procesy nie uzyskają dostępu do sekcji krytycznej w tym samym czasie.
N
NaN
Wartość nieliczbowa (Not a Number).
native (natywne)
Specyfikator
native
wskazuje, że szczegóły definicji elementu są zaimplementowane w C++. Ten specyfikator może automatycznie generować definicje C++, których następnie może użyć twórca. Specyfikatornative
jest używany dla klasy, interfejsu, wyliczenia, metody i danych.
native_callable
Wskazuje, że metoda instancji jest natywna (zaimplementowana w C++) i może być wywoływana przez inny kod C++. Ten specyfikator jest używany w metodzie instancji. Nie propaguje się on do podklas, więc nie trzeba dodawać go do definicji podczas zastępowania metody, która ma ten specyfikator.
zagnieżdżone
Gdy kod jest zagnieżdżony, jeden blok kodu jest zawarty w innym bloku kodu, który wykonuje szerszą funkcję.
brak wycofania
Ten efekt wskazuje, że modyfikowalnych odczytów i zapisów danych funkcji nie można cofnąć, co oznacza, że funkcji nie można wywołać w kontekście niepowodzenia (który przejawia zachowanie polegające na wycofaniu w przypadku niepowodzenia).
O
obiekt
Instancja klasy jest obiektem. Instancja przejawia te same zachowania, które zdefiniowane są przez typ klasy, ale z rzeczywistymi wartościami.
Terminy instancja i obiekt są synonimami.
programowanie obiektowe
Programowanie obiektowe (object-oriented programming, OOP) to paradygmat programowania, który opiera się na koncepcji klas i obiektów.
język otwartego świata
Język, w którym wzajemnie zależne moduły napisane przez wielu różnych użytkowników i wiele różnych organizacji mogą ewoluować w czasie bez naruszania zgodności interfejsu i trwałej zgodności danych poprzez przestrzeganie jasno zdefiniowanych reguł podtypowania.
operand
Ilość, na której wykonywana jest operacja. Na przykład w wyrażeniu
1 + 2
znak+
jest operatorem, a1
i2
są operandami.
operacja
Akcja wykonywana przez program w celu wykonania określonego zadania. Istnieją cztery podstawowe grupy operacji komputerowych: wejście, przetwarzanie, wyjście i przechowywanie. Operacja jest typem wyrażenia.
operator
Symbol przedstawiający akcję lub proces. Na przykład w wyrażeniu
1 + 2
znak+
jest operatorem.
nadrzędność operatorów
Odnosi się to do wbudowanej kolejności oceny podczas łączenia operatorów w Verse. Jeśli na przykład jedno wyrażenie zawiera wiele operatorów, kolejność ich oceny ma znaczenie.
Na przykład wyrażenie 1 + 2 3** nie jest oceniane jako **3 3, ponieważ mnożenie jest nadrzędne w stosunku do dodawania.
Nadrzędność operatorów można zastąpić wyrażeniami grupującymi.
opcja
W Verse opcja może zawierać jedną wartość lub nie zawierać żadnej wartości dla typu.
kolejność oceny
Odnosi się do nadrzędności operatora, czyli kolejności, w jakiej niektóre operacje powinny być wykonywane w wyrażeniu.
przeciążenie
Przeciążenie funkcji lub operatora oznacza, że ta sama nazwa funkcji lub symbol operatora mogą mieć różne parametry. Jeśli na przykład powiesz, że wektor 3D jest równy innemu wektorowi 3D, na przykład (1,2,3), jest to całkiem jasne. Jednak możesz użyć operatora equals, aby powiedzieć, że wektor 3D jest równy pojedynczej liczbie, na przykład 1. W tym przypadku wektor 3D może być zdefiniowany jako (1,1,1), ale przeciążona część składa się z kilku operatorów "3D Vector =" z różnymi parametrami. Język musiałby uwzględnić kontekst, aby sprawdzić, którego z nich użyć.
zastąpienie
W Verse możesz zastąpić pola z nadklasy i przypisać początkowe wartości. Na przykład:
tank := class(player_character): StartingShields<override> : int = 100 MaxShields<override> : int = 200 AllowOvershield<override> : logic = true DamageReduction : int = 50 CreateTankPlayerCharacter() : tank = return tank{}
Klasa tank będzie miała wartości dla
StartingShields
,MaxShields
iAllowOvershield
, które różnią się od domyślnych wartości klasy.W ten sam sposób można nadpisać wartości metody.
Aby dowiedzieć się więcej, patrz podklasy.
P
paradygmat
Typowy wzorzec lub model czegoś. W programowaniu paradygmat to sposób, w jaki zorganizowany jest język programowania. Istnieją cztery główne paradygmaty języków programowania:
Istnieją również języki wieloparadygmatowe, takie jak Verse.
równoległe
Równoległymi nazywamy wiele obliczeń wykonywanych w tym samym czasie fizycznym, np. na oddzielnych procesorach.
parametr
Zmienna wejściowa, która zawiera domenę, taką jak type, i opcjonalną domyślną wartość zdefiniowaną w sygnaturze funkcji, która jest następnie używana w ciele funkcji. Porównaj ten termin z argumentem.
przeprowadzanie analizy składniowej
W informatyce przeprowadzanie analizy składniowej, zwane czasem parsowaniem, polega na tym, że ciąg poleceń – zwykle program – jest rozdzielany na łatwiejsze do przetworzenia komponenty, które są analizowane pod kątem poprawnej składni, a następnie dołączane do tagów definiujących każdy komponent.
analizator składniowy (parser)
Program do przeprowadzania analizy składniowej kodu.
ścieżka
Ścieżki w Verse tworzą globalną przestrzeń nazw do identyfikacji elementów i bazują na koncepcji domen sieci web. Ścieżki te są trwałe i unikatowe, a każdy programista Verse może je odkrywać.
Perforce
Perforce (P4) to narzędzie programowe, które odpowiada za kontrolę wersji (kontrolę kodu źródłowego, kontrolę rewizji). Kontrola wersji to sposób śledzenia zmian w kodzie oprogramowania i zarządzania nimi. Przydaje się, gdy nad jednym projektem pracują różne zespoły programistów. Gdy ktoś popełni pomyłkę, kontrola wersji umożliwia porównanie z wcześniejszymi wersjami kodu oraz znalezienie i naprawienie problemu bez przerywania pracy innych osób.
przestrzeń gry
Moduł API Verse, którego można użyć do uzyskania tablicy graczy lub drużyn, lub drużyny dla konkretnego gracza. Pozwala także na subskrybowanie zdarzeń dodawanych i usuwanych przez graczy.
wskaźnik
Wskaźnik umożliwia odwołanie się do modyfikowalnego "pola", które może przechowywać określony typ wartości. Za pomocą wskaźnika można zmienić określoną wartość w tym polu. Porównaj ten termin z wartością.
zmienna wskaźnika
Zmienna wskaźnika wskazuje miejsce w pamięci, w którym przechowywana jest wartość. Po utworzeniu zmiennej wskaźnika nie można zmienić lokalizacji pamięci zmiennej wskaźnika, ale można zmienić wartość przechowywaną w tej lokalizacji pamięci.
odpytywanie
Odpytywanie odnosi się do aktywnego próbkowania stanu urządzenia zewnętrznego przez program kliencki w formie działania synchronicznego. Odpytywanie jest najczęściej wykorzystywane w odniesieniu do wejścia/wyjścia (we/wy) i jest również określane jako odpytywane we/wy lub we/wy sterowane programem.
polimorfizm
Polimorfizm, inaczej wielopostaciowość, pochodzi od greckiego polys, oznaczającego wiele, i morfe, oznaczającego kształt. Zachowanie polimorficzne występuje, gdy zmienna może przybierać różne wartości w różnych warunkach.
przyrostek
Format operatora, w którym występuje tylko jeden operand, a operator znajduje się po tym operandzie.
predykat
W Verse predykat jest czymś, co albo kończy się powodzeniem, albo niepowodzeniem.
wywłaszczenie
Wywłaszczeniem nazywane jest tymczasowe przerwanie wykonywanego zadania z zamiarem wznowienia go w późniejszym czasie. Zazwyczaj wykonywane jest ono przez zewnętrzny harmonogram bez pomocy lub współpracy ze strony zadania.
przedrostek
Format operatora, w którym występuje tylko jeden operand, a operator znajduje się przed tym operandem.
typ prosty
Typ prosty to dowolny typ, który nie został utworzony z innych typów. Oznacza to, że typ prosty nie jest złożony i nie można go podzielić. Przykładami wbudowanych typów prostych są
void
,logic
,int
,float
,rational
orazchar
. Typy proste są wbudowane w język Verse.Porównaj ten termin z typem kontenera.
program
Program to zestaw instrukcji, które mówią komputerowi, jak coś zrobić. Podstawą każdego programu jest wskazanie, w jaki sposób komputer będzie odbierał dane wejściowe i zwracał dane wyjściowe.
Program rozwiązuje problemy. Jednak programy są bardzo dosłowne. To jak zawieranie umowy z dżinem. Dżin (czyli program) da ci dokładnie to, o co prosisz. Dokładnie. Błędy pojawiają się, gdy programista czyni założenia dotyczące tego, co powinno się wydarzyć, zamiast precyzyjnie opisać, jakie dane wejściowe mogą zostać odebrane i jakie dane wyjściowe zostaną uzyskane.
programowanie
Proces pisania instrukcji (programu), które mogą być kompilowane i wykonywane przez komputer.
język programowania
Formalny język używany do pisania programów komputerowych. Istnieje wiele języków programowania, a każdy z nich rządzi się własnymi prawami. Przykładem może być Scratch, wizualny język programowania używany do tworzenia interaktywnych historii, gier i animacji, lub C++, język tekstowy, który jest często używany w tworzeniu gier. Verse to język programowania opracowany przez Epic Games dla twórców, którzy chcą dowiedzieć się więcej o korzystaniu z narzędzi programistycznych.
propagacja
Propagacja w funkcji ma miejsce, gdy wywoływacz nie musi zajmować się tym, co dzieje się w przypadku niepowodzenia. Na przykład funkcja z efektem
decides
może być wywołana z innej funkcji z efektemdecides
. Wywoływacz musiałby wtedy obsłużyć niepowodzenie, niezależnie od tego, co zostało wywołane.
właściwość
Właściwość to element członkowski (pole), który umożliwia zwracanie wartości i uwidacznianie ich.
pseudokod
Pseudokod to szczegółowy opis w języku naturalnym (nie języku programowania) tego, co powinien zrobić algorytm. Pseudo oznacza nieprawdziwy lub nierzeczywisty, więc można powiedzieć, że pseudokod jest fałszywym kodem, ale jest przydatny do opracowania tego, co powinien osiągnąć algorytm.
Pseudokod można również potraktować jako ogólny szkic. Pseudokod jest zwykle pisany w celu zaplanowania dużej lub złożonej części programu przed napisaniem prawdziwego kodu.
publiczny element członkowski
Element członkowski widoczny dla innych modułów.
czyste
Określenie faktu, że funkcja zawsze zwraca dokładnie takie same dane wyjściowe przy tych samych danych wejściowych i nie ma efektów ubocznych (zapisy do zmiennych modyfikowalnych, efekty wejścia-wyjścia itd.).
Q
kwalifikowanie się
Zdefiniowanie identyfikatora w zakresie, który pozwala na "ponowne użycie" identyfikatora. Załóżmy na przykład, że mamy stałą o nazwie "cat". Tej samej nazwy można użyć dla pola klasy o nazwie "sarah.cat". Oba elementy zawierają "cat" w nazwie, ale zakwalifikowane zostało "sarah.cat".
zapytanie
Wyrażenia zapytania wykorzystują operator
?
w celu sprawdzenia, czy wartość logiczna (logic) lub opcjonalna (option) totrue
.
R
race
W wyrażeniu
race
wszystkie wyrażenia w bloku race są uruchamiane współbieżnie, ale gdy tylko jedno wyrażenie zostanie ukończone, inne wyrażenia zostają anulowane, a wyrażenie race zwraca kontrolę.race
jest wyrażeniem współbieżności ustrukturyzowanej.
warunek race
Warunek race występuje, gdy program próbuje wykonać co najmniej dwie operacje w tym samym czasie w przypadku operacji, które muszą być wykonywane kolejno, aby zostały wykonane poprawnie.
RAII
Inicjowanie przy pozyskaniu zasobu (resource acquisition is initialization, RAII) opisuje, kiedy obiekt pozyskuje zasoby między inicjacją a finalizacją, co pozwala na bardziej efektywne zarządzanie zasobami.
wzbudzenie
Gdy funkcja wysyła sygnał, wzbudza (wywołuje) zdarzenie. Zainteresowane strony są powiadamiane o wystąpieniu zdarzenia, takiego jak interakcja z przyciskiem, a wszystkie procedury obsługi zdarzeń są wywoływane.
wyrażenie zakresu
Wyrażenia zakresu zawierają wszystkie liczby pomiędzy dwiema wartościami, łącznie z tymi określonymi wartościami, z dwiema kropkami
..
pomiędzy wartościami; na przykład,1..5
. Wyrażenia zakresu mogą być używane tylko w określonych miejscach, takich jak wyrażeniafor
.
liczba wymierna (rational)
Jeden z trzech głównych typów liczbowych obsługiwanych w Verse, obok
int
ifloat
. Typ rational zobaczysz tylko w wynikach dzielenia liczb całkowitych, przy czym musisz wówczas przekonwertować wartość z powrotem na liczbę całkowitą, zaokrąglając ją w górę za pomocąCeil()
lub w dół za pomocąFloor()
.
liczba wymierna
Liczba, którą można wyrazić jako ułamek zwykły przy użyciu dwóch liczb całkowitych. Na przykład, 1.75 można również wyrazić jako 7/4, ale pierwiastka kwadratowego z 2 (√2) nie można wyrazić jako ułamka, a zatem jest on uważany za liczbę niewymierną. Innym przykładem liczby niewymiernej jest liczba Pi, która zaczyna się od 3.14159... i ciągnie się w nieskończoność.
rekursja
Do rekursji dochodzi, gdy funkcja wywołuje sama siebie.
REPL
Pętla REPL (read-evaluate-print loop) to środowisko komputerowe, w którym można wprowadzić kod, odczytać go i ocenić, a następnie zobaczyć wyniki. Dzięki pętli REPL można zbadać język i zobaczyć, co działa (lub nie działa), niczego nie psując.
return
Wyrażenie, które nakazuje programowi opuszczenie podprocedury i powrót do adresu zwrotnego. Adres zwrotny to miejsce, z którego wywołano podprocedurę.
Zamiast polegać na ostatnim wyrażeniu w bloku kodu funkcji, aby wygenerować właściwą wartość, można również jawnie określić wynik za pomocą wyrażenia
return
. Gdy wyrażenie return zostaje wykonane, następuje natychmiastowe wyjście z bloku kodu funkcji. Oznacza to, że jeśli wyrażenie return zostanie umieszczone przed innym kodem, następujący po nim kod nie zostanie wykonany.
wycofanie
Przywrócenie programu do wcześniej zdefiniowanego stanu, zwykle w celu odzyskania danych po wyrażeniu zawodnym, które zakończyło się niepowodzeniem.
procedura
Patrz funkcja.
czas uruchomienia
Czas uruchomienia lub czas wykonania oznacza czas, przez który działa gra, symulacja lub aplikacja. Porównaj ten termin z czasem kompilacji, który odnosi się do czasu poświęconego na kompilowanie, lub z czasem programowania, który odnosi się do czasu poświęconego na programowanie, kompilowanie i debugowanie.
Typowo rozróżnia się rzeczy, które mają miejsce w czasie wykonania, i te, które występują w czasie kompilacji.
rush
W wyrażeniu
rush
wszystkie wyrażenia w bloku rush działają współbieżnie, ale gdy tylko jedno wyrażenie zostanie ukończone, wyrażenie rush zwraca kontrolę, a pozostałe wyrażenia kontynuują działanie niezależnie.rush
jest wyrażeniem współbieżności ustrukturyzowanej.
S
zakres
Zakres odnosi się do części programu, w której skojarzenie nazwy z wartością jest prawidłowe, a nazwę można wykorzystać do utworzenia odwołania do wartości. Na przykład dowolne stałe lub zmienne utworzone w funkcji istnieją tylko w kontekście tej funkcji. Oznacza to, że czas życia obiektów jest ograniczony do zakresu, w którym zostały utworzone, i nie można ich wykorzystywać poza danym blokiem kodu.
skrypt
Niezależna ilość wykonywalnego kodu Verse, który jest powiązany z obiektem.
zmienna self
Zmienna
Self
to specjalny identyfikator w Verse, którego można użyć w metodzie klasy, aby odnieść się do instancji klasy, przy której metoda została wywołana. Do innych pól instancji, w której metoda została wywołana, można tworzyć odwołania bez użycia identyfikatoraSelf
, ale jeśli chcesz odwołać się do instancji jako całości, musisz użyć identyfikatoraSelf
.
błąd semantyczny
Patrz błąd kompilatora.
semafor
Semafor przypomina mutex z tą różnicą, że podczas gdy mutex blokuje inne wątki przed dostępnymi zasobami, semafor jedynie sygnalizuje, że zasób jest w użyciu.
wykonanie sekwencyjne
Kod jest zwykle wykonywany wiersz po wierszu, w kolejności pojawiania się wyrażeń. Jest to tzw. wykonanie sekwencyjne.
set
Słowo kluczowe, którego można użyć do zmiany wartości zmiennej podczas działania programu.
Składnia jest następująca:
set name = value
. Słowoset
jest słowem kluczowym,name
jest nazwą zmiennej, która ma zostać zmieniona, avalue
jest wartością, którą chcemy uzyskać po zmianie.Jest to tzw. przypisanie.
shadowing
Shadowing ma miejsce, gdy identyfikator ukrywa inny identyfikator. Jest to błąd w Verse, który uniemożliwi kompilację kodu.
efekt uboczny
Efekt uboczny występuje, gdy jakiś kod, na przykład funkcja lub wyrażenie, modyfikuje jakiś stan poza swoim zakresem.
liczba całkowita ze znakiem
Liczba całkowita ze znakiem to wartość, która może przyjmować wartości ujemne, dodatnie lub zerowe. Jest tak nazywana, ponieważ może używać znaku + lub - po lewej stronie, aby wskazać, czy liczba jest dodatnia czy ujemna. Liczba całkowita bez znaku może być tylko liczbą dodatnią lub zerem.
symulacja
Symulacja to przedstawienie zachowania lub charakterystyki jednego systemu za pomocą innego systemu. W Verse byłby to program komputerowy, który jest uruchamiany w czasie. Termin ten jest szerszy od pojęcia gry, która jest jednym z rodzajów symulacji. Oprócz gier, symulacje obejmują takie rzeczy, jak interaktywne przygody, sztuka, wizualizacje medyczne, wizualizacje architektoniczne, sztuczna inteligencja, symulatory jazdy/latania/wojskowe itd. Symulacje mogą być wykorzystywane na różnych nośnikach, takich jak rzeczywistość wirtualna (VR) i rzeczywistość rozszerzona (AR).
aktualizacja symulacji
Cykliczna runda, krok lub przyrost wartości logicznych, zachowań i innych obliczeń dla symulacji. Termin ten często jest skracany do samej aktualizacji lub używany synonimicznie z cyklem lub klatką. Aktualizacja symulacji ma zazwyczaj określony czas trwania, który może być stały lub zmienny. Jest on często określany jako czas delta, który może, ale nie musi pokrywać się z rzeczywistym upływem czasu. Aktualizacja symulacji może być na przykład szybsza, taka sama lub wolniejsza od czasu rzeczywistego.
Aktualizacja symulacji często odbywa się w tempie 1:1 z renderowaniem klatki – jest to domyślne dla Verse. Aktualizacja symulacji może jednak odbywać się rzadziej lub częściej niż jedna klatka, na przykład gdy klient gry online przestaje być zsynchronizowany z serwerem lub systemami fizyki podczas przeprowadzania kilku iteracji zmian symulowanego obiektu. Możliwe jest również, że symulacja nie będzie w ogóle renderowana wizualnie.
fragment
Patrz fragment kodu.
wyrażenie spawn
Wyrażenie
spawn
uruchamia funkcję asynchroniczną. Każde wyrażenie, które następuje po wyrażeniu spawn, jest wykonywane natychmiast, bez czekania na zakończenie wyrażeniaspawn
. Wyrażeniespawn
jest kontynuowane niezależnie, aż do ukończenia.
specyfikator
Specyfikator stosuje dodatkowe informacje do definicji. Na przykład specyfikator efektu
decides
w definicji funkcji oznacza funkcję jako zawodną.Specyfikatory dzielą się na dwie podkategorie: specyfikatory widoczności oraz specyfikatory efektów.
wykonanie spekulacyjne
Verse wykorzystuje kontekst niepowodzenia, aby umożliwić wypróbowanie akcji bez ich zatwierdzania. Jest to tzw. wykonanie spekulacyjne. Gdy wyrażenie zakończy się powodzeniem, efekt wyrażenia zostanie zatwierdzony, na przykład poprzez zmianę wartości zmiennej. Jeśli wyrażenie zakończy się niepowodzeniem, jego efekty zostaną wycofane, tak jakby wyrażenie nigdy nie miało miejsca.
splat
Gdy krotka jest używana jako pojedynczy element funkcji, będzie to wyglądało tak, jakby funkcja była wywoływana z każdym z elementów krotki osobno. Jest to tzw. rozszerzanie krotek lub splatting.
biblioteka standardowa
Seria funkcji, stałych i innych definicji języka dostępnych w Verse. Ta biblioteka zapewnia implementacje dla typowych potrzeb programistycznych. Jest to źródło rzeczy często używanych przez programistów, takich jak funkcje matematyczne.
polecenie
Samodzielna komenda niemająca wartości wynikowej. Verse nie używa poleceń. Zamiast tego wykorzystuje wyrażenia.
sprawdzanie statyczne
Automatyczna kontrola podczas kompilacji, która może wychwycić błąd na podstawie semantyki kodu.
STM
Programowa pamięć transakcyjna (software transactional memory, STM) to mechanizm kontroli współbieżności analogiczny do transakcji w bazach danych, służący do kontrolowania dostępu do pamięci współdzielonej w programowaniu współbieżnym. Docelowo Verse będzie wyposażony w STM, ponieważ między innymi odblokowuje wzrost wydajności dla dużych symulacji rozproszonych.
ciąg tekstowy (string)
Ciąg tekstowy (string) jest typem literału w Verse, w którym wszystkie znaki pomiędzy dwoma cudzysłowami są literałami ciągu tekstowego. Na przykład "Hello world" jest często spotykanym ciągiem tekstowym. Ciąg tekstowy (string) w języku Verse może zawierać litery, cyfry, znaki interpunkcyjne, spacje, a nawet emoji.
silnie typowane
Język programowania jest silnie typowany, gdy do każdego identyfikatora przypisany jest typ. Jeśli typ nie jest jawnie podany, zostanie on wywnioskowany. Oznacza to, że język nie będzie generował nieprzewidywalnych wyników w czasie uruchomienia, ponieważ znany jest typ tych identyfikatorów i sposób, w jaki operacje wpływają na te typy. Patrz też sprawdzanie statyczne.
struct
Struct jest skrótem od struktury i jest to sposób na zgrupowanie kilku powiązanych ze sobą zmiennych. Zmienne mogą być dowolnego typu.
W Verse
struct
jest słowem kluczowym.
współbieżność ustrukturyzowana
Współbieżność ustrukturyzowana opisuje współbieżne operacje w ramach czasu życia, który jest ograniczony do określonej komendy współbieżnej i zakresu kontekstu asynchronicznego. Jest to ustrukturyzowane sterowanie przepływem, takie jak
if
,for
lubreturn
, które ogranicza się do powiązanego zakresu.W Verse wyrażenia współbieżności ustrukturyzowanej obejmują
sync
,race
,rush
orazbranch
.
podklasa
Klasa, która dziedziczy elementy członkowskie (metody i dane) ze swojej nadklasy (klasy bazowej). W Verse można rozszerzać klasę o nowe elementy członkowskie lub zmodyfikowane odziedziczone elementy członkowskie.
podwyrażenie
Wyrażenie, które jest zagnieżdżone wewnątrz bloku kodu.
podmoduł
Moduł Verse w innym module Verse. Można to porównać do folderów i podfolderów – każdy podmoduł dodaje kolejny fragment /NazwaModułu do ścieżki na każdym kolejnym niższym poziomie.
podprocedura
Zestaw instrukcji w programie komputerowym przeznaczony do wykonywania często używanych operacji. Podprocedury przypominają funkcje, z tą różnicą, że funkcja wykonuje pewne obliczenia i zwraca wynik do wywoływacza. Podprocedury wykonują swoją pracę bez zgłaszania się do programu wywołującego.
subskrypcja
Subskrypcja to sposób na określenie funkcji, którą zamierzasz wywołać, gdy zdarzenie zostanie wzbudzone. Jest to tzw. powiązanie do zdarzenia. Powiązana funkcja jest nazywana procedurą obsługi.
podtyp
Patrz nadtyp.
succeed
Gdy wyrażenie zostaje ukończone bezbłędnie, kończy się powodzeniem. Porównaj ten termin z kontekstem niepowodzenia.
nadklasa
Klasy mogą dziedziczyć z nadklasy, która zawiera wszystkie pola nadklasy w klasie dziedziczenia. Takie klasy są określane jako podklasa nadklasy.
nadtyp
Nadtyp jest specjalnym typem, który jest ponad wszystkimi innymi typami. Wszelkie operacje obsługiwane przez nadtyp muszą być również obsługiwane przez wszystkie podtypy. W Verse jedynym nadtypem jest
any
, a wszystkie pozostałe typy są podtypamiany
.
suspends
Efekt, który tymczasowo zatrzymuje (zawiesza) funkcję bez jej anulowania. Wyrażenie
suspends
pozwala funkcjom asynchronicznym na zawieszenie i wspólne przekazanie kontroli do innych współbieżnych wyrażeń przed ich zakończeniem.Aby dowiedzieć się więcej, patrz Współbieżność.
sync
W wyrażeniu
sync
wszystkie wyrażenia w bloku sync działają współbieżnie i muszą zostać ukończone, zanim wyrażenie sync zwróci kontrolę.sync
jest wyrażeniem współbieżności ustrukturyzowanej.
składnia
Zasady lub gramatyka języka programowania.
Porównaj ten termin z semantyką.
błąd składniowy
Patrz błąd kompilatora.
T
zadanie
Zadanie to obiekt używany do reprezentowania stanu aktualnie wykonywanej funkcji asynchronicznej. Za pomocą obiektów zadań można zidentyfikować miejsce zawieszenia funkcji asynchronicznej oraz wartości lokalnych zmiennych w tym punkcie zawieszenia.
wątek
Najmniejsza jednostka przetwarzania, którą można wykonać w systemie operacyjnym.
cykl
Patrz aktualizacja symulacji, która jest używana synonimicznie z cyklem i czasami z klatką.
pole
Część siatki na powierzchni takiej jak podłoga lub ściana.
przepływ czasu
Sercem języka programowania Verse jest kontrola przepływu czasu, która jest realizowana za pomocą wyrażeń współbieżnych.
Przepływ czasu jest odmianą sterowania przepływem, ale podczas gdy przepływ sterowania dotyczy kolejności, w jakiej komputer wykonuje instrukcje w oparciu o kolejność wyrażeń w programie, przepływ czasu kontroluje wykonanie w czasie, a nie sekwencję, w oparciu o sposób użycia wyrażeń współbieżności.
Przepływ czasu to inny sposób na określenie współbieżności.
wyrażenie najwyższego poziomu
Wyrażenie najwyższego poziomu to wyrażenie, które nie jest zagnieżdżone wewnątrz bloku kodu. Wyrażenia najwyższego poziomu mogą też być wyrażeniami kompleksowymi, takimi jak zagnieżdżone bloki kodu.
transacts
Gdy funkcja ma efekt
transacts
, oznacza to, że funkcja może odczytywać i zapisywać dane, ale te działania mogą być wycofane, jeśli funkcja ma również efekt decides. Ten efekt jest efektem wyłącznym.Funkcja bez określonego efektu wyłącznego może odczytywać i zapisywać dane, ale nie można jej wycofać.
krotka
Krotka jest zgrupowaniem co najmniej dwóch wyrażeń traktowanych jako jedno wyrażenie.
Elementy krotki są w kolejności, w jakiej zostały w niej umieszczone, a dostęp do nich można uzyskać poprzez ich pozycję w krotce, zwaną ich indeksem. Ze względu na to, że wyrażenia w krotce są zgrupowane, można je traktować jako pojedyncze wyrażenie.
Uwaga: Słowo krotka pochodzi od słów czterokrotność, pięciokrotność, sześciokrotność itd. Porównaj ten termin z tablicą.
typ
Typ określa, które operacje mogą być wykonywane na danych i jak te dane lub wartości są przechowywane dla tego typu. Istnieją często spotykane typy, takie jak liczba całkowita (integer) czy ciąg tekstowy (string), typy złożone i typy niestandardowe. Patrz też typ prosty i typ kontenera.
alias typu
Alias typu to sposób na utworzenie nowej nazwy dla istniejącego typu. Po zadeklarowaniu aliasu typu, możesz użyć aliasowanej nazwy zamiast istniejącego typu. Alias typu nie tworzy nowego typu, a jedynie nadaje nową nazwę istniejącemu typowi.
rzutowanie typu
Klasę można przekonwertować na jedną z jej podklas (tzw. rzutowanie typu) za pomocą składni
NewReference := type_to_cast_to[Reference]
, gdzietype_to_cast_to
jest typem, którego chcesz użyć. Jest to wyrażenie zawodne, ponieważ konwersja typu nie powiedzie się, jeśli obiektu nie da się skonwertować do danego typu, gdy na przykład klasa jest innego typu niż podklasa.Poniższy przykład pokazuje, jak przekonwertować
TaggedDevice
, który ma typcreative_device_base
, na typcustomizable_light_device
, tak aby można było korzystać z jego określonych funkcji. JeśliTaggedDevice
nie jest urządzeniem Customizable Light, wówczas nie wywoła funkcjiTurnOn()
.if (LightDevice := customizable_light_device[TaggedDevice]): LightDevice.TurnOn()
sprawdzanie typu
Sprawdzanie typu służy do sprawdzania programu przed wykonaniem. W ten sposób sprawdzane są wartości typu danych i składnia. Głównym celem systemu typu w języku programowania jest zmniejszenie prawdopodobieństwa wystąpienia błędów w programie z powodu błędów typu.
U
Unicode
Standard kodowania znaków opracowany przez konsorcjum Unicode w celu zapewnienia porównywalnej obsługi znaków w różnych językach, na różnych platformach i urządzeniach.
unikatowe
Specyfikator unique można zastosować do klasy, aby uczynić ją klasą unikatową. Aby skonstruować instancję klasy unikatowej, Verse przydziela unikatową tożsamość do powstałej instancji. Dzięki temu można porównywać instancje unikatowych klas pod względem równości, porównując ich tożsamości. Klasy bez specyfikatora unique nie mają takiej tożsamości, dlatego można je porównywać pod względem równości tylko na podstawie wartości ich pól. Oznacza to, że klasy unikatowe można porównywać za pomocą operatorów
=
oraz<>
i że są one podtypami typu comparable.
współbieżność nieustrukturyzowana
Wyrażenia współbieżne z czasem życia, które nie są logicznie ograniczone do określonej współbieżnej komendy lub zakresu kontekstu asynchronicznego. Ten czas życia potencjalnie wykracza poza zakres, w którym został wykonany. Przypomina to nieustrukturyzowane sterowanie przepływem, takie jak komenda
goto
lubassembly jump
.
UTF-8
Schemat kodowania znaków Unicode – standard kodowania znaków opracowany przez konsorcjum Unicode w celu zapewnienia porównywalnej obsługi znaków w różnych językach, na różnych platformach i urządzeniach.
Emoji wyglądają jak obrazki lub ikony, ale nimi nie są. Są to litery (znaki) z zestawu znaków UTF-8 (Unicode).
UTF-8 obejmuje niemal wszystkie znaki i symbole na świecie.
V
wartość
Wartość to informacja używana przez program do działania. Przykładami wartości są liczby lub tekst.
zmienna
Wartość, którą można zmienić podczas pracy programu. Nazywa się zmienną, bo może się zmieniać.
Czasami termin "zmienna" odnosi się zbiorczo do zmiennych i stałych, ale chociaż zmienne i stałe są podobne, różnią się jedną ważną rzeczą – wartości stałej nie można zmienić podczas działania programu.
Podstawowa składnia zmiennej to
var name : type = value
.var' jest [słowem kluczowym](#keyword) oznaczającym, że jest to zmienna, a 'name
jest nazwą przypisywaną do zmiennej (znaną jako identyfikator). Znak:
wskazuje, że następuje typ. Znak=
wskazuje, że następna będzie wartość, po czym następuje sama wartość. Na przykład:PlayerSpeed : float = 2.0
To wskazuje, że zmienna PlayerSpeed ma wartość 2.0, reprezentowaną jako wartość dziesiętna, która nie zmienia się podczas działania programu.
Nazwa i typ to deklaracja, a inicjacja to miejsce, w którym ta wartość jest wyrażana. Zmienna nie musi mieć przypisanej wartości podczas inicjacji, dobrze jest przypisać taką wartość.
Zmienne różnią się od stałych tym, że można zmienić wartość zmiennej w dowolnym momencie. Robi się to za pomocą wyrażenia przypisania.
varies
Ten efekt wskazuje, że te same dane wejściowe do funkcji mogą nie zawsze zwracać te same dane wyjściowe. Efekt
varies
wskazuje również, że nie ma gwarancji, że zachowanie funkcji pozostanie takie samo z nowymi wersjami jej pakietu zawierającego.
poziom szczegółowości
Ustawienie ograniczające ilość dodatkowych informacji wyświetlanych podczas generowania dziennika.
Verse
Verse jest statycznie sprawdzanym językiem programowania z naciskiem na programowanie rozgrywki.
Eksplorator Verse
Narzędzie w Unreal Editor dla Fortnite (UEFN), które tworzy nowe pliki Verse z szablonów, organizuje pliki za pomocą podmodułów oraz obsługuje zmianę nazw i usuwanie plików.
ścieżka Verse
Patrz ścieżka.
specyfikator widoczności
Specyfikatory widoczności definiują poziom dostępu. Oto wszystkie specyfikatory widoczności, których można używać z klasami:
wizualny język programowania
Typ języka programowania, w którym programista używa elementów wizualnych, przeciągając je i łącząc z innymi elementami w celu uzyskania określonej sekwencji instrukcji programu.
Visual Studio Code
Visual Studio Code, znany również jako VS Code, to edytor kodu źródłowego stworzony przez Microsoft dla systemów Windows, Linux i macOS.
pusty typ danych (void)
Pusty typ danych (void) przyjmuje dowolną wartość i zwraca wartość false. Dzięki temu ciało funkcji, która zwraca void, może niejawnie zwracać dowolną wartość, bez konieczności uważnego konwertowania wyniku ostatniego wyrażenia w bloku.
VPL
Patrz wizualny język programowania.
W
X
Y
Z
numerowanie od zera
Sposób numerowania, w którym pierwszy element w sekwencji jest oznaczony jako 0, a nie 1. Oznacza to, że pozycja zero w indeksie oznacza 1, pierwsza pozycja oznacza 2 itd. Sekwencje numerowania od zera są powszechne w notacji matematycznej. W programowaniu pierwsza pozycja w tablicy jest czasami nazywana pozycją zerową.