Verse é uma nova linguagem de programação, portanto, se você é um programador experiente e vê algo que não entende completamente, verifique este glossário.
Se você ainda está começando a aprender programação, este glossário também é para você. Adicionamos definições para muitos termos básicos de programação, e você pode encontrar as respostas de que precisa aqui!
Números e símbolos
A
classe abstract
Quando uma classe ou um método de classe tem o especificador abstract, você não pode criar uma instância da classe. Uma classe abstract deve ser usada como uma superclasse, em que alguns membros são implementados ou especificados, mas não todos. Também chamada de classe base.
abstração
Um princípio de programação em que detalhes desnecessários são ocultados de um usuário quando o usuário não precisa entender as complexidades ocultas. Por exemplo, você pode colocar dinheiro em uma máquina de venda automática e receber uma guloseima sem entender como a mecânica funciona.
nível de acesso
As permissões necessárias para acessar um membro. Elas são especificadas usando um especificador no membro.
especificador de acesso
Especificadores de acesso definem o nível de acesso. Confira a seguir todos os especificadores de acesso que você pode usar com as classes:
- public: acesso irrestrito.
- internal: acesso limitado ao atual módulo. Este é o acesso padrão.
- protected: acesso limitado à classe atual e a quaisquer subclasses.
- private: acesso limitado à classe atual.
efeito aditivo
Um efeito aditivo é um efeito que pode ser adicionado a um efeito exclusivo. Os efeitos aditivos incluem
suspends
edecides
.
agent
Um agent (agente) pode representar um jogador ou uma IA.
algoritmo
Um algoritmo é uma sequência de instruções escritas para resolver um problema ou realizar uma tarefa. Pense nisso como uma receita para um prato. Quando você escreve um código que resolve um problema ou realiza uma tarefa, esse código é o seu algoritmo.
inteiros alternativos
Consulte hexadecimal.
any
A linguagem Verse tem um tipo especial,
any
, que é o supertipo de todos os tipos (tornando todos os outros tipos subtipos deany
). Por causa disso, a linguagem é compatível com pouquíssimas operações, pois todas as operações que são compatíveis teriam que ser compatíveis com todos os valores. Embora não seja muito usado, é bom estar ciente desse tipo, pois pode surgir ao escrever um código que produz um erro. É mais frequentemente encontrado quando várias expressões diferentes podem ser um resultado (como os diferentes caminhos de umif
) eany
é o único supertipo comum entre elas.
API
Um acrônimo para Application Programming Interface (Interface de Programação de Aplicativos), são bibliotecas que geralmente são agrupadas em conjuntos de funções chamáveis, tipos e estruturas de dados que permitem que os usuários acessem e interajam com os sistemas Unreal e Fortnite.
arquétipo
Um arquétipo é uma instância de uma classe que é totalmente definida com valores para seus campos em uma classe.
instanciação de arquétipo
O processo de criação de um arquétipo. Compare com constructor, que também pode executar lógica ou outras funções.
argumento
O valor atribuído a um parâmetro em uma assinatura de função mapeada de uma chamada de função.
matriz
Uma matriz é um contêiner na qual você pode armazenar elementos do mesmo tipo. Os elementos de uma matriz estão na ordem em que você os insere nessa matriz, e você pode acessar os elementos por sua posição na matriz, chamada de índice.
Você pode criar uma matriz usando a palavra-chave
array
seguida por{}
. Por exemplo:Players : []player = array{Player1, Player2}
Para obter mais informações, consulte Array (matriz).
expressão de atribuição
Em Verse, uma expressão de atribuição armazena um valor em um local mutável, como ao inicializar uma variável ou alterar o valor de uma variável.
assíncrona
Uma expressão assíncrona pode levar tempo para ser avaliada, mas não necessariamente. Uma expressão assíncrona pode ou não ser concluída na atualização de simulação atual ou em uma posterior. As funções assíncronas que são identificadas com um especificador
suspends
também são chamadas de corrotinas. Expressões assíncronas contrastam com expressões imediatas.
contexto assíncrono
O escopo de onde uma expressão assíncrona, como chamada de corrotina, é permitida.
atômica
Uma única unidade completa de código que executa completamente ou falha completamente, sem interrupção ou observação de outro código. Um código atômico não pode ser interrompido. Todas as expressões adjacentes, imediatas, não assíncronas são consideradas atômicas: seu código é executado sem interrupção com a mesma atualização e sem preempção ou troca de contexto.
atributo
Um atributo é uma propriedade ou outra informação associada a identificadores que pode ser referenciada ou analisada em Verse ou em um aplicativo como o UEFN.
A sintaxe de atributo usa
@
, seguido pela palavra-chave para esse atributo.
B
base 16
Hexadecimal (de hexa-, significando seis, e decimal, significando dez), ou base 16 (geralmente encurtado para hex), é um sistema de numeração que usa 16 símbolos, em vez dos 10 símbolos mais familiares da base 10.
bidirecional
Que funciona em duas direções.
vincular
Na programação de computadores, vincular é criar uma conexão entre dois ou mais objetos de programação por um período especificado.
expressão block
Uma expressão block é uma maneira de agrupar expressões como uma única expressão ou aninhar um bloco de código. As expressões block se comportam de maneira semelhante aos blocos de código.
corpo
Um bloco com o próprio escopo que define as subexpressões de um elemento de linguagem, como um corpo de função ou um corpo de loop. Por exemplo, o corpo de uma função contém expressões que definem o que a função faz, e eventuais variáveis declaradas na função são locais para o corpo desssa função.
Booleano
Consulte lógica booleana.
Lógica booleana
Um sistema de lógica em que o valor expresso é verdadeiro ou falso, e que é frequentemente usado para determinar o controle de fluxo em linguagens de programação. O nome é uma homenagem a George Boole (1815-1864), um matemático que deu importantes contribuições para os campos da lógica e da álgebra.
Em Verse, o tipo usado para representar verdadeiro e falso é
logic
. Essa lógica booleana é realizada por meio de expressões falíveis em contextos de falha.
vinculado
Uma variável na qual foi executada uma vinculação. Todas as variáveis em Verse são vinculadas imediatamente após serem definidas; elas não podem estar em um estado não vinculado.
chaves
Consulte colchetes.
colchetes
Os colchetes são usados em Verse para especificar diferentes tipos de informações no código. A linguagem Verse usa quatro tipos de colchetes. Seus usos incluem, por exemplo:
()
Parênteses são usados para definir parâmetros em uma assinatura de função e argumentos em uma chamada de função, e para agrupar expressões, tuplas e subclasses.[]
Colchetes são usados para chamadas de função falíveis, especificadores de tipo para matrizes e mapas, e indexação em uma matriz.{}
Chaves são usadas na instanciação de arquétipo, na formatação de bloco de código e na interpolação de string.<>
Sinais de maior e menor são usados para adicionar especificadores a identificadores e funções.
expressão branch
Uma expressão
branch
inicia um bloco de uma ou mais subexpressões assíncronas. Qualquer expressão a seguir é executada imediatamente.Obtenha mais informações em Simultaneidade.
break
Uma expressão que “quebra” o
loop
atual e executa a próxima expressão após a expressão de loop. Para obter mais informações, consulte Loop e break.
bug
Um bug é um erro em um programa de computador que faz com que ele produza um resultado incorreto ou inesperado. Bugs ocorrem durante o tempo de execução, diferentemente de erros do compilador, que ocorrem durante o tempo de compilação Verse. O processo de identificação e remoção de bugs é chamado de depuração.
compilar
Realizar a compilação do código Verse em instruções que um computador pode executar.
integrado
Em algumas linguagens de programação, algo integrado é algo que você pode usar diretamente na linguagem e em suas bibliotecas padrão.
tipo integrado
Um tipo integrado não pode ser mais subdividido, ao contrário de um tipo composto.
C
C++
Uma linguagem de programação popular usada em muitos aplicativos diferentes, especialmente engines de jogos como a Unreal Engine.
cache
Uma maneira de armazenar dados para que possam ser acessados mais rapidamente.
chamada
Em um programa de computador, quando uma instrução é solicitada pelo programa, ela é chamada. A chamada invoca (ativa) uma função específica. As chamadas podem acontecer em resposta a interações do jogador com objetos ou a parâmetros de tempo.
gráfico de chamadas
Uma lista dos métodos em uma pilha de chamadas, com informações sobre cada chamada, como tempo de execução, carimbos de data/hora e o identificador da função.
pilha de chamadas
A pilha de chamadas é o que um programa usa para acompanhar as chamadas: quais funções estão em execução, quais foram concluídas e quais ainda estão por vir.
expressão case
Uma expressão case pode controlar o fluxo de um programa a partir de uma lista de opções. Para obter mais informações, consulte Case (caso).
Ceil
Uma operação matemática que arredonda um valor racional para cima até o inteiro mais próximo. Compare com
Floor
.
lista de alterações
Uma maneira de rastrear alterações em um arquivo no Perforce entre arquivos locais que estão armazenados em seu computador e arquivos que são enviados ao servidor e mesclados com os arquivos de origem do projeto. Uma lista de alterações também pode ser chamada de CL (changelist).
char
Um tipo de dado que armazena um único caractere.
character
Em Verse, a expressão "character" também pode designar um caractere tipográfico em uma string.
codificação de caracteres
A codificação de caracteres é o mapeamento entre um caractere de texto e os dados que o computador pode entender, chamado de ponto de código.
CI/CD
CI/CD refere-se a integração contínua (continuous integration) e entrega contínua (continuous delivery) ou implantação contínua (continuous deployment). O CI/CD conecta o desenvolvimento e o aplicativo por meio da automação na compilação, nos testes e na implantação de aplicativos.
classe
Uma classe é um modelo para criar objetos com comportamentos e propriedades semelhantes (variáveis e métodos), e deve ser instanciada para criar um objeto com valores reais. As classes são hierárquicas, o que significa que uma classe pode herdar informações de seu pai (superclasse) e compartilhar suas informações com seus filhos (subclasses). As classes podem ser um tipo personalizado definido pelo usuário. Compare com instância.
código
Código, às vezes chamado de código-fonte, são as instruções escritas por um programador que informam a um programa de software como operar. O código-fonte da linguagem Verse pode ser lido pelo programador, mas não pelo computador. Para que o computador possa ler ou executar o programa, ele deve ser convertido em instruções executáveis por computador, chamadas de compilação. Quando um programador diz que está programando, significa que está escrevendo essas instruções.
bloco de código
Um bloco, ou bloco de código, é um grupo de expressões que introduz um novo corpo de código. Você também pode ter um bloco de código que contém zero expressões, mas geralmente é um espaço reservado que será preenchido com expressões em algum momento posterior.
Os blocos de código vêm depois de um identificador.
Um bloco de código tem três formatos possíveis em Verse. Todos esses formatos são semanticamente iguais, pois o formato não altera o que o código realmente faz.
Um formato espaçado começa o bloco com
:
, e cada expressão segue em sua própria linha com um recuo de quatro espaços:if (test-arg-block): expression1 expression2
Observe que
if (test-arg-block)
não faz parte do bloco, mas o bloco começa no final dessa linha com:
. Você também pode usar;
para separar múltiplas expressões em uma única linha:if (test-arg-block): expression1; expression2; expression3
Em um formato de várias linhas com chaves, o bloco é delimitado por
{}
(chaves) e as expressões estão em novas linhas:if (test-arg-block) { expression1 expression2 }
Assim como no formato espaçado, você também pode usar
;
para separar várias expressões em uma única linha.if (test-arg-block) { expression1; expression2 }
O terceiro formato é o formato de única linha com chaves. Novamente, o bloco é separado por
{}
, mas cada expressão é separada por;
em vez de ser colocada em uma nova linha. Observe que você não precisa colocar os caracteres{}
em linhas separadas.if (test-arg-block) {expression1; expression2}
Para saber mais sobre esse assunto, consulte Blocos de código.
comentário de código
Consulte comentário.
ponto de código
Um valor no espaço de código Unicode para codificação de caracteres.
amostra de código
Um programa, módulo ou classe independente que demonstra um ou mais conceitos, classes, funções ou algum outro aspecto de uma linguagem de programação. Compare com trecho de código.
trecho de código
Um trecho é algum código, geralmente curto, que geralmente serve para mostrar ou implementar um conceito específico.
Os trechos de código não são programas autônomos completos. Os trechos de código podem ser copiados e colados em blocos de código. Compare com amostra de código.
unidade de código
A combinação mínima de bits que pode representar uma unidade de texto codificado. UTF-8 usa 8 bits para sua unidade de código.
coerção
A conversão de um valor em um tipo de dados diferente. As conversões de tipo podem ser feitas de forma implícita ou explícita. A conversão implícita, também chamada de coerção, é feita automaticamente.
comentário
Um comentário escrito pelo programador que explica algo sobre o código ou a razão dele para programar algo de determinada maneira. Enquanto o próprio código mostra o como do programa, os comentários geralmente são adicionados para explicar o porquê.
Os comentários de código podem aparecer em qualquer lugar no código e começam com
#
. Quando o programa é executado, os comentários de código são ignorados.Você pode fazer um comentário de uma única linha colocando um
#
no início da linha. Uma quebra de linha no final da linha encerra o comentário.# Uma única linha é comentada desta forma.
Você pode fazer um comentário em um bloco com várias linhas usando
<#
para iniciar o bloco e#>
para finalizá-lo:<# Você pode fazer comentários de várias linhas em seu código iniciando e terminando os comentários conforme mostrado aqui. #>
Para consultar outras maneiras de adicionar comentários ao seu código, consulte a Referência rápida da linguagem Verse.
commit
Quando os efeitos de código de uma expressão falível se tornam permanentes depois que essa expressão é bem-sucedida.
tipo comum
Tipos comuns são tipos integrados e usados com frequência. Exemplos de tipos comuns:
any
,comparable
,float
,int
,logic
,rational
estring
.
comparable
Um tipo que define os operadores para menor que, maior que e assim por diante. Outros tipos podem herdar de
comparable
e fazer expressões de comparação.
expressão de comparação
Em Verse, expressões de comparação ocorrem quando você compara dois elementos usando um dos operadores de diferença:
<
,>
,<=
,.=
,< >
.
compilação
O processo de converter programas de uma linguagem legível para humanos em instruções executáveis por computador.
tempo de compilação
Quando o código-fonte é convertido em instruções de máquina. Compare com tempo de execução.
compilador
Software que converte instruções de programa legíveis por humanos em instruções executáveis por computador, às vezes chamado de analisador. O período durante o qual o compilador é executado é conhecido como tempo de compilação.
erro do compilador
Um erro do compilador é causado pelo uso incorreto de código detectado pelo compilador Verse no tempo de compilação. Compare com bugs, que ocorrem no tempo de execução.
concluído
O estado de uma tarefa que foi concluída.
componente
Uma função ou um grupo de funções relacionadas em um programa que podem ser reutilizados.
tipo composto
Um tipo de dados composto, às vezes chamado de agregado, é qualquer tipo que pode ser composto por campos ou elementos (geralmente nomeados) de tipos primitivos ou outros tipos compostos. Geralmente tem um número fixo de campos ou elementos para sua vida útil. Atualmente, a linguagem Verse usa os seguintes tipos compostos: struct, class, enum, interface e module.
computes
Este efeito indica que uma função retorna a mesma saída quando apresentada repetidamente com a mesma entrada.
concatenar
Consulte concatenação.
concatenação
A concatenação ocorre quando uma string é anexada (adicionada) a outra string. Você pode usar o operador + para concatenar strings.
classe concrete
Uma classe com um especificador concrete é uma maneira de construir uma instância da classe com um arquétipo vazio, o que significa que todos os campos da classe devem ser definidos com um valor inicial.
simultâneo
Vários cálculos que são executados no mesmo período efetivo são considerados simultâneos. Eles sobrepõem as atualizações de simulação lógica, marcas de verificação e quadros, mesmo que potencialmente espalhados pelo tempo físico, como em um único processador, e não necessariamente paralelos.
condição
Uma condição é algo que o programa pode verificar se é true (verdadeiro) ou false (falso). Uma expressão condicional pode avaliar a condição e retornar um resultado true ou false.
condicional
Uma expressão que avalia uma condição e executa instruções com base no resultado da condição. Um exemplo de condicional é uma expressão
if
.
constante
Uma constante é um local onde um valor é armazenado, e seu valor não pode ser alterado durante o tempo de execução do programa. É chamado de constante porque permanece constantemente o mesmo.
A sintaxe básica para uma constante é
name : type = value
. Oname
é um nome que você atribui à constante (conhecido como identificador).:
diz que um tipo está chegando.:
indica que um tipo está chegando.=
indica que um valor está chegando e é seguido pelo próprio valor. Por exemplo:PlayerSpeed : float = 2.0
Isso indica que PlayerSpeed tem um valor de 2.0, representado como um valor decimal que não muda enquanto o programa está em execução.
Constantes sempre têm valores atribuídos. O nome e o tipo são a declaração, e a inicialização é onde esse valor é expresso.
Compare com variável.
Para obter mais informações, consulte Constantes e variáveis.
restrito
Quando uma expressão é restrita, ela tem limites definidos.
constructor
Um constructor é uma função especial que cria uma instância de sua classe associada. Ele pode ser usado para definir valores iniciais para o novo objeto.
Você pode adicionar um constructor para uma classe adicionando o especificador de
constructor
no nome da função. Em vez de especificar um tipo de retorno na função, a função recebe o nome da classe seguido por qualquer inicialização de campos. Uma classe pode ter mais de um constructor.
contêiner
Um contêiner é uma maneira de organizar dados em código. Consulte tipo de contêiner para obter mais informações.
tipo de contêiner
Você pode armazenar vários valores juntos usando um tipo de contêiner, como array (matriz), map (mapa), tuple (tupla) e option (opção).
contexto
O escopo do código que define o tempo de vida de vários elementos de linguagem e restrições. Este é geralmente o intervalo entre o início e o fim de um bloco de código.
troca de contexto
Uma troca de contexto é o processo de armazenar o estado de um processo ou thread para que possa ser restaurado e retomar a execução em um ponto posterior e, em seguida, restaurar um estado diferente, salvo anteriormente.
contrato com o gênio
Programar às vezes é comparado com firmar um "contrato com o gênio", no sentido de que um programa seguirá suas instruções exatamente, mesmo quando o resultado não for exatamente o que você esperava. Consulte também programa.
fluxo de controle
A ordem em que um computador executa as instruções. A linguagem Verse tem diferentes expressões que você pode usar para controlar esse fluxo no seu programa, como expressões block ou loop.
converges
O "menor" conjunto de efeitos. É um código que garante um valor em um tempo finito sem divergir.
corrotina
Uma rotina com uma vida útil de duração que executa o trabalho ao longo do tempo, aguarda a ocorrência de vários eventos e estados ou uma combinação de ambos. Corrotina é sinônimo de função assíncrona.
D
membro de dados
Consulte membro.
tipo de dados
Consulte tipo.
depurador
Uma ferramenta usada para depuração, em que você pode ver o estado do programa em cada etapa de execução.
depuração
O processo de identificação e resolução de erros em seu código.
decides
Um efeito que indica que a função pode falhar e que chamar essa função é uma expressão falível. As definições de função com o efeito decides também devem ter o efeito transacts, o que significa que as ações executadas por essa função podem ser revertidas como se as ações nunca tivessem sido executadas caso exista uma falha em qualquer parte da função.
expressão de decisão
As expressões de decisão usam os operadores
not
,and
eor
para conceder a você controle sobre o fluxo de decisão de sucesso e falha.
declaração
Uma declaração é uma expressão em que um identificador é introduzido, junto com seu tipo. Pode ou não ser implementada (usada) e pode ou não ter um valor atribuído (inicializado).
var name : type = expression
é a sintaxe para a declaração de uma variável. Por exemplo:var PlayerSpeed : float = 2.0
Essa linha de código declara que uma variável chamada PlayerSpeed tem um valor float.
Nesse exemplo, a última parte,
= 2.0
, é a inicialização, que é separada da declaração.
programação declarativa
Este paradigma de programação se concentra menos na execução passo a passo de um programa e mais no resultado final desejado, especificando o que deve ser feito em vez de como é feito.
declarar
Você declara uma variável ou uma função especificando seu identificador e tipo. Compare com inicializar.
decorar
No contexto de programação, decorar significa envolver uma parte do código com outra.
defer
A expressão
defer
atrasa a execução do código até que o escopo atual saia. Essa expressão é útil para tarefas de limpeza, como redefinir variáveis.
definir
Consulte definição.
definição
Uma definição ocorre quando um identificador é implementado ou tem um valor atribuído, como uma definição de função ou uma definição de classe. Compare com declaração.
dependência
Dependência ocorre quando um módulo depende de outros módulos para alguma funcionalidade.
determinístico
Um sistema determinístico é aquele em que o mesmo estado inicial ou entrada sempre produzirá os mesmos resultados.
destruição determinística
A destruição determinística, encontrada em algumas linguagens de programação, ocorre quando objetos são destruídos no momento em que um programa sai de seu escopo.
desenvolvedor
No UEFN e em Verse, os usuários são chamados de desenvolvedores. Esse termo inclui criadores, artistas e arquitetos de ilhas do Fortnite.
resumo
Uma lista gerada automaticamente com todos os símbolos públicos, como módulos, funções e classes, que o compilador Verse processou. Também inclui comentários. Você pode ler um arquivo de resumo para ver qual API e funcionalidade estão em um módulo associado.
expedir
Expedir é enviar algo para algum lugar. Em Verse, isso pode ser usado para expedir uma chamada para uma função ou um evento para um ouvinte, por exemplo.
divergir
A execução de um programa divergirá se não terminar conforme o esperado. Se gerar um valor dentro de um período finito sem divergir, ela convergerá.
doc
Um campo de observação genérico que você encontrará em classes e funções (mas não em parâmetros de função) e que contém informações úteis sobre o que o elemento que ele descreve faz ou como usá-lo. É utilizado para preencher a página desse elemento na referência da API Verse.
domínio
Domínio é o conjunto de entradas aceitas por um determinado parâmetro. Um tipo é uma maneira de especificar um domínio, mas o domínio é mais abrangente do que o tipo.
tipagem dinâmica
Em uma linguagem de programação dinamicamente tipada, variáveis e expressões não possuem tipos atribuídos. Isso significa que o tipo não pode ser verificado até o tempo de execução. Compare com fortemente tipada.
E
editable
Um atributo que você pode adicionar ao código para expor propriedades no UEFN. A marcação de código com este atributo consiste em adicionar um
@attribute_name
(neste caso,@editable
) antes de um identificador de campo:@editable PropertyName : type = DefaultValue
Por exemplo, o campo de string
GreetingMessage
é uma propriedade editable (editável) com o valor padrão"Hello, stranger"
:expose_properties := class(creative_device): @editable GreetingMessage : string = "Hello, stranger"
Para saber mais sobre como usar esse elemento, consulte Personalizar propriedades de dispositivos.
efeito
Um efeito é uma categoria de comportamento que uma função pode exibir.
No exemplo abaixo, o código indica que uma função se chama
IsCriticalHealth
e recebe um valor inteiro como entrada por meio do parâmetroHealth
. Em seguida, ele indica que os efeitos que a função exibe sãodecides
etransacts
, o que significa que a função é um contexto de falha e suas ações poderão ser revertidas se a função falhar. Se o valor de ‘Health‘ que é transmitido como entrada para a função for maior que 0,0 e menor ou igual a 30.0, a função será bem-sucedida. Caso contrário, a função falhará e o contexto que chamou a função deverá tratar a falha.IsCriticalHealth(Health : float)<decides><transacts> : void = ((Health > 0.0) && (Health <= 30.0))
Para saber mais sobre esse assunto, consulte Especificadores e atributos.
hierarquia de efeitos
Um efeito é uma categoria de comportamento que uma função pode exibir. A aplicação de efeitos exclusivos a uma função tem uma hierarquia, com efeitos mais altos na hierarquia permitindo pelo menos todos os comportamentos dos efeitos abaixo deles. A hierarquia é:
O efeito
transacts
inclui as propriedades dos efeitos abaixo, o efeitovaries
inclui os efeitos decomputes
econverges
, mas não os detransacts
, e assim por diante.
elemento
Uma única parte de um grupo maior. Por exemplo, uma matriz pode conter diferentes elementos que podem ser armazenados e usados individualmente.
emoji
Emojis são pictogramas (símbolos pictóricos) que normalmente são apresentados em uma forma colorida e usados em linha no texto. Eles representam coisas como rostos, clima, veículos e edifícios, comidas e bebidas, animais e plantas ou ícones que representam emoções, sentimentos ou atividades. O padrão para emojis é definido pela Unicode Consortium.
Tanto emoji como emojis são formas plurais aceitáveis, dependendo de quem você perguntar. 🤦
bloco vazio
Um bloco de código que contém zero (nenhuma) expressão é um bloco vazio. Blocos vazios geralmente são usados apenas como espaços reservados e serão preenchidos posteriormente com código.
string vazia
Uma string que não contém caracteres
""
é chamada de string vazia.
enum
Abreviação de enumeração, que significa nomear ou listar uma série de coisas. Em Verse, é um tipo que pode ser usado para informações como dias da semana ou direções da bússola.
enum
é uma palavra-chave.
expressão de igualdade
Em Verse, expressões de igualdade referem-se a quando você compara se duas coisas são iguais usando o operador =.
caractere de escape
O caractere de escape em Verse é a barra invertida (), que cria uma sequência de escape dentro de um literal de string. Ele é usado para alterar caracteres de controle que de outra forma seriam interpretados de maneira diferente. Por exemplo, se você estiver trabalhando com uma string e quiser incluir caracteres com usos predefinidos, como { }, será necessário incluir o caractere de escape "" antes do caractere na string. Isso faria com que
"\\{\\}"
fosse renderizado como {} no texto.
evento
Um evento é uma ação ou ocorrência que pode ser identificada. Por exemplo, o dispositivo Button possui o InteractedWithEvent, que ocorre sempre que um jogador interage com o botão. Você pode definir o comportamento sempre que um evento específico ocorrer, inscrevendo-se com um manipulador de evento.
efeito exclusivo
Alguns efeitos são considerados efeitos exclusivos aos quais efeitos aditivos podem ser adicionados, mas que não podem ser usados com outros efeitos exclusivos. Efeitos exclusivos incluem
computes
,varies
etransacts
. Os efeitos aditivos incluemsuspends
edecides
.
executar
Rodar um programa.
execução
O processo em que um computador interpreta um programa e executa as instruções desse programa.
expor
Uma propriedade é exposta no UEFN quando o atributo
editable
lhe é designado no código Verse. Isso significa que você pode editar a propriedade exposta diretamente na interface do UEFN. Veja também editable.
expressão
Uma expressão é a menor unidade de código (uma combinação de valores e funções) que tem um resultado quando avaliada.
O exemplo abaixo é uma expressão
if ... else
, o que significa que se o valor atende a um critério nomeado, é uma coisa, mas se não atende, é outra coisa.if (a > 5): Grande! else Pequeno!
Em Verse, tudo é uma expressão, desde literais até chamadas de função ou fluxo de controle.
Isso se compara a uma instrução, que é um comando autônomo que não possui um valor resultante. Em Verse, tudo é uma expressão, e não há distinção entre instruções e expressões que podem resultar em um valor.
Para obter informações mais detalhadas, consulte Expressões.
F
f
Consulte float.
falhar
Em Verse, os códigos que o usuário escreve não podem falhar, por padrão. Isso significa que, em vez de ter uma função que retorna booleanos ou opções, ele usa
<decides>
para retornar um valor, void ou falhar.
expressão falível
Uma expressão falível é uma expressão que pode ser bem-sucedida e produzir um valor ou falhar e não retornar nenhum valor. Exemplos de expressões falíveis incluem indexação em uma matriz, porque um índice inválido falhará, e o uso de operadores, como comparar dois valores.
falha
A falha é mais que um simples valor booleano em Verse. A falha conduz o fluxo de controle. Uma expressão falível pode ter sucesso e gerar um valor ou falhar e não retornar nenhum valor, e expressões falíveis só são permitidas em um contexto de falha, diferentemente do que acontece em outras linguagens de programação, em que o fluxo de controle é decidido por meio de valores booleanos.
contexto de falha
Um contexto de falha é um contexto em que é permitido executar expressões que podem falhar. O contexto define o que acontecerá se a expressão falhar.
campo
Consulte membro.
final
Um especificador que só pode ser usado em classes e membros de classes:
-
Quando uma classe tem o especificador final, não é possível criar uma subclasse da classe.
-
Quando um campo tem o especificador final, não é possível substituir o campo em uma subclasse.
-
Quando um método tem o especificador final, não é possível substituir o método em uma subclasse.
-
disparar e esquecer
Disparar e esquecer refere-se a uma expressão em que você não se importa quando ela é concluída ou se ela é concluída com êxito. Isso é extremamente raro.
float
Um tipo matemático usado para armazenar e manipular números de ponto flutuante. É um dos três principais tipos numéricos compatíveis com Verse, juntamente com int e rational.
número de ponto flutuante
Um termo usado em várias linguagens de programação para definir uma variável com um valor fracionário ou um número que contém um ponto decimal, como 0.5 ou 1.0. Números criados usando uma declaração de variável de float terão dígitos em ambos os lados de um ponto decimal.
Floor
Uma operação matemática que arredonda um valor racional para baixo até o inteiro mais próximo. Compare com
Ceil
.
expressão for
Uma expressão
for
, às vezes chamada de loop for, é o mesmo que uma expressão loop, com a diferença de que as expressõesfor
são restritas, o que significa que o número de iterações é conhecido antes que o loopfor
seja executado e as decisões sobre quando sair do loop são automatizadas. Obtenha mais informações em Expressão "for".
quadro
Um quadro é uma imagem totalmente renderizada (como em um monitor de computador ou TV) representando uma simulação em um determinado ponto no tempo. Às vezes, um quadro é usado como sinônimo de uma atualização (ou marca de verificação) de simulação, pois eles geralmente estão sincronizados, embora novos quadros possam ocorrer em uma taxa diferente (com mais ou menos frequência) do que uma atualização de simulação. A taxa de quadros, ou FPS (quadros por segundo) para abreviar, é o número de quadros exibidos por segundo.
função
Uma função (também chamada de rotina) é um código reutilizável que fornece instruções para executar uma ação ou criar uma saída com base na entrada.
Para definir uma função, você deve fornecer três partes principais: um nome exclusivo, o tipo de informação a ser esperada como resultado e o que a função fará quando chamada.
A seguir está a sintaxe básica de uma função:
nome() : tipo = bloco de código
-
O name() e o type separados por dois-pontos: são a assinatura da função, que é como você chama e usa a função, e o valor que deve ser retornado pela função é do tipo que você fornece. Esse formato é semelhante a como você cria constantes, exceto pelo () após o nome, que imita como você chama a função em seu código.
-
O bloco de código da função: Você define o que a função fará quando for chamada, fornecendo
=codeblock
, em quecodeblock
é qualquer sequência de uma ou mais expressões. Sempre que você chama a função, as expressões no bloco de código são executadas.
-
chamada de função
Uma expressão que avalia (conhecido como chamar ou invocar) uma função. Chamadas funcionais podem ter duas formas, dependendo se a função tem ou não o efeito
decides
:FunctionName()
eFunctionName[]
. O tipo resultado da expressão de chamada de função é definido na assinatura da função.
assinatura da função
A assinatura da função declara o nome da função (identificador), os(parâmetros) de entrada e a saída (resultado) da função. As funções em Verse também podem ter especificadores que indicam como usar ou implementar uma função.
programação lógica funcional
A combinação de paradigmas de programação funcional e programação lógica em uma única linguagem.
programação funcional
Um tipo de programação declarativa que se concentra no uso de funções. A programação funcional tem como objetivo facilitar o teste e a depuração, reduzindo os efeitos colaterais. Haskell é um exemplo de linguagem de programação funcional.
futura
Uma tarefa que começou a ser executada, mas foi suspensa sem ser cancelada. É futura porque será concluída em algum momento no futuro.
G
loop de jogo
Um loop de jogo é um código que é executado repetidamente (em loop) para responder à entrada (geralmente o jogador interagindo com seu controle ou mouse) para atualizar o estado do jogo e fornecer uma saída que mostre ao jogador que ele afetou o estado do jogo, como quando o jogador pressiona um botão que acende uma luz. O loop geralmente termina quando o jogo atinge um estado de conclusão, como quando o jogador atinge uma meta, ou um estado de falha, como quando se esgota o tempo para o jogador atingir a meta.
estado do jogo
O estado de um jogo ou outra simulação. É composto de todos valores de dados que descrevem um sistema. Os valores constantes e variáveis determinam o estado do sistema.
gerador
Um gerador produz uma sequência de valores, um de cada vez, e dá um nome ao valor na sequência.
agrupar
A ação de incluir uma expressão em
()
. Isso especifica explicitamente a ordem de avaliação. O agrupamento também pode melhorar a legibilidade do código.
H
manipulador
Manipulador é a função que é chamada para responder a um evento vinculado. Por exemplo, se você vincular uma função ao InteractedWithEvent de um botão, cada vez que um jogador interagir com esse botão, o manipulador associado a esse evento será chamado.
embutido no código
Dados embutidos no código ("hard-coded", em inglês) são gravados diretamente no código em vez de serem atribuídos a uma variável. Geralmente, torna o código menos flexível e mais difícil de atualizar, mas há ocasiões em que faz mais sentido.
nó inicial
O primeiro nó em uma lista vinculada é chamado de nó inicial, e o último nó é chamado de nó final.
hexadecimal
Em Verse, você pode usar o sistema de numeração hexadecimal (base 16) para representar números inteiros, em vez do sistema de numeração decimal que usa base 10. Isso significa que os valores hexadecimais são representados com os dígitos
0-9
e as letrasA-F
. Por exemplo, 0x7F é igual a 127 e 0xFACE é igual a 64206.Essa é uma forma alternativa de representar números inteiros.
hierárquico
Ter níveis claros ou hierarquias de classificação, importância ou controle. Pai/filho e superclasse/subclasse são exemplos de relacionamentos hierárquicos comuns.
I
IDE
Um ambiente de desenvolvimento integrado (IDE) é um software que fornece uma interface de usuário para a criação e depuração de programas.
identificador
Um identificador é o nome dado aos itens de um programa, como variáveis ou funções, para identificá-los exclusivamente.
expressão if
Com a expressão
if
, você pode tomar decisões que alteram o fluxo do programa. Como em outras linguagens de programação, a expressãoif
em Verse é compatível com execução condicional, mas as condições usam sucesso e falha para direcionar a decisão.
imediata
Uma expressão imediata é avaliada sem atraso, o que significa que a avaliação será concluída dentro da atualização da simulação atual.
programação imperativa
Um paradigma em que o programa descreve explicitamente como um programa é executado, passo a passo. C é um exemplo de linguagem de programação imperativa.
índice
Um índice representa as posições dos itens em uma sequência por representação numérica. Uma sequência pode ser uma lista, uma cadeia de caracteres ou qualquer sequência arbitrária de valores.
Os índices usam numeração baseada em zero, o que significa que a primeira posição no índice é 0, e a quinta posição seria 4.
inferir
Há instâncias em que você não precisa especificar explicitamente o tipo, como ao criar uma constante. Por exemplo, em
MyConstant := 0
, o tipo para MyConstant é inferido como int porque um valor inteiro é atribuído a ele. Em instâncias como essa, o tipo é inferido.
herança
Em Verse, você pode criar uma classe que estende a definição de outra classe adicionando ou modificando os campos e métodos da outra classe. Isso geralmente é chamado de subclasse ou herança, porque uma classe herda as definições da outra classe.
inicializar
Criar uma variável, especificar seu identificador e tipo, o que é chamado de declaração de uma variável, e atribuir um valor à variável, o que é chamado de inicialização.
instância
Uma instância de uma classe é um objeto. Uma instância tem os mesmos comportamentos definidos por seu tipo de classe, mas com valores reais.
instanciar
Criar uma instância ou um valor de uma estrutura ou um tipo de dados, como uma classe ou estrutura. Consulte também instanciação de arquétipo.
int
O tipo usado em Verse para armazenar e manipular números inteiros como
1
,-30
e777
. Umint
pode conter um número positivo ou negativo (ou zero) sem componente fracionário.
inteiro
Um número inteiro é um número não fracionário que pode ser positivo, negativo ou zero.
interface
Uma interface é um tipo que oferece um contrato indicando como interagir com qualquer classe que implementa a interface. Uma interface não pode ser instanciada, mas uma classe pode herdar da interface e implementar seus métodos.
classe interna
Uma classe marcada como
epic_internal
, o que significa que você não pode criar sua própria instância da classe. Só é possível usar as APIs para acessar um objeto interno.
interpolação
A combinação de novos valores que se encontram entre valores conhecidos.
intérprete
Um programa que analisa e executa um programa linha por linha.
tempo de invocação
O tempo que leva para uma expressão ser avaliada. Uma invocação imediata leva, na prática, o equivalente a tempo nenhum. Uma expressão assíncrona pode ser concluída imediatamente ou pode ser latente.
invocar
Consulte chamada.
relação is-a
A relação entre uma classe pai e uma classe filho é chamada de relação "is-a". A classe filho em uma relação is-a herda da classe pai.
iterar
Executar o código de cada elemento de uma sequência.
J
K
par chave-valor
Quando uma chave é associada a um valor, juntos eles formam um par chave-valor. Você pode procurar o valor usando a chave.
palavra-chave
Palavras-chave são palavras reservadas que têm um significado especial para o compilador.
for
eclasse
são exemplos de palavras-chave. As palavras-chave não podem ser usadas como identificadores.
L
vida útil
Consulte tempo de vida.
tempo de vida
O tempo entre a criação de um objeto e sua destruição. Sinônimo de vida útil.
lista vinculada
Uma estrutura de dados linear em que cada elemento armazena uma referência ao próximo elemento na lista.
nó de lista vinculada
Cada elemento em uma lista vinculada é chamado de nó. Um nó é um contêiner que inclui alguns dados e uma referência ao próximo nó da lista.
literal
Um valor fixo na linguagem de programação Verse, como um número ou um caractere. Por exemplo, 1 é um literal inteiro.
local
Refere-se a uma constante ou variável dentro de um bloco de código. Esses elementos não podem ser usado fora do bloco de código onde foram criados. Consulte também escopo.
locale
Em programação, locale (localidade) é um conjunto de parâmetros que define o idioma, a região e outros aspectos da interface do usuário de um usuário. Em Verse,
locale
especificamente é um tipo que define um contexto para quandomessage
deve ser localizada e afeta o idioma de texto e números com base na localidade.
logic
A linguagem Verse usa
logic
como o tipo para os valores de lógica booleana,true
efalse
. Para determinar o controle de fluxo, em Verse geralmente se usa uma combinação de contextos de falha e expressões falíveis em vez de se testar o estado de um tipologic
.
programação lógica
Um paradigma de programação que usa lógica booleana para controlar como os fatos e as regras sobre os problemas dentro do sistema são representados ou expressos.
loop
Um
loop
repete as expressões em seu bloco de código. Uma expressãoloop
será repetida indefinidamente, a menos que você saia do loop (o que geralmente é aceitável na programação simultânea). Por exemplo:loop: Sleep(1.0) # Sleep(1.0) espera 1 segundo antes de prosseguir para a próxima expressão. Platform.Hide() Sleep(1.0) # Sleep(1.0) espera 1 segundo antes de prosseguir para a próxima expressão. Platform.Show() # O loop reinicia imediatamente, chamando Sleep(1.0) novamente.
Esse bloco de código repete as quatro expressões para sempre: espere um segundo, faça uma plataforma desaparecer, espere mais um segundo e faça a plataforma reaparecer.
Para ver um exemplo de como um loop pode ser usado no desenvolvimento de jogos, consulte Plataforma que desaparece em loop.
M
map
Um map (mapa) é um contêiner onde você pode armazenar valores associados a outro valor, chamado pares de valores-chave. Os pares chave-valor podem ser qualquer combinação de tipos, desde que o tipo de chave seja comparable. Os elementos de um map estão na ordem em que você insere os pares valor-chave no map e podem ser acessados por suas chaves exclusivas. Consulte também tipos de contêiner.
expressão matemática
Em Verse, uma expressão matemática é uma expressão que usa um dos seguintes operadores:
+
,-
,*
ou/
.
membro
Uma variável ou função nomeada que é uma subparte de uma estrutura de dados composta (como uma classe, estrutura, interface ou módulo Verse). As variáveis de membro são geralmente chamadas de campos, e as funções de membro são chamadas de métodos.
message
Uma
message
em Verse é um tipo que pode conter texto independente de localidade. Quando você inicializa uma variável demessage
com um valor destring
, essa string é o texto e o idioma padrão da mensagem.
ambiente metaverso
Um mundo 3D persistente e globalmente consistente, em tempo real, com um ambiente de tempo de execução que executa código criado pelo usuário, simultâneo, complexo e interdependente com milhões de usuários conectados simultaneamente.
método
Um método é uma função anexada a uma classe e só pode ser chamado em uma instância dessa classe.
módulo
Um módulo Verse é uma unidade atômica de código que pode ser redistribuída e servir de dependência, podendo evoluir ao longo do tempo sem desfazer dependências. Você pode importar um módulo para seu arquivo Verse a fim de usar definições de código de outros arquivos Verse.
Obtenha mais informações em Módulos e caminhos.
mutável
Refere-se a um estado de objeto que ainda pode ser modificado após a criação. Em Verse, a mutabilidade só é possível com ponteiros.
Compare com imutável.
mutex
Mutex é uma primitiva de sincronização que concede acesso exclusivo a um recurso compartilhado usando apenas um thread. Consulte também exclusão mútua.
exclusão mútua
Quando mais de um processo acessa o mesmo segmento de código, esse segmento é chamado de seção crítica. A exclusão mútua é uma maneira de garantir que dois processos não possam acessar uma seção crítica ao mesmo tempo.
N
NaN
Um valor que representa algo que não é um número (Not a Number).
native
native
indica que os detalhes da definição de um elemento são implementados em C++. Esse especificador pode gerar automaticamente definições C++ que podem ser usadas por um desenvolvedor. O especificadornative
é usado em classe, interface, enum, método e dados.
native_callable
Indica que um método de instância é nativo (implementado em C++) e pode ser chamado por outro código C++. Você pode ver esse especificador usado em um método de instância. Como esse especificador não se propaga para subclasses, você não precisa adicioná-lo a uma definição ao substituir um método que tenha esse especificador.
aninhado
Quando o código está aninhado, um bloco de código está contido em outro bloco de código que executa uma função mais ampla.
no-rollback
Esse efeito indica que as leituras e gravações de dados mutáveis de uma função não podem ser desfeitas, o que significa que a função não pode ser invocada em um contexto de falha (que tem comportamento de reversão em caso de falha).
nó
Consulte nó de lista vinculada.
O
objeto
Uma instância de uma classe é um objeto. Uma instância tem os mesmos comportamentos definidos pelo tipo da respectiva classe, mas com valores reais.
Os termos instância e objeto são sinônimos.
programação orientada a objetos
Programação orientada a objetos (POO) é um paradigma de programação que se baseia no conceito de classes e objetos.
linguagem de mundo aberto
Uma linguagem na qual módulos interdependentes criados por muitos usuários e organizações diferentes podem evoluir ao longo do tempo sem comprometer a compatibilidade de interface e a compatibilidade persistente de dados, seguindo regras de subtipagem claramente definidas.
operando
Indica em que quantidade uma operação é feita. Por exemplo, na expressão
1 + 2
, o+
é um operador e1
e2
são operandos.
operação
Uma ação executada por um programa para realizar uma tarefa específica. Existem quatro grupos básicos de operação do computador: entrada, processo, saída e armazenamento. Uma operação é um tipo de expressão.
operador
Um símbolo que representa uma ação ou um processo. Por exemplo, em
1 + 2
, o+
é o operador.
precedência de operadores
Refere-se à ordem de avaliação integrada ao combinar operadores em Verse. Se vários operadores são usados na mesma expressão, a ordem na qual eles são avaliados é importante.
For example,
1 + 2 * 3
não é avaliado como3 * 3
, pois a multiplicação tem precedência sobre a adição.A precedência de operadores pode ser substituída pelo agrupamento de expressões.
opção
Em Verse, uma opção pode conter um ou nenhum valor para um tipo.
ordem de avaliação
Refere-se à precedência de operadores: a ordem na qual certas operações devem ser executadas em uma expressão.
sobrecarga
Sobrecarregar uma função ou um operador significa que o mesmo nome de função ou símbolo de operador pode ter diferentes parâmetros. Por exemplo, se você diz que um vetor 3D é igual a outro vetor 3D, como (1,2,3), isso fica bem claro. Mas você pode usar o operador "igual a" para dizer que o vetor 3D é igual a um único número, como 1. Nesse caso, talvez o vetor 3D seja definido como (1,1,1), mas a parte de sobrecarga é a existência de vários operadores "Vetor 3D =" com parâmetros diferentes. A linguagem teria que analisar o contexto para decidir qual usar.
substituir
Em Verse, você pode substituir campos de uma superclasse e atribuir valores iniciais. Por exemplo:
tank := class(player_character): StartingShields<override> : int = 100 MaxShields<override> : int = 200 AllowOvershield<override> : logic = true DamageReduction : int = 50 CreateTankPlayerCharacter() : tank = return tank{}
A classe do tanque terá valores para
StartingShields
,MaxShields
eAllowOvershield
que são diferentes dos valores de classe padrão.Você também pode substituir os valores de método da mesma maneira.
Saiba mais em Subclasse.
P
paradigma
Um padrão ou modelo típico para algo. Na programação, um paradigma é uma maneira pela qual uma linguagem de programação é organizada. Existem quatro paradigmas principais para linguagens de programação:
Existem também linguagens multiparadigmáticas, como Verse.
paralelo
Vários cálculos executados no mesmo período físico, como em processadores separados, são paralelos.
parâmetro
Uma variável de entrada que inclui um domínio como um tipo e um valor padrão opcional definido em uma assinatura de função, que é então usado no corpo da função. Compare com argumento.
analisar
Analisar, em ciência da computação, é a situação em que uma sequência de comandos (geralmente um programa) é separada em componentes mais facilmente processados, que são analisados quanto à sintaxe correta e anexados a tags que definem cada componente.
analisador
Um programa que analisa códigos.
caminho
Os caminhos em Verse fornecem um "namespace" global para identificar elementos e usam a ideia dos domínios da web. Esses caminhos são persistentes, exclusivos e detectáveis por qualquer programador em Verse.
Perforce
O Perforce (P4) é uma ferramenta de software que fornece controle de revisão (também conhecido como controle de código-fonte ou controle de versão), que é uma maneira de rastrear e gerenciar alterações no código do software. Isso é útil quando você tem equipes de programadores trabalhando no mesmo projeto. Quando alguém comete um erro, o controle de versão possibilita comparar versões anteriores do código para encontrar e corrigir o problema sem interromper o trabalho de todos.
playspace
Um módulo da API Verse que você pode usar para obter uma matriz de jogadores ou equipes, ou a equipe de um determinado jogador. Ele também permite que você inscreva-se em eventos adicionados e removidos por jogadores.
ponteiro
Um ponteiro é uma maneira de referenciar uma "caixa" mutável que pode conter um tipo de valor especificado. Com um ponteiro, você pode alterar o valor específico nessa caixa. Compare com valor.
variável de ponteiro
Uma variável de ponteiro aponta para um local de memória onde um valor é armazenado. Após criar uma variável de ponteiro, você não pode alterar o local de memória dessa variável, mas pode alterar o valor armazenado nesse local de memória.
sondagem
A sondagem refere-se à amostragem ativa do status de um dispositivo externo por um programa cliente como uma atividade síncrona. A sondagem é usada com mais frequência em termos de entrada/saída (E/S) e também pode ser chamada de E/S com sondagem ou E/S orientada por software.
polimórfico
Polimórfico vem de poli-, que significa muitos, e -mórfico, que significa forma. O comportamento polimórfico ocorre quando uma variável pode ter valores diferentes sob condições diferentes.
pós-fixação
Um formato para um operador em que há apenas um operando e o operador está depois do operando.
predicado
Em Verse, um predicado é algo que tem sucesso ou falha.
preempção
A interrupção temporária de uma tarefa em execução com a intenção de retomá-la posteriormente é chamada de preempção. Isso geralmente é feito por um agendador externo sem assistência nem cooperação da tarefa.
prefixo
Um formato para um operador em que há apenas um operando e o operador está antes do operando.
tipo primitivo
Um primitivo é qualquer tipo que não é criado a partir de outros tipos. Isso significa que um primitivo não é um composto e não pode ser subdividido. Exemplos de tipos primitivos integrados incluem:
void
,logic
,int
,float
,rational
echar
. Primitivos são integrados à linguagem Verse.Compare com tipo de contêiner.
programa
Um programa é um conjunto de instruções que indicam ao computador como fazer algo. O básico de qualquer programa é mostrar como o computador receberá a entrada e retornará a saída.
Um programa resolve problemas. No entanto, os programas são muito literais. É como firmar um contrato com um gênio: o gênio (neste caso, o programa) lhe dará exatamente o que você pedir. Exatamente. Erros ocorrem quando o programador faz suposições sobre o que deve acontecer em vez de descrever com precisão qual entrada pode ser recebida e qual saída resultará.
programação
O ato de escrever instruções (um programa) que pode ser compilado e executado pelo computador.
linguagem de programação
Uma linguagem formal usada para criar programas de computador. Existem muitas linguagens de programação, e cada uma tem suas próprias regras exatas. Exemplos seriam o Scratch, uma linguagem de programação visual usada para desenvolver histórias interativas, jogos e animações, ou o C++, uma linguagem baseada em texto que é frequentemente usada no desenvolvimento de jogos. Verse é uma linguagem de programação desenvolvida pela Epic Games para criadores que desejam aprender mais sobre o uso de ferramentas de desenvolvimento.
propagar
Propagar em uma função é o que ocorre quando o chamador não tem que lidar com o que acontece no caso de falha. Por exemplo, uma função com um efeito
decides
pode ser chamada a partir de outra função com um efeitodecides
. O que quer que tenha chamado o chamador terá que lidar com a falha.
propriedade
Uma propriedade é um (campo) de membro que possibilita retornar valores e expor esses valores.
pseudocódigo
Pseudocódigo é uma descrição detalhada em linguagem simples (e não em linguagem de programação) do que um algoritmo deve fazer. Pseudo- significa não verdadeiro ou real, então podemos dizer que o pseudocódigo é um código falso, mas é útil para determinar o que um algoritmo deve realizar.
Você também pode pensar no pseudocódigo como um esboço geral. O pseudocódigo geralmente é escrito para planejar uma parte grande ou complexa de um programa antes de escrever o código propriamente dito.
pure
Declara que uma função sempre fornecerá exatamente a mesma saída se for dada a mesma entrada e não tem efeitos colaterais (grava em variáveis mutáveis, efeitos de E/S e assim por diante).
Q
qualificar
Definir um identificador dentro de um escopo que permita que o identificador seja "reutilizado". Por exemplo, você pode ter uma constante chamada "cat". Você pode usar o mesmo nome para um campo de classe chamado "sarah.cat". Ambos incluem "cat" no nome, mas "sarah.cat" foi qualificado.
consulta
Expressões de consulta usam o operador
?
para verificar se uma lógica ou um valor opcional étrue
.
R
race
Em uma expressão
race
, todas as expressões no bloco race são executadas simultaneamente, mas assim que uma expressão é concluída, as outras expressões são canceladas e a expressãorace
devolve o controle.race
é uma expressão de simultaneidade estruturada.
condição race
Uma condição race ocorre quando um programa tenta realizar duas ou mais operações ao mesmo tempo em operações que devem ser feitas em sequência para serem feitas corretamente.
RAII
Um acrônimo para resource acquision is initialization, ou aquisição de recursos é inicialização, RAII descreve quando um objeto adquire recursos somente entre a inicialização e a finalização, como forma de gerenciar recursos com mais eficiência.
gerar
Quando uma função emite um sinal, ela gera um evento. As partes interessadas são notificadas de que ocorreu um evento, como interagir com um botão, e todos os manipuladores do evento são chamados.
expressão de intervalo
Expressões de intervalo contêm todos os números entre dois valores especificados (incluindo esses valores), com
..
entre os valores; por exemplo,1..5
. Expressões de intervalo só podem ser usadas em lugares específicos, como em expressõesfor
.
rational
Um dos três principais tipos numéricos compatíveis com Verse, junto com
int
efloat
. Você só verá os tipos rational nos resultados de divisão de inteiros e deverá converter o valor de volta para um número inteiro arredondando o valor para cima comCeil()
ou para baixo comFloor()
.
número racional
Um número que pode ser expresso como uma fração simples usando dois números inteiros. Por exemplo, 1,75 também pode ser expresso como 7/4, mas a raiz quadrada de 2 (√2) não pode ser expressa como uma fração e, portanto, é considerada um número irracional. Outro exemplo de número irracional é Pi, que começa como 3,14159... e continua infinitamente.
recursão
Recursão ocorre quando uma função chama a si mesma.
refatorar
Alterar a estrutura do código sem alterar sua funcionalidade. Por exemplo, um bloco de código repetido várias vezes em um programa pode ser refatorado em uma chamada de função. A refatoração pode aumentar a legibilidade e reduzir a complexidade do código sem alterar a maneira como o código se comporta.
REPL
Read-Evaluate-Print Loop, ou REPL, é um ambiente de computador em que você pode inserir código e fazer com que ele seja lido e avaliado, para depois ver os resultados. Com um REPL, é possível explorar uma linguagem e ver o que funciona (ou não funciona) sem causar problemas reais.
return
Uma expressão que instrui um programa a sair de uma sub-rotina e voltar ao endereço de retorno. O endereço de retorno é de onde a sub-rotina foi chamada.
Em vez de depender da última expressão do bloco de código de uma função para produzir o valor correto, você também pode especificar explicitamente o resultado usando uma expressão
return
. Quando a expressãoreturn
for executada, ela sairá do bloco de código da função imediatamente. Isso significa que, se você colocar a expressãoreturn
antes de outro código, o código que a seguir não será executado.
reverter
Restaurar um programa para um estado definido anteriormente, geralmente para se recuperar de uma expressão com falha.
rotina
Consulte função.
tempo de execução
Refere-se ao tempo gasto executando o jogo, a simulação ou o aplicativo. Compare com o tempo de compilação, que se refere ao tempo gasto na compilação, ou o tempo de desenvolvimento, que se refere ao tempo gasto no desenvolvimento, compilação e depuração.
É comum diferenciar entre coisas que acontecem no tempo de execução e coisas que acontecem no tempo de compilação.
rush
Em uma expressão
rush
, todas as expressões no bloco rush são executadas simultaneamente, mas assim que uma expressão é concluída, a expressão rush devolve o controle e as outras expressões continuam sendo executadas independentemente.rush
é uma expressão de simultaneidade estruturada.
S
escopo
Escopo refere-se à parte do programa em que a associação de um nome a um valor é válida e em que esse nome pode ser usado para se referir ao valor. Por exemplo, quaisquer constantes ou variáveis que você cria em uma função só existem no contexto da função. Isso significa que o tempo de vida dos objetos é limitado ao escopo em que são criados e não pode ser usado fora desse bloco de código.
script
Uma quantidade independente de código Verse executável que está associado a um objeto.
variável self
Self
é um identificador especial em Verse que pode ser usado em um método de classe para se referir à instância da classe em que o método foi chamado. Você pode referenciar outros campos da instância na qual o método foi chamado sem usarSelf
. Mas, se for necessário referenciar a instância como um todo, você precisará usarSelf
.
erro semântico
Consulte erro do compilador.
semáforo
Um semáforo é como um mutex, com a diferença de que um mutex bloqueia outros threads sem recursos disponíveis, enquanto um semáforo apenas sinaliza que o recurso está em uso.
execução sequencial
O código geralmente é executado linha por linha, na ordem em que as expressões aparecem. Isso é chamado de execução sequencial.
set
Uma palavra-chave que pode ser usada para alterar o valor de uma variável durante a execução do programa.
A sintaxe para isso é
set name = value
.set
é a palavra-chave,name
é o nome da variável a ser alterada evalue
é o valor para o qual ela deve ser alterada.Isso é chamado de atribuição.
sombreamento
O sombreamento ocorre quando um identificador oculta outro identificador. O sombreamento é um erro em Verse e impede que o código execute a compilação.
efeito colateral
Um efeito colateral ocorre quando algum código, como uma função ou uma expressão, modifica algum estado fora do escopo.
inteiro com sinal
Um inteiro com sinal é um valor que pode conter um número negativo ou positivo, ou zero. É chamado de inteiro com sinal porque pode usar um sinal + ou - à esquerda para indicar se o número é positivo ou negativo. Um inteiro sem sinal só pode ser um número positivo ou zero.
simulação
Uma simulação é a representação do comportamento ou das características de um sistema por meio do uso de outro sistema. Em Verse, isso seria um programa de computador que é executado ao longo do tempo. Este termo é mais amplo do que o termo jogo, que é um tipo de simulação. Além dos jogos, outros exemplos de simulações são experiências interativas, arte, visualização médica, visualização arquitetônica, IA, simuladores de direção/voo/militares e assim por diante. As simulações podem ser usadas em diferentes mídias, como realidade virtual (RV) e realidade aumentada (RA).
atualização de simulação
Uma rodada, etapa ou incremento recorrente de lógica, comportamento e outros cálculos para uma simulação. Geralmente é abreviada como atualização ou usada como sinônimo de marca de verificação ou quadro. Uma atualização de simulação geralmente tem um tempo decorrido que pode ser constante ou variado. Isso geralmente é chamado de tempo delta, que pode ou não coincidir com a passagem real do tempo. Por exemplo, uma atualização de simulação pode ser mais rápida, igual ou mais lenta que o tempo real.
Uma atualização de simulação costuma estar em sincronia com a renderização de um quadro. Esse é o padrão para Verse. No entanto, uma atualização de simulação pode ser menos ou mais frequente do que um quadro, como quando um cliente de jogo on-line fica fora de sincronia com o servidor ou os sistemas físicos ao fazer várias iterações das alterações de um objeto simulado. Também é possível que uma simulação não seja renderizada visualmente.
trecho
Consulte trecho de código.
expressão spawn
Uma expressão
spawn
inicia uma função assíncrona. Qualquer expressão que segue spawn é executada imediatamente, sem aguardar a conclusão da expressãospawn
. Ospawn
continua independentemente até que seja concluído.
especificador
Um especificador aplica informações adicionais a uma definição. Por exemplo, o especificador de efeito
decides
em uma definição de função marca a função como falível.Os especificadores se enquadram em uma destas duas subcategorias: especificadores de acesso e especificadores de efeito.
execução especulativa
A linguagem Verse aproveita o contexto de falha para poder testar ações sem incluí-las. Isso é chamado de execução especulativa. Quando uma expressão é bem-sucedida, o efeito da expressão (por exemplo, alterar o valor de uma variável) é incluído. Se a expressão falhar, os efeitos da expressão serão revertidos, como se a expressão nunca tivesse acontecido.
splat
Quando uma tupla é usada como um único elemento para uma função, é como se essa função fosse chamada com cada um dos elementos da tupla separadamente. Isso é chamado de expansão de tupla ou splatting.
biblioteca padrão
Uma série de funções, constantes e outras definições de linguagem disponíveis em Verse. Essa biblioteca fornece implementações para necessidades de programação comuns. É um recurso para coisas que os programadores usarão com frequência, como funções matemáticas.
estado
Um estado é a combinação de valores originais em um objeto com quaisquer modificações feitas.
instrução
Um comando autônomo que não possui um valor resultante. A linguagem Verse não usa instruções. Em vez disso, são usadas expressões.
verificação estática
Uma verificação automática durante a compilação que pode detectar um bug com base na semântica do código.
STM
A memória transacional de software (STM) é um mecanismo de controle de simultaneidade análogo às transações de banco de dados para controlar o acesso à memória compartilhada na programação simultânea. No futuro, a linguagem Verse contará com a STM, pois ela possibilita ganhos de desempenho para grandes simulações distribuídas, entre outros motivos.
string
Uma string é um tipo literal em Verse, em que quaisquer caracteres entre duas aspas são um literal de string. Por exemplo, “Hello world” é uma string comum. Uma string em Verse pode conter letras, números, pontuação, espaços e até emojis.
fortemente tipada
Uma linguagem de programação é fortemente tipada quando um tipo é atribuído a cada identificador. Quando o tipo não é fornecido explicitamente, ele é inferido. Isso significa que a linguagem não produzirá resultados imprevisíveis durante o tempo de execução, porque o tipo desses identificadores e como as operações afetam esses tipos são conhecidos. Consulte também verificação estática.
struct
Abreviação de "estrutura", struct e é uma maneira de agrupar múltiplas variáveis relacionadas. As variáveis podem ser de qualquer tipo.
struct
é uma palavra-chave em Verse.
simultaneidade estruturada
A simultaneidade estruturada descreve operações simultâneas dentro de uma vida útil que é restrita a um comando simultâneo e a um escopo de contexto assíncrono específicos. Esse é um controle de fluxo estruturado como
if
,for
oureturn
que restringe a um escopo associado.Em Verse, as expressões de simultaneidade estruturada são
sync
,race
,rush
ebranch
.
subclasse
Uma classe que herda os membros (métodos e dados) de sua superclasse (classe-pai). Em Verse, você pode estender a classe com novos membros ou com membros herdados modificados.
subexpressão
Uma expressão que está aninhada dentro de um bloco de código.
submódulo
Um módulo Verse dentro de outro módulo Verse. Você pode pensar nisso como pastas e subpastas: cada submódulo adiciona outro /NameOfModule ao caminho à medida que desce.
sub-rotina
Um conjunto de instruções dentro de um programa de computador, destinadas a realizar uma operação usada com frequência. As sub-rotinas são semelhantes a funções, com a diferença de que uma função realiza alguns cálculos e retorna o resultado para o chamador. As sub-rotinas fazem seu trabalho sem darem um retorno ao programa chamador.
inscrever-se
Inscrição é uma forma de especificar a função que você quer chamar quando um evento é gerado. Isso é chamado de vinculação a um evento. A função vinculada é chamada de manipulador.
subtipo
Um tipo compatível com todas as operações de seu supertipo. A palavra-chave
subtype
pode ser usada com parênteses para especificar que um tipo é restrito a um determinado tipo. Por exemplo, vários métodos de matriz Verse usamsubtype
para definir que todos os elementos da matriz devem ter o supertipo comparable para que o método funcione.(Input:[]t where t:subtype(comparable)).RemoveFirstElement<public> (ElementToRemove:t)<computes><decides>:[]t RemoveFirstElement
Isso requer que os elementos da matriz tenham um supertipo
comparable
para que seja possível determinar se algum dos elementos da matriz é igual ao argumentoElementToRemove
.
ter sucesso
Quando uma expressão é concluída sem falhar, ela tem sucesso. Compare com contexto de falha.
superclasse
Classes podem herdar de uma superclasse, que inclui todos os campos da superclasse na classe herdada. Cada uma dessas classes é considerada uma subclasse da superclasse.
supertipo
Um supertipo é um tipo especial que tem pelo menos um subtipo. Quaisquer operações aceitas por um supertipo também devem ser aceitas por quaisquer subtipos. Em Verse,
any
é o supertipo acima de todos os outros tipos, e todos os outros tipos são subtipos deany
. O tipocomparable
é um supertipo de todos os tipos comparáveis em Verse, comoint
efloat
.
suspends
Um efeito que interrompe temporariamente (suspende) uma função sem cancelá-la. Uma expressão
suspends
permite que as funções assíncronas sejam suspensas e transfiram o controle cooperativamente para outras expressões simultâneas antes de serem concluídas.Obtenha mais informações em Simultaneidade.
sync
Em uma expressão
sync
, todas as expressões no bloco sync são executadas simultaneamente e devem ser concluídas antes que a expressão sync devolva o controle.sync
é uma expressão de simultaneidade estruturada.
sintaxe
As regras ou a gramática da linguagem de programação.
Compare com semântica.
erro de sintaxe
Consulte erro do compilador.
T
nó final
O primeiro nó em uma lista vinculada é chamado de nó inicial, e o último nó é chamado de nó final.
tarefa
Uma tarefa é um objeto usado para representar o estado de uma função assíncrona atualmente em execução. Objetos de tarefa são usados para identificar onde uma função assíncrona está suspensa e os valores de variáveis locais nesse ponto de suspensão.
thread
A menor unidade de processamento que pode ser executada em um sistema operacional.
marca de verificação
Consulte o termo atualização de simulação, que é usado como sinônimo de marca de verificação e, ocasionalmente, quadro.
quadrado
Uma seção de uma grade em uma superfície, como um piso ou uma parede.
fluxo de tempo
O controle do fluxo de tempo está no centro da linguagem de programação Verse e é realizado com expressões simultâneas.
O fluxo de tempo é um tipo de controle de fluxo. No entanto, enquanto o fluxo de controle está relacionado à ordem em que um computador executa instruções com base na ordem das expressões no programa, o fluxo de tempo controla a execução em tempo, não em sequência, com base em como as expressões de simultaneidade são usadas.
O fluxo de tempo é outra maneira de se referir à simultaneidade.
expressão de nível superior
Uma expressão de nível superior é uma expressão que não está aninhada em um bloco de código. As expressões de nível superior também podem ser expressões compostas, como blocos de código aninhados.
transacts
Quando uma função tem o efeito
transacts
, isso significa que a função pode ler e gravar dados, mas essas ações poderão ser revertidas se a função também tiver o efeito decides. Este efeito é um efeito exclusivo.Uma função sem efeito exclusivo especificado pode ler e gravar dados, mas não pode ser revertida.
tupla
Uma tupla (tuple, em inglês) é um agrupamento de duas ou mais expressões que são tratadas como uma única expressão.
Os elementos de uma tupla estão na ordem em que você os insere na tupla, e você pode acessá-los por sua posição nela, chamada de índice. Como as expressões em uma tupla são agrupadas, elas podem ser tratadas como uma única expressão.
Nota: Nota: a palavra tuple se baseia na terminação de palavras como "quintuple" (quíntupla), "sextuple" (sêxtupla) e assim por diante. Compare com matriz.
tipo
O tipo define quais operações podem ser executadas em dados e como esses dados, ou valores, são armazenados para esse tipo. Existem tipos comuns, como inteiro e string, tipos compostos e tipos personalizados. Consulte também tipo primitivo e tipo de contêiner. A palavra-chave
type
pode ser usada com chaves para definir um tipo esperado. Declarações de função e intervalos numéricos são atualmente aceitos como declarações. Por exemplo, a funçãoSubscribe()
da interfacesubscribable
usa a palavra-chavetype
para definir que seu parâmetroCallback
deve ser uma função com um tipo de retornovoid
.`Subscribe<public>(Callback:type {__(:t):void})<transacts>:cancelable`
alias de tipo
Um alias de tipo é uma maneira de criar um novo nome para um tipo existente. Ao declarar um alias de tipo, você pode usar o nome do alias em vez do tipo existente. Um alias de tipo não cria um novo tipo, apenas atribui um novo nome para um tipo existente.
conversão de tipo
Você pode converter uma classe em uma de suas subclasses (o que é chamado de conversão de tipo) usando a sintaxe
NewReference := type_to_cast_to[Reference]
, em quetype_to_cast_to
é o tipo que você deseja usar. Essa é uma expressão falível, porque a conversão de tipo falhará se não for possível converter o objeto no tipo em questão (por exemplo, se a classe for de um tipo diferente da subclasse).O exemplo a seguir mostra como converter
TaggedDevice
, que tem o tipocreative_device_base
, em um tipocustomizable_light_device
para que você possa usar suas funções específicas. Se oTaggedDevice
não for um dispositivo Luz Personalizável (customizable_light_device
), ele não chamaráTurnOn()
.if (LightDevice := customizable_light_device[TaggedDevice]): LightDevice.TurnOn()
verificador de tipo
A verificação de tipo é usada para verificar um programa antes da execução. Esse processo verifica os valores e a sintaxe do tipo de dados. O principal objetivo de um sistema de tipos em uma linguagem de programação é reduzir a probabilidade de bugs em um programa devido a erros de tipo.
U
Unicode
Um padrão de codificação de caracteres desenvolvido pela Unicode Consortium para oferecer compatibilidade comparável com caracteres em vários idiomas, plataformas e dispositivos.
unique
O especificador unique pode ser aplicado a uma classe para torná-la uma classe exclusiva. Para criar uma instância de uma classe exclusiva, a linguagem Verse aloca uma identidade exclusiva para a instância resultante. Assim, é possível comparar instâncias de classes exclusivas em termos de igualdade ao comparar suas identidades. Classes sem o especificador unique não têm essa identidade, por isso só podem ser comparadas em termos de igualdade com base nos valores dos seus campos. Isso significa que classes exclusivas podem ser comparadas com os operadores = e <> e são subtipos do tipo comparável.
simultaneidade não estruturada
Expressões simultâneas com um tempo de vida que não é logicamente restrito a um comando simultâneo ou escopo de contexto assíncrono específico. Esse tempo de vida se estende, potencialmente, além do escopo em que a expressão foi executada. É semelhante ao controle de fluxo não estruturado, como o comando
goto
ouassembly jump
.
UTF-8
O esquema de codificação de caracteres UTF-8 Unicode, um padrão desenvolvido pela Unicode Consortium para oferecer compatibilidade comparável com caracteres em vários idiomas, plataformas e dispositivos.
Emojis parecem imagens ou ícones, mas não são. São letras (caracteres) do conjunto de caracteres UTF-8 (Unicode).
O UTF-8 abrange quase todos os caracteres e símbolos do mundo.
V
valor
Um valor é a informação que seu programa usa para operar. Exemplos de valores são números ou texto.
variável
Um valor que pode ser alterado durante a execução de um programa. É chamado de variável porque pode variar.
Às vezes, o termo "variável" refere-se a variáveis e constantes coletivamente, mas embora variáveis e constantes sejam semelhantes, elas têm uma diferença importante: o valor de uma constante não pode ser alterado enquanto um programa está em execução.
A sintaxe básica de uma variável é
var name : type = value
.var
é uma palavra-chave que indica que se trata de uma variável, ename
é um nome que você atribui à variável (conhecido como identificador). O:
indica que um tipo está chegando. O=
indica que um valor está chegando, e o último item é o próprio valor. Por exemplo:PlayerSpeed : float = 2.0
Esse código indica que PlayerSpeed tem um valor de 2.0, representado como um valor decimal que não muda enquanto o programa está em execução.
O nome e o tipo são a declaração, e a inicialização é onde esse valor é expresso. Uma variável não precisa ter um valor atribuído quando inicializada, mas é uma boa prática fazer isso.
As variáveis diferem das constantes porque você pode alterar o valor de uma variável a qualquer momento. Isso é feito com uma expressão de atribuição.
varies
Este efeito indica que a mesma entrada para a função pode nem sempre produzir a mesma saída. O efeito
varies
também indica que não há garantia de que o comportamento da função permaneça o mesmo com novas versões do pacote que a contém.
verbosity
Uma configuração para limitar a quantidade de informações adicionais que serão exibidas quando um log for gerado.
Verse
Verse é uma linguagem de programação estaticamente verificada com ênfase na programação de experiências de jogo.
Explorador do Verse
Uma ferramenta do Unreal Editor para Fortnite (UEFN) que cria novos arquivos Verse a partir de modelos, organiza seus arquivos com submódulos e permite renomear e excluir arquivos.
Caminho Verse
Consulte caminho.
dispositivo criado com Verse
Um dispositivo para uso no Unreal Editor para Fortnite (UEFN) que é programado diretamente usando Verse.
linguagem de programação visual
Um tipo de linguagem de programação em que o programador usa elementos visuais arrastando-os e conectando-os a outros elementos para definir uma sequência específica de instruções do programa.
Visual Studio Code
O Visual Studio Code, também conhecido como VS Code, é um editor de código-fonte criado pela Microsoft para Windows, Linux e macOS.
void
Void pega qualquer valor e retorna false. Isso permite que o corpo de uma função que retorna void produza implicitamente qualquer valor, sem que seja necessário ter o cuidado de converter o resultado de qualquer última expressão em um bloco.
VPL
Consulte linguagem de programação visual.
W
X
Y
Z
numeração baseada em zero
Uma forma de numeração em que o primeiro elemento de uma sequência seria atribuído como 0, em vez de 1, o que significa que a posição zero em um índice representa 1, a primeira posição representa 2 e assim por diante. Sequências de numeração que começam em 0 são comuns em notação matemática. Na programação, essa primeira posição em uma matriz é por vezes chamada de posição zero.