A linguagem de programação C 1978
"C é uma linguagem de programação de uso geral que apresenta economia de expressão, fluxo de controle moderno e estruturas de dados e um rico conjunto de operadores. C não é uma linguagem de" nível muito alto ", nem um" grande ", e não é especializado em nenhuma área específica de aplicação. Mas sua ausência de restrições e sua generalidade o tornam mais conveniente e eficaz para muitas tarefas que supostamente linguagens poderosas.
"Em nossa experiência, C provou ser uma linguagem agradável, expressiva e versátil para uma ampla variedade de programas. É fácil de aprender e se desgasta bem como a experiência de alguém com ele cresce"
A linguagem de programação C Segunda edição 1988
"Como dissemos no prefácio da primeira edição, C" se desgasta bem como a experiência de alguém cresce. "Com mais uma década, ainda nos sentimos assim".
Bolo é um front-end do compilador escrito do zero em C, aderindo à especificação da linguagem C23 e além. Serve como uma plataforma para experimentar novos recursos, incluindo propostas de idiomas C2Y, aprimoramentos de segurança e extensões como expressões de lambda e declarações de adiamento.
O back-end atual gera código compatível com C89, que pode ser pipelado com compiladores existentes para produzir executáveis.
O bolo visa melhorar a segurança da C, fornecendo mensagens de alerta de alta qualidade e análise avançada de fluxo, incluindo verificações de vida útil do objeto.
Esta é a melhor maneira de tentar.
http://thradams.com/cake/playground.html
Nota: O bolo ainda está em desenvolvimento e ainda não alcançou uma versão estável.
O bolo pode ser usado como um analisador estático ao lado de outros compiladores. Ele gera arquivos SARIF, que são reconhecidos por IDEs populares, como o Visual Studio e o Código do Visual Studio, fornecendo uma integração perfeita.
Também pode funcionar como um pré -processador, convertendo o código C23 em C89. Isso permite que os desenvolvedores usem recursos modernos enquanto segmentam compiladores que ainda não suportam os padrões mais recentes de idiomas.
As versões anteriores do bolo incluíram um modo de conversão para traduzir o código enquanto preserva as peças do pré -processador. Embora útil, esse processo não poderia garantir 100% de conversão, funcionando mais como uma ferramenta do que um compilador. Com as novas versões de bolo avançando para se tornar um compilador mais tradicional, o modo anterior foi descontinuado na versão 0.9.36. Esta versão está online aqui http://thradams.com/cake3/playground.html.
Github https://github.com/thradams/cake
Abra o prompt de comando do desenvolvedor do Visual Studio. Vá para o diretório SRC e digite
cl build.c && build
Isso construirá bolo.exe e, em seguida, executará bolo em seu próprio código -fonte.
Cheguei ao diretório SRC e tipo:
gcc build.c -o build && ./build
Cheguei ao diretório SRC e tipo:
clang build.c -o build && ./build
Para executar testes de unidade Windows/Linux add -dtest , por exemplo:
gcc -DTEST build.c -o build && ./build
É necessário emscriptten https://emscriptten.org/.
Primeiro faça a construção normal.
A compilação normal também gera um arquivo lib.c que é a versão amalgamada da "Lib Core".
Então em ./src Dir Type:
call emcc -DMOCKFILES "lib.c" -o "Webcake.js" -s WASM=0 -s EXPORTED_FUNCTIONS="['_CompileText']" -s EXTRA_EXPORTED_RUNTIME_METHODS="['ccall', 'cwrap']"
Isso gerará o src web bolo.js
Verifique se o bolo está no caminho do seu sistema.
Amostras
cake source.c
Isso será lançado ./out/source.c
Veja Manual
Como chegamos aqui?
Uma cópia de cada rascunho padrão C incluído na pasta Docs .
Uma introdução muito boa foi escrita por Al Williams
C23 Programação para todos
https://hackaday.com/2022/09/13/c23-programming-for-everyone/
Você pode contribuir experimentando bolo, relatando bugs e dando feedback.
Tem uma sugestão para C?
Discord Server
https://discord.gg/yrekr2n65s
Estou usando o Visual Studio 2022 IDE para escrever/depurar a fonte do bolo. O bolo está se analisando usando o MSVC incluído e gera o diretor após a construção.
Eu uso o código do Visual Studio com o WSL para testar e compilar o código do Linux.
O código -fonte do bolo não está usando nenhuma extensão, portanto a saída é a mesma de entrada. Esta compilação é útil para rastrear erros juntamente com os testes de unidade.
CFront era o compilador C ++ original, projetado para traduzir o código C ++ em C.
Embora o CFront tenha sido inicialmente compatível com o C89, ele acabou divergindo da evolução de C.
Por outro lado, o bolo permanece fiel ao desenvolvimento central de C, garantindo a compatibilidade total.
Suas extensões visam preservar a essência de C, permitindo que os desenvolvedores experimentem e contribuam para a evolução de C usando um compilador de código aberto escrito em C.