Pular para o conteúdo principal

cheat-sheet


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)

Processamento de Dados

Tipos de Dados

Categorias de Valores

Valores Zero
Valores Literais

Operadores Nativos

Avaliação de Expressões

Convenções de Codificação

Regras de Nomenclatura

Palavras Reservadas

Identificadores

Átomos

Boas Práticas