Verse è un nuovo linguaggio di programmazione: se sei un sviluppatore esperto e qualcosa non ti torna, controlla questo glossario.
Se hai appena cominciato a studiare programmazione, questo glossario fa proprio al caso tuo: abbiamo aggiunto definizioni per molti termini di programmazione, prova a cercare le risposte di cui hai bisogno!
- affermazione
Comando autonomo che non ha un valore risultante. Verse non utilizza istruzioni. Utilizza invece espressioni.
- Agente
Un agente può rappresentare un giocatore o un personaggio non giocatore (PNG).
- Algoritmo
Un algoritmo è una sequenza di istruzioni scritte per risolvere un problema o eseguire un compito. Consideralo come la ricetta di un piatto. Quando si scrive codice che risolve un problema o esegue un compito, tale codice è l'algoritmo.
- alias di tipo
Un alias di tipo consiste nella definizione di un nuovo nome per un tipo esistente. Una volta dichiarato un alias di tipo, è possibile utilizzare il nome alias invece del tipo esistente. un alias di tipo pemette di riferirsi con il nuovo nome al tipo esistente.
- ambiente metaverso
Mondo 3D in tempo reale, persistente e coerente a livello globale, con un ambiente di runtime che esegue codice utente concorrente, complesso e interdipendente, e milioni di utenti connessi contemporaneamente.
- ambito
Il termine ambito si riferisce alla parte di codice in cui l'associazione tra un nome e un valore è valida e in cui tale nome può essere utilizzato per fare riferimento al valore. Per esempio, tutte le costanti o variabili create all'interno di una funzione esistono soltanto nel contesto della funzione. Ciò significa che la durata degli oggetti è limitata all'ambito in cui sono creati, al di fuori del quale non possono essere utilizzati.
- analisi semantica
Conosciuta anche come analisi sensibile al contesto. L'analisi semantica viene eseguita nel compilatore dopo aver raccolto le informazioni semantiche necessarie dal codice sorgente (il codice che hai scritto). Controlla la coerenza del codice per verificare la presenza di errori semantici ed esegue il controllo del tipo, ad esempio assicurando che ogni operatore abbia un operando o assicurandosi che una variabile venga dichiarata prima dell'uso.
- Annullato
Espressione che fa una chiamata.
- API
Acronimo di Application Programming Interface, si riferisce a librerie in genere raggruppate in serie di funzioni richiamabili, tipi e strutture dati che consentono agli utenti di accedere e interagire con i sistemi Unreal e Fortnite.
- Archetipo
Un archetipo è un'istanza di una classe interamente definita con valori dei campi in una classe.
- argomento
Valore assegnato a un parametro in una firma della funzione mappata da una chiamata di funzione.
- Associa
Nell'ambito della programmazione, il binding consiste nel processo di associazione tra un oggetto e un valore per un dato periodo di tempo.
Per Fortnite, il binding consiste nell'associare una funzione a un evento.
Per Verse, il binding consiste nel processo di associazione tra due o più oggetti di programmazione per un determinato periodo di tempo. Ad esempio, associando una funzione a
InteractedWithEventdi un pulsante, ogni volta che il giocatore interagisce con il sensore la funzione verrà invocata. Il binding può anche essere eseguito tra una variabile e un valore o un oggetto, oppure tra un gestore e un evento.- astrazione
Principio di programmazione per cui i dettagli non necessari vengono nascosti quando l'utente non ha bisogno di comprenderne le complessità. Analogamente, non ci serve sapere come funzionano i meccanismi di un distributore automatico per comprare una merendina.
- B.A.S.E.
Gli effetti sono categorie di comportamento che una funzione può esibire.
Nell'esempio seguente, il codice indica che la funzione
IsCriticalHealthaccetta un valore float come input mediante il parametroHealth. Successivamente, gli effettidecidesetransactsmostrati dalla funzione indicano che questa rappresenta un contesto di fallimento e le sue azioni possono essere sottoposte a rollback in caso di fallimento. Se il valoreHealthche viene passato in input alla funzione è maggiore di 0.0 e minore o uguale a 30.0, allora la funzione avrà esito positivo. menti l'esito sarà negativo e l'errore dovrà essere gestito dal contesto che ha chiamato la funzione.VerseIsCriticalHealth(Health : float)<decides><transacts> : void = ((Health > 0.0) && (Health <= 30.0))Per maggiori informazioni, vedi Specificatori e attributi.
- base-16
Il sistema esadecimale (esa-, dal greco per il numero sei, e -decimale, dal latino per dieci), o a base 16, è un sistema di numerazione che utilizza 16 simboli, invece delle 10 cifre del sistema decimale.
- Bidirezionale
Funzionante in due direzioni.
- blocco di codice
Un blocco, o blocco di codice, è un gruppo di espressioni che introduce un nuovo corpo di codice. Potresti anche avere un blocco di codice che contiene zero espressioni, ma in genere si tratta di un segnaposto che verrà riempito con espressioni in un secondo momento.
I blocchi di codice vengono dopo un identificatore.
Un blocco di codice ha tre possibili formati in Verse. Tutti questi formati sono semanticamente uguali in quanto il formato non cambia ciò che fa effettivamente il codice.
Un formato spaziato inizia il blocco con
:e ogni espressione segue sulla propria riga con un rientro di quattro spazi:Verseif (test-arg-block): expression1 expression2Tieni presente che
if (test-arg-block)non fa parte del blocco, ma il blocco inizia alla fine di quella riga con:. Puoi anche utilizzare;per separare più espressioni su una singola riga:Verseif (test-arg-block): expression1; expression2; expression3In un formato parentesi graffa multiriga, il blocco è racchiuso da
{}(parentesi graffe) e le espressioni sono su nuove righe:Verseif (test-arg-block) { expression1 expression2 }Come per il formato spaziato, puoi anche usare
;per separare più espressioni su una singola riga.Verseif (test-arg-block) { expression1; expression2 }Il terzo formato è il formato con parentesi graffe a riga singola. Ancora una volta, il blocco è racchiuso da
{}, ma ogni espressione è separata da;invece di essere posizionata su una nuova riga. Tieni presente che non è necessario inserire i caratteri{}su righe separate.Verseif (test-arg-block) {expression1; expression2}Per maggiori informazioni, vedi Blocchi di codice.
- blocco vuoto
Un blocco di codice che contiene zero (nessuna) espressioni è un blocco vuoto. In genere i blocchi vuoti vengono utilizzati solo come segnaposto e vengono riempiti in seguito con il codice.
- boolean
Vedi logica booleana.
- break
Espressione che "esce" dal
loopcorrente per esegueire il codice successivo ad esso. Per maggiori informazioni, vedi Loop e break.- bug
Per la modalità Creativa di Fortnite e UEFN, un comportamento errato o imprevisto in un programma.
Per Verse, un bug è un errore in un programma che porta a un risultato errato o inaspettato. Diversamente dagli errori del compilatore, che si verificano durante la fase di compilazione di Verse, i bug si verificano durante il runtime. Il processo di identificazione e rimozione dei bug è chiamato debug.
- C++
Linguaggio di programmazione popolare utilizzato in molte applicazioni diverse, in particolare motori di gioco come Unreal Engine.
- Cache
Modalità di archiviazione dei dati che consente di accedervi più rapidamente.
- Campo
Vedi membro.
- carattere di escape
Le sequenze di escape in Verse si ottengono con la barra rovesciata ( \ ) all'interno di un valore letterale di stringa. Questo viene utilizzato per modificare i caratteri di controllo che altrimenti non verrebbero interpretati come testo. Ad esempio, se stai lavorando con una stringa e vuoi includere caratteri con usi preimpostati come { }, devi includere il carattere di escape "" prima del carattere nella stringa. Ciò fa sì che
"\\{\\}"venga formattato come {} nel testo.- casting
Puoi convertire una classe in una delle sue sottoclassi (denominata cast di tipo) usando la sintassi
NewReference := type_to_cast_to[Reference], dovetype_to_cast_toè il tipo desiderato. Queste sono espressioni fallibili poiché la conversione fallisce se l'oggetto non può essere convertito in quel tipo, ad esempio se la classe è un tipo diverso dalla sottoclasse.Nell'esempio,
TaggedDevicedi tipocreative_device_baseviene convertito incustomizable_light_deviceper consentirne l'uso di funzioni specifiche. SeTaggedDevicenon è compatibile con il dispositivo Luce personalizzabile, allora il metodoTurnOn()non verrà chiamato.Verseif (LightDevice := customizable_light_device[TaggedDevice]): LightDevice.TurnOn()- Changelist
File in Perforce in cui viene tenuta traccia delle modifiche tra i file locali e i file inviati al server uniti ai file di origine del progetto. Le changelist sono anche abbreviate in CL.
- char
Tipo di dati in cui è archiviato un singolo carattere.
- chiamante
Espressione che fa una chiamata.
- Chiamata funzione
Espressione che valuta (chiama o richiama) una funzione. Le chiamate a funzione possono avere due forme, a seconda che la funzione abbia o meno l'effetto
decides:FunctionName()eFunctionName[]. Il tipo di risultato dell'espressione della chiamata di funzione è definito nella firma della funzione.- CI/CD
CI/CD sta per "Continuous Integration / Continuous Delivery (or Deployment)" o "Integrazione continua / Consegna (o Distribuzione) continua". CI/CD fa da ponte tra l'applicazione ed il suo sviluppo, attraverso l'automazione dei processi di building, test e distribuzione.
- ciclo di simulazione
Aggiornamento ricorrente di logica, È spesso abbreviato per aggiornare o utilizzato come sinonimo di tick o frame. sinonimo di **tick** o [**frame**](#frame). Il tempo di esecuzione di un ciclo può essere costante oppure variabile: questo viene indicato spesso come delta-t, e può coincidere o no con l'avanzare effettivo del tempo. Un ciclo può infatti eseguire più o meno velocemente rispetto al tempo reale.
Per impostazione predefinita di Verse, i cicli di simulazione eseguono in rapporto 1:1 con il rendering dei frame. La frequenza di simulazione può essere diversa dalla frequenza di rendering, come nei casi di un client non sincronizzato con server o sistemi fisici mentre esegue le diverse iterazioni di aggiornamento o di una simulazione non resa visualmente.
- ciclo infinito
Blocco di codice che esegue ciclicamente. Vedi anche loop e interruzione.
- classe abstract
Quando una classe o un metodo di classe ha lo specificatore abstract, non è possibile creare un'istanza della classe. Una classe abstract è destinata a essere utilizzata come superclasse, dove alcuni membri vengono implementati o specificati ma non tutti. Viene denominata anche classe base.
- classe base
Una classe da cui derivano altre classi. Una classe che eredita da una classe base ha tutti i membri e le funzioni membro e può avere proprietà aggiuntive che non sono incluse nella classe base. Una classe base è anche nota come classe genitore o superclasse.
- classe concreta
Una classe con uno specificatore concrete è un modo per costruire un'istanza della classe con un archetipo vuoto, il che significa che tutti i campi della classe devono essere definiti con un valore iniziale.
- classe interna
Classe contrassegnata come
epic_internal, il che significa che non è possibile crearne un'istanza personalizzata ma solo utilizzare le API per accedere a un oggetto interno.- Codice
Il codice, a volte chiamato codice sorgente, è l'istruzione scritta da un programmatore che dice a un programma software come operare. Il codice sorgente Verse può essere letto dallo sviluppatore, ma non dal computer. Prima che il computer possa leggere o eseguire il programma, questo deve essere convertito in istruzioni eseguibili dal computer, chiamate compilazione. Quando un programmatore dice che sta codificando, significa che sta scrivendo queste istruzioni.
- codice atomico
Singola unità completa di codice che esegue o fallisce completamente senza interruzioni o interazioni esterne. Nessun codice atomico può essere interrotto. Tutte le espressioni adiacenti, immediate, non asincrone sono considerate atomiche: è garantito che il loro codice venga eseguito senza interruzioni con lo stesso aggiornamento e senza prelazione o commutazione di contesto.
- codifica dei caratteri
La codifica dei caratteri è la mappatura tra un carattere di testo e un dato che il computer è in grado di comprendere, denominato punto di codice.
- coercizione di tipo
Conversione di un valore in un tipo di dati diverso. pe) di dato diverso può avvenire in modo implicito o esplicito. Conversione implicita. chiamata anche coercizione, viene eseguita automaticamente.
- Commento
Vedi [commento a codice](#codecomment). Mentre il codice stesso mostra il come del programma, di solito vengono aggiunti commenti per spiegare il perché.
I commenti sul codice si possono visualizzare in qualsiasi punto del codice e iniziare con
#. Quando il programma viene eseguito, i commenti del codice vengono ignorati.Puoi commentare una singola riga inserendo un
#all'inizio della riga. Il ritorno a capo alla fine della riga termina il commento.Verse# A single line is commented this way.È possibile creare un commento blocco multiriga utilizzando
<#per iniziare il blocco e#>per terminarlo:Verse<# You can make multi-line comments in your code by starting and ending the comments as shown here. #>Per conoscere altri modi per aggiungere commenti al codice, vedi il Riferimento rapido al linguaggio Verse.
- commento a codice
Vedi commento.
- Commit
Registrazione delle modifiche al codice in un sistema di controllo di versione.
In Verse, un commit si verifica quando gli effetti di codice di un'espressione fallibile sono resi permanenti dopo che l'espressione risulta corretta.
- commutazione di contesto
Una commutazione di contesto è il processo di memorizzazione dello stato di un processo o di un thread in modo che possa essere ripristinato e riprendere l'esecuzione in un secondo momento, quindi ripristinare uno stato diverso, salvato in precedenza.
- Compila
Convertire programmi da un linguaggio leggibile dall'uomo in istruzioni eseguibili dal computer.
- Compilatore
Software che converte le istruzioni del programma leggibili dall'uomo in istruzioni eseguibili dal computer, anche indicato come parser. Il tempo in cui viene eseguito il compilatore è noto come fase di compilazione.
- Completato
Stato di un task eseguito fino al completamento.
- Componente
Una tile autonoma per il rendering di un pezzo di terreno. A volte i componenti sono chiamati celle. Vedi anche World Partition.
I componenti forniscono dati e comportamenti alle entità del Scene Graph. I componenti definiscono ciò che un'entità deve fare nella scena.
I componenti hanno proprietà modificabili che possono essere fisiche, come una mesh statica e un sistema particellare, o logiche, come un tag di gameplay o un codice Verse personalizzato che definisce il movimento di una piattaforma. Per impostazione predefinita, tutte le entità hanno un componente di trasformazione per specificare la posizione dell'entità nel mondo.
In Verse, una funzione o un gruppo di funzioni correlate in un programma che può essere riutilizzato.
- computes
Questo effetto indica che una funzione restituisce lo stesso output ogni volta che le viene presentato lo stesso input.
- concatenare
Vedi concatenazione.
- concatenazione
La concatenazione si verifica quando una stringa viene allegata (aggiunta) a un'altra stringa. È possibile utilizzare l'operatore + per concatenare le stringhe.
- Concomitante
I calcoli multipli che vengono eseguiti nello stesso periodo di tempo effettivo sono concorrenti. Si tratterebbe di aggiornamenti di simulazione logica sovrapposti, tick e frame, anche se potenzialmente distribuiti su un tempo fisico, come ad esempio su un singolo processore, e non necessariamente parallelo.
- concorrenza non strutturata
Espressioni concorrenti con una durata che non è logicamente vincolata a un comando concorrente specifico o all'ambito del contesto asincrono. Questa durata si estende potenzialmente oltre l'ambito in cui è stata eseguita. È analoga al controllo di flusso non strutturato, come il comando
gotooassembly jump.- concorrenza strutturata
La concorrenza strutturata descrive operazioni concorrenti entro una durata vincolata a un determinato input concorrente e a un ambito di contesto asincrono: Si tratta quindi di controlli di flusso strutturati come
if,fororeturn, vincolati a un ambito associato.In Verse, le espressioni di concorrenza strutturata includono
sync,race,rushebranch.- Condizionale
Espressione che valuta una condizione ed esegue istruzioni in base al risultato della condizione. Un esempio di espressione condizionale è un'espressione
if.- Condizione
Una condizione è qualcosa che può essere valutato come vero o falso. Un'espressione condizionale verifica la condizione e restituisce un risultato [booleano](#boolean).
- Contenitore
In UEFN, un contenitore è una classe con proprietà che possono essere applicate a vari oggetti.
In Verse, i contenitori sono strutture in cui è possibile organizzare i dati nel codice. Per maggiori informazioni, vedi tipo contenitore.
- contesto
Codice ambito che definisce la durata di vari elementi e vincoli del linguaggio. Questo è in genere l'intervallo tra l'inizio e la fine di un blocco di codice.
- contesto asincrono
L'ambito in cui è consentita un'espressione asincrona, come una chiamata a coroutine.
- contesto di fallimento
Un contesto di errore è un contesto in cui è consentita l'esecuzione di espressioni fallibili. definendo cosa succede se l'espressione [fallisce](#fail).
- controllo di tipo
Il controllo di tipo avviene in fase di verifica di un programma prima dell'esecuzione. In questo modo vengono verificati i valori e la sintassi dei tipi di dati. Lo scopo principale di un sistema di tipi in un linguaggio di programmazione è ridurre la probabilità di bug dovuti ad errori di tipizzazione.
- controllo statico
Controllo automatico durante la compilazione che può rilevare un bug in base alla semantica del codice.
- converges
Il set di effetti "più piccolo". È un codice che garantisce di produrre un valore in un periodo di tempo finito senza divergere.
- coppia chiave-valore
Quando una chiave è associata a un valore, insieme formano una coppia chiave-valore. È possibile cercare il valore utilizzando la chiave.
- coroutine
Routine con una durata che esegue operazioni nel tempo o attende che si verifichino vari eventi e stati o una combinazione di entrambi. Coroutine è sinonimo di funzione asincrona.
- corpo
Blocco con un proprio ambito in cui sono definite le sottoespressioni di un elemento del linguaggio, come il corpo di una funzione o di un loop. Ad esempio, le espressioni in un corpo di funzione ne definiscono il comportamento e le variabilidichiarate al suo interno sono locali.
- Costante
Una costante è un indirizzo di memoria il cui valore allocato non può cambiare in fase di esecuzione del programma. Viene chiamata costante proprio in quanto il suo valore rimane costantemente lo stesso.
La sintassi di base di una costante è
name : type = value. Ilnameè il nome assegnato alla costante (noto come identificatore).:precede un tipo.=precede un valore. Ad esempio:VersePlayerSpeed : float = 2.0Qui, la costante `PlayerSpeed` ha valore `float` pari a `2.0` e non cambierà durante l'esecuzione del programma.
Alle costanti sono sempre assegnati valori: Il nome e il tipo sono la dichiarazione e l'inizializzazione è il punto in cui viene espresso quel valore.
Confronta con variabile.
Per maggiori informazioni, vedi Costanti e variabili.
- dati
In genere, i dati si riferiscono ai valori utilizzati in un'espressione.
- Debugger
Strumento utilizzato per il debug in cui è possibile visualizzare lo stato del programma in ogni fase di esecuzione.
- Debugging
Processo di identificazione e risoluzione degli errori nel codice.
- decides
Un effetto che indica che la funzione può non riuscire e che la chiamata a questa funzione è un'espressione fallibile. La definizione di una funzione con decides richiede anche l'effetto transacts, il quale implica che le azioni eseguite da essa possono essere sottoposte a rollback se viene sollevato un errore in qualsiasi suo punto, come se non fossero mai state eseguite.
- decorare
Nell'ambito della scrittura del codice, il termine "decorare" indica avvolgere una porzione di codice con un'altra porzione.
- definire
Vedi definizione.
- Definizione
Una definizione è quando un identificatore viene implementato o ha un valore assegnato, ad esempio una definizione di funzione o una definizione di classe. Confronta con dichiarazione.
- dichiarare
È possibile dichiarare una variabile o una funzione specificandone l'identificatore e il tipo. Confronta con inizializzare.
- Dichiarazione
Una dichiarazione è un espressione in cui viene introdotto un identificatore insieme al suo tipo. Può o non può essere implementata (utilizzata) e può o non può avere un valore assegnato (inizializzato).
var name : type = expressionè la sintassi della dichiarazione di una variabile. Ad esempio:Versevar PlayerSpeed : float = 2.0Questa riga di codice dichiara che una variabile denominata PlayerSpeed ha un valore float.
In questo esempio, l'ultima parte,
= 2.0, è l'inizializzazione che è separata dalla dichiarazione.- digest
Elenco generato automaticamente di tutti i simboli pubblici, come ad esempio moduli, funzioni, classi, elaborati dal compilatore Verse. Include anche i commenti. È possibile leggere un file digest per vedere quali API e funzionalità sono presenti in un modulo associato.
- dipendenza
La dipendenza è una situazione in cui un modulo dipende da altri moduli per alcune funzionalità.
- dispatch
Il dispatch di qualcosa consiste nel suo invio a una destinazione. In Verse, potrebbe voler dire indirizzare una chiamata a una funzione o un evento a un sensore, per esempio.
- dispositivo
I dispositivi sono oggetti in Fortnite in grado di svolgere task specifici con l'obiettivo di controllare il gameplay.
Un dispositivo, come un oggetto, è qualcosa che puoi posizionare sull'isola. Ma i dispositivi sono diversi dagli oggetti scenografici perché puoi usarli per creare interazioni con i giocatori. Dispositivi diversi fanno cose diverse, ma tutti fanno qualcosa.
Pensa a un dispositivo come a un pacchetto di meccaniche di gioco con funzionalità specifiche che si possono personalizzare per supportare il tuo gameplay. La maggior parte dei dispositivi è personalizzabile, ma tutti hanno una configurazione di base che determina come si comporteranno senza personalizzazione.
In Verse, un dispositivo è il componente di base per la costruzione di meccaniche di gioco. Un dispositivo che guida le interazioni del giocatore, le quali a loro volta controllano il gameplay.
- dispositivo creato con Verse
Dispositivo utilizzabile in Unreal Editor per Fortnite (UEFN) che è stato sviluppato direttamente con Verse.
- distruzione deterministica
La distruzione deterministica, che si trova in alcuni linguaggi di programmazione, si verifica quando gli oggetti vengono distrutti non appena un programma esce dal loro ambito.
- divergere
Si dice che l'esecuzione di un programma diverge se non termina (finisce) come previsto. Se produce un valore entro un periodo di tempo finito senza divergere, converge.
- doc
Campo di nota generico che troverai in classi e funzioni (ma non parametri di funzione) che contiene informazioni utili su cosa fa l'elemento che descrive o su come utilizzarlo e viene utilizzato per popolare la pagina di quell'elemento nella Guida API Verse.
- Dominio
Il dominio è l'insieme di input accettati da un determinato parametro. Un tipo è un modo per specificare un dominio, ma il dominio è più comprensivo del tipo.
- Durata
Vedi durata.
- Durata in vita
Tempo che intercorre tra la creazione di un oggetto e la sua eliminazione. Sinonimo di durata di vita.
- eccedenza intero
Un eccedenza di numeri interi si verifica quando si tenta di memorizzare un valore troppo grande per i valori definiti per il tipo intero.
- effetto additivo
Un effetto additivo è un effetto che si può aggiungere a un effetto esclusivo. Gli effetti additivi includono
suspendsedecides.- effetto collaterale
Un effetto collaterale si verifica quando il codice, ad esempio una funzione o un'espressione, modifica parte di stato al di fuori del rispettivo ambito.
- effetto esclusivo
Alcuni effetti sono considerati effetti esclusivi a cui è possibile aggiungere effetti additivi, ma che non possono essere utilizzati con altri effetti esclusivi. Gli effetti esclusivi includono
computes,variesetransacts. Gli effetti additivi includonosuspendsedecides.- Elemento
Una singola parte in un gruppo più grande. Ad esempio, un array può contenere diversi elementi che si possono memorizzare e utilizzare singolarmente.
- elenco collegato
Una struttura di dati lineari in cui ciascun elemento memorizza un riferimento all'elemento successivo dell'elenco.
- Eredità
In Verse, è possibile creare una classe che estende la definizione di un'altra aggiungendovi o modificandone campi e metodi. Quest'istanza, che eredita definizioni dell'altra, viene solitamente chiamata sottoclasse.
- Errore
In Verse, per impostazione predefinita, qualsiasi codice scritto dall'utente non può fallire. Ciò significa che una funzione, invece di restituire valori booleani od opzioni, utilizza l'effetto
<decides>per restituire un valore, void o fallire.- errore di compilazione
Un errore di compilazione si verifica quando il compilatore Verse rileva un utilizzo non corretto del codice sorgente in fase di compilazione. Confronta con bug, che si verificano in runtime.
- Errore di sintassi
Vedi errore del compilatore.
- errore semantico
Vedi errore del compilatore.
- esadecimale
In Verse è possibile utilizzare il sistema numerico esadecimale (a base 16) per rappresentare numeri interi, invece del sistema numerico decimale in base 10. Ciò significa che i valori esadecimali sono rappresentati con le cifre 0–9 e le lettere A–F. Ad esempio, 0x7F è uguale a 127 e 0xFACE è uguale a 64206.
Questo è un sistema di numerazione degli interi alternativo.
- esclusione reciproca
Quando più di un processo accede allo stesso segmento di codice, tale segmento viene chiamato sezione critica. La mutua esclusione è un modo per garantire che due processi non accedano contemporaneamente a una sezione critica.
- Esecuzione
Processo di un computer che interpreta un programma e ne esegue le istruzioni.
- esecuzione con successo
Quando un'espressione viene completata senza errori, ha esito positivo. Confronta con il contesto di fallimento.
- esecuzione sequenziale
Il codice viene eseguito in genere riga per riga, nell'ordine in cui vengono visualizzate le espressioni. Questa è chiamata esecuzione sequenziale.
- esecuzione speculativa
Verse sfrutta il contesto di errore per consentirti di provare le azioni senza eseguirle. Questa operazione è chiamata esecuzione speculativa. Quando un'espressione ha esito positivo, viene eseguito il commit dell'effetto dell'espressione, ad esempio la modifica del valore di una variabile. Se l'espressione non riesce, viene eseguito il rollback degli effetti dell'espressione, come se l'espressione non si fosse mai verificata.
- Esegui
Eseguire un programma.
- eseguire il refactoring
Modificare la struttura del codice senza modificarne la funzionalità. Ad esempio, un blocco di codice ripetuto più volte in un programma potrebbe invece essere rifattorizzato in una chiamata di funzione. Il refactoring può aumentare la leggibilità del codice e ridurne la complessità senza modificarne il comportamento.
- esempio di codice
Programma, modulo o classe autonomi che illustrano uno o più concetti, classi, funzioni o altri aspetti di un linguaggio di programmazione. Confronta con snippet di codice.
- Esponi
Una proprietà viene esposta in UEFN tramite l'attributo
editablenel codice Verse. potrà essere modificata direttamente nell'interfaccia di UEFN. Vedi anche editable.- Espressione
Un'espressione è la più piccola unità di codice (una combinazione di valori e funzioni) che ha un risultato quando viene valutata.
L'esempio seguente è un'espressione
if ... elseche significa che se il valore soddisfa un criterio nominato è una cosa altrimenti è qualcos'altro.Verseif (a > 5): “Big!” else “Small!”In Verse, tutto è un'espressione, dai valori letterali alle chiamate di funzione o flusso di controllo.
Questo rispetto a un'istruzione che è un comando autonomo che non ha un valore risultante. In Verse, tutto è un'espressione e non c'è distinzione tra affermazioni ed espressioni che possono valutare un valore.
Per informazioni più approfondite, vedi Espressioni.
- espressione a blocchi
Un'espressione a blocchi consiste in più espressioni raggruppate in una o in un blocco di codice innestato. Le espressioni a blocco si comportano in modo simile ai blocchi di codice.
- espressione asincrona
Un'espressione asincrona può richiedere tempo affinché venga valutata, ma non necessariamente. Un'espressione asincrona può essere completata nel ciclo di simulazione corrente o in uno successivo. Le funzioni asincrone identificate con uno specificatore
suspendssono anche chiamate coroutine. Le espressioni asincrone si contrappongono con le espressioni immediate.- espressione assegnazione
In Verse, un'espressione assegnazione memorizza un valore in una posizione modificabile, ad esempio durante l'inizializzazione di una variabile o la modifica del valore di una variabile.
- espressione case
Un'espressione case può controllare il flusso di un programma da un elenco di opzioni. Per maggiori informazioni, vedi Case.
- espressione decisionale
Le espressioni decisionali utilizzano gli operatori
not,andeorper controllare il flusso decisionale con esito positivo e negativo.- espressione di confronto
In Verse, le espressioni di confronto si verificano quando si confrontano due elementi utilizzando uno degli operatori di disuguaglianza:
<,>,<=,>=,<>.- espressione di diramazione
Un'espressione
branchavvia un blocco di una o più sottoespressioni asincrone. Ogni espressione successiva viene eseguita immediatamente.Per maggiori informazioni, vedi Concurrency.
- espressione di primo livello
Un'espressione di primo livello è un'espressione non innestatata all'interno di un blocco di codice. Le espressioni di primo livello possono anche essere espressioni composte, come blocchi di codice annidato.
- espressione di uguaglianza
In Verse, le espressioni di uguaglianza verificano se due elementi sono uguali utilizzando l'operatore =.
- espressione fallibile
Un'espressione fallibile è un'espressione che può riuscire e generare un valore, oppure non riuscire e non generare alcun valore. Esempi di espressioni fallibili includono l'indicizzazione in un array perché un indice non valido avrà esito negativo, e l'utilizzo di operatori come il confronto di due valori.
- espressione for
Un'espressione
for, chiamata anche ciclo for, è un'espressione loop vincolata, ossia il cui numero di iterazioni è noto a priori e le cui condizioni di uscita sono automatizzate. Per maggiori informazioni, vedi For.- espressione if
Con l'espressione
if, puoi prendere decisioni che cambiano il flusso del programma. Come in altri linguaggi di programmazione, l'espressioneifdi Verse supporta l'esecuzione condizionale, ma in Verse le condizioni utilizzano la riuscita e l'errore per guidare la decisione.- espressione intervallo
Un'espressione intervallo contiene tutti i numeri compresi e inclusi tra due valori con
..; ad esempio,1..5. Tali espressioni possono essere utilizzate soltanto in determinati ambiti, tra cui le espressionifor.- espressione matematica
In Verse,un'espressione matematica è un'espressione che utilizza uno dei seguenti operatori:
+,-,*o/.- espressione spawn
L'espressione
spawnavvia una funzione asincrona. Qualsiasi espressione che segue laspawnviene eseguita subito senza attenderne il completamento.spawncontinuerà poi in modo indipendente fino al completamento.- espressione vincolata
Un'espressione è detta vincolata quando ha dei limiti impostati.
- Fa
Vedi float.
- fase di compilazione
Fase in cui il codice sorgente viene convertito in istruzioni macchina. Confronta con runtime.
- Finale
Specificatore che può essere utilizzato solo su classi e membri di classi:
Quando una classe ha lo specificatore final, non è possibile creare una sottoclasse della classe.
Quando un campo ha lo specificatore final, non è possibile eseguire l'override del campo in una sottoclasse.
Quando un metodo dispone dello specificatore final, non è possibile eseguire l'override del metodo in una sottoclasse.
- fire-and-forget
La locuzione _Fire and Forget_ - qui traducibile come "Esegui e dimenticatene" - si riferisce all'esecuzione un'espressione la cui correttezza o il cui tempo di completamento non hanno importanza, circostanza piuttosto rara.
- firma di funzione
La firma di una funzione ne dichiara il nome (identificatore), l'input (parametri) e l'output (risultato). In Verse si possono anche avere specificatori che indicano come utilizzare o implementare una funzione.
- Floor
Un'operazione matematica che arrotonda per difetto il valore razionale al numero intero più vicino. Confronta con
limite.- flusso temporale
Sezione di superficie delimitata dalle linee di una griglia.
Il controllo di flusso temporale è al cuore di Verse e si realizza per mezzo di espressioni concorrenti.
Mentre il flusso di controllo logico gestisce la sequenza delle istruzioni in base all'ordine delle espressioni nel programma, il flusso temporale ne controlla l'esecuzione nel tempo in base alle espressioni di concorrenza.
**Flusso temporale** è pertanto sinonimo di **concorrenza**.
- frame
Un frame è un'immagine completamente renderizzata (ad esempio su un monitor) che rappresenta una simulazione in un determinato momento. Il termine "frame" viene utilizzato a volte come sinonimo per ciclo (o tick) di simulazione poiché di solito questi sono in fase, sebbene nuovi frame possano verificarsi a una velocità diversa (più o meno frequentemente) rispetto a un ciclo di simulazione. Il frame rate, spesso abbreviato in fps (frame per second), è il numero di frame visualizzati al secondo.
- frammento di codice
Il frammento è un codice, spesso breve, che di solito ha lo scopo di mostrare o implementare un determinato concetto.
I frammenti di codice non sono programmi autonomi completi. Gli snippet di codice si possono copiare e incollare in blocchi di codice. Confronta con esempio di codice.
- funzione (codice)
Una funzione (chiamata anche routine) è una sezione di codice riutilizzabile che fornisce istruzioni per eseguire una data azione o generare un determinato output come risultato dell'input che riceve.
Per definire una funzione è necessario fornire tre parti chiave: un nome univoco (identificatore), il tipo di dati atteso come risultato e ciò che la funzione svolge quando viene chiamata.
Di seguito è riportata la sintassi di base di una funzione:
Versename() : type = codeblockI valori name() e type separati da due punti: questa è la firma della funzione, cioè il modo in cui chiamare e utilizzare la funzione e il valore che deve essere restituito dalla funzione è del tipo da te fornito. Questo formato è simile al modo in cui si creano le costanti, tranne che per le () dopo il nome che imita il modo in cui si chiama la funzione nel codice.
Il blocco di codice della funzione: definisci cosa fa la funzione quando viene chiamata, fornendo
=codeblock, dovecodeblockè una qualsiasi sequenza di una o più espressioni. Ogni volta che chiami la funzione, le espressioni nel blocco di codice vengono eseguite.
- Futuro
Task che ha iniziato a essere eseguita ma è stata temporaneamente sospesa. Si dice futura perché sarà completata in un secondo momento.
- generare eventi
Quando una funzione emette un segnale, viene generato un evento. Tutte le parti interessate dall'evento, come l'interazione con un pulsante, ricevono una notifica e vengono chiamati i rispettivi gestori di eventi.
- Generatore
Un generatore produce una sequenza di valori in successione e assegna un nome a ciascuno.
- gerarchia di effetti
Gli effetti sono categorie di comportamento che una funzione può esibire. L'applicazione di effetti esclusivi a una funzione ha un ordine gerarchico in cui gli effetti in cima implementano le proprietà di quelli al di sotto di essi. seguono:
transactsvariescomputesconverges
L'effetto
transactsincluderà le proprietà per gli effetti sottostanti, l'effettovariesinclude gli effetticomputeseconvergesma nontransacts, e così via.- Gerarchico
Divisione per livelli di rango, importanza o controllo. Esempi di relazioni gerarchiche sono quelle tra genitore/figlio o superclasse/sottoclasse.
- gestore
I gestori sono le funzioni chiamate per rispondere a un evento associato. Ad esempio, associando una funzione a `InteractedWithEvent` di un pulsante, ogni volta che un giocatore interagisce con esso viene chiamato il gestore associato.
- grafico delle chiamate
Elenco di metodi in uno stack con informazioni su ogni chiamata, quali orario di esecuzione, timestamp e identificatori di funzione.
- group
Inclusione di parti di un'espressione tra
()per esplicitarne l'ordine di valutazione. Tipicamente, il raggruppamento migliora la leggibilità del codice.- hard-coded
I dati hard-coded vengono scritti direttamente nel codice, anziché essere assegnati a una variabile. Ciò di solito rende il codice meno flessibile e più difficile da aggiornare, ma esistono casi in cui ha senso procedere in questo modo.
- IDE
Un ambiente di sviluppo integrato (IDE, Integrated Development Environment) è un software che fornisce un'interfaccia utente per la creazione e il debug di programmi.
- Identificatore
Un identificatore è il nome dato alle entità in un programma, come variabili e funzioni, per identificarle in modo univoco.
- Immediato
Un'espressione immediata viene valutata senza ritardi, ovvero la valutazione viene completata entro il ciclo di simulazione corrente.
- immutabile
Stato di un oggetto che, una volta creato, non può essere modificato. Confronta con mutevole.
- Imposta
Parola chiave che si può utilizzare per modificare il valore di una variabile mentre il programma è in esecuzione.
La sintassi corrispondente è
set name = value.setè la parola chiave,nameè il nome della variabile da modificare evalueè il valore in cui dovrebbe essere cambiata.Questo è chiamato assegnazione.
- Indice
Un indice rappresenta le posizioni degli elementi in una sequenza a rappresentazione numerica. Tale sequenza può essere un elenco, una stringa di caratteri o qualsiasi sequenza arbitraria di valori.
Gli indici utilizzano un sistema di indicizzazione da zero. Ciò significa che la prima posizione nella sequenza ha indice 0, mentre la quinta avrà indice 4.
- indicizzazione a zero
Sistema di numerazione in cui il primo elemento di una sequenza ha indice 0, Ciò significa che la posizione zero in un indice rappresenta 1, la prima posizione rappresenta 2 e così via. L'indicizzazione a partire da 0 è comune nella notazione matematica. In programmazione, la prima posizione in un array è talvolta chiamata posizione zero.
- inferenza di tipo
Esistono situazioni in cui non è necessario specificare esplicitamente il tipo di dato, come la creazione di una costante. Ad esempio, data una costante
MyConstant := 0, il suo tipo viene dedotto come int poiché le è stato assegnato un valore intero. In istanze come questa, il tipo viene quindi inferito.- Inizializza
Per creare una variabile, specifica prima identificatore e tipo, ovvero dichiara la variabile, e successivamente assegnale un valore, ovvero inizializzala.
- Integrati
Elemento integrato in un linguaggio di programmazione, utilizzabile direttamente all'interno del linguaggio con le sue librerie standard.
- Intero
Un intero è un numero senza parte decimale che può essere positivo, negativo o zero.
- Interpolazione
La fusione di nuovi valori che si trovano tra valori noti.
- interprete
Programma che analizza ed esegue un programma riga per riga.
- invocare
Vedi chiamata.
- Iscriviti
La sottoscrizione è un modo per specificare la funzione da chiamare quando viene segnalato un evento. Questo viene detto associazione a un evento. La funzione associata viene definita gestore.
- Istanza
Un'istanza può essere pensata come a una copia univoca di un asset. Mentre questo determina le proprietà predefinite di qualunque nuova istanza creata, le modifiche apportate alle proprietà di un'istanza non si riflettono sull'asset originale. Puoi così cambiare l'aspetto di un'istanza di materiale senza modificare il materiale principale. materiale master.
Per creare una variabile, occorre prima specificarne identificatore e tipo, ovvero dichiarare la variabile, e successivamente assegnarle un valore, ovvero inizializzarla.
- istanziazione
Per creare un'istanza di qualche elemento.
In Verse, istanziare consiste nel creare una istanza o un valore di una struttura o tipo di dati, ad esempio una classe o una struttura. Vedi anche istanziazione di un archetipo.
- istanziazione di un archetipo
Il processo di creazione di un archetipo. Si distingue dai costruttori poiché questi possono anche eseguire operazioni logiche o altre funzioni.
- Itera
Eseguire codice per ogni elemento di una sequenza.
- Letterale
Valore fisso nel linguaggio di programmazione Verse, come un numero o un carattere. Ad esempio, 1 è un intero letterale.
- libreria standard
Serie di funzioni, costanti e altre definizioni di linguaggio disponibili in Verse. Questa libreria fornisce implementazioni per esigenze di programmazione comuni. È una risorsa per le operazioni che i programmatori utilizzano di frequente, come le funzioni matematiche.
- Limite
- Limite massimo
Un'operazione matematica che arrotonda per eccesso il valore razionale al numero intero più vicino. Confronta con
Floor.- linguaggio di programmazione
Linguaggio formale utilizzato per scrivere programmi informatici. Ne sono esempi Scratch, un linguaggio di programmazione visuale utilizzato per lo sviluppo di storie interattive, giochi e animazioni, C ++, linguaggio basato su testo che viene spesso utilizzato nello sviluppo di giochi, e moltissimi altri, ognuno dei quali con le sue regole. Verse è un linguaggio di programmazione sviluppato da Epic Games per i creatori che vogliono imparare a utilizzare gli strumenti di sviluppo.
- linguaggio di programmazione visuale
Tipo di linguaggio di programmazione in cui è possibile utilizzare elementi visivi trascinandoli e collegandoli fra loro per ottenere una determinata sequenza di istruzioni invece di scrivere codice.
- linguaggio open world
Linguaggio in cui moduli interdipendenti scritti da più utenti e organizzazioni possono evolversi nel tempo senza interrompere la compatibilità dell'interfaccia e la persistenza dei dati seguendo regole di sottotipizzazione chiaramente definite.
- livello di accesso
Autorizzazioni necessarie per accedere a un membro. Queste vengono specificate utilizzando uno specificatore sul membro.
- Locale
Si riferisce a una costante o variabile all'interno di un blocco di codice. codeblock) vengono dette locali rispetto ad esso, poiché non possono essere usate al di fuori dello stesso. Vedi anche ambito.
- logica booleana
Sistema di logica le cui espressioni possono assumere i soli valori "vero" o "falso", spesso utilizzato per determinare il controllo di flusso nella programmazione. Prende il nome da George Boole (1815-1864), matematico che diede un contributo chiave ai campi di logica e algebra.
In Verse, il tipo boolean viene utilizzato per rappresentare i valori
logici"vero" o "falso". La logica booleana viene valutata tramite espressioni fallibili in contesti di fallimento.- loop di gioco
Un loop di gioco è codice che esegue ciclicamente per rispondere a input quali l'interazione con periferiche come mouse e tastiera o aggiornare lo stato del gioco e fornire in output al giocatore il risultato delle sue azioni, l'accensione di una luce al premere di un tasto. Il loop di solito termina quando il gioco raggiunge uno stato di completamento, come ad esempio il raggiungimento di un obiettivo da parte del giocatore o uno stato di errore come l'esaurimento del tempo prima di raggiungere l'obiettivo.
- Luogo
In programmazione, le impostazioni locali sono un set di parametri che definiscono lingua, area geografica e altri aspetti dell'interfaccia utente. In Verse, il tipo
localecontestualizza la localizzazione di unmessaggio, influendo sul formato di testo e numeri in base alle impostazioni locali.- membro
Variabile o funzione definita come parte di una struttura dati composita (come classi, strutture, interfacce o un moduli Verse). Le variabili membro sono spesso dette campi e le funzioni membro metodi.
- membro dati
Vedi membro.
- membro pubblico
- messaggio
Un
messaggioin Verse è un tipo che può contenere testo indipendente dalle impostazioni locali. Quando inizializzi una variabilemessagecon un valorestring, questa stringa rappresenta il testo e la lingua predefiniti per il messaggio.- Metodo
Un metodo è una funzione associata a una classe e può essere chiamato solo da una sua istanza.
- Modalità di animazione PingPong
Per invertire la direzione di un'animazione quando viene raggiunto il keyframe finale e riprodurla nuovamente nella direzione opposta.
- Modificabile
Attributo che espone le proprietà del codice cui è applicato in UEFN. Il codice di tagging con questo attributo consiste nell'aggiungere un
@attribute_name(in questo caso@editable) prima di un identificatore di campo:Verse@editable PropertyName : type = DefaultValueAd esempio, il campo della stringa
GreetingMessageè una proprietà editabile con valore predefinito"Ciao, straniero":Verseexpose_properties := class(creative_device): @editable GreetingMessage : string = "Hello, stranger"Per ulteriori informazioni, vedi Personalizzare le proprietà del dispositivo nell'editor.
- Modulo
Un modulo di Verse è un'unità atomica di codice che può essere ridistribuita e da cui si dipende e può evolvere nel tempo senza interrompere le dipendenze. È possibile importare un modulo om Verse per utilizzare codice definito in altri file.
Per altre informazioni, vedi Moduli e percorsi.
- mutevole
Stato di un oggetto che, una volta creato, può ancora essere modificato. In Verse, la mutabilità è possibile solo con i puntatori.
Confronta con non modificabile.
- mutex
Un mutex è una primitiva di sincronizzazione che dà accesso esclusivo a una risorsa condivisa con un solo thread. Vedi anche mutua esclusione.
- NaN
Not-a-Number, valore restituito da un'operazione matematica non valida o il cui risultato non è definito nel campo dei numeri reali (come una divisione per 0 o la radice quadrata di un numero negativo).
- native_callable
Indica che un metodo di istanza è nativo (implementato in C++) e può essere richiamato da altro codice C++. Puoi vedere questo specificatore utilizzato su un metodo di istanza. Questo specificatore non si propaga alle sottoclassi e non è quindi necessario aggiungerlo a una definizione quando si esegue l'override di un metodo che lo contiene
- Nativo
lo specificatore
nativeindica che i dettagli della definizione di un elemento sono implementati in C++. Lo specificatore può quindi generare automaticamente definizioni C++ che uno sviluppatore potrà poi così utilizzare. Lo specificatorenativeviene utilizzato su classe, interfaccia, enum, metodo e dati.- Nidificato
Un blocco di codice si dice innestato quando è contenuto all'interno di un altro blocco che svolge un compito più ampio.
- no-rollback
Questo effetto indica che le letture e scrittura di dati mutevoli di una funzione non possono essere annullate, ovvero la funzione non può essere chiamata in un contesto di fallimento (che ha comportamento rollback in caso di errore).
- Nodo
In UEFN, un nodo è un'unità fondamentale all'interno di un sistema grafico che rappresenta una specifica funzione, operazione o punto dati. Nel contesto dei grafici dei nodi, un nodo è un singolo componente che elabora o indirizza segnali audio, come una sorgente sonora, un effetto (come riverbero o delay), un mixer o un output.
Per Verse, vedi nodo dell'elenco collegato.
- nodo dell'elenco collegato
Ogni elemento di un elenco collegato è definito nodo. Il nodo è un contenitore che contiene dei dati e un riferimento al nodo successivo dell'elenco.
- nodo di coda
Il primo nodo in un elenco collegato è chiamato nodo head e l'ultimo nodo è chiamato nodo tail.
- nodo di testa
- numeri interi alternativi
Vedi esadecimale.
- Numero in virgola mobile
Numero con virgola decimale (un "punto" in inglese e in Verse), come 0,5 o 1,0. I numeri creati utilizzando una dichiarazione di variabile float avranno cifre su entrambi i lati di una virgola decimale.
- numero intero con segno
Un numero intero con segno può contenere un valore intero negativo, positivo o zero, rappresentato con un segno + o -. Un numero intero senza segno può avere soltanto valore positivo o zero.
- numero razionale
Numero che può essere espresso come frazione tra due numeri interi. Ad esempio, 1,75 può essere espresso come 7/4, mentre la radice quadrata di 2 (√2) non ha una rappresentazione frazionaria ed è quindi un numero irrazionale. Un altro esempio di numero irrazionale è Pi greco, che inizia con 3,14159... e ha infinite cifre decimali.
- Oggetto
In UEFN, il termine "oggetto" è sinonimo di asset.
In Verse, l'istanza di una classe è un oggetto. Un'istanza ha gli stessi comportamenti definiti dal tipo di classe ma con valori reali.
I termini istanza e oggetto sono sinonimi.
- operando
La quantità su cui viene eseguita un'operazione. Ad esempio, nell'espressione
1 + 2,+è un operatore e1e2sono operandi.- Operatore
Simbolo che rappresenta un'azione o un processo. Ad esempio, in
1 + 2,+è l'operatore.- operatore infisso
- operatore postfisso
Formato di un operatore in cui è presente un solo operando e l'operatore segue l'operando.
- Operazione
Azione eseguita da un programma per svolgere un dato compito. Esistono quattro gruppi base di operazioni: input, elaborazione, output e memorizzazione. Un'operazione è un tipo di espressione.
- ordine di valutazione
Nel contesto della precedenza degli operatori, le operazioni in un'espressione vengono eseguite in un dato ordine di valutazione.
- overload di funzioni
Eseguire l'overload (sovraccarico) di una funzione o di un operatore consiste nel crearne più definizioni con nome o simbolo identici ma parametri diversi. Ad esempio, si può usare l'operatore di uguaglianza per assegnare esplicitamente un intero vettore 3D a una tupla o per mapparne ciascun elemento a un singolo valore. In questo caso, si ha overload dell'operatore = in quanto ne esistono due "versioni": una che accetta un vettore 3D - = (1, 1, 1) -, l'altra un unico valore numerico - = 1. L'utilizzo di una o dell'altra dipende quindi dal contesto in cui appare.
- Override
In Verse, è possibile eseguire l'override i campi da una superclasse e assegnare valori iniziali. Ad esempio:
Versetank := class(player_character): StartingShields<override> : int = 100 MaxShields<override> : int = 200 AllowOvershield<override> : logic = true DamageReduction : int = 50 CreateTankPlayerCharacter() : tank = return tank{}La classe tank avrà valori per
StartingShields,MaxShieldseAllowOvershielddiversi dai valori di classe predefiniti.È inoltre possibile eseguire l'override dei valori metodo nello stesso modo.
Per maggiori informazioni, vedi sottoclasse.
- paradigma
"Modello o pattern di riferimento in un dato ambito. Un paradigma di programmazione consiste nel modo in cui è organizzato un linguaggio. Esistono quattro paradigmi principali per i linguaggi di programmazione:
Imperativo
Logico
Funzionale
Orientato agli oggetti
Linguaggi multi-paradigma, come Verse, ne implementano più di uno."
- Parallelo
Operazioni multiple eseguite nello stesso intervallo di tempo su processori separati.
- Parametro
Una variabile di input che include un dominio, ad esempio un tipo, e un valore predefinito opzionale definito nella firma di funzione, che viene quindi utilizzato nel body della funzione. Confronta con argomento.
- parentesi
In Verse, le parentesi vengono utilizzate per specificare diversi tipi di informazioni all'interno del codice. Verse utilizza quattro tipi di parentesi: Gli utilizzi includono ma senza limitazione:
Parentesi tonde
(), per impostare parametri nelle firme di funzione e argomenti nelle chiamate di funzione e raggruppare espressioni, tuple e sottoclassi.Parentesi quadre
[], per chiamate a funzione fallibili, specificatori di tipo per array e mappe e l'indicizzazione in essi.Parentesi graffe
{}, nella creazione di istanze di archetipo, nella formattazione di blocchi di codice e nell'interpolazione di stringhe.Parentesi angolari
<>, per aggiungere specificatori a identificatori e funzioni.
- parentesi graffe
Vedi parentesi.
- Parola chiave
Le parole chiave sono parole riservate che hanno un significato speciale per il compilatore. Esempi di parole chiave sono
foreclass. Non è possibile utilizzare parole chiave come identificatori.- parser
Programma per il parsing del codice.
- parsing
Il parsing, in informatica, consiste nel separare una sequenza di comandi, in genere un programma, in componenti più facilmente elaborabili per analizzarli, verificarne la sintassi e associarli a tag di definizione.
- patto con il diavolo
L'atto di programmare viene a volte paragonato a un patto con il diavolo, in quanto un programma seguirà esattamente le tue istruzioni, anche quando il risultato non è proprio quello che ti aspetti. Vedi anche programma.
- Percorso
I percorsi di Verse forniscono uno spazio dei nomi globale per identificarne gli elementi, sulla base dei domini web. Questi percorsi sono persistenti, univoci e individuabili da ogni programmatore Verse.
- Percorso Verse
Vedi percorso.
- Perforce
Perforce (P4) è uno strumento software che fornisce Revision Control (noto anche come Controllo del codice sorgente o Controllo di versione), ovvero un modo per tenere traccia e gestire le modifiche al codice software. Risulta particolarmente utile quando team di più sviluppatori lavorano sullo stesso progetto. Se qualcuno commette un errore, il controllo di versione consente di confrontare le versioni precedenti del codice per individuare e correggere il problema senza interrompere il lavoro di tutti gli altri.
- persistenza
Quando i dati del giocatore vengono salvati da una sessione e ricaricati nella sessione successiva di quella partita, si parla di persistenza.
- Ping pong
Per invertire la direzione avanti e indietro.
- Polimorfismo
Polimorfismo deriva da poli-, che significa molti, e -morfo, che significa forma. si riferisce al comportamento di una variabile che può assumere valori diversi in condizioni diverse.
- polling
Il polling si riferisce al campionamento attivo dello stato di un dispositivo esterno da parte di un programma client come attività sincrona. Il polling viene spesso utilizzato in ambiti di input/output (I/O) e viene anche definito I/O polled o I/O basato su software.
- precedenza
Ordine in cui devono essere eseguite determinate operazioni in un'espressione.
- precedenza degli operatori
Si riferisce all'ordine di valutazione integrato quando si combinano gli operatori in Verse. Per esempio, se un'espressione contiene operatori diversi, è importante che questi vengano valutati in un dato ordine.
Ad esempio,
1 + 2 * 3non valutano in3 * 3poiché la moltiplicazione ha la precedenza sull'addizione.Laprecedenza degli operatori può essere sovrascritta raggruppando le espressioni.
- predicato
In Verse, un predicato è qualcosa che ha esito positivo o negativo.
- Prefisso
Formato di un operatore in cui è presente un solo operando e l'operatore precede l'operando.
- prelazione
L'interruzione temporanea di una task in esecuzione con l'intenzione di riprenderlo in un secondo momento è chiamata prelazione. Questa operazione viene solitamente eseguita da uno _scheduler_ esterno senza assistenza o cooperazione della task stessa.
- programma
Un programma è una sequenza di istruzioni che indica a un computer come eseguire un dato compito. Un programma mostra quindi come il computer riceve ed elabora l'input fornito per restituire l'output atteso.
Scrivere un programma è quindi analogo a fare un patto con il diavolo: entrambi daranno letteralmente ciò che viene chiesto loro. Per evitare errori e imprevisti occorre dunque descrivere con precisione quali input sono validi, quali output aspettarsi e quali operazioni eseguire a tal fine.
- Programmazione
L'atto di scrivere istruzioni (un programma) che possono essere compilate ed eseguite dal computer.
- programmazione funzionale
Tipo di programmazione dichiarativa che si concentra sull'utilizzo di funzioni. La programmazione funzionale mira a semplificare il test e il debug riducendo gli effetti collaterali. **Haskell** è un esempio di linguaggio di programmazione funzionale.
- programmazione imperativa
Paradigma per cui l'esecuzione di un programma viene descritta esplicitamente nel codice, passo dopo passo. **C** è un linguaggio di programmazione imperativo.
- programmazione logica
Paradigma di programmazione che utilizza la logica booleana per rappresentare problemi e algoritmi all'interno del sistema.
- programmazione logica funzionale
Combinazione di paradigmi di programmazione funzionale e logica in un unico linguaggio.
- programmazione orientata agli oggetti
La programmazione orientata agli oggetti (OOP, Object-oriented programming) è un paradigma di programmazione che si basa sul concetto di classi e oggetti.
- Prolissità
Impostazione per regolare la quantità di informazioni aggiuntive visualizzate quando viene generato un registro.
- propagazione
La propagazione in una funzione è ciò che si verifica quando il chiamante non gestisce ciò che accade in caso di errore. Ad esempio, una funzione con effetto
decidespotrebbe essere chiamata da un'altra funzione con effettodecides. Chiunque sia il chiamante, sta a questo gestire l'errore.- Proprietà
Si dice proprietà un membro (campo) i cui valori possono essere esposti e restituiti.
- proprietà libera
- pseudocodice
Lo pseudocodice è una descrizione dettagliata in linguaggio semplice (non linguaggio di programmazione) di ciò che un algoritmo dovrebbe fare. Pseudo- significa non vero o reale, quindi si potrebbe dire che lo pseudocodice è codice fittizio, ma utile per capire cosa dovrebbe fare un algoritmo.
Si può anche pensare allo pseudocodice come a una struttura di alto livello. Lo pseudocodice viene scritto in genere per pianificare una parte complessa di un programma prima di scrivere il codice reale.
- Puntatore
Un puntatore è un modo per fare riferimento a una "scatola" mutevole che può contenere un tipo di valore specificato. stesso. Confronta con valore.
- punto di codice
Valore nello spazio di codice Unicode per la codifica dei caratteri.
- Puro
Lo [specificatore](#specifier) `pure` indica che la funzione restituirà sempre lo stesso identico output e non porterà a effetti collaterali (scritture su variabili modificabili e imprevisti in I/O).
- qualificare
Definire un identificatore all'interno di un ambito che consenta di "riutilizzare" l'identificatore. Ad esempio, potresti avere una costante chiamata "gatto". È possibile utilizzare lo stesso nome per un campo della classe chiamata "sara.gatto". Sia la costante che il campo hanno nome "gatto", ma solo "sara.gatto" è stato qualificato.
- Query
Le espressioni query utilizzano l'operatore
?per verificare se un valore logico o facoltativo ètrue.- race condition
Una race condition (_condizione di gara_) si verifica quando un programma tenta di eseguire in parallelo due o più operazioni che devono invece essere eseguite in serie per essere completate correttamente.
- RAII
Acronimo di Resource Acquision Is Initialization, RAII descrive la situazione in cui un oggetto acquisisce risorse soltanto tra inizializzazione e deallocazione per gestirle in modo più efficace.
- raycasting
Il raycasting traccia una linea invisibile nello spazio da un oggetto per scoprire se qualcosa entra in collisione con esso.
- RECURSIONE
La ricorsione si verifica quando una funzione chiama se stessa.
- relazione is-a
La relazione tra una classe genitore e una classe figlio è chiamata relazione "is-a". La classe figlio in una relazione is-a eredita dalla classe genitore.
- REPL
Read-Evaluate-Print Loop, o REPL, è un ambiente informatico in cui è possibile inserire codice e farlo leggere e valutare, quindi vederne i risultati. REPL dà la possibilità di esplorare un linguaggio e vedere cosa funziona (o non funziona) senza modificare nulla.
- return
Espressione che indica a un programma di uscire da una subroutine e tornare all'indirizzo di ritorno, ovvero il chiamante della subroutine.
Invece di basarsi sull'ultima espressione nel blocco di codice di una funzione per produrre il valore corretto, è possibile specificarne esplicitamente il risultato con
return. Una volta eseguita, il programma esce subito dal blocco di codice della funzione. Qualsiasi altro codice successivo a return non sarà eseguito.- ricorsività infinita
La ricorsività infinita si verifica quando una funzione chiama se stessa direttamente o indirettamente, con il risultato che la funzione tenta di chiamare se stessa per sempre senza mai terminare. Ciò provoca il blocco del programma.
- Risultato
Quando viene eseguita un'espressione, restituisce un valore e tale valore è un risultato.
- rollback
Ripristinare un programma a uno stato definito in precedenza, in genere per eseguire il ripristino da un'espressione fallibile.
- routine
Vedi funzione.
- Runtime
Lasso di tempo in cui un gioco, simulazione o applicazione sono eseguiti. Si distingue dalla fase di compilazione, che si riferisce al tempo dedicato alla compilazione, e dallo sviluppo, dedicato a scrittura, compilazione e debug del codice.
È prassi comune distinguere tra gli eventi che accadono in fase di esecuzione e quelli in fase di compilazione.
- Script
Porzione di codice Verse autonomo ed eseguibile associato a un oggetto.
- self
Selfè un identificatore speciale di Verse che si può utilizzare in un metodo di classe per fare riferimento all'istanza della classe su cui il metodo è stato chiamato. È possibile fare riferimento ad altri campi dell'istanza da cui è stato chiamato il metodo senza utilizzareSelf, ma se si desidera fare riferimento all'istanza nel suo complesso, è necessario utilizzareSelf.- semaforo
Un semaforo è simile a un mutex con la differenza che, mentre un mutex blocca altri thread dall'accesso alle risorse disponibili, un semaforo segnala soltanto che la risorsa è in uso.
- semantica
Significato di un' espressione. Confronta con sintassi.
- serializzazione
Processo di lettura o scrittura di dati da o verso il file di salvataggio. Una proprietà libera creata con lo stesso file letto ha una proprietà diversa da classe/struttura.
- shadowing
Lo shadowing si verifica quando un identificatore nasconde un altro identificatore. Rappresenta un errore in Verse che impedisce al codice di compilare.
- sintassi
Regole o grammatica del linguaggio di programmazione.
Confronta con semantica.
- sistema deterministico
Sistema in cui lo stesso stato iniziale - lo stesso input - produrrà sempre gli stessi risultati finali - stesso output.
- snippet
Vedi snippet di codice.
- sottoespressione
Espressione innestata all'interno di un blocco di codice.
- sottomodulo
Modulo Verse racchiuso all'interno di un altro modulo. È possibile considerarlo come un insieme di cartelle e sottocartelle: ogni sottomodulo aggiunge un altro /NameOfModule al percorso man mano che scende verso il basso.
- Sottotipo
Tipo che supporta tutte le operazioni del proprio supertipo. Alla parola chiave
subtypepuò seguire un tipo tra parentesi per specificare che un parametro è vincolato ad esso. Ad esempio, diversi metodi per array in Verse usanosubtypeper indicare che tutti gli elementi dell'array devono essere di supertipo comparable affinché il metodo funzioni.Verse(Input:[]t where t:subtype(comparable)).RemoveFirstElement<public> (ElementToRemove:t)<computes><decides>:[]t RemoveFirstElementCiò richiede che gli elementi dell'array siano sottotipo di
comparableper poter determinare se ognuno di essi sia confrontabile con l'argomentoElementToRemove.- Spazio di gioco
Modulo API di Verse che puoi utilizzare per ottenere un array di giocatori o squadre, oppure la squadra di un determinato giocatore. Consente anche di sottoscriversi gli eventi aggiunti e rimossi dai giocatori.
- specificatore
Uno specificatore aggiunge informazioni a una definizione. Ad esempio, lo specificatore di effetto
decidescontrassegna una funzione come fallibile.Gli specificatori si dividono in due sottocategorie: specificatori di accesso e specificatori di effetto.
- Specificatore accesso
Gli specificatori di accesso definiscono il livello di accesso. Di seguito sono riportati tutti gli specificatori di accesso che è possibile utilizzare con le classi:
public: accesso illimitato.
internal: accesso limitato al modulo corrente. Questo è l'accesso predefinito.
protected: accesso limitato alla classe corrente e a qualsiasi sottoclasse.
private: accesso limitato alla classe corrente.
- splatting
Quando una tupla appare come singolo parametro di una funzione, è come se tale funzione venisse chiamata separatamente su ciascuno dei suoi elementi. Ciò è chiamato espansione della tupla o, affettuosamente, **spiattellamento**.
- Stack di chiamate
Lo stack delle chiamate è il registro che un programma utilizza per tenere traccia delle chiamate: funzioni in esecuzione, funzioni completate e funzioni ancora da avviare.
- Stato
Uno stato è la combinazione dei valori originali di un oggetto più le eventuali modifiche apportatevi.
- stato di gioco
Lo stato di un gioco o un'altra simulazione. È composto da tutti i valori dei dati che descrivono un sistema. I valori costante e variabile determinano lo stato del sistema.
- STM
La memoria transazionale (STM, Software Transactional Memory) è un meccanismo di controllo concorrenza, analogo alle transazioni database, per la verifica dell'accesso alla memoria condivisa in ambiti concorrenti. Verse implementerà STM per i vantaggi prestazionali che garantisce in grandi simulazioni distribuite e non solo.
- stringa vuota
Una stringa che non contiene caratteri
""è chiamata stringa vuota.- subroutine
Insieme di istruzioni all'interno di un programma progettato per eseguire operazioni di uso frequente. Le subroutine sono simili a funzioni con la differenza che una funzione esegue calcoli e restituisce il risultato al chiamante. una subroutine svolge il proprio lavoro senza riferire al programma.
- superclasse
Le classi possono ereditare da una superclasse, che include tutti i campi della superclasse nella classe di eredità. Tali classi sono dette sottoclasse della superclasse.
- supertipo
Un supertipo è un tipo che ha almeno un sottotipo. sono ereditate da tutti i sottotipi. In Verse,
anyè il supertipo di tutti gli altri tipi e tutti gli altri tipi sono sottotipi diany. Il tipocomparableè un supertipo di tutti i tipi comparable in Verse comeintefloat.- suspends
Effetto che interrompe temporaneamente (sospende) una funzione senza annullarla. Un'espressione
suspendsconsente alle funzioni asincrone di sospendere l'esecuzione e trasferire in modo cooperativo il controllo ad altre espressioni concorrenti prima del completamento.Per maggiori informazioni, vedi Concurrency.
- sviluppatore
Qualcuno che utilizza gli strumenti di Fortnite per creare (sviluppare) un'isola in Fortnite, specialmente quando utilizza UEFN. Questo termine include sviluppatori, artisti e architetti di isole Fortnite.
- tabellone di gioco
La superficie su cui si gioca. Tradizionalmente, il termine tabellone riguarda i giochi da tavolo. Tuttavia, sta diventando sempre più comune utilizzarlo per descrivere i livelli dei videogiochi. Nello sviluppo di videogiochi, i livelli del tabellone di gioco possono essere suddivisi in diverse aree o zone con forme, organizzazione o terreni diversi. Come sui tabelloni dei giochi da tavolo, i giocatori possono spostare un personaggio o un oggetto sul tabellone (livello) per progredire nel gioco.
- tempo di invocazione
Tempo necessario per valutare un'espressione. Un richiamo immediato non richiede alcun tempo. Un'espressione asincrona può essere completata immediatamente o essere latente.
- Thread
La più piccola unità di elaborazione che può essere eseguita in un sistema operativo.
- Tick
Vedi ciclo di simulazione, di cui è usato come sinonimo insieme a frame.
- tipizzazione dinamica
In un linguaggio di programmazione tipizzato dinamicamente, a variabili ed espressioni non sono assegnati tipi espliciti, i quali possono essere verificati solo in fase di esecuzione. Confronta con tipizzazione forte.
- tipizzazione forte
Un linguaggio di programmazione è fortemente tipizzato quando a ogni identificatore è assegnato un tipo. quando non specificato esplicitamente, questo viene inferito. Questo significa che in fase di esecuzione il linguaggio non produce risultati imprevedibili poiché sia i tipi degli identificatori che il modo in cui le operazioni influiscono su di essi sono noti. Vedi anche controllo statico.
- tipo
Il tipo di un [dato](#data) definisce quali [operazioni](#operation) possono essere eseguite su di esso e come i suoi [valori](#value) vengono memorizzati. I tipi si suddividono in comuni, quali numeri interi e stringhe, composti e personalizzati. Vedi anche tipo primitivo e tipo contenitore. La parola chiave
typepuò essere utilizzata con parentesi graffe per definire un tipo previsto. Le dichiarazioni di funzione e gli intervalli numerici sono attualmente supportati come dichiarazioni. Ad esempio, nella funzioneSubscribe()dell'interfacciasubscribable, la parola chiavetypeindica che il parametroCallbackdev'essere una funzione con tipo di ritornovoid.VerseSubscribe<public>(Callback:type {__(:t):void})<transacts>:cancelable- tipo composito
Un tipo composito, a volte chiamato composto o aggregato, è qualsiasi tipo di dati costituito da campi o elementi (tipicamente denominati) di tipi primitivi o altri tipi compositi. Tali dati hanno tipicamente un numero fisso di campi o elementi per tutta la loro lifespan. Attualmente, Verse implementa i tipi compositi `struct`, `class`, `enum`, `interface` e `module`.
- tipo comune
I tipi comuni sono tipi incorporati e utilizzati di frequente. I tipi comuni includono
any,comparable,float,int,logic,rationalestring.- Tipo dati
Vedi tipo.
- Tipo di contenitore
Puoi memorizzare più valori insieme utilizzando un tipo contenitore come array, mappa, tupla e opzioni.
- tipo integrato
Un tipo integrato (built-in) non può essere suddiviso in sottotipi, a differenza di un tipo composto.
- tipo parametrico
- Tipo primitiva
Una primitiva è un tipo non derivato da altri tipi. che non può quindi essere ulteriormente scomposto. Esempi di tipi primitivi incorporati includono
void,logic,int,float,rationalechar. Confronta conConfronta con tipo contenitore.
- transacts
Una funzione con effetto
transactspuò leggere e scrivere dati, ma il rollback di tali operazioni può avvenire solo se la funzione ha anche l'effetto decides. Questo effetto è un effetto esclusivo.Una funzione senza effetto `transacts` può sempre leggere e scrivere dati, ma non può essere sottoposta a rollback.
- Unicode
Standard di codifica dei caratteri sviluppato da Unicode Consortium per fornire un supporto condiviso tra lingue, piattaforme e dispositivi diversi.
- unità
Sezione base di superfici come pavimenti o muri.
Un modo per organizzare le opzioni di menu visivamente.
Per Verse: una sezione base di superfici come pavimenti o muri.
- unità di codice
Combinazione minima di bit che può rappresentare un'unità di testo codificato. UTF-8 utilizza 8-bit per l'unità di codice.
- Univoco
Lo specificatore unique può essere applicato a una classe per renderla univoca. Per costruire un'istanza di una classe univoca, Verse alloca un'identità univoca per l'istanza risultante. Ciò consente di verificare l'uguaglianza tra istanze di classi univoche confrontando le loro identità con gli operatori =, < e >, il che le rende sottotipi del tipo confrontable. Le classi prive dello specificatore univoco non hanno tale identità e quindi si possono confrontare solo per l'uguaglianza in base ai valori dei loro campi. Ciò significa che le classi univoche si possono confrontare con gli operatori = e <> e sono sottotipi del tipo confrontabile.
- unset
- UTF-8
Lo schema di codifica dei caratteri Unicode, uno standard sviluppato da Unicode Consortium per fornire un supporto confrontabile dei caratteri tra lingue, piattaforme e dispositivi.
Le emoji sembrano immagini o icone, ma non lo sono. Queste, pur apparendo come immagini, fanno in realtà parte
del set UTF-8.
- Valore
Un valore forma, insieme al dato cui è associato, l'unità di informazione utilizzata dai programmi informatici. Ne sono esempi cifre e caratteri.
- Valuta
Valutare significa eseguire un'espressione per produrre un valore.
- variabile (codice)
Valore che può essere modificato durante l'esecuzione di un programma. È definito variabile perché può variare.
Colloquialmente, capita di trovare "variabile" riferito a variabili e constanti indiscriminatamete ma, a differenza delle variabili propriamente dette, non è possibile modificare il valore di una costante a tempo di esecuzione.
La sintassi di base di una variabile è
var name : type = value.varè una parola chiave che dice che questa è una variabile enameè un nome assegnato alla variabile (noto come identificatore).:precede un tipo.=precede un valore. Ad esempio:VersePlayerSpeed : float = 2.0Qui, la costante `PlayerSpeed` ha valore `float` pari a `2.0` e non cambierà durante l'esecuzione del programma.
Il nome e il tipo sono la dichiarazione e l'inizializzazione è il punto in cui viene espresso quel valore. Non è necessario assegnare un valore durante l'inizializzazione, ma è buona norma farlo.
Le variabili differiscono dalle costanti poiché è possibile modificarne il valore in qualsiasi momento. Ciò viene eseguito con espressioni assegnazione.
- variabile puntatore
Una variabile puntatore punta a una posizione di memoria in cui è memorizzato un valore. Dopo aver creato una variabile puntatore non è più possibile modificare l'indirizzo di memoria ma si potrà accedere al valore memorizzatovi.
- varies
Questo effetto indica che gli stessi input della funzione potrebbero non generare sempre lo stesso output. L'effetto
variesindica anche che non c'è alcuna garanzia che il comportamento della funzione rimanga invariato con le nuove versioni del pacchetto che la contiene.- Verse
Verse è un linguaggio di programmazione controllato staticamente con un'enfasi sulla programmazione del gameplay.
- Verse Explorer
- Visual Studio Code
Visual Studio Code, noto anche come VS Code, è un editor di codice sorgente realizzato da Microsoft per Windows, Linux e macOS.
- VPL