1 · O que é e por que existe?
A Pseudolinguagem de Referência do LAC (PR-LAC) é uma notação textual, educacional e independente de linguagem de programação para descrever algoritmos de maneira verificável. Sua versão 1.0 define um núcleo de instruções e um subconjunto executável demonstrado; não é um compilador universal.
Algoritmos, estados e estruturas de dados.
Inconsistência entre notação, interpretação, execução e visualização.
Aprendiz, autor, projetista, mentor e implementador.
Mesma instrução, mesma regra semântica e resultado reproduzível.
2 · Léxico e vocabulário
O léxico define quais unidades (tokens) podem compor um algoritmo. Palavras reservadas são grafadas em maiúsculas; identificadores podem usar letras, dígitos e sublinhado, começando por letra. Os exemplos adotam identificadores sem acentos.
| Categoria | Tokens | Significado |
|---|---|---|
| Delimitação | ALGORITMO, DADOS, INÍCIO, FIM | Nome, dados e corpo |
| Decisão | SE, ENTÃO, SENÃO, FIM_SE | Execução condicional |
| Repetição | PARA, DE, ATÉ, PASSO, FAÇA, FIM_PARA, ENQUANTO, FIM_ENQUANTO | Laços |
| Controle | INTERROMPER, CONTINUAR, RETORNAR | Desvio e saída |
| Entrada/saída | LER, ESCREVER | Interação |
| Tipos | INTEIRO, REAL, LOGICO, TEXTO, VETOR | Tipos didáticos |
| Operadores | ←, +, -, *, /, =, ≠, <, ≤, >, ≥, E, OU, NÃO | Atribuição, aritmética, comparação e lógica |
| Literais | 10, 2.5, VERDADEIRO, FALSO, "texto" | Valores |
Convenção: = compara igualdade; ← atribui valor. Vetores são indexados a partir de zero.
3 · Regras sintáticas
Esta gramática EBNF simplificada especifica o núcleo exemplificado. Elementos opcionais são indicados por colchetes e repetições por chaves.
Contrato complementar: expressões obedecem precedência aritmética, relacional e lógica; tipos devem ser compatíveis; o passo de PARA não pode ser zero. A gramática completa de expressões, funções e estruturas compostas fica para a versão 1.1.
4 · Semântica operacional
O estado de execução é representado por σ, um mapeamento entre identificadores e valores, acompanhado da posição da instrução corrente e da saída acumulada. Cada passo aplica uma regra de transição: ⟨instrução, σ⟩ → ⟨próxima instrução, σ'⟩.
| Instrução | Efeito sobre o estado |
|---|---|
x ← e | Avalia e e atualiza σ(x). |
SE c ENTÃO ... | Avalia c e escolhe um dos blocos. |
PARA i DE a ATÉ b | Inicializa i, testa o limite inclusivo, executa o corpo e incrementa o contador. |
ENQUANTO c | Testa c antes de cada execução do corpo. |
ESCREVER e | Acrescenta o valor avaliado à saída. |
RETORNAR e | Encerra a rotina e produz um valor. |
Uma implementação deve explicitar erros de índice, tipos incompatíveis e variáveis não inicializadas. A terminação não é garantida para todo algoritmo (por exemplo, um ENQUANTO cuja condição nunca se torna falsa).
5 · Laboratório: instrução → estado → resultado
Escolha um exemplo. O interpretador didático executa transições pré-definidas e verificáveis dos exemplos apresentados, sem executar texto arbitrário. O código e a visualização usam o mesmo estado de simulação.
Algoritmo em PR-LAC
Rastro de execução
| Passo | Instrução | Mudança observada |
|---|
6 · Integração com Algoritmos e Estruturas de Dados
Adota o vocabulário PR-LAC, apresenta problema, requisitos e decisões de controle.
Usa os mesmos nomes de operações e mostra como o estado de vetores, pilhas, filas, árvores e grafos muda.
Algoritmo + estado inicial + entrada + regra de transição → rastro + estado final + resultado.
Exemplo de aplicação ao LAC
Ao selecionar um nó de um grafo de conhecimento, um algoritmo de percurso pode visitar seus vizinhos. A estrutura representa os nós e arestas; o algoritmo determina a visita; a visualização revela quais nós foram visitados e em qual ordem.
Regras de governança da notação
- Identificar a versão PR-LAC usada em cada artefato.
- Não confundir pseudocódigo didático com código executável genérico.
- Vincular cada instrução demonstrada a uma regra semântica.
- Registrar estado inicial, entradas, transições, saídas e testes esperados.
- Versionar mudanças incompatíveis na sintaxe ou semântica.
Critérios de homologação
Para cada exemplo: resultado determinístico; rastreabilidade por passo; sincronismo entre código, estado e visualização; reinicialização reprodutível; tratamento explícito de limites.
7 · Referências para aprofundamento
WIRTH, Niklaus. Algorithms + Data Structures = Programs (1976). KNUTH, Donald. The Art of Computer Programming. CORMEN et al. Introduction to Algorithms. AHO, LAM, SETHI e ULLMAN. Compilers: Principles, Techniques, and Tools. WINSKEL, Glynn. The Formal Semantics of Programming Languages.
Esta notação é uma proposta interna de referência do LAC, não um padrão externo consolidado.