Pretty.c - Scripting em C
(github.com/aartaka)- Pretty C é uma nova linguagem de script compatível com C, oferecendo recursos como tipagem dinâmica, iteração genérica e rastreamento de recursos
- Mantém compatibilidade retroativa com C e todas as bibliotecas
- Foi inspirada em Lua, Python, JavaScript e Lisp.
Objetivos
- Oferecer muito açúcar sintático para desenvolvedores C, tornando a linguagem mais fácil de usar.
- Se posicionar como a linguagem de script definitiva, capaz de substituir várias linguagens como Lua, Python, JavaScript e Ruby.
- Transformar qualquer base de código em algo amigável para iniciantes incluindo apenas um único arquivo de cabeçalho.
Primeiros passos
- É possível clonar o repositório no GitHub ou copiar o arquivo
pretty.hpara usar.
Recursos de conveniência oferecidos
Cabeçalhos padrão incluídos
stdbool.hfornecetrue,falseeboolstdint.hfornece tipos inteiros de largura fixaiso646.hfornece alternativas de operadores com melhor legibilidade
Macros simples
- Fornece macros como
max,min,len,default,limit,between,divisibleetc.
Novos tipos
- Fornece aliases de tipos como
string,byte,bytes,anyetc. - Fornece formas abreviadas de inteiros como
uchar,ushort,uint,ulongetc.
Novos aliases
- Fornece aliases de operadores como
eq,is,bitnot,bitxoretc. - Fornece operadores de comparação como
below,above,upto,downtoetc. - Fornece predicados numéricos/de dados como
even,odd,positive,negative,zero,emptyetc. - Fornece aliases como
nil,until,elif,ifnt,repeat,done~/~finish,passetc.
Inferência de tipos (GCC, Clang ou C23+)
- É possível usar inferência de tipos com as palavras-chave
var,let,local
Saída genérica (C11+)
printeprintlnpermitem exibir dados de vários tipos
Igualdade genérica (C11+)
equalpermite comparar dados de vários tipos
Operador ternário elegante
- É possível usar um operador ternário mais legível com palavras-chave como
when,then,other,otherwise,only,otherwhen
Macro for
- Macros como
foreach,forthese,fortimes,forrange,forrangebyoferecem vários padrões de repetição
Macros de alocação
- Macros como
new,vector,deletepermitem alocação e liberação simples de memória
Utilitários de bloco
- Fornece utilitários de bloco como
lambda,with,defer,try,catch
Resumo do GN⁺
Pretty C é um projeto que adiciona vários açúcares sintáticos à linguagem C para ajudar desenvolvedores a escrever código com mais facilidade. Em especial, mantém compatibilidade retroativa com C ao mesmo tempo em que oferece vários recursos inspirados em linguagens como Lua, Python e JavaScript. Esses recursos podem ajudar desenvolvedores C a escrever código mais conciso e legível. Projetos com funcionalidades semelhantes incluem Zig e Nim.
1 comentários
Comentários no Hacker News