cheat-sheet
sidebar_position: 3
Folha de Consulta
Esta folha de consulta tem como propósito oferecer uma visão clara e resumida dos principais conceitos da linguagem NeoBASIC, combinando fundamentos e recursos modernos através de exemplos práticos. Por meio deles, o leitor é guiado desde os aspectos essenciais até as abstrações mais sofisticadas presentes nesta primeira versão da linguagem.
No nível mais fundamental, a computação trata da transformação de uma entrada (input) em uma saída (output). O objetivo fundamental de qualquer programa de computador é receber entradas (dados), processá-las de alguma forma e produzir saídas (novos dados). Isso é inerente à computação, seja alterando valores na memória ou transformando estruturas de dados, o objetivo fundamental é processar dados.
Todos os paradigmas de programação envolvem processamento de dados, embora cada paradigma realize esse processamento de maneira distinta. Ainda que as ferramentas de cada paradigma variem (objetos, funções, regras ou comandos), os dados são a matéria-prima de todos eles. Sem dados para processar, um paradigma de programação seria apenas uma estrutura lógica vazia sem utilidade prática. O que muda entre os paradigmas é como esse processamento é modelado, estruturado e raciocinado. Os paradigmas de programação são apenas diferentes abordagens ou estilos para organizar e expressar esse processamento.
Portanto, o processamento de dados é a essência universal, mas cada paradigma oferece uma "lente" diferente para estruturar, organizar e pensar sobre esse processamento. É como diferentes abordagens arquitetônicas para construir edificações - todas criam estruturas, mas com filosofias e técnicas distintas. Todos os paradigmas envolvem, em algum nível:
- Representação de dados;
- Transformação ou manipulação de dados;
- Controle do fluxo desse processamento.
Gostaria muito de saber a sua opinião sobre esta folha de consulta e sobre a linguagem NeoBASIC como um todo. Seu feedback é essencial para aprimorar tanto o material quanto a própria linguagem. Qualquer comentário ou sugestão será muito bem-vindo.
Programas NeoBASIC
Natureza do Programa
Programa de Uma Linha (One-Liner)
Programa Applet
Programa Module
Programa Notabene
Estrutura do Programa
Divisão de Identificação
Divisão de Ambiente
(Declarações Top-Level)
Divisão de Processamento
Divisão de Testes
Estilo Centrado em Documentos
Escrita e Comunicação do Código
Instruções Lógicas
Fluxos de Execução
Código Fonte
Linhas de Código
Linhas em Branco
Espaços em Branco
Junção de Linhas
Indentação Suite
Processo Shell
Linhas de Comentário
Comentários de Código
Comentários de Documentação
(#Hashtags)
Diretivas de Execução
Diretiva de Shebang
Diretiva de Pragma
Diretiva de Teste Canário
Diretiva de Resolução Shell
🎶 Three Little Birds
@= Rubber Duck Debugging
@> Songbird Observing
(monitoring, logging, tracing, profiling)
#? Woodstock Testing
Programação Imperativa
Principais Conceitos
Processamento de Dados
Tipos de Dados Escalares
Tipos Escalares Primitivos
Tipos Escalares Compósitos
Tipos Escalares de Referência
Categorias de Valores
Valores Zero
Valores Literais
Valores Booleanos
Valores Binários
Valores Numéricos
Valores Temporais
Operadores Nativos
Operadores Aritméticos
Operadores Percentuais
Operadores Bit a Bit
Operadores Lógicos
Operadores de Comparação
Operadores Relacionais
Operadores Condicionais
Operadores de Atribuição
Operações Encadeadas
Precedência e Associatividade
Avaliação de Expressões
Conversões de Tipo Implícitas
Conversão de Valores
Formatação de Valores
Predicativo de Objetos
Expressão Condicional
Declaração const
Declaração let
Declaração var
E/S de Console
Comando echo
Comando scan
Comando at
Comando alert
Comando entry
Comando play
Instruções Simples
Atribuições de Valores
(atribuições encadeadas)
Instrução defer
Instrução raise
Instrução panic
Instrução exit
Instrução continue
Instrução break
Instrução fallthrough
Instrução Rotulada
Instrução Vazia
Instruções Compostas
Cláusula Condicional unless
Cláusula Condicional otherwise
Instruções Encadeadas
Instrução if-then
Instrução if-elif-else
Instrução match-case-else
Instrução try-catch
Instrução begin-catch-end
Instrução with
Instrução loop-then
Programação Estruturada
Principais Conceitos
Processamento de Dados
Tipos de Dados Compostos
Tipos Compostos Compósitos
Tipos Compostos Coleções
Tipos Compostos Contêiners
Categorias de Valores
Valores Zero
Valores Literais
Valores Textuais
Valores de Expressões Regulares
Valores de Átomos Qualificados
Valores de Caminhos Shell
Valores de Compósitos
Valores Pré-declarados do Shell
($*, $?, $!, ...)
Operadores Nativos
Operadores de Textos
Operadores Shell
(/ join)
Avaliação de Expressões
Conversões de Tipo Implícitas
Conversão de Valores
Formatação de Valores
Predicativo de Objetos
Declaração include
Declaração enum
Declaração struct
Programação Vetorial
Principais Conceitos
Processamento de Dados
Tipos de Dados Compostos
Tipos Compostos Coleções
Categorias de Valores
Valores Zero
Valores Literais
Valores de Coleções
Valores de XML
Operadores Nativos
Indexação de Coleções
Operadores de Coleções
Avaliação de Expressões
Conversões de Tipo Implícitas
Conversão de Valores
Formatação de Valores
Predicativo de Objetos
Vetorização de Código
Manipulação de Coleções
Indexadas × Associativas
Unidimensionais × Multidimensionais
Estáticas × Dinâmicas
Lineares × Hierárquicas
Compreensão de Lista
Programação Genérica
Principais Conceitos
Processamento de Dados
Tipos de Dados Combinados
Tipos Combinados Mônadas
Categorias de Valores
Valores Zero
Valores Literais
Valores de Mônadas
Valores Predefinidos
(this, self, super, ...)
Operadores Nativos
Operadores de Coalescência
Operadores de Controle
Operadores Miscelâneos
(typeof, sizeof, path /, ...)
Avaliação de Expressões
Declaração type
(Tipos Definidos pelo Usuário)
Tipos Algébricos
Tipos Genéricos
Parâmetros de Tipos Genéricos
Declaração cast
Programação Procedural
Principais Conceitos
Processamento de Dados
Tipos de Dados
Categorias de Valores
Valores Zero
Valores Literais
Valores Procedurais
Operadores Nativos
Avaliação de Expressões
Declaração func
Declaração sub
Argumentos Posicionais
Argumentos Nomeados
Parâmetros Predefinidos
Procedimentos Variádicos
Procedimentos Aninhados
Sobrecarga de Procedimentos
Resultados múltiplos
Programação Dinâmica
Principais Conceitos
Processamento de Dados
Tipos de Dados
Categorias de Valores
Valores Zero
Valores Literais
Operadores Nativos
Avaliação de Expressões
Funções Recursivas
Funções com Guardas de Correspondência
Tabulação vs Memorização
Programação Funcional
Principais Conceitos
Processamento de Dados
Tipos de Dados
Categorias de Valores
Valores Zero
Valores Literais
Operadores Nativos
Avaliação de Expressões
Função de Primeira Classe
Função de Ordem Superior
Função Pura
Composição de Funções
Currying de Funções
Funções Anônimas
Closures
Expressões Lambdas
Lambda à Direita
(Trailing Lambda)
Compreensão Aritmética
Programação por Fluxo de Dados
Principais Conceitos
Processamento de Dados
Tipos de Dados
Categorias de Valores
Valores Zero
Valores Literais
Operadores Nativos
Avaliação de Expressões
Declaração feed
Programação Lógica
Principais Conceitos
Processamento de Dados
Tipos de Dados
Categorias de Valores
Valores Zero
Valores Literais
Operadores Nativos
Avaliação de Expressões
Declaração define
Declaração undef
Declaração fact
Propagação de Restrições
Programação Modular
Principais Conceitos
Processamento de Dados
Tipos de Dados
Categorias de Valores
Valores Zero
Valores Literais
Operadores Nativos
Avaliação de Expressões
Declaração use
Namespaces de Módulos
Modificadores de Acesso
(níveis de visibilidade)
Sub-rotina Main
Declaração interface
Arquivos de Declaração de Interface
(*.i.neob, *.i.🔰)
Programação Orientada a Objetos
Principais Conceitos
Processamento de Dados
Tipos de Dados Compostos
Tipos Compostos Contêiners
Categorias de Valores
Valores Literais
Valores de Contêiners
Operadores Nativos
Avaliação de Expressões
Acesso a Membros
Predicativo de Objetos
Resolução de Lifetime
Declaração proto
Declaração trait
Declaração class
Declaração construt
Declaração destruct
Declaração property
Declaração operator
Programação Concorrente
Principais Conceitos
Processamento de Dados
Tipos de Dados
Categorias de Valores
Valores Zero
Valores Literais
Operadores Nativos
Avaliação de Expressões
Instrução go
Instrução gosub
Instrução await
Instrução switch-case-default
Sincronização de Threads
Comunicação entre Threads
Programação Orientada a Eventos
Principais Conceitos
Processamento de Dados
Tipos de Dados
Categorias de Valores
Valores Zero
Valores Literais
Operadores Nativos
Avaliação de Expressões
Broker de Eventos
Declaração event
Interface Gráfica do Usuário (GUI)
Programação Orientada a Aspectos
Principais Conceitos
Processamento de Dados
Tipos de Dados
Categorias de Valores
Valores Zero
Valores Literais
Operadores Nativos
Avaliação de Expressões
Demarcação de Aspectos
Tratamento de Erros
Erros Definidos pelo Usuário
Programação Orientada a Contratos
Principais Conceitos
Processamento de Dados
Tipos de Dados
Categorias de Valores
Valores Zero
Valores Literais
Operadores Nativos
Avaliação de Expressões
Instrução assert
Instrução unit
Programação Distribuída
Principais Conceitos
Processamento de Dados
Tipos de Dados
Categorias de Valores
Valores Zero
Valores Literais
Operadores Nativos
Avaliação de Expressões
Declaração actor
Cláusula Temporal till
Modelo de Atores
Metaprogramação Declarativa
Principais Conceitos
Processamento de Dados
Tipos de Dados
Categorias de Valores
Valores Zero
Valores Literais
Operadores Nativos
Avaliação de Expressões
Estereótipos e Anotações
Declaração macro
Templates de Código
Programação Reflexiva
Principais Conceitos
Processamento de Dados
Tipos de Dados
Categorias de Valores
Valores Zero
Valores Literais
Operadores Nativos
Avaliação de Expressões
Programação Literária
Principais Conceitos
(paradigma de organização e documentação)