El lenguaje de programación C 1978
"C es un lenguaje de programación de uso general que presenta una economía de expresión, flujo de control moderno y estructuras de datos, y un rico conjunto de operadores. C no es un lenguaje de" muy alto nivel ", ni una" grande ", y no es especializada en ningún área particular de aplicación. Sino que su ausencia de restricciones y su generalidad lo hacen más conveniente y efectivo para muchas tareas que supuestamente más poderosos lenguajes".
"En nuestra experiencia, C ha demostrado ser un lenguaje agradable, expresivo y versátil para una amplia variedad de programas. Es fácil de aprender y usa bien la experiencia de uno con él crece"
El lenguaje de programación C Segunda edición 1988
"Como dijimos en el prefacio de la primera edición, C" usa bien la experiencia de uno con ella crece. "Con una década más de experiencia, todavía nos sentimos así".
Cake es un compilador frontal escrito desde cero en C, que se adhiere a la especificación del idioma C23 y más allá. Sirve como una plataforma para experimentar con nuevas características, incluidas propuestas de lenguaje C2Y, mejoras de seguridad y extensiones como expresiones lambda y declaraciones de diferir.
El backend actual genera un código compatible con C89, que se puede canalizar con los compiladores existentes para producir ejecutables.
Cake tiene como objetivo mejorar la seguridad de C proporcionando mensajes de advertencia de alta calidad y análisis de flujo avanzado, incluidos los controles de por vida de objetos.
Esta es la mejor manera de intentarlo.
http://thradams.com/cake/playground.html
Nota: Cake todavía está en desarrollo y aún no ha alcanzado una versión estable.
El pastel se puede usar como analizador estático junto con otros compiladores. Genera archivos SARIF, que son reconocidos por IDES populares como Visual Studio y Visual Studio Code, proporcionando una integración perfecta.
También puede funcionar como un preprocesador, convirtiendo el código C23 en C89. Esto permite a los desarrolladores usar características modernas mientras se dirigen a compiladores que aún no admiten los últimos estándares de idioma.
Las versiones anteriores de la torta incluían un modo de conversión para traducir el código mientras conservaba las partes del preprocesador. Aunque es útil, este proceso no podría garantizar el 100% de conversión, funcionando más como una herramienta que como un compilador. Con las nuevas versiones de Cake Moving para convertirse en un compilador más tradicional, el modo anterior se ha suspendido en la versión 0.9.36. Esta versión está en línea aquí http://thradams.com/cake3/playground.html.
Github https://github.com/thradams/cake
Abra el símbolo del sistema de desarrolladores de Visual Studio. Vaya al directorio y escriba SRC
cl build.c && build
Esto construirá Cake.exe , luego ejecutará el pastel en su propio código fuente.
Llegué al directorio y tipo de SRC :
gcc build.c -o build && ./build
Llegué al directorio y tipo de SRC :
clang build.c -o build && ./build
Para ejecutar las pruebas unitarias de Windows/Linux , por ejemplo:
gcc -DTEST build.c -o build && ./build
Se requiere emscripten https://emscripten.org/.
Primero haga la construcción normal.
La construcción normal también genera un archivo lib.c que es la versión amalgamada del "núcleo lib".
Luego en ./src Tipo Dir:
call emcc -DMOCKFILES "lib.c" -o "Webcake.js" -s WASM=0 -s EXPORTED_FUNCTIONS="['_CompileText']" -s EXTRA_EXPORTED_RUNTIME_METHODS="['ccall', 'cwrap']"
Esto generará el src web take.js
Asegúrese de que el pastel esté en la ruta de su sistema.
Muestras
cake source.c
Esto saldrá ./out/source.c
Ver Manual
¿Cómo llegamos aquí?
Una copia de cada borrador estándar C incluido en la carpeta Docs .
Una muy buena introducción fue escrita por Al Williams
Programación C23 para todos
https://hackaday.com/2022/09/13/c23-programming-for-everyone/
Puede contribuir probando pastel, informando errores y dando comentarios.
¿Tiene una sugerencia para C?
Servidor de discordia
https://discord.gg/yrekr2n65s
Estoy usando Visual Studio 2022 IDE para escribir/depurar la fuente de pastel. El pastel se analiza a sí mismo utilizando las inclinas de MSVC y genera el Dir Out después de la compilación.
Utilizo el código Visual Studio con WSL para probar y compilar el código para Linux.
El código fuente de la torta no está utilizando ninguna extensión, por lo que la salida es la misma de entrada. Esta compilación es útil para rastrear errores junto con las pruebas unitarias.
Cfront fue el compilador C ++ original, diseñado para traducir el código C ++ a C.
Aunque Cfront fue inicialmente compatible con C89, finalmente divergió de la evolución de C.
Por el contrario, Cake se mantiene fiel al desarrollo central de C, asegurando la compatibilidad completa.
Sus extensiones tienen como objetivo preservar la esencia de C al tiempo que permite a los desarrolladores experimentar y contribuir a la evolución de C utilizando un compilador de código abierto escrito en C.