Introdução
O que é Fenner, para que serve e como as peças — linguagem, compilador, biblioteca e RAD — se encaixam.
Fenner é uma linguagem da família Object Pascal — a sintaxe que o Delphi tornou popular — compilada para código nativo através do LLVM. Ela vem com um compilador (fc), uma biblioteca-padrão escrita na própria linguagem, uma biblioteca de componentes visuais para Windows e um ambiente de desenvolvimento rápido, o RAD, no espírito do Delphi.
program Hello;
begin
WriteLn('Olá, mundo!');
end.Olá, mundo!Quem conhece Pascal lê esse programa sem esforço. O que muda está nos detalhes, e a maior parte deles foi pensada para que o compilador recuse cedo o que costuma virar defeito tarde.
Em poucas linhas#
- Nativa e autocontida. O compilador gera um
.exe(ou uma.dll) com o LLVM, liga em processo e não depende de máquina virtual. O próprio compilador é escrito em Fenner. - Sensível a maiúsculas.
Nomeenomesão identificadores diferentes, e cada palavra reservada tem uma única grafia (begin, masExit,Break,True). - Tipos que dizem a largura.
Int32,UInt8,Int256,Float64,Currency64. Não existeInteger: o nome antigo é um erro que aponta o novo. - Quatro cadeias de texto.
LString(bytes),U8String(UTF-8),UString(UTF-16) eWString(BSTR, para COM). A codificação faz parte do tipo. - Dinheiro e números enormes de verdade. A família
Currencyé ponto fixo exato, e os inteiros vão até 4096 bits com aritmética nativa. - Objetos com contagem de referências,
weak, ligações dono/filho (Ref) e listas intrusivas (ChainRoot) como formas da linguagem. - O valor que pode não existir é um tipo:
?Int32, com??,?.e!. - Recursos modernos sobre a base Pascal: genéricos com restrições, lambdas com captura,
async/await, helpers, variáveis declaradas no meio do bloco. - Compilação programável:
{$if}sobre tipos, macros, late modules e meta modules que enxergam o programa compilado e acrescentam código.
As peças#
| Peça | O que é |
|---|---|
fc | O compilador: do .fxp ao .exe/.dll. Veja a linha de comando. |
| RTL | A biblioteca-padrão, em Fenner. Existem duas: a mínima, que acompanha o compilador, e a BedRock, completa. Veja a visão geral da biblioteca. |
| WCL | Biblioteca de componentes visuais para Windows (formulários, botões, grades, árvores, editor de código). Veja WCL. |
| RAD | O designer de formulários e editor de código, escrito em Fenner sobre a WCL. Veja o guia do RAD. |
| FennerScript | Motor de scripts embutível, para o usuário do seu programa escrever scripts. Veja FennerScript. |
| Extensão do VS Code | Realce, trechos e leitura dos erros do compilador. Veja VS Code. |
Para quem é#
Para quem já conhece Delphi ou Pascal e quer um compilador nativo moderno, e para quem escreve aplicativos de janelas e serviços para Windows e quer uma linguagem com cadeias, dinheiro e banco de dados bem resolvidos. Se você vem do Delphi, a página Diferenças do Delphi reúne o que muda.
Participe da comunidade#
Entre no grupo do WhatsApp para tirar dúvidas, contar o que você está construindo e acompanhar as novidades da linguagem, do compilador e do RAD.
Apoie o projeto#
A Fenner é desenvolvida de forma independente. Veja como apoiar o projeto: financiamento recorrente no Apoia.se ou doação avulsa via PIX.
Por onde continuar#
- Primeiro programa: compile e rode seu primeiro
.fxp. - Projetos e arquivos: as extensões, e como um programa se divide em módulos.
- A linguagem: a referência da sintaxe, página a página.
- O RAD: se você prefere desenhar formulários.